ESDDNS Operator - Production ArgoCD Deployment
ArgoCD applications for deploying ESDDNS Operator to the production environment.
Features
- Manual sync only (no automatic sync for safety)
- 3 replicas for high availability
- Production-specific values applied
- Supports both Helm and Kustomize deployments
- Strict RBAC and resource controls
Quick Deploy
# Deploy all prod applications
kubectl apply -k argocd/prod/
# Or deploy specific applications
kubectl apply -f argocd/prod/applications/esddns-operator-helm.yaml
Applications
esddns-operator-helm-prod
- Type: Helm-based deployment
- Namespace: esddns-operator
- Sync: Manual only (no prune, no selfHeal)
- Values: values.yaml + values-production.yaml
- Replicas: 3
esddns-operator-kustomize-prod
- Type: Kustomize-based deployment
- Namespace: esddns-operator
- Sync: Manual only (no prune, no selfHeal)
- Overlay: k8s/overlays/production
- Replicas: 3
Monitoring
# Check application status
argocd app get esddns-operator-helm-prod
argocd app get esddns-operator-kustomize-prod
# View logs
argocd app logs esddns-operator-helm-prod
# Sync manually (requires approval)
argocd app sync esddns-operator-helm-prod
Configuration
Edit the following files to customize:
applications/esddns-operator-helm.yaml - Helm application definition
applications/esddns-operator-kustomize.yaml - Kustomize application definition
appproject.yaml - AppProject (permissions, source repos, destinations)
Safety Practices
⚠️ Production Deployment Guidelines:
- Manual Sync Only - Require human approval for changes
- Test in Dev First - Always validate changes in development environment
- Review Changes - Review Git changes before syncing
- Tag Releases - Use semantic versioning for releases
- Monitor Health - Check application and resource health before syncing
- Plan Upgrades - Schedule major upgrades during maintenance windows
Change Process
- Create feature branch with changes
- Test in development environment
- Create pull request for review
- Merge to main after approval
- Review in ArgoCD UI
- Execute manual sync with proper authorization
Cleanup
kubectl delete -k argocd/prod/