New recipes every week

Turn Complexity Into
Cloud Recipes

Learn Kubernetes, AI, DevOps and DevSecOps the CloudChef way. Practical guides, real-world examples, no fluff.

Free forever No paywall Practical guides Real-world examples
50+Guides
WeeklyNew posts
K8s + AITop topics
FreeAlways
ArgoCD DevOps GitOps Tuesday, April 14, 2026 ⏱ Calculating...

πŸš€ ArgoCD Production Setup: GitOps + Ingress + SSO + Admin Password (Step-by-Step)

CC
CloudChef
thecloudchef.io

Setting up ArgoCD in production is not just about installing it—it's about securing it, scaling it, and making it reliable.

In this CloudChef guide, you'll learn:

  • How ArgoCD works (visualized)
  • How to install and expose it properly
  • How to retrieve the initial admin password
  • How to secure it with SSO and RBAC

πŸ“Š GitOps Architecture (Visualized)

flowchart TD A[Git Repository] -->|Source of Truth| B[ArgoCD Controller] B -->|Sync Desired State| C[Kubernetes Cluster] C --> D[Running Applications]

πŸ‘‰ ArgoCD continuously ensures your cluster matches what’s defined in Git.


🍳 CloudChef Recipe: Production ArgoCD Setup


Step 1: Install ArgoCD


kubectl create namespace argocd

kubectl apply -n argocd \
-f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

πŸ”‘ Step 2: Get Initial ArgoCD Admin Password

After installation, ArgoCD generates a temporary admin password stored in a secret.


kubectl get secret argocd-initial-admin-secret \
-n argocd \
-o jsonpath="{.data.password}" | base64 -d

πŸ‘‰ Username:


admin

⚠️ Change this password immediately after login.


🌐 Step 3: Configure Ingress (Production Access)

Expose ArgoCD securely via ingress instead of port-forwarding.


apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argocd-server
  namespace: argocd
spec:
  rules:
  - host: argocd.yourdomain.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: argocd-server
            port:
              number: 443

πŸ‘‰ Use TLS (cert-manager + Let's Encrypt) for production.


πŸ” Step 4: Disable Default Admin (Security)


kubectl patch configmap argocd-cm \
-n argocd \
-p '{"data":{"admin.enabled":"false"}}'

πŸ‘‰ Never rely on default credentials.


πŸ”‘ Step 5: Enable SSO (OIDC)

sequenceDiagram User->>SSO Provider: Login Request SSO Provider->>ArgoCD: Token ArgoCD->>Kubernetes: Authorization

data:
  url: https://argocd.yourdomain.com
  oidc.config: |
    name: SSO
    issuer: https://accounts.google.com
    clientID: YOUR_CLIENT_ID
    clientSecret: YOUR_SECRET
    requestedScopes: ["openid", "profile", "email"]

πŸ‘‰ Replace static credentials with identity-based access.


πŸ›‘️ Step 6: Configure RBAC


apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-rbac-cm
data:
  policy.csv: |
    g, dev-team, role:readonly

πŸ‘‰ Enforce least privilege across teams.


⚙️ Step 7: Enable Auto-Sync (GitOps Mode)


spec:
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

πŸ‘‰ Your cluster now self-heals automatically.


πŸ” Production Security Checklist

  • ☐ TLS enabled via ingress
  • ☐ SSO configured
  • ☐ Admin account disabled
  • ☐ RBAC enforced
  • ☐ Secrets stored securely

⚠️ Common Production Mistakes

  • ❌ Using port-forward in production
  • ❌ Leaving admin account enabled
  • ❌ No RBAC enforcement
  • ❌ Hardcoding secrets in Git

πŸ”— Related CloudChef Guides


🧠 CloudChef Pro Tips

  • Use App-of-Apps pattern for scaling
  • Separate dev/stage/prod clusters
  • Combine ArgoCD with Helm/Kustomize
  • Automate deployments via Git workflows

πŸš€ Final Thoughts

ArgoCD is not just a deployment tool—it’s a GitOps platform that enforces consistency and reliability.

πŸ”₯ CloudChef Tip: GitOps is not about deploying faster—it’s about deploying safer.

No comments:

Post a Comment

πŸ’‘ Found this useful?

Share it with your Team or DevOps Friends πŸ‘‡