Troubleshooting Tools¶
The document describes how to use argocd admin
subcommands to simplify Argo CD settings customizations and troubleshot
connectivity issues.
Settings¶
Argo CD provides multiple ways to customize system behavior and has a lot of settings. It might be dangerous to modify
settings on Argo CD used in production by multiple users. Before applying settings you can use argocd admin
subcommands to
make sure that settings are valid and Argo CD is working as expected.
The argocd admin settings validate
command performs basic settings validation and print short summary
of each settings group.
Diffing Customization
Diffing customization allows excluding some resource fields from diffing process.
The diffing customizations are configured in resource.customizations
field of argocd-cm
ConfigMap.
The following argocd admin
command prints information about fields excluded from diffing in the specified ConfigMap.
argocd admin settings resource-overrides ignore-differences ./deploy.yaml --argocd-cm-path ./argocd-cm.yaml
Health Assessment
Argo CD provides built-in health assessment for several kubernetes resources which can be further
customized by writing your own health checks in Lua.
The health checks are configured in the resource.customizations
field of argocd-cm
ConfigMap.
The following argocd admin
command assess resource health using Lua script configured in the specified ConfigMap.
argocd admin settings resource-overrides health ./deploy.yaml --argocd-cm-path ./argocd-cm.yaml
Resource Actions
Resource actions allows configuring named Lua script which performs resource modification.
The following argocd admin
command executes action using Lua script configured in the specified ConfigMap and prints
applied modifications.
argocd admin settings resource-overrides run-action /tmp/deploy.yaml restart --argocd-cm-path /private/tmp/argocd-cm.yaml
The following argocd admin
command lists actions available for a given resource using Lua script configured in the specified ConfigMap.
argocd admin settings resource-overrides list-actions /tmp/deploy.yaml --argocd-cm-path /private/tmp/argocd-cm.yaml
Cluster credentials¶
The argocd admin cluster kubeconfig
is useful if you manually created Secret with cluster credentials and trying need to
troubleshoot connectivity issues. In this case, it is suggested to use the following steps:
1 SSH into [argocd-application-controller] pod.
kubectl exec -n argocd -it \
$(kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-application-controller -o jsonpath='{.items[0].metadata.name}') bash
2 Use argocd admin cluster kubeconfig
command to export kubeconfig file from the configured Secret:
argocd admin cluster kubeconfig https://<api-server-url> /tmp/kubeconfig --namespace argocd
3 Use kubectl
to get more details about connection issues, fix them and apply changes back to secret:
export KUBECONFIG=/tmp/kubeconfig
kubectl get pods -v 9