Prepare Opstella Software Resources
Resources for Opstella are necessary components that you need for installation and need to be done before perform installation which are,
- Request Opstella UI Container Image Built Specifically for your Organisation
- Determine List of Opstella Workers
- Gather Opstella Container Images
- Gather Opstella Helm Chart(s)
- Gather Opstella Standard GitLab CI/CD Pipelines Installation
- Gather Opstella Project Templates
Request Opstella UI Container Image Built Specifically for your Organisation
Section titled “Request Opstella UI Container Image Built Specifically for your Organisation”Opstella UI Frontend requires building Container Image specifically for each of Organisation (or Site)
You need to Request Opstella Sales/Product Manager for building the Container Image by giving these values.
For example,
-
Your Opstella Core (Backend) Domain
opstella-backend.CHANGEME.comNEXT_PUBLIC_RELAY_ENDPOINT=https://opstella-backend.CHANGEME.com/graphql -
Your Opstella Keycloak Domain
idp.CHANGEME.comNEXT_PUBLIC_KEYCLOAK_URL=https://idp.CHANGEME.com/ -
Your Opstella Keycloak Realm
foobar-opstellaNEXT_PUBLIC_KEYCLOAK_REALM=foobar-opstella -
Choose ONLY ONE Opstella Edition
NEXT_PUBLIC_EDITION="CONTAINER"NEXT_PUBLIC_EDITION="DEVSECOPS,CONTAINER"
After you have provided these values, will provide you the Container Image Name to pull and push to your Container Registry.
Determine List of Opstella Workers
Section titled “Determine List of Opstella Workers”Opstella Workers are Microservices to integrate with Opstella dependencies which are DevSecOps Tools, Observability Tools, Opstella Keycloak, and Kubernetes Cluster(s).
For starter, Opstella need to work with Opstella Keycloak which Strictly Required
Opstella Worker Keycloak:
worker-keycloak 🔒
DevSecOps Tools, that depends on what you are eligible:
GitLab: worker-gitlab
Harbor: worker-harbor
SonarQube: worker-sonarqube
DefectDojo: worker-defectdojo
Vault: worker-vault
Headlamp: worker-headlamp
Observability Tools, that enabled by your choice:
Grafana LGTM Stack: Install worker-grafana,
worker-loki, worker-tempo
Application Deployment and Management, :
As Opstella supports ONLY Kubernetes and will manage any required Kubernetes Resources on Kubernetes Cluster(s), thus its Worker is Strictly Required.
Kubernetes: worker-kubernetes
🔒
Opstella will manage application on Kubernetes Cluster(s) with ArgoCD, thus you will need
ArgoCD: worker-argocd
Multiple Worker Instances
Section titled “Multiple Worker Instances”As you have defined the number of Environment(s) and may also follow the practice of separating infrastructure by Environment(s).
For Opstella to integrate with infrastructure that scaled, its coresponding Opstella Worker will scale with the infrastructure.
These are the list of Opstella Workers that can have multiple instances.
worker-argocdworker-headlamp
For instance, if you have multiple Kubernetes Clusters.
Example Workload Clusters:
🟦 Non-Production WorkloadKubernetes Cluster🟥 Production WorkloadKubernetes Cluster
You will need to have multiple worker-argocd and worker-headlamp Opstella Workers for each of Kubernetes Clusters.
-
Add these into workers list with a segregated name.
Add
-with Environment Name -
With exception that they share the same kind of container image while deploy them. You also need to specify the correct image too.
- 🟦
worker-argocd-nonprod - 🟥
worker-argocd-prod- Using
worker-argocdContainer Image
- Using
- 🟦
worker-headlamp-nonprod - 🟥
worker-headlamp-prod- Using
worker-headlampContainer Image
- Using
- 🟦
In conclusion, the list of Opstella Workers that required to install are:
worker-keycloak🔒worker-kubernetes🔒worker-defectdojoworker-gitlabworker-harborworker-sonarqubeworker-vaultworker-grafanaworker-lokiworker-tempoworker-argocd-nonprodworker-argocd-prodworker-headlamp-nonprodworker-headlamp-prod
Make a list of Opstella Workers and append to your Global Shell Variables for easier iteration while performing installation.
cat <<EOF >> $HOME/opstella-installation/shell-values/global.vars.shexport OPSTELLA_ENABLED_INSTRUMENTS=( \ keycloak kubernetes \ argocd-nonprod argocd-prod \ headlamp-nonprod headlamp-prod \ defectdojo gitlab harbor sonarqube vault \ grafana loki tempo \)EOFNote that Worker Name will be pair with name of tools exactly, but some may not. As due to Opstella architecture.
- For instance, there is NO
worker-mimirbut this can be integrated with LGTM (Loki, Grafana Dashboard, Tempo, Mimir) without issue.
Request GCP Access Token from Opstella Team
Section titled “Request GCP Access Token from Opstella Team”Before gathering software resources, you need to request a GCP Access Token from the Opstella Team.
This token provides authenticated access to the Google Cloud Artifact Registry where Opstella’s container images and Helm charts are hosted. You will receive the token in a JSON format.
Example Token JSON Structure:
{ "type": "service_account", "client_id": "...", "private_key": "...", "universe_domain": "googleapis.com", ...}Save this token securely as you will need it during the installation process.
Gather Opstella Container Images
Section titled “Gather Opstella Container Images”Pull directly from Release Channel Registry
💡 Before proceed, Make sure you are connected to Bastion Host in any way possible, i.e SSH, Privileged Access Management Console, etc.
asia-southeast1-docker.pkg.dev/opstella/platform/<opstella-component>:<version>
<opstella-component>represents which of Opstella Services Components<version>represents the version of Opstella Services Components, you may receive different version from the guide.
Opstella Components:
-
Opstella UI (Frontend):
asia-southeast1-docker.pkg.dev/opstella/platform/ui:<version> -
Opstella Core (Backend):
asia-southeast1-docker.pkg.dev/opstella/platform/core:<version> -
Opstella Clear Session Utility:
asia-southeast1-docker.pkg.dev/opstella/platform/clear-session:<version> -
All Opstella Workers:
asia-southeast1-docker.pkg.dev/opstella/platform/worker-XYZ:<version>
In case of Opstella Workers will represent with worker-XYZ where XYZ is the component name that Opstella integrates with, for example,
- Opstella Workers for Kubernetes:
asia-southeast1-docker.pkg.dev/opstella/platform/worker-kubernetes:<version> - Opstella Workers for ArgoCD:
asia-southeast1-docker.pkg.dev/opstella/platform/worker-argocd:<version> - Opstella Workers for Harbor:
asia-southeast1-docker.pkg.dev/opstella/platform/worker-harbor:<version> - etc.
Gather Opstella System Helm Chart
Section titled “Gather Opstella System Helm Chart”Pull directly from Release Channel Registry and save to $HOME/opstella-installation/helm-charts/opstella-system.tar.gz
Gather Opstella Standard GitLab CI/CD Pipelines
Section titled “Gather Opstella Standard GitLab CI/CD Pipelines”Visit Opstella Standard GitLab CI/CD Pipelines on git.opsta.io Repository.
You will be cloning the repository to your own GitLab Instance that your will be provisioned.
You will be followed instructions on GitLab with Opstella Integration in Opstella Resources Installation.
Instructions will be guided on TODO
Gather Opstella Project Templates
Section titled “Gather Opstella Project Templates”Visit Opstella Project Templates on git.opsta.io Project Group.
You will be cloning repositories to your own GitLab Instance that your will be provisioned.
You will be followed instructions on GitLab with Opstella Integration in Opstella Resources Installation.
Instructions will be guided on TODO
Finished?
Use the below navigation to proceed