Skip to content

GitOps met ArgoCD: productie best practices

GitOps belooft dat uw cluster-state altijd synchroon is met wat in Git staat. In theorie elegant; in praktijk ontstaan snel problemen: drift tussen Git en cluster, secrets in repositories, en sync-conflicten die productie verstoren. Na het beheren van ArgoCD-installaties voor twintig-plus productie-clusters, delen wij de best practices die daadwerkelijk werken.

ArgoCD dashboard met application sync status en health indicators
ArgoCD dashboard met application sync status en health indicators

Repository structuur die schaalbaar is

# DevDock GitOps repository layout
apps/
├── api/
│   ├── base/           # Kustomize base
│   └── overlays/
│       ├── staging/
│       └── production/
├── frontend/
│   └── ...
platform/
├── argocd/
│   ├── projects/       # AppProject definitions
│   └── applications/   # Application manifests
└── policies/           # OPA/Gatekeeper constraints

Scheid applicatie-manifests van platform-configuratie. Gebruik Kustomize overlays per omgeving — geen copy-paste tussen staging en production. AppProjects beperken welke repositories en namespaces een team mag deployen.

Sync policies per omgeving

Omgeving Sync mode Auto-sync Self-heal Prune
Development Automated Ja Ja Ja
Staging Automated Ja Ja Ja
Production Manual / Semi-auto Nee Ja Met approval
Critical prod Manual only Nee Nee Met approval

Productie sync nooit volledig automatisch — altijd een menselijke goedkeuring via ArgoCD UI, Slack bot, of CI/CD trigger. Self-heal wel enabled: als iemand handmatig kubectl edit doet, herstelt ArgoCD de gewenste state.

Secrets management

Nooit plaintext secrets in Git. Wij gebruiken External Secrets Operator met AWS Secrets Manager, Azure Key Vault, of HashiCorp Vault als backend. Sealed Secrets is een alternatief voor teams zonder dedicated secrets infrastructure.

apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: api-db-credentials
spec:
  refreshInterval: 1h
  secretStoreRef:
    name: aws-secrets-manager
    kind: ClusterSecretStore
  target:
    name: api-db-credentials
  data:
    - secretKey: password
      remoteRef:
        key: prod/api/database
        property: password

Onze DevOps & CI/CD diensten omvatten GitOps implementatie en beheer. Lees ook onze Kubernetes hosting pagina voor het complete clusterbeheer aanbod.

DevDock Cloud Technologies B.V.

Uw contactpersoon: Sven van de Berg

Herengracht 124
1015 BT Amsterdam

Telefoon: +31 20 244 8917

E-mail: [email protected]

➜