Skip to content

Commit 3e4ddaa

Browse files
authored
ROB-1026: improve argocd (#1774)
1 parent 5741d9e commit 3e4ddaa

1 file changed

Lines changed: 38 additions & 6 deletions

File tree

docs/configuration/holmesgpt/toolsets/argocd.rst

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,35 @@ This toolset requires an ``ARGOCD_AUTH_TOKEN`` environment variable. Generate su
1212
You can consult the `available environment variables <https://argo-cd.readthedocs.io/en/latest/user-guide/environment-variables/>`_
1313
on argocd's official documentation for the CLI.
1414

15-
In addition to the auth token, you will need to tell argocd how to connect to the server. This can be done two ways:
15+
The permissions required are below (``kubectl edit configmap argocd-rbac-cm -n argocd``). You can consult
16+
ArgoCD's documentation on `user creation <https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/>`_
17+
and `permissions <https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/>`_.
18+
19+
.. code-block:: yaml
20+
21+
# Ensure this data block is present in your argocd-rbac-cm configmap.
22+
# It enables the permissions for holmes to fetch the data it needs to
23+
# investifate argocd issues.
24+
# -
25+
# These permissions depend on a new user `holmesgpt` being created,
26+
# for example using the `argocd-cm` configmap
27+
data:
28+
policy.default: role:readonly
29+
policy.csv: |
30+
p, role:admin, *, *, *, allow
31+
p, role:admin, accounts, apiKey, *, allow
32+
p, holmesgpt, accounts, apiKey, holmesgpt, allow
33+
p, holmesgpt, projects, get, *, allow
34+
p, holmesgpt, applications, get, *, allow
35+
p, holmesgpt, repositories, get, *, allow
36+
p, holmesgpt, clusters, get, *, allow
37+
p, holmesgpt, applications, manifests, */*, allow
38+
p, holmesgpt, applications, resources, */*, allow
39+
g, admin, role:admin
40+
41+
42+
In addition to setting permissiong and generating an auth token, you will need to tell argocd how to connect to the server.
43+
This can be done two ways:
1644

1745
1. **Using port forwarding**. This is the recommended approach if your argocd is inside your Kubernetes cluster.
1846
2. **Setting the env var** ``SERVER_URL``. This is the recommended approach if your argocd is reachable through a public DNS
@@ -39,7 +67,7 @@ HolmesGPT needs permission to establish a port-forward to ArgoCD. The configurat
3967
toolsets:
4068
argocd/core:
4169
enabled: true
42-
70+
4371
.. note::
4472

4573
Change the namespace ``--port-forward-namespace <your_argocd_namespace>`` to the namespace in which your argocd service
@@ -92,10 +120,10 @@ This is the recommended approach if your argocd is reachable through a public DN
92120
argocd/core:
93121
enabled: true
94122
95-
To test, run:
123+
To test, run:
96124

97125
.. code-block:: yaml
98-
126+
99127
holmes ask "Which argocd applications are failing and why?"
100128
101129
Capabilities
@@ -109,12 +137,16 @@ Capabilities
109137

110138
* - Tool Name
111139
- Description
140+
* - argocd_app_list
141+
- List the applications in Argocd
112142
* - argocd_app_get
113143
- Retrieve information about an existing application, such as its status and configuration
144+
* - argocd_app_manifests
145+
- Retrieve manifests for an application
146+
* - argocd_app_resources
147+
- List resources of an application
114148
* - argocd_app_diff
115149
- Display the differences between the current state of an application and the desired state specified in its Git repository
116-
* - argocd_app_list
117-
- List the applications in Argocd
118150
* - argocd_app_history
119151
- List the deployment history of an application in ArgoCD
120152
* - argocd_repo_list

0 commit comments

Comments
 (0)