Skip to content

Commit f5ed6bb

Browse files
committed
Docs: updated documentation to meetup deployment work
1 parent 7b786e0 commit f5ed6bb

File tree

1 file changed

+17
-160
lines changed

1 file changed

+17
-160
lines changed

docs/manual-argocd-deployment.md

Lines changed: 17 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ This guide walks you through manually deploying Argo CD to your Kubernetes clust
77
- [Prerequisites](#prerequisites)
88
- [Overview](#overview)
99
- [Deployment Steps](#deployment-steps)
10-
- [Configuration Customization](#configuration-customization)
1110
- [Verification](#verification)
1211
- [Post-Deployment](#post-deployment)
1312
- [Troubleshooting](#troubleshooting)
@@ -28,9 +27,8 @@ Before deploying Argo CD, ensure you have the following:
2827

2928
> [!IMPORTANT]
3029
> **Ingress Controller Required**: This deployment assumes you already have an Nginx Ingress Controller installed in your cluster. If you don't have one set up yet, please refer to the [Ingress Controller Setup Guide](./ingress-controller-setup.md) before proceeding.
30+
> **Cert-Manager**: For automated TLS certificate management (recommended). If not installed, see [Cert-Manager Setup Guide](./cert-manager-setup.md).
3131
32-
- **Cert-Manager**: For automated TLS certificate management (recommended)
33-
- If not installed, see [Cert-Manager Setup Guide](./cert-manager-setup.md)
3432
- **DNS Configuration**: A domain name pointing to your ingress controller's load balancer IP
3533
- **OIDC Provider** (optional): For SSO authentication (e.g., Keycloak, Okta, Google)
3634

@@ -78,99 +76,39 @@ Navigate to the observability project directory and edit the Argo CD values file
7876
cd ../argocd/manual
7977

8078
# Edit the values file directly
81-
nano argocd-prod-values.yaml
79+
# (You may use any editor, e.g., nano, vi, vim)
80+
Edit argocd-prod-values.yaml
8281
```
8382

8483
### Step 4: Configure Your Deployment
8584

86-
Customize the following values in `argocd-prod-values.yaml`:
85+
Open `argocd-prod-values.yaml` and adjust the settings to match your environment. The file is already commented to guide you through the necessary changes (Ingress hostname, Cert-Manager Issuer, OIDC configuration, etc.).
8786

8887
> [!WARNING]
89-
> **Required Changes**: You MUST update these values before deployment, or the installation will fail or be misconfigured.
88+
> **Required Changes**: You MUST update the values in `argocd-prod-values.yaml` (especially the hostname and issuer) before deployment, or the installation will fail or be misconfigured.
9089
91-
#### 4.1 Update Ingress Hostname
92-
93-
```yaml
94-
server:
95-
ingress:
96-
hostname: "argocd.observe.camer.digital" # CHANGE THIS to your domain
97-
tls:
98-
- secretName: argocd-tls-cert
99-
hosts:
100-
- "argocd.observe.camer.digital" # CHANGE THIS to match above
101-
```
102-
103-
Replace `argocd.observe.camer.digital` with your actual domain name.
104-
105-
#### 4.2 Update Ingress Class (if needed)
106-
107-
```yaml
108-
server:
109-
ingress:
110-
ingressClassName: argocd-nginx # Verify this matches your ingress controller
111-
```
112-
113-
Ensure `argocd-nginx` matches the IngressClass name of your installed Nginx Ingress Controller. You can check available IngressClasses with:
114-
115-
```bash
116-
kubectl get ingressclass
117-
```
118-
119-
#### 4.3 Update Cert-Manager Issuer
120-
121-
```yaml
122-
server:
123-
ingress:
124-
annotations:
125-
cert-manager.io/cluster-issuer: "letsencrypt-prod" # CHANGE THIS to your issuer name
126-
```
127-
128-
Update `letsencrypt-prod` to match your cert-manager ClusterIssuer or Issuer name. You can list available issuers with:
129-
130-
```bash
131-
# For ClusterIssuers
132-
kubectl get clusterissuer
133-
134-
# For namespace-scoped Issuers
135-
kubectl get issuer -n argocd
136-
```
137-
138-
If using a namespace-scoped Issuer instead of ClusterIssuer, change the annotation to:
139-
140-
```yaml
141-
cert-manager.io/issuer: "your-issuer-name" # CHANGE THIS to your issuer name
142-
```
143-
144-
#### 4.4 Update Argo CD URL
145-
146-
```yaml
147-
configs:
148-
cm:
149-
url: https://argocd.observe.camer.digital # CHANGE THIS to your domain
150-
```
151-
152-
#### 4.5 Configure OIDC (Optional)
90+
#### 4.1 Configure OIDC (Optional)
15391

15492
If you're using OIDC authentication (e.g., Keycloak), you need to deploy and configure Keycloak, then integrate it with Argo CD.
15593

15694
> [!IMPORTANT]
157-
> **Keycloak Deployment and Configuration Required**: Before configuring Argo CD for OIDC, you must deploy and configure Keycloak with:
158-
> - A realm (e.g., `argocd`)
159-
> - A client (e.g., `argocd`) with appropriate redirect URIs and client secret
160-
> - Users and groups for authentication
161-
>
162-
> For deployment and configuration instructions, see: [Keycloak Getting Started](https://www.keycloak.org/guides#getting-started) - Covers deployment and OIDC client setup for all platforms
95+
> **Keycloak Setup Required**: Before proceeding, ensure Keycloak is deployed and configured. Refer to the [Keycloak Getting Started Guide](https://www.keycloak.org/guides#getting-started) for deployment instructions across all platforms.
96+
>
97+
> During setup, ensure the following entities are created:
98+
> - **A Realm**: (e.g., `argocd`)
99+
> - **An OIDC Client**: (e.g., `argocd`) with appropriate redirect URIs and a client secret.
100+
> - **Users and Groups**: For authentication and access control.
163101
164-
After deploying and configuring Keycloak, update the following in the values file:
102+
After deploying and configuring Keycloak, update your `argocd-prod-values.yaml` file with the following:
165103

166104
```yaml
167105
configs:
168106
cm:
169107
oidc.config: |
170108
name: Keycloak
171-
issuer: https://keycloak.yourdomain.com/realms/argocd # CHANGE THIS TO YOUR KEYCLOAK DOMAIN ISSUER URL
109+
issuer: https://keycloak.YOUR_KEYCLOAK_DOMAIN/realms/argocd # CHANGE THIS TO YOUR KEYCLOAK DOMAIN ISSUER URL
172110
clientID: argocd # CHANGE THIS if different
173-
clientSecret: your-client-secret # CHANGE THIS to your Keycloak client secret
111+
clientSecret: YOUR_KEYCLOAK_CLIENT_SECRET # CHANGE THIS to your Keycloak client secret
174112
requestedScopes: ["openid", "profile", "email", "groups"]
175113
enablePKCEAuthentication: true # In case you want to enable cli authentication
176114
```
@@ -213,86 +151,6 @@ Wait until all pods are in `Running` state and all deployments show `READY` stat
213151

214152
---
215153

216-
## Configuration Customization
217-
218-
### Resource Limits
219-
220-
The reference configuration includes production-ready resource limits. Adjust these based on your cluster capacity and workload:
221-
222-
```yaml
223-
controller:
224-
resources:
225-
limits:
226-
memory: "2Gi"
227-
cpu: "1"
228-
requests:
229-
memory: "512Mi"
230-
cpu: "250m"
231-
232-
repoServer:
233-
resources:
234-
limits:
235-
memory: "1Gi"
236-
cpu: "500m"
237-
```
238-
239-
### Autoscaling
240-
241-
Autoscaling is enabled for `repoServer` and `server` components:
242-
243-
```yaml
244-
repoServer:
245-
autoscaling:
246-
enabled: true
247-
minReplicas: 2
248-
maxReplicas: 5
249-
250-
server:
251-
autoscaling:
252-
enabled: true
253-
minReplicas: 2
254-
maxReplicas: 5
255-
```
256-
257-
Adjust `minReplicas` and `maxReplicas` based on your expected load.
258-
259-
### High Availability
260-
261-
Redis HA is enabled for production resilience:
262-
263-
```yaml
264-
redis-ha:
265-
enabled: true
266-
exporter:
267-
enabled: true
268-
```
269-
270-
For development environments, you can disable Redis HA to reduce resource usage:
271-
272-
```yaml
273-
redis-ha:
274-
enabled: false
275-
```
276-
277-
### RBAC Policies
278-
279-
Define custom RBAC policies for multi-tenancy:
280-
281-
```yaml
282-
configs:
283-
rbac:
284-
policy.csv: |
285-
# Example: Grant 'dev-team' access only to 'dev-project'
286-
p, role:dev-team, applications, *, dev-project/*, allow
287-
g, dev-user@yourcompany.com, role:dev-team
288-
289-
# Default admin policy
290-
g, admin, role:admin
291-
g, ArgoCDAdmins, role:admin
292-
```
293-
294-
---
295-
296154
## Verification
297155

298156
### Step 1: Check Pod Status
@@ -344,7 +202,7 @@ The certificate should show `Ready: True`.
344202

345203
### Step 4: Access Argo CD UI
346204

347-
Open your browser and navigate to your configured domain (e.g., `https://argocd.observe.camer.digital`).
205+
Open your browser and navigate to your configured domain (e.g., `https://YOUR_ARGO-CD_DOMAIN`).
348206

349207
You should see the Argo CD login page with HTTPS enabled.
350208

@@ -386,7 +244,7 @@ brew install argocd
386244
Login to Argo CD via CLI:
387245

388246
```bash
389-
argocd login argocd.observe.camer.digital
247+
argocd login YOUR_ARGO-CD_DOMAIN
390248
```
391249

392250
You'll be prompted for username and password. Use:
@@ -499,4 +357,3 @@ After successfully deploying Argo CD, you can:
499357
3. **Deploy Applications**: Use Argo CD to manage your Kubernetes applications
500358
4. **Set Up Notifications**: Configure notifications for deployment events
501359
5. **Implement GitOps**: Adopt GitOps practices for your infrastructure
502-

0 commit comments

Comments
 (0)