Skip to content

Commit 166c406

Browse files
authored
Merge pull request #21 from ADORSYS-GIS/15-document-manual-argocd-deployment-process
15 document manual argocd deployment process
2 parents 9e94ae6 + ff071f5 commit 166c406

File tree

4 files changed

+447
-0
lines changed

4 files changed

+447
-0
lines changed

argocd/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Argo CD Deployment Guide
2+
3+
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. It automates the deployment of applications by continuously monitoring Git repositories and synchronizing the desired application state with the live state in your Kubernetes cluster.
4+
5+
## Deployment Options
6+
7+
We provide two ways to deploy Argo CD to your Kubernetes cluster:
8+
9+
### 1. Manual Deployment
10+
11+
Deploy Argo CD manually using Helm with customizable values files. This approach gives you full control over the configurations.
12+
13+
**[Manual Deployment Guide](../docs/manual-argocd-deployment.md)**
14+
15+
The manual deployment uses the production-ready values file located at [`argocd/manual/argocd-prod-values.yaml`](manual/argocd-prod-values.yaml),
16+
17+
### 2. Automated Deployment (Terraform)
18+
19+
Deploy Argo CD automatically using Terraform for infrastructure-as-code management
20+
21+
**[Automated Deployment Guide](#)** *(Coming soon)*
22+
23+
The automated deployment is located in the [`argocd/terraform/`](terraform)
24+
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# 1. High Availability (Redis & Components)
2+
# -----------------------------------------
3+
redis-ha:
4+
enabled: true
5+
exporter:
6+
enabled: true
7+
8+
controller:
9+
replicas: 1
10+
resources:
11+
limits:
12+
memory: "2Gi"
13+
cpu: "1"
14+
requests:
15+
memory: "512Mi"
16+
cpu: "250m"
17+
18+
repoServer:
19+
replicas: 2
20+
autoscaling:
21+
enabled: true
22+
minReplicas: 2
23+
maxReplicas: 5
24+
resources:
25+
limits:
26+
memory: "1Gi"
27+
cpu: "500m"
28+
29+
server:
30+
replicas: 2
31+
autoscaling:
32+
enabled: true
33+
minReplicas: 2
34+
maxReplicas: 5
35+
36+
# 2. Ingress & Cert-Manager Integration
37+
# -------------------------------------
38+
ingress:
39+
enabled: true
40+
ingressClassName: nginx # CHANGE THIS TO YOUR INGRESS CLASS NAME
41+
hostname: "YOUR_ARGO-CD_DOMAIN" # CHANGE THIS
42+
annotations:
43+
# Standard Nginx tuning
44+
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
45+
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
46+
47+
# Cert-Manager Configuration
48+
cert-manager.io/cluster-issuer: "letsencrypt-prod" # CHANGE THIS to your Issuer name
49+
# If you were using a ClusterIssuer, you would use:
50+
# cert-manager.io/cluster-issuer: "letsencrypt-prod"
51+
52+
tls:
53+
- secretName: argocd-tls-cert
54+
hosts:
55+
- "YOUR_ARGO-CD_DOMAIN" # CHANGE THIS
56+
57+
# 3. Multi-Tenancy & RBAC
58+
# -----------------------
59+
# This section sets up the foundation for multi-tenancy.
60+
# We disable the admin user eventually and rely on SSO,
61+
# but for now, we define policies.
62+
configs:
63+
params:
64+
server.insecure: true # We terminate TLS at NGINX, so Argo itself runs insecurely internally
65+
66+
# Define RBAC roles for your tenants here or in a separate ConfigMap
67+
rbac:
68+
policy.csv: |
69+
# Example: Grant 'dev-team' access only to 'dev-project'
70+
# p, role:dev-team, applications, *, dev-project/*, allow
71+
# g, dev-user@yourcompany.com, role:dev-team
72+
73+
# Default policy
74+
g, admin, role:admin
75+
g, ArgoCDAdmins, role:admin
76+
77+
cm:
78+
url: https://YOUR_ARGO-CD_DOMAIN
79+
oidc.config: |
80+
name: Keycloak
81+
issuer: https://YOUR_KEYCLOAK_DOMAIN/realms/YOUR_REALM
82+
clientID: YOUR_CLIENT_ID
83+
clientSecret: YOUR_CLIENT_SECRET
84+
requestedScopes: ["openid", "profile", "email", "groups"]
85+
enablePKCEAuthentication: true
86+
# PKCE is handled automatically by the ArgoCD CLI
87+
# when it talks to this OIDC provider.
88+
89+
# 4. GitOps Engine Tuning
90+
# -----------------------
91+
# Important for production to handle many applications
92+
applicationSet:
93+
replicas: 2
111 KB
Loading

0 commit comments

Comments
 (0)