ArgocdΒΆ
By enabling this toolset, HolmesGPT will be able to fetch the status, deployment history, and configuration of ArgoCD applications.
ConfigurationΒΆ
This toolset requires an ARGOCD_AUTH_TOKEN
environment variable. Generate such auth token by following
these steps.
You can consult the available environment variables
on argocd's official documentation for the CLI.
In addition to the auth token, you will need to tell argocd how to connect to the server. This can be done two ways:
Using port forwarding. This is the recommended approach if your argocd is inside your Kubernetes cluster.
Setting the env var
SERVER_URL
. This is the recommended approach if your argocd is reachable through a public DNS
1. Port forwardingΒΆ
This is the recommended approach if your argocd is inside your Kubernetes cluster.
HolmesGPT needs permission to establish a port-forward to ArgoCD. The configuration below includes that authorization.
holmes:
customClusterRoleRules:
- apiGroups: [""]
resources: ["pods/portforward"]
verbs: ["create"]
additionalEnvVars:
- name: ARGOCD_AUTH_TOKEN
value: <your argocd auth token>
- name: ARGOCD_OPTS
value: "--port-forward --port-forward-namespace <your_argocd_namespace> --grpc-web"
toolsets:
argocd/core:
enabled: true
Note
Change the namespace --port-forward-namespace <your_argocd_namespace>
to the namespace in which your argocd service
is deployed.
The option --grpc-web
in ARGOCD_OPTS
prevents some connection errors from leaking into the tool responses and
provides a cleaner output for HolmesGPT.
Update your Helm values (generated_values.yaml) with the above configuration and run a Helm upgrade:
helm upgrade robusta robusta/robusta --values=generated_values.yaml --set clusterName=<YOUR_CLUSTER_NAME>
2. Server URLΒΆ
This is the recommended approach if your argocd is reachable through a public DNS.
holmes:
additionalEnvVars:
- name: ARGOCD_AUTH_TOKEN
value: <your argocd auth token>
- name: ARGOCD_SERVER
value: argocd.example.com
toolsets:
argocd/core:
enabled: true
Update your Helm values (generated_values.yaml) with the above configuration and run a Helm upgrade:
helm upgrade robusta robusta/robusta --values=generated_values.yaml --set clusterName=<YOUR_CLUSTER_NAME>
First create the ARGOCD_AUTH_TOKEN environment variable:
export ARGOCD_AUTH_TOKEN="<your argocd auth token>"
export ARGOCD_SERVER="argocd.example.com"
Then add the following to ~/.holmes/config.yaml, creating the file if it doesn't exist:
toolsets:
argocd/core:
enabled: true
To test, run:
holmes ask "Which argocd applications are failing and why?"
CapabilitiesΒΆ
The table below describes the specific capabilities provided by this toolset. HolmesGPT can decide to invoke any of these capabilities when answering questions or investigating issues.
Tool Name |
Description |
---|---|
argocd_app_get |
Retrieve information about an existing application, such as its status and configuration |
argocd_app_diff |
Display the differences between the current state of an application and the desired state specified in its Git repository |
argocd_app_list |
List the applications in Argocd |
argocd_app_history |
List the deployment history of an application in ArgoCD |
argocd_repo_list |
List all the Git repositories that ArgoCD is currently managing |
argocd_proj_list |
List all available projects |
argocd_proj_get |
Retrieves information about an existing project, such as its applications and policies |
argocd_cluster_list |
List all known clusters |