You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/faq.md
+59Lines changed: 59 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -328,10 +328,69 @@ If for some reason authenticated Redis does not work for you and you want to use
328
328
* Deployment: argocd-server
329
329
* StatefulSet: argocd-application-controller
330
330
331
+
5. If you have configured file-based Redis credentials using the `REDIS_CREDS_DIR_PATH` environment variable, remove this environment variable and delete the corresponding volume and volumeMount entries that mount the credentials directory from the following manifests:
332
+
* Deployment: argocd-repo-server
333
+
* Deployment: argocd-server
334
+
* StatefulSet: argocd-application-controller
335
+
331
336
## How do I provide my own Redis credentials?
332
337
The Redis password is stored in Kubernetes secret `argocd-redis` with key `auth` in the namespace where Argo CD is installed.
333
338
You can config your secret provider to generate Kubernetes secret accordingly.
334
339
340
+
### Using file-based Redis credentials via `REDIS_CREDS_DIR_PATH`
341
+
342
+
Argo CD components support reading Redis credentials from files mounted at a specified path inside the container.
343
+
344
+
When the environment variable `REDIS_CREDS_DIR_PATH` is specified, it takes precedence and Argo CD components that require redis connectivity ( application-controller, repo-server and server) loads the redis credentials from the files located in the specified directory path and ignores any values set in the environment variables
345
+
346
+
Expected files when using `REDIS_CREDS_DIR_PATH`:
347
+
348
+
- `auth`: Redis password (mandatory)
349
+
- `auth_username`: Redis username
350
+
- `sentinel_auth`: Redis Sentinel password
351
+
- `sentinel_username`: Redis Sentinel username
352
+
353
+
You can store these keys in a Kubernetes Secret and mount it into each Argo CD component that needs Redis access. Then point `REDIS_CREDS_DIR_PATH` to the mount directory.
354
+
355
+
Example Secret:
356
+
357
+
```yaml
358
+
apiVersion: v1
359
+
kind: Secret
360
+
metadata:
361
+
name: <secret-name>
362
+
namespace: argocd
363
+
type: Opaque
364
+
stringData:
365
+
auth: "<redis-password>"
366
+
auth_username: "<redis-username>"
367
+
sentinel_auth: "<sentinel-password>"
368
+
sentinel_username: "<sentinel-username>"
369
+
```
370
+
371
+
Example Argo CD component spec (e.g., add to `argocd-server`, `argocd-repo-server`, `argocd-application-controller`):
372
+
373
+
```yaml
374
+
spec:
375
+
containers:
376
+
- name: argocd-server
377
+
image: quay.io/argoproj/argocd:<version>
378
+
env:
379
+
- name: REDIS_CREDS_DIR_PATH
380
+
value: "/var/run/secrets/redis"
381
+
volumeMounts:
382
+
- name: redis-creds
383
+
mountPath: "/var/run/secrets/redis"
384
+
readOnly: true
385
+
volumes:
386
+
- name: redis-creds
387
+
secret:
388
+
secretName: <secret-name>
389
+
```
390
+
391
+
> [!NOTE]
392
+
> This mechanism configures authentication for Argo CD components that connect to Redis. The Redis server itself should be configured independently (e.g., via `redis.conf`).
393
+
335
394
## How do I fix `Manifest generation error (cached)`?
336
395
337
396
`Manifest generation error (cached)`means that there was an error when generating manifests and that the error message has been cached to avoid runaway retries.
Copy file name to clipboardExpand all lines: docs/operator-manual/applicationset/Appset-Any-Namespace.md
+17Lines changed: 17 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -121,6 +121,23 @@ It can be achieved by setting the environment variable `ARGOCD_APPLICATIONSET_CO
121
121
122
122
In order to enable this feature, the Argo CD administrator must reconfigure the `argocd-applicationset-controller` workloads to add the `--applicationset-namespaces` parameter to the container's startup command.
123
123
124
+
The `--applicationset-namespaces` parameter takes a comma-separated list of namespaces where `ApplicationSet` are to be allowed in. Each entry of the list supports:
125
+
126
+
- shell-style wildcards such as `*`, so for example the entry `app-team-*` would match `app-team-one` and `app-team-two`. To enable all namespaces on the cluster where Argo CD is running on, you can just specify `*`, i.e. `--application-namespaces=*`.
127
+
- regex, requires wrapping the string in ```/```, example to allow all namespaces except a particular one: ```/^((?!not-allowed).)*$/```.
128
+
129
+
The startup parameters for the `argocd-applicationset-controller` can also be conveniently set up and kept in sync by specifying the `applicationsetcontroller.namespaces` settings in the `argocd-cmd-params-cm` ConfigMap _instead_ of changing the manifests for the `ApplicationSet`. For example:
would allow the `app-team-one` and `app-team-two` namespaces for managing `ApplicationSet` resources. After a change to the `argocd-cmd-params-cm` namespace, the `ApplicationSet` workload need to be restarted:
In some cases, the trigger condition might be "flapping". The example below illustrates the problem.
@@ -60,14 +72,14 @@ data:
60
72
# Optional 'oncePer' property ensure that notification is sent only once per specified field value
61
73
# E.g. following is triggered once per sync revision
62
74
trigger.on-deployed: |
63
-
when: app.status.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy'
75
+
when: app.status?.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy'
64
76
oncePer: app.status.sync.revision
65
77
send: [app-sync-succeeded]
66
78
```
67
79
68
80
**Mono Repo Usage**
69
81
70
-
When one repo is used to sync multiple applications, the `oncePer: app.status.sync.revision` field will trigger a notification for each commit. For mono repos, the better approach will be using `oncePer: app.status.operationState.syncResult.revision` statement. This way a notification will be sent only for a particular Application's revision.
82
+
When one repo is used to sync multiple applications, the `oncePer: app.status.sync.revision` field will trigger a notification for each commit. For mono repos, the better approach will be using `oncePer: app.status?.operationState.syncResult.revision` statement. This way a notification will be sent only for a particular Application's revision.
71
83
72
84
### oncePer
73
85
@@ -122,7 +134,7 @@ Triggers have access to the set of built-in functions.
0 commit comments