Files
gh-ahmedasmar-devops-claude…/assets/argocd/install-argocd-3.x.yaml
2025-11-29 17:51:15 +08:00

93 lines
2.0 KiB
YAML

# ArgoCD 3.x Installation with best practices
# Updated for ArgoCD v3.1+
apiVersion: v1
kind: Namespace
metadata:
name: argocd
---
# Install ArgoCD using official manifests
# kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v3.1.9/manifests/install.yaml
# Configuration with ArgoCD 3.x best practices
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cmd-params-cm
namespace: argocd
data:
# Enable fine-grained RBAC (ArgoCD 3.0+)
server.enable.gzip: "true"
# Resource exclusions (default in 3.x)
resource.exclusions: |
- apiGroups:
- ""
kinds:
- Endpoints
- EndpointSlice
clusters:
- "*"
---
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cm
namespace: argocd
data:
# Annotation-based tracking (default in ArgoCD 3.x)
application.resourceTrackingMethod: annotation
# Resource exclusions for performance
resource.exclusions: |
- apiGroups:
- "*"
kinds:
- Lease
clusters:
- "*"
---
# Expose ArgoCD Server (choose one method)
# Option 1: LoadBalancer
apiVersion: v1
kind: Service
metadata:
name: argocd-server-lb
namespace: argocd
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
protocol: TCP
selector:
app.kubernetes.io/name: argocd-server
# Option 2: Ingress (recommended)
# ---
# apiVersion: networking.k8s.io/v1
# kind: Ingress
# metadata:
# name: argocd-server-ingress
# namespace: argocd
# annotations:
# cert-manager.io/cluster-issuer: letsencrypt-prod
# nginx.ingress.kubernetes.io/ssl-passthrough: "true"
# nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
# spec:
# ingressClassName: nginx
# rules:
# - host: argocd.example.com
# http:
# paths:
# - path: /
# pathType: Prefix
# backend:
# service:
# name: argocd-server
# port:
# number: 443
# tls:
# - hosts:
# - argocd.example.com
# secretName: argocd-server-tls