This is the Stable version of the documentation. The latest version is experimental and under active development. You can use the version selector in the top-right menu to switch versions for this specific page, or click here to go to the latest version's homepage.
Setup Shell Variable Values
Create Shell Varaible Values helps you store all of the necessary values that required in installation process.
Global Shell Variable Values
Section titled “Global Shell Variable Values”These values should be determined during the Planning Phase.
Example:
| Information | Your Value | Note |
|---|---|---|
| Organization Name | foobar | Short name |
| Keycloak Realm Name | foobar-opstella | Realm name |
| Domain Name | example.com | Base domain |
| Storage Service | seaweedfs | S3 compatible storage service |
| TLS Certificate | example.com | Wildcard certificate & key for domains |
Create Variable Files
Section titled “Create Variable Files”Store any globally applicated variables in the following directory.
$HOME/opstella-installation/shell-values/global.vars.sh
Define your organization name and base domain first to ensure they are correctly populated in the file.
export ORGANIZATION_NAME="foobar"export BASE_DOMAIN="example.com"cat <<EOF > $HOME/opstella-installation/shell-values/global.vars.sh# Set work path (Should contains \`assets\` directory extracted from \`orion-assets\`)export BASE_WORKING_DIR="${HOME}/opstella-installation"
export ORGANIZATION_NAME="${ORGANIZATION_NAME}"export BASE_DOMAIN="${BASE_DOMAIN}"
export KEYCLOAK_DOMAIN="idp.${BASE_DOMAIN}"
export GITLAB_DOMAIN="gitlab.${BASE_DOMAIN}"
export SONARQUBE_DOMAIN="sonarqube.${BASE_DOMAIN}"export HARBOR_DOMAIN="harbor.${BASE_DOMAIN}"export DEFECTDOJO_DOMAIN="defectdojo.${BASE_DOMAIN}"export VAULT_DOMAIN="vault.${BASE_DOMAIN}"
export GRAFANA_DASHBOARD_DOMAIN="grafana.${BASE_DOMAIN}"export GRAFANA_MIMIR_DOMAIN="mimir.${BASE_DOMAIN}"export GRAFANA_LOKI_DOMAIN="loki.${BASE_DOMAIN}"export GRAFANA_TEMPO_DOMAIN="tempo.${BASE_DOMAIN}"
export KEYCLOAK_REALM="foobar-opstella"export KEYCLOAK_REALM_ADMIN_EMAIL="opstella-realm-admin@${BASE_DOMAIN}"
export ARGOCD_DOMAIN="argocd.${BASE_DOMAIN}"
# Per-environment ArgoCD hostnames.# Both are required when rendering kc-realm.yaml, because the Keycloak Realm holds one OIDC# client per workload cluster and each carries its own redirectUris.export ARGOCD_NONPROD_DOMAIN="argocd-nonprod.${BASE_DOMAIN}"export ARGOCD_PROD_DOMAIN="argocd-prod.${BASE_DOMAIN}"
export OPSTELLA_UI_DOMAIN="opstella.${BASE_DOMAIN}"
EOFBy Kubernetes Cluster(s) Shell Variable Values
Section titled “By Kubernetes Cluster(s) Shell Variable Values”Store any by Kubernetes Cluster(s) variables in the following directory.
$HOME/opstella-installation/shell-values/kubernetes/**.vars.sh
🟢 Management
Section titled “🟢 Management”Create $HOME/opstella-installation/shell-values/kubernetes/management_cluster.vars.sh
cat <<EOF > $HOME/opstella-installation/shell-values/kubernetes/management_cluster.vars.sh
export K8S_INTERNAL_DOMAIN="cluster.local"# Name of the cluster DNS Service in namespace `kube-system`.# Upstream Kubernetes / most distributions: `kube-dns` (even when backed by CoreDNS).# RKE2: `rke2-coredns-rke2-coredns`. Verify with `kubectl get svc -n kube-system`.export K8S_INTERNAL_DNS_SERVICE="kube-dns"export K8S_INGRESSCLASS_NAME="nginx"export K8S_STORAGECLASS_NAME="longhorn"export K8S_INGRESS_TLS_CERTIFICATE_SECRET_NAME="wildcard-${BASE_DOMAIN}-tls"EOF🟦 Non-Production Workload
Section titled “🟦 Non-Production Workload”Create $HOME/opstella-installation/shell-values/kubernetes/nonprod_cluster.vars.sh
cat <<EOF > $HOME/opstella-installation/shell-values/kubernetes/nonprod_cluster.vars.sh
export ARGOCD_DOMAIN="argocd-nonprod.${BASE_DOMAIN}"export HEADLAMP_DOMAIN="headlamp-nonprod.${BASE_DOMAIN}"
export K8S_INTERNAL_DOMAIN="cluster.local"# Name of the cluster DNS Service in namespace `kube-system`.# Upstream Kubernetes / most distributions: `kube-dns` (even when backed by CoreDNS).# RKE2: `rke2-coredns-rke2-coredns`. Verify with `kubectl get svc -n kube-system`.export K8S_INTERNAL_DNS_SERVICE="kube-dns"export K8S_INGRESSCLASS_NAME="nginx"export K8S_STORAGECLASS_NAME="longhorn"export K8S_INGRESS_TLS_CERTIFICATE_SECRET_NAME="wildcard-${BASE_DOMAIN}-tls"EOF🟥 Production Workload
Section titled “🟥 Production Workload”Create $HOME/opstella-installation/shell-values/kubernetes/prod_cluster.vars.sh
cat <<EOF > $HOME/opstella-installation/shell-values/kubernetes/prod_cluster.vars.sh
export ARGOCD_DOMAIN="argocd-prod.${BASE_DOMAIN}"export HEADLAMP_DOMAIN="headlamp-prod.${BASE_DOMAIN}"
export K8S_INTERNAL_DOMAIN="cluster.local"# Name of the cluster DNS Service in namespace `kube-system`.# Upstream Kubernetes / most distributions: `kube-dns` (even when backed by CoreDNS).# RKE2: `rke2-coredns-rke2-coredns`. Verify with `kubectl get svc -n kube-system`.export K8S_INTERNAL_DNS_SERVICE="kube-dns"export K8S_INGRESSCLASS_NAME="nginx"export K8S_STORAGECLASS_NAME="longhorn"export K8S_INGRESS_TLS_CERTIFICATE_SECRET_NAME="wildcard-${BASE_DOMAIN}-tls"EOFTools-oriented Shell Variable Values
Section titled “Tools-oriented Shell Variable Values”Store any by Tools-oriented applicated variables in the following directory.
$HOME/opstella-installation/shell-values/tools/**.vars.sh
GitLab
Section titled “GitLab”- Domain:
GITLAB_DOMAIN
$HOME/opstella-installation/shell-values/tools/gitlab.vars.sh
cat <<EOF > $HOME/opstella-installation/shell-values/tools/gitlab.vars.shexport GITLAB_DOMAIN="gitlab.${BASE_DOMAIN}"EOFHarbor
Section titled “Harbor”-
Admin Password:
HARBOR_ADMIN_PASSWORDexport HARBOR_ADMIN_PASSWORD="CHANGEME" -
Domain:
HARBOR_DOMAIN
$HOME/opstella-installation/shell-values/tools/harbor.vars.sh
cat <<EOF > $HOME/opstella-installation/shell-values/tools/harbor.vars.shexport HARBOR_DOMAIN="harbor.${BASE_DOMAIN}"export HARBOR_ADMIN_USERNAME="admin"export HARBOR_ADMIN_PASSWORD="${HARBOR_ADMIN_PASSWORD}"EOFSonarQube
Section titled “SonarQube”-
Admin Password:
SONARQUBE_ADMIN_PASSWORDexport SONARQUBE_ADMIN_PASSWORD="CHANGEME" -
Domain:
SONARQUBE_DOMAIN
$HOME/opstella-installation/shell-values/tools/sonarqube.vars.sh
cat <<EOF > $HOME/opstella-installation/shell-values/tools/sonarqube.vars.shexport SONARQUBE_DOMAIN="sonarqube.${BASE_DOMAIN}"export SONARQUBE_ADMIN_USERNAME="admin"export SONARQUBE_ADMIN_PASSWORD="${SONARQUBE_ADMIN_PASSWORD}"EOFDefectDojo
Section titled “DefectDojo”-
Admin Password:
DEFECTDOJO_ADMIN_PASSWORDexport DEFECTDOJO_ADMIN_PASSWORD="CHANGEME" -
DefectDojo Domain:
DEFECTDOJO_DOMAIN
$HOME/opstella-installation/shell-values/tools/defectdojo.vars.sh
cat <<EOF > $HOME/opstella-installation/shell-values/tools/defectdojo.vars.shexport DEFECTDOJO_DOMAIN="defectdojo.${BASE_DOMAIN}"export DEFECTDOJO_ADMIN_USERNAME="defectdojo"export DEFECTDOJO_ADMIN_PASSWORD="${DEFECTDOJO_ADMIN_PASSWORD}"export DEFECTDOJO_ADMIN_EMAIL="admin@${DEFECTDOJO_DOMAIN}"EOFHashicorp Vault
Section titled “Hashicorp Vault”- Domain:
VAULT_DOMAIN
$HOME/opstella-installation/shell-values/tools/vault.vars.sh
cat <<EOF > $HOME/opstella-installation/shell-values/tools/vault.vars.shexport VAULT_DOMAIN="vault.${BASE_DOMAIN}"EOFObservability
Section titled “Observability”$HOME/opstella-installation/shell-values/tools/observability.vars.sh
cat <<EOF > $HOME/opstella-installation/shell-values/tools/observability.vars.shexport GRAFANA_DASHBOARD_DOMAIN="grafana.${BASE_DOMAIN}"export GRAFANA_DASHBOARD_ADMIN_USERNAME="admin"export GRAFANA_DASHBOARD_ADMIN_PASSWORD="CHANGEME"
export GRAFANA_MIMIR_DOMAIN="mimir.${BASE_DOMAIN}"
export GRAFANA_LOKI_DOMAIN="loki.${BASE_DOMAIN}"
export GRAFANA_TEMPO_DOMAIN="tempo.${BASE_DOMAIN}"EOFLoad Global Shell Variables
Section titled “Load Global Shell Variables”Load your Global Shell Variables in your shell session.
source $HOME/opstella-installation/shell-values/global.vars.shFinished?
Use the below navigation to proceed