Skip to content

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.

Opstella Installation Overview

Opstella will be on 🟢 Management Kubernetes Cluster.

Certain Services will be installed across Kuberenetes Clusters

  • 🟢 Management Kubernetes Cluster
  • 🟦 Non-Production Workload Kubernetes Cluster
  • 🟥 Production Workload Kubernetes Cluster
  • 📦PostgreSQL SQL Database
  • 📦Redis Pub/Sub Service and In-Memory Cache
  • 📦Dapr Microservices Backing Service
  • 🔑 Google Service Account Key (JSON)
    • Download the JSON key file provided by Opstella Support.
    • This key will be used to authenticate with Google Artifact Registry.
  • 🔑Pull Credentials from Registry (Harbor, For Air-Gapped Environment).

Opstella compose of multiple services which can be summarise by the following

No.ToolDescriptionKubernetes NamespaceKubernetes Cluster
1.PostgreSQLDatabase Serviceopstella-system🟢 Management
2.RedisPub/Sub Service and In-Memory Cacheopstella-system🟢 Management
3.DaprOpstella Platform Microservices Backing Servicedapr-system🟢 Management
4.Dapr ConfigurationConfiguration for Opstella Platformopstella-system🟢 Management
5.Opstella UIFrontend Serviceopstella-system🟢 Management
6.Opstella CoreBackend Serviceopstella-system🟢 Management
7.Opstella Clear SessionMicroservice - Clear User Session with Single Sign-On Processopstella-system
🟢 Management 🟢 Management 🟦 Non-Production Workload 🟥 Production Workload
8.Opstella Worker-GitLabMicroservice - GitLab Managementopstella-system🟢 Management
9.Opstella Worker-GrafanaMicroservice - Grafana Managementopstella-system🟢 Management
10.Opstella Worker-HarborMicroservice - Harbor Managementopstella-system🟢 Management
11.Opstella Worker-KubernetesMicroservice - Kubernetes Managementopstella-system🟢 Management
12.Opstella Worker-KeycloakMicroservice - Keycloak Managementopstella-system🟢 Management
13.Opstella Worker-SonarqubeMicroservice - Sonarqube Managementopstella-system🟢 Management
14.Opstella Worker-VaultMicroservice - Vault Managementopstella-system🟢 Management
15.Opstella Worker-ArgoCDMicroservice - ArgoCD Managementopstella-system🟢 Management
16.Opstella Worker-DefectDojoMicroservice - DefectDojo Managementopstella-system🟢 Management
17.Opstella Worker-HeadlampMicroservice - Headlamp Managementopstella-system🟢 Management
18.New Opstella Kubernetes Integration (ok8s-integration)Opstella Kubernetes Integration Systemopstella-system🟢 Management

Create Namespace across Kubernetes Clusters

Section titled “Create Namespace across Kubernetes Clusters”
  1. Connect to 🟢 Management Kubernetes Cluster ; i.e w/ Kubeconfig File

    Set Kubeconfig File

    Ensure you have defined and loaded your Global Shell Variables as described in Shell Variables.

    Terminal window
    source $HOME/opstella-installation/shell-values/kubernetes/management_cluster.vars.sh
    Terminal window
    export KUBECONFIG="$HOME/opstella-installation/kubeconfigs/management_cluster.yaml"
  2. Create Kubernetes Namespace dapr-system

    2.1 Create Kubernetes Namespace

    Terminal window
    kubectl create namespace dapr-system

    2.2 Add Label for dapr-system namespace for PSA Exception

    AS OF SEP 2024: Dapr is not yet fully compliant to PSA restricted profile, and require to make an exception

    Terminal window
    kubectl label namespace/dapr-system pod-security.kubernetes.io/enforce=baseline
    kubectl label namespace/dapr-system pod-security.kubernetes.io/enforce-version=latest
  3. Create Kubernetes Namespace opstella-system

    3.1 Create Kubernetes Namespace

    Terminal window
    kubectl create namespace opstella-system

    3.2 Add Label for opstella-system namespace for PSA Exception

    The Redis Operator injects an init-config initContainer that the restricted profile rejects, and it is not part of any manifest on these pages, so the exception has to be made on the Namespace. Without it the StatefulSets are created but no Pod ever appears — the reason is only visible in the StatefulSet events.

    Terminal window
    kubectl label namespace/opstella-system pod-security.kubernetes.io/enforce=baseline
    kubectl label namespace/opstella-system pod-security.kubernetes.io/enforce-version=latest
  4. Create Kubernetes Namespace opstella-shared-runner

    4.1 Create Kubernetes Namespace

    Terminal window
    kubectl create namespace opstella-shared-runner

    4.2 Add Label for opstella-shared-runner namespace for PSA Exception

    Terminal window
    kubectl label namespace/opstella-shared-runner pod-security.kubernetes.io/enforce=privileged
    kubectl label namespace/opstella-shared-runner pod-security.kubernetes.io/enforce-version=latest
  5. Create Kubernetes Secret for TLS Certificate in Namespace opstella-system, before you proceed (if you not have it done).

  1. Connect to 🟢 Management Kubernetes Cluster ; i.e w/ Kubeconfig File

    Ensure you have defined and loaded your Global Shell Variables as described in Shell Variables.

    Terminal window
    source $HOME/opstella-installation/shell-values/kubernetes/management_cluster.vars.sh
    Terminal window
    export KUBECONFIG="$HOME/opstella-installation/kubeconfigs/management_cluster.yaml"
  2. Create Kubernetes Namespace opstella-system

    Terminal window
    kubectl create namespace opstella-system

🟦 Non-Production Workload Kubernetes Cluster

Section titled “🟦 Non-Production Workload Kubernetes Cluster”
  1. Connect to 🟦 Non-Production Workload Kubernetes Cluster ; i.e w/ Kubeconfig File

    Ensure you have defined and loaded your Global Shell Variables as described in Shell Variables.

    Terminal window
    source $HOME/opstella-installation/shell-values/kubernetes/nonprod_cluster.vars.sh
    Terminal window
    export KUBECONFIG="$HOME/opstella-installation/kubeconfigs/nonprod_cluster.yaml"
  2. Create Kubernetes Namespace opstella-system

    Terminal window
    kubectl create namespace opstella-system

🟥 Production Workload Kubernetes Cluster

Section titled “🟥 Production Workload Kubernetes Cluster”
  1. Connect to 🟥 Production Workload Kubernetes Cluster ; i.e w/ Kubeconfig File

    Ensure you have defined and loaded your Global Shell Variables as described in Shell Variables.

    Terminal window
    source $HOME/opstella-installation/shell-values/kubernetes/prod_cluster.vars.sh
    Terminal window
    export KUBECONFIG="$HOME/opstella-installation/kubeconfigs/prod_cluster.yaml"
  2. Create Kubernetes Namespace opstella-system

    Terminal window
    kubectl create namespace opstella-system

Finished?

Use the below navigation to proceed