DevOps Expert
ArgoCD — Pokročilá Konfigurace¶
ArgoCDGitOpsKubernetesMulti-cluster 5 min čtení
ArgoCD ApplicationSets, multi-cluster management, Sync Waves a hook-based deployments.
ApplicationSets¶
ApplicationSet controller generuje ArgoCD Applications dynamicky — ideální pro multi-cluster a multi-tenant scénáře.
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: microservices
spec:
generators:
- git:
repoURL: https://github.com/org/manifests
revision: main
directories:
- path: apps/*
template:
metadata:
name: '{{path.basename}}'
spec:
project: default
source:
repoURL: https://github.com/org/manifests
targetRevision: main
path: '{{path}}'
destination:
server: https://kubernetes.default.svc
namespace: '{{path.basename}}'
Sync Waves & Hooks¶
Sync waves řídí pořadí deploymentu. Hooks spouští joby v konkrétních fázích sync cyklu.
metadata:
annotations:
argocd.argoproj.io/sync-wave: "-1"
argocd.argoproj.io/hook: PreSync
---
apiVersion: batch/v1
kind: Job
metadata:
name: db-migration
annotations:
argocd.argoproj.io/hook: PreSync
argocd.argoproj.io/hook-delete-policy: HookSucceeded
spec:
template:
spec:
containers:
- name: migrate
image: app:latest
command: ["/migrate"]
restartPolicy: Never
Multi-cluster Management¶
ArgoCD může spravovat desítky clusterů z jedné instance.
# Přidání clusteru
argocd cluster add prod-eu-west-1 --name prod-eu
# Deklarativní Secret
apiVersion: v1
kind: Secret
metadata:
name: prod-cluster
namespace: argocd
labels:
argocd.argoproj.io/secret-type: cluster
stringData:
name: prod-eu
server: https://prod-eu.example.com
config: |
{"bearerToken": "...", "tlsClientConfig": {"insecure": false}}
Shrnutí¶
ArgoCD pokročilé funkce jako ApplicationSets a Sync Waves umožňují škálovat GitOps na enterprise úroveň.
Potřebujete pomoct s implementací?¶
Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.