Skip to content

Create Opstella Core Configuration

This content is not available in your language yet.

Opstella needs configuration for integration and orchestration between components.

You will be creating a YAML-structure information (Opstella Core Configuration) that specify a list of tools in DevSecOps, Observability (That you previously installed and done configurations.), and Kubernetes Cluster.

Alongside with Credentials, to allows Opstella to integrate and orchestrate with tools arcoss system.

  • Ensure BASE_DOMAIN, K8S_INTERNAL_DOMAIN and ORGANIZATION_NAME are defined as per the Shell Variables guide. Additionally, export the following variables:

  • Gather your Opstella Company/Organization Short Name

    export OPSTELLA_COMPANY_NAME="$ORGANIZATION_NAME"
  1. Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    apiVersion: v1
    kind: devopstool
    meta:
    name: "devopstool"
    display_name: "devopstool"
    description: "DevSecOps Tools, Observability Tools, and Kubernetes Integration List"
    data:
    EOF
  2. Specify your Keycloak Information

    Ensure KEYCLOAK_DOMAIN, KEYCLOAK_REALM, KEYCLOAK_ADMIN_USERNAME and KEYCLOAK_ADMIN_PASSWORD are defined as per the Shell Variables guide.

    Create Keycloak Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "keycloak"
    slug: "keycloak"
    config:
    REALM: "${KEYCLOAK_REALM}"
    API_USER: "${KEYCLOAK_ADMIN_USERNAME}"
    BASE_URL: "https://${KEYCLOAK_DOMAIN}"
    API_PASSWORD: "${KEYCLOAK_ADMIN_PASSWORD}"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "OIDC"
    display_kind: "OIDC"
    detail:
    URL_DISPLAY: "https://${KEYCLOAK_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  3. Specify your GitLab Information

    Terminal window
    export GITLAB_ACCESS_TOKEN="CHANGEME"

    Create GitLab Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "gitlab"
    slug: "gitlab"
    config:
    API_KEY: "${GITLAB_ACCESS_TOKEN}"
    API_URL: "https://${GITLAB_DOMAIN}/api/v4"
    CUSTOM_ATTRIBUTES_KEY: "OPSTEALLA-SLUG"
    HELM_TYPE: "ONECHART"
    HELM_REPLACE: "FALSE"
    HELM_REPO_URL: "https://chart.onechart.dev"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "VCS"
    display_kind: "VCS"
    detail:
    URL_DISPLAY: "https://${GITLAB_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  4. Specify your SonarQube Information

    • Domain
    • Admin User Credentials
    • Ensure SONARQUBE_DOMAIN, SONARQUBE_ADMIN_USERNAME and SONARQUBE_ADMIN_PASSWORD are defined as per the Shell Variables guide.

    Create SonarQube Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "sonarqube"
    slug: "sonarqube"
    config:
    API_URL: "https://${SONARQUBE_DOMAIN}/api"
    API_USER: "${SONARQUBE_ADMIN_USERNAME}"
    API_PASSWORD: "${SONARQUBE_ADMIN_PASSWORD}"
    EDITION_LIST:
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "SECURITY"
    display_kind: "SAST"
    detail:
    URL_DISPLAY: "https://${SONARQUBE_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  5. Specify your Harbor Information

    • Domain
    • Admin User Credentials
    • Ensure HARBOR_DOMAIN, HARBOR_ADMIN_USERNAME and HARBOR_ADMIN_PASSWORD are defined as per the Shell Variables guide.

    Create Harbor Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "harbor"
    slug: "harbor"
    config:
    API_URL: "https://${HARBOR_DOMAIN}/api/v2.0"
    API_USER: "${HARBOR_ADMIN_USERNAME}"
    SECRET_KEY: "${OPSTELLA_COMPANY_NAME}-company"
    API_PASSWORD: "${HARBOR_ADMIN_PASSWORD}"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "ARTIFACT"
    display_kind: "Artifact"
    detail:
    URL_DISPLAY: "https://${HARBOR_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  6. Specify your Vault Information

    Terminal window
    export VAULT_ROOT_TOKEN="CHANGEME"

    Create Vault Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "vault"
    slug: "vault"
    config:
    API_KEY: "${VAULT_ROOT_TOKEN}"
    API_URL: "https://${VAULT_DOMAIN}/v1"
    CUSTOM_ATTRIBUTES_KEY: "OPSTEALLA-SLUG"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "VAULT"
    display_kind: "Secret Management"
    detail:
    URL_DISPLAY: "https://${VAULT_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  7. Specify your DefectDojo Information

    Terminal window
    export DEFECTDOJO_ACCESS_TOKEN="CHANGEME"

    Create DefectDojo Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "defectdojo"
    slug: "defectdojo"
    config:
    API_KEY: "Token ${DEFECTDOJO_ACCESS_TOKEN}"
    API_URL: "https://${DEFECTDOJO_DOMAIN}/api/v2"
    CUSTOM_ATTRIBUTES_KEY: "OPSTEALLA-SLUG"
    EDITION_LIST:
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "VULNERABILITY"
    display_kind: "VULNERABILITY"
    detail:
    URL_DISPLAY: "https://${DEFECTDOJO_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  8. Specify your ArgoCD (Non-Production) Information

    • Domain
    • Admin User Credentials
    • Ensure ARGOCD_NONPROD_DOMAIN, ARGOCD_NONPROD_ADMIN_USERNAME and ARGOCD_NONPROD_ADMIN_PASSWORD are defined as per the Shell Variables guide.

    Create ArgoCD (Non-Production) Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "argocd-nonprod"
    slug: "argocd-nonprod"
    config:
    API_URL: "https://${ARGOCD_NONPROD_DOMAIN}/api/v1"
    API_USER: "${ARGOCD_NONPROD_ADMIN_USERNAME}"
    API_PASSWORD: "${ARGOCD_NONPROD_ADMIN_PASSWORD}"
    NAMESPACE: "devsecops-system"
    DEFAULT_REPO: "nginx"
    DEFAULT_PORT: "80"
    DEFAULT_IMAGE_TAG: "stable-alpine3.19-slim"
    CHART:
    NAME: "onechart"
    HELM_REPO_URL: "https://chart.onechart.dev"
    HELM_TARGET_REVISION: "0.73.0"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "DEPLOY"
    display_kind: "Deploy"
    detail:
    URL_DISPLAY: "https://${ARGOCD_NONPROD_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  9. Specify your ArgoCD (Production) Information

    • Domain
    • Admin User Credentials
    • Ensure ARGOCD_PROD_DOMAIN, ARGOCD_PROD_ADMIN_USERNAME and ARGOCD_PROD_ADMIN_PASSWORD are defined as per the Shell Variables guide.

    Create ArgoCD (Production) Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "argocd-prod"
    slug: "argocd-prod"
    config:
    API_URL: "https://${ARGOCD_PROD_DOMAIN}/api/v1"
    API_USER: "${ARGOCD_PROD_ADMIN_USERNAME}"
    API_PASSWORD: "${ARGOCD_PROD_ADMIN_PASSWORD}"
    NAMESPACE: "devsecops-system"
    DEFAULT_REPO: "nginx"
    DEFAULT_PORT: "80"
    DEFAULT_IMAGE_TAG: "stable-alpine3.19-slim"
    CHART:
    NAME: "onechart"
    HELM_REPO_URL: "https://chart.onechart.dev"
    HELM_TARGET_REVISION: "0.73.0"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "DEPLOY"
    display_kind: "Deploy"
    detail:
    URL_DISPLAY: "https://${ARGOCD_PROD_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  10. Specify your Headlamp (Non-Production) Information

    • Domain
    • Ensure HEADLAMP_NONPROD_DOMAIN is defined as per the Shell Variables guide.

    Create Headlamp (Non-Production) Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "headlamp-nonprod"
    slug: "headlamp-nonprod"
    config:
    BASE_URL: "https://${HEADLAMP_NONPROD_DOMAIN}/"
    WORKER_K8S: "kubernetes"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "CLUSTER"
    display_kind: "Deploy"
    cluster: false
    detail:
    URL_DISPLAY: "https://${HEADLAMP_NONPROD_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  11. Specify your Headlamp (Production) Information

    • Domain
    • Ensure HEADLAMP_PROD_DOMAIN is defined as per the Shell Variables guide.

    Create Headlamp (Production) Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "headlamp-prod"
    slug: "headlamp-prod"
    config:
    BASE_URL: "https://${HEADLAMP_PROD_DOMAIN}/"
    WORKER_K8S: "kubernetes"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "CLUSTER"
    display_kind: "Deploy"
    cluster: false
    detail:
    URL_DISPLAY: "https://${HEADLAMP_PROD_DOMAIN}/"
    DETAIL_DISPLAY: ""
    EOF
  12. Specify your Grafana Dashboard and Grafana Mimir Information

    • Ensure GRAFANA_DASHBOARD_DOMAIN, GRAFANA_MIMIR_DOMAIN, GRAFANA_DASHBOARD_ADMIN_USERNAME and GRAFANA_DASHBOARD_ADMIN_PASSWORD are defined as per the Shell Variables guide.
    Terminal window
    export GRAFANA_DASHBOARD_URL="https://${GRAFANA_DASHBOARD_DOMAIN}"
    export GRAFANA_MIMIR_URL="https://${GRAFANA_MIMIR_DOMAIN}"
    export GRAFANA_MIMIR_HEALTHCHECK_URL="$GRAFANA_DASHBOARD_URL/mimir/write/ready"

    Create Grafana Dashboard and Grafana Mimir Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "grafana"
    slug: "grafana"
    config:
    API_URL: "${GRAFANA_DASHBOARD_URL}/api"
    API_USER: "${GRAFANA_DASHBOARD_ADMIN_USERNAME}"
    SECRET_KEY: "${OPSTELLA_COMPANY_NAME}-company"
    API_PASSWORD: "${GRAFANA_DASHBOARD_ADMIN_PASSWORD}"
    DASHBOARD_TEMPLATE: "version8-with-alloy"
    DATA_SOURCE_CONNECTION:
    - url: "${GRAFANA_MIMIR_URL}/prometheus/"
    healthCheckUrl: "${GRAFANA_MIMIR_HEALTHCHECK_URL}"
    name: "Prometheus"
    type: "prometheus"
    user: ""
    access: "proxy"
    database: ""
    jsonData:
    httpMethod: "POST"
    httpHeaderName1: "X-Scope-OrgID"
    password: ""
    typeName: "Prometheus"
    basicAuth: false
    isDefault: true
    secureJsonData:
    httpHeaderValue1: "opstella-platform"
    - url: "${GRAFANA_MIMIR_URL}/prometheus/"
    healthCheckUrl: "${GRAFANA_MIMIR_HEALTHCHECK_URL}"
    name: "Mimir"
    type: "prometheus"
    user: ""
    access: "proxy"
    database: ""
    jsonData:
    httpMethod: "POST"
    httpHeaderName1: "X-Scope-OrgID"
    password: ""
    typeName: "Prometheus"
    basicAuth: false
    isDefault: false
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "METRIC_MONITORING"
    display_kind: "Monitor"
    detail:
    URL_DISPLAY: "${GRAFANA_DASHBOARD_URL}/"
    DETAIL_DISPLAY: ""
    EOF
  13. Specify your Grafana Loki Information

    • Ensure GRAFANA_LOKI_DOMAIN and GRAFANA_DASHBOARD_URL are defined as per the Shell Variables guide.
    Terminal window
    export GRAFANA_LOKI_URL="https://${GRAFANA_LOKI_DOMAIN}"
    export GRAFANA_LOKI_READ_HEALTHCHECK_URL="$GRAFANA_DASHBOARD_URL/loki/read/ready"
    export GRAFANA_LOKI_WRITE_HEALTHCHECK_URL="$GRAFANA_DASHBOARD_URL/loki/write/ready"
    export GRAFANA_LOKI_BACKEND_HEALTHCHECK_URL="$GRAFANA_DASHBOARD_URL/loki/backend/ready"

    Specify your Domains for 🟦 Non-Production DEV Workload

    Terminal window
    export GRAFANA_ALLOY_NONPROD_URL="https://alloy-nonprod.${BASE_DOMAIN}"

    Specify your Domains for 🟥 Production PRD Workload

    Terminal window
    export GRAFANA_ALLOY_PROD_URL="https://alloy-prod.${BASE_DOMAIN}"

    Create Grafana Loki Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "loki"
    slug: "loki"
    config:
    WEB_URL: "${GRAFANA_DASHBOARD_URL}"
    ENDPOINT: "${GRAFANA_LOKI_URL}"
    CONFIGMAP_NAME: "grafana-alloy"
    CONFIGMAP_NAMESPACE: "opstella-platform"
    DASHBOARD_WORKER_NAME: "grafana"
    HEALTH_CHECK_DATA:
    URL_READ: "${GRAFANA_LOKI_READ_HEALTHCHECK_URL}"
    URL_WRITE: "${GRAFANA_LOKI_WRITE_HEALTHCHECK_URL}"
    URL_BACKEND: "${GRAFANA_LOKI_BACKEND_HEALTHCHECK_URL}"
    AGENT_HEALTH_CHECK_URL: "${GRAFANA_ALLOY_NONPROD_URL}/workload/ready"
    AGENT_URL: "${GRAFANA_ALLOY_NONPROD_URL}"
    AGENT_EXPORTER_URL: "http://grafana-alloy-workload.observability-agents.svc.${K8S_INTERNAL_DOMAIN}:4317"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "LOG_SERVER"
    display_kind: "Log_server"
    detail:
    URL_DISPLAY: "${GRAFANA_DASHBOARD_URL}"
    DETAIL_DISPLAY: ""
    EOF
  14. Specify your Domains for 🟦 Non-Production DEV Workload

    Terminal window
    export GRAFANA_ALLOY_NONPROD_URL="https://alloy-nonprod.${BASE_DOMAIN}"

    Specify your Domains for 🟥 Production PRD Workload

    Terminal window
    export GRAFANA_ALLOY_PROD_URL="https://alloy-prod.${BASE_DOMAIN}"

    Specify your Grafana Tempo Information

    Ensure GRAFANA_TEMPO_DOMAIN and GRAFANA_DASHBOARD_URL are defined as per the Shell Variables guide.

    Terminal window
    export GRAFANA_TEMPO_URL="https://${GRAFANA_TEMPO_DOMAIN}"
    export GRAFANA_TEMPO_HEALTHCHECK_URL="$GRAFANA_DASHBOARD_URL/tempo/write/ready"
    export GRAFANA_ALLOY_NONPROD_HEALTHCHECK_URL="$GRAFANA_ALLOY_NONPROD_URL/workload/ready"

    Create Grafana Tempo Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "tempo"
    slug: "tempo"
    config:
    WEB_URL: "${GRAFANA_DASHBOARD_URL}"
    ENDPOINT: "${GRAFANA_TEMPO_URL}"
    AGENT_URL: "${GRAFANA_ALLOY_NONPROD_URL}"
    CONFIGMAP_NAME: "grafana-alloy-workload"
    CONFIGMAP_NAMESPACE: "observability-agents"
    DASHBOARD_WORKER_NAME: "grafana"
    HEALTH_CHECK_DATA :
    URL_TEMPO: "${GRAFANA_TEMPO_HEALTHCHECK_URL}"
    AGENT_EXPORTER_URL: "http://grafana-alloy-workload.observability-agents.svc.${K8S_INTERNAL_DOMAIN}:4317"
    AGENT_HEALTH_CHECK_URL: "${GRAFANA_ALLOY_NONPROD_HEALTHCHECK_URL}"
    EDITION_LIST:
    - name: "CONTAINER"
    - name: "DEVSECOPS"
    status: "COMPLETED"
    kind: "TRACING"
    display_kind: "Tracing"
    detail:
    URL_DISPLAY: "${GRAFANA_DASHBOARD_URL}"
    DETAIL_DISPLAY: ""
    EOF
  15. Integration with Application Deployment (Kubernetes)

    Section titled “Integration with Application Deployment (Kubernetes)”

    Opstella Platform will need to divide into 2 groups, which are NON-PROD and PROD

    • NON-PROD can be divided into multiple groups of DEV, SIT, UAT
    • PROD can be divided into multiple groups of PREPRD, PRD
    Non-Production GroupProduction Group
    DEV: Development Environment for DevelopersPRD: Production Environment for Go Live/Use by Actual External Users
  16. 🟦 Non-Production DEV Workload Kubernetes Cluster

    Section titled “🟦 Non-Production DEV Workload Kubernetes Cluster”

    18.1 Specify Information

    • Cluster Name
    • Cluster API Endpoint URL
    Terminal window
    export K8S_DEV_CLUSTER_NAME="cluster1-non-prod-dev"
    export K8S_DEV_API_ENDPOINT="https://CHANGEME:6443"
    Terminal window
    export K8S_DEV_API_CERT="CHANGEME"
    export K8S_DEV_API_KEY="CHANGEME"

    18.2 Compose Kubernetes Configuration List

    Terminal window
    export OPSTELLA_KUBECONFIG=$(cat <<EOF
    - HOST: "${K8S_DEV_API_ENDPOINT}"
    OIDC_HOST: ""
    API_KEY: "${K8S_DEV_API_KEY}"
    CA_CERT: "${K8S_DEV_API_CERT}"
    ENV: "DEV"
    GROUP: "NON-PROD"
    NAME: "${K8S_DEV_CLUSTER_NAME}"
    DOMAIN_NAME: "${BASE_DOMAIN}"
    SUB_DOMAIN: "dev"
    CLUSTER_TYPE: "onpremise"
    EOF
    )

    18.3 Compose Kubernetes Display List

    Terminal window
    export OPSTELLA_KUBE_DISPLAY=$(cat <<EOF
    - HOST: "${K8S_DEV_API_ENDPOINT}"
    ENV: "DEV"
    GROUP: "NON-PROD"
    NAME: "${K8S_DEV_CLUSTER_NAME}"
    EOF
    )
  17. 🟥 Production PRD Workload Kubernetes Cluster

    Section titled “🟥 Production PRD Workload Kubernetes Cluster”

    19.1 Specify Information

    • Cluster Name
    • Cluster API Endpoint URL
    Terminal window
    export K8S_PRD_CLUSTER_NAME="cluster1-prod-prd"
    export K8S_PRD_API_ENDPOINT="https://CHANGEME:6443"
    Terminal window
    export K8S_PRD_API_CERT="CHANGEME"
    export K8S_PRD_API_KEY="CHANGEME"

    19.2 Compose Configuration List

    Terminal window
    export OPSTELLA_KUBECONFIG=$(cat <<EOF
    ${OPSTELLA_KUBECONFIG}
    - HOST: "${K8S_PRD_API_ENDPOINT}"
    OIDC_HOST: ""
    API_KEY: "${K8S_PRD_API_KEY}"
    CA_CERT: "${K8S_PRD_API_CERT}"
    ENV: "PRD"
    GROUP: "PROD"
    NAME: "${K8S_PRD_CLUSTER_NAME}"
    DOMAIN_NAME: "${BASE_DOMAIN}"
    SUB_DOMAIN: ""
    CLUSTER_TYPE: "onpremise"
    EOF
    )

    19.3 Compose Display Configuration List

    Terminal window
    export OPSTELLA_KUBE_DISPLAY=$(cat <<EOF
    ${OPSTELLA_KUBE_DISPLAY}
    - HOST: "${K8S_PRD_API_ENDPOINT}"
    ENV: "PRD"
    GROUP: "PROD"
    NAME: "${K8S_PRD_CLUSTER_NAME}"
    EOF
    )
  18. 20.1 Specify Information

    • Cluster Name
    • Cluster API Endpoint URL
    Terminal window
    export K8S_DSO_CLUSTER_NAME="cluster1-non-prod-devops"
    export K8S_DSO_API_ENDPOINT="https://CHANGEME:6443"
    Terminal window
    export K8S_DSO_API_CERT="CHANGEME"
    export K8S_DSO_API_KEY="CHANGEME"

    20.2 Compose Configuration List

    Terminal window
    export OPSTELLA_KUBECONFIG=$(cat <<EOF
    ${OPSTELLA_KUBECONFIG}
    - HOST: "${K8S_DSO_ENDPOINT}"
    OIDC_HOST: ""
    API_KEY: "${K8S_DSO_API_KEY}"
    CA_CERT: "${K8S_DSO_API_CERT}"
    ENV: "DEVOPS"
    GROUP: "NON-PROD"
    NAME: "${K8S_DSO_CLUSTER_NAME}"
    DOMAIN_NAME: "${BASE_DOMAIN}"
    SUB_DOMAIN: ""
    CLUSTER_TYPE: "onpremise"
    EOF
    )

    20.3 Compose Display Configuration List

    Terminal window
    export OPSTELLA_KUBE_DISPLAY=$(cat <<EOF
    ${OPSTELLA_KUBE_DISPLAY}
    - HOST: "${K8S_DSO_ENDPOINT}"
    ENV: "DEVOPS"
    GROUP: "NON-PROD"
    NAME: "${K8S_DSO_CLUSTER_NAME}"
    EOF
    )
  19. Create Kubernetes Configuration Object

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-devopstool.yaml
    - display_name: "kubernetes"
    slug: "kubernetes"
    config_devopstool:
    COMPANY_NAME: "${OPSTELLA_COMPANY_NAME}"
    SECURITY_RULE:
    "pod-security.kubernetes.io/enforce": "privileged"
    "pod-security.kubernetes.io/enforce-version": "latest"
    "pod-security.kubernetes.io/warn": "baseline"
    "pod-security.kubernetes.io/warn-version": "latest"
    "pod-security.kubernetes.io/audit": "baseline"
    "pod-security.kubernetes.io/audit-version": "latest"
    kind: "CLUSTER"
    display_kind: "Deploy"
    cluster: true
    config:
    ${OPSTELLA_KUBECONFIG}
    detail:
    ${OPSTELLA_KUBE_DISPLAY}
    EOF

Brief Explaination

tag kind Object of Opstella is used to catagorise a set of tools/instruments.

This is useful in Hybrid Environment configuration, consult further with Opstella Team for more advanced configuration scenarios.

  1. Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-tag-on-premise.yaml
    apiVersion: v1
    kind: tag
    meta:
    display_name: On-Premise
    name: on-premise
    description: Component Tag for On-Premise
    groups:
    EOF
  2. Using all of the previously specified in devopstool kind as reference from slug of each of tools/instruments

  3. For this Tag, will interact with DEV and PRD

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-tag-on-premise.yaml
    - display_name: "Code"
    color: "#FFB600"
    slug: "code"
    subgroups:
    - slug: "gitlab"
    env:
    - DEV
    - PRD
    EOF
  4. Create sonarqube, defectdojo Objects/Group pre-build Context

    Section titled “Create sonarqube, defectdojo Objects/Group pre-build Context”

    For this Tag, will interact with DEV and PRD

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-tag-on-premise.yaml
    - display_name: "Pre-Build"
    color: "#D9D9D9CC"
    slug: "pre-build"
    subgroups:
    - slug: "sonarqube"
    env:
    - DEV
    - PRD
    - slug: "defectdojo"
    env:
    - DEV
    - PRD
    EOF
  5. For this Tag, will interact with DEV and PRD

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-tag-on-premise.yaml
    - display_name: "Build"
    color: "#E1E6FB"
    slug: "build"
    subgroups:
    - slug: "harbor"
    env:
    - DEV
    - PRD
    EOF
  6. Create vault Object/Group pre-deploy Context

    Section titled “Create vault Object/Group pre-deploy Context”

    For this Tag, will interact with DEV and PRD

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-tag-on-premise.yaml
    - display_name: "Pre-Deploy"
    color: "#054FE259"
    slug: "pre-deploy"
    subgroups:
    - slug: "vault"
    env:
    - DEV
    - PRD
    EOF
  7. Create argocd-nonprod, argocd-prod, kubernetes Objects/Group deploy Context

    Section titled “Create argocd-nonprod, argocd-prod, kubernetes Objects/Group deploy Context”

    For this Tag, will interact with DEV and PRD

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-tag-on-premise.yaml
    - display_name: "Deploy"
    color: "#16D8CA33"
    slug: "deploy"
    subgroups:
    - slug: "argocd-nonprod"
    env:
    - DEV
    - slug: "argocd-prod"
    env:
    - PRD
    - slug: "kubernetes"
    cluster:
    - "${K8S_DSO_CLUSTER_NAME}"
    - "${K8S_DEV_CLUSTER_NAME}"
    - "${K8S_PRD_CLUSTER_NAME}"
    env:
    - DEV
    - PRD
    EOF
  8. Create grafana, loki, tempo Objects/Group observability Context

    Section titled “Create grafana, loki, tempo Objects/Group observability Context”

    For this Tag, will interact with DEV and PRD

    Terminal window
    cat <<EOF >> $HOME/opstella-installation/opstella-configs/opstella-backend-tag-on-premise.yaml
    - display_name: "Observability"
    color: "#E1472A66"
    slug: "observability"
    subgroups:
    - slug: "grafana"
    env:
    - DEV
    - PRD
    - slug: "loki"
    env:
    - DEV
    - PRD
    - slug: "tempo"
    env:
    - DEV
    - PRD
    EOF

Finished?

Use the below navigation to proceed