ArgoCD Production Environment Installation
This content is not available in your language yet.
Prerequisites
Section titled “Prerequisites”Kubernetes Cluster
Section titled “Kubernetes Cluster”ArgoCD (Production) will be installed on 🟥 Production Workload Kubernetes Cluster
- 📥Ingress Service provided as Kubernetes Ingress Class (
IngressClass) - 🛡️TLS Certificate for ArgoCD (Production) provided as Kubernetes Secret
- ArgoCD (Production) will be exposed as HTTPS with Kubernetes Ingress.
Application Dependencies
Section titled “Application Dependencies”To Setup Single Sign-On with Opstella (MUST be performed at the time of installation), you need
- 📦Opstella Keycloak
- Your dedicated Keycloak Realm.
foobar-opstella; Please change accordingly
- Your dedicated Keycloak Realm.
- 🔑OpenID Connect Credentials: Client ID, Client Secret.
- Gather Client ID, Client Secret - from Procuring Keycloak Credentials
Complete Prerequisites
Section titled “Complete Prerequisites”Kubernetes Cluster
Section titled “Kubernetes Cluster”Prepare Shell Variables
Section titled “Prepare Shell Variables”Ensure you have defined and loaded your Global Shell Variables as described in Shell Variables.
-
Connect to
🟥 Production WorkloadKubernetes Cluster ; i.e w/ Kubeconfig FileEnsure 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 Secret for 🛡️ TLS Certificate for ArgoCD (Production) in Namespace
devsecops-system.Create one using from
.crtand.keyfile.Terminal window kubectl create secret tls $K8S_INGRESS_TLS_CERTIFICATE_SECRET_NAME \--cert=/path/to/cert/file --key=/path/to/key/file \--namespace devsecops-system💡 Should return
secret/wildcard-...-tls createdmessage.
Pre-Installation
Section titled “Pre-Installation”Prepare ArgoCD (Production) Configurations
Section titled “Prepare ArgoCD (Production) Configurations”-
Specify OIDC Authentication Information
Using Opstella Keycloak Information
-
OIDC Issuer Endpoint from Opstella Keycloak Information
export OIDC_ISSUER_ENDPOINT="https://${KEYCLOAK_DOMAIN}/realms/${KEYCLOAK_REALM}"
-
-
Create Helm Values Configurations
Terminal window cat <<EOF > $HOME/opstella-installation/helm-values/argocd-prod-full-values.yaml## Serverserver:ingress:# -- Enable an ingress resource for the Argo CD serverenabled: true# -- Additional ingress annotationsannotations:nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"# -- Defines which ingress controller will implement the resourceingressClassName: ${K8S_INGRESSCLASS_NAME}# -- List of ingress hosts## Argo Ingress.## Hostnames must be provided if Ingress is enabled.## Secrets must be manually created in the namespacehostname: ${ARGOCD_DOMAIN}# -- List of ingress pathspaths:- /# -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`pathType: PrefixextraTls:- secretName: ${K8S_INGRESS_TLS_CERTIFICATE_SECRET_NAME}hosts:- ${ARGOCD_DOMAIN}configs:cm:url: "https://${ARGOCD_DOMAIN}"oidc.config: |name: Opstellaissuer: ${OIDC_ISSUER_ENDPOINT}clientID: ${ARGOCD_OIDC_CLIENT_ID}clientSecret: ${ARGOCD_OIDC_CLIENT_SECRET}requestedIDTokenClaims:groups:essential: truerequestedScopes:- openid- profile- emailrbac:scopes: "[groups]"EOF
Installation
Section titled “Installation”-
Add ArgoCD Helm Repository
Terminal window # Add Helm Repositoryhelm repo add argo https://argoproj.github.io/argo-helmhelm repo update -
Install a Helm Release with specific Helm Chart Version
--version 7.4.2(App Version: v2.12.0)Terminal window helm install argocd-prod argo/argo-cd --version 7.4.2 \--namespace devsecops-system \-f $HOME/opstella-installation/helm-values/argocd-prod-full-values.yaml
Post-Installation
Section titled “Post-Installation”Gather Initial Admin Credentials
Section titled “Gather Initial Admin Credentials”TODO: Add This Section
ArgoCD Testing
Section titled “ArgoCD Testing”-
Get Pod Status - ArgoCD
Terminal window kubectl get pods -n devsecops-systemArgoCD should be
RunningNAME READY STATUS RESTARTS AGE... (deducted)argocd-application-controller-0 1/1 Running 0 Xdargocd-applicationset-controller-XXXXXX-YYYYY 1/1 Running 0 Xdargocd-dex-server-b6b8bb9f5-g7n8w 1/1 Running 0 Xdargocd-notifications-controller-XXXXXX-YYYYY 1/1 Running 0 Xdargocd-redis-XXXXXX-YYYYY 1/1 Running 0 Xdargocd-repo-server-XXXXXX-YYYYY 1/1 Running 0 Xdargocd-server-XXXXXX-YYYYY 1/1 Running 0 Xd -
Visit
https://${ARGOCD_DOMAIN}-
It should be accessible.
-
TLS Certificate should be valid and coresponding to your TLS Certificate Installed

-
-
Login with Users
-
Try to login with Initial Admin Account, if success then it works.
-
You will be testing Single Sign-On Integration in End-to-End Testing/Single Sign-On for ArgoCD
-
Finished?
Use the below navigation to proceed