GitOps : tout est dans Git 25 min de lecture

Synchronisation infrastructure et applications

Organiser les depots GitOps

Une bonne organisation separe clairement les responsabilites :

# Structure recommandee
infra-gitops/
  clusters/
    production/
      flux-system/
      infrastructure/    # Cert-manager, Ingress, monitoring
      apps/              # References vers les apps
    staging/
      flux-system/
      infrastructure/
      apps/
  infrastructure/
    cert-manager/
    ingress-nginx/
    monitoring/
  apps/
    mon-app/
      base/
      overlays/
        staging/
        production/

Kustomize pour les overlays

Kustomize permet de gerer les variantes par environnement sans dupliquer les manifestes.

# base/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml

# overlays/production/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
patchesStrategicMerge:
- replicas-patch.yaml
namespace: production

Webhooks et notifications

Configurez des webhooks pour accelerer la reconciliation et des notifications pour le suivi :

# Flux Notification Provider (Slack)
apiVersion: notification.toolkit.fluxcd.io/v1beta3
kind: Provider
metadata:
  name: slack
  namespace: flux-system
spec:
  type: slack
  channel: deploys
  secretRef:
    name: slack-webhook-url
---
apiVersion: notification.toolkit.fluxcd.io/v1beta3
kind: Alert
metadata:
  name: on-call
  namespace: flux-system
spec:
  providerRef:
    name: slack
  eventSeverity: error
  eventSources:
  - kind: Kustomization
    name: '*'
Important : Utilisez des branches protegees et des revues de code obligatoires sur les depots GitOps. Un merge dans main declenche le deploiement en production.