DevSecOps Installation Overview
Last updated:
This content is not available in your language yet.
DevSecOps System that you need to provision and integrate with Opstella which are
-
GitLab: A source code version control and CI/CD.
-
ArgoCD: A declarative, GitOps continuous delivery tool for Kubernetes applications.
-
Harbor: A cloud-native container registry that secures and manages container images.
-
Headlamp: A user-friendly web-based GUI for managing Kubernetes clusters.
-
HashiCorp Vault: Securely manages secrets, credentials, and access to sensitive data.
-
SonarQube: Analyzes code quality and security to detect bugs, vulnerabilities, and code smells.
-
DefectDojo: A tool to centralize and manage application security vulnerabilities.
Prerequisites
Section titled “Prerequisites”Kubernetes Cluster
Section titled “Kubernetes Cluster”Entire DevSecOps Solution or Tools that will be installed and served to users and integrate with Opstella, called DevSecOps System.
Various Supported DevSecOps Solution or Tools that act as Server Services will be installed on
🟢 ManagementKubernetes Cluster.
Where Various Supported DevSecOps Solution or Tools that act as Agent Services are span across Workload Kubernetes Cluster(s) which are
🟦 Non-Production Workload🟥 Production Workload
Provisioning Summary
Section titled “Provisioning Summary”Once finished everything, these are systems that up and running.
* Not Including any of application dependencies.
| No. | Tool | Description | Agent Service | Kubernetes Namespace | Kubernetes Cluster |
|---|---|---|---|---|---|
| 1. | DefectDojo | Centralised Vulnerability Management | ❌ | devsecops-system | 🟢 Management |
| 2. | SonarQube | Static Application Security Testing (SAST) | ❌ | devsecops-system | 🟢 Management |
| 3. | Vault | Centralised Secret Management | ❌ | devsecops-system | 🟢 Management |
| 4. | ArgoCD | GitOps & Deployment Management | ✅ | devsecops-system | 🟦 Non-Production Workload 🟥 Production Workload |
| 5. | Headlamp | Kubernetes Operations/Dashboard | ✅ | devsecops-system | 🟦 Non-Production Workload 🟥 Production Workload |
| 6. | External Secret Operator | Secret Syncing from Vault to Kubernetes Cluster Utility | ✅ | devsecops-system | 🟦 Non-Production Workload 🟥 Production Workload |
| 7. | Reloader | Secret Re-injection into Pods Utility | ✅ | devsecops-system | 🟦 Non-Production Workload 🟥 Production Workload |
Complete Prerequisites
Section titled “Complete Prerequisites”Create Namespace across Kubernetes Clusters
Section titled “Create Namespace across Kubernetes Clusters”🟢 Management Kubernetes Cluster
Section titled “🟢 Management Kubernetes Cluster”-
Connect to
🟢 ManagementKubernetes Cluster ; i.e w/ Kubeconfig FileSet 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.shTerminal window export KUBECONFIG="$HOME/opstella-installation/kubeconfigs/management_cluster.yaml" -
Create Kubernetes Namespace
devsecops-system2.1 Create Kubernetes Namespace
Terminal window kubectl create namespace devsecops-system2.1 Add Label for
devsecops-systemnamespace for PSA ExceptionAS OF SEP 2024: DefectDojo is not yet fully compliant to PSA
restrictedprofile, and require to make an exceptionTerminal window kubectl label namespace/devsecops-system pod-security.kubernetes.io/enforce=baselinekubectl label namespace/devsecops-system pod-security.kubernetes.io/enforce-version=latest
🟦 Non-Production Workload Kubernetes Cluster
Section titled “🟦 Non-Production Workload Kubernetes Cluster”-
Connect to
🟦 Non-Production WorkloadKubernetes Cluster ; i.e w/ Kubeconfig File1.1 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/nonprod_cluster.vars.shTerminal window export KUBECONFIG="$HOME/opstella-installation/kubeconfigs/nonprod_cluster.yaml" -
Create Kubernetes Namespace
devsecops-systemTerminal window kubectl create namespace devsecops-system
🟥 Production Workload Kubernetes Cluster
Section titled “🟥 Production Workload Kubernetes Cluster”-
Connect to
🟥 Production WorkloadKubernetes Cluster ; i.e w/ Kubeconfig File1.1 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/prod_cluster.vars.shTerminal window export KUBECONFIG="$HOME/opstella-installation/kubeconfigs/prod_cluster.yaml" -
Create Kubernetes Namespace
devsecops-systemTerminal window kubectl create namespace devsecops-system
Finished?
Use the below navigation to proceed