Troubleshooting
Troubleshooting¶
The argocd-notifications
binary includes a set of CLI commands that helps to configure the controller
settings and troubleshoot issues.
Global flags¶
Following global flags are available for all sub-commands:
config-map
- path to the file containingargocd-notifications-cm
ConfigMap. If not specified then the command loadsargocd-notification-cm
ConfigMap using the local Kubernetes config file.secret
- path to the file containingargocd-notifications-secret
ConfigMap. If not specified then the command loadsargocd-notification-secret
Secret using the local Kubernetes config file. Additionally, you can specify:empty
value to use empty secret with no notification service settings.
Examples:
- Get list of triggers configured in the local config map:
argocd-notifications trigger get \
--config-map ./argocd-notifications-cm.yaml --secret :empty
- Trigger notification using in-cluster config map and secret:
argocd-notifications template notify \
app-sync-succeeded guestbook --recipient slack:argocd-notifications
Kustomize¶
If you are managing argocd-notifications
config using Kustomize you can pipe whole kustomize build
output
into stdin using --config-map -
flag:
kustomize build ./argocd-notifications | \
argocd-notifications \
template notify app-sync-succeeded guestbook --recipient grafana:argocd \
--config-map -
How to get it¶
On your laptop¶
You can download argocd-notifications
from the github release
attachments.
The binary is available in argoprojlabs/argocd-notifications
image. Use the docker run
and volume mount
to execute binary on any platform.
Example:
docker run --rm -it -w /src -v $(pwd):/src \
argoprojlabs/argocd-notifications:<version> \
/app/argocd-notifications trigger get \
--config-map ./argocd-notifications-cm.yaml --secret :empty
In your cluster¶
SSH into the running argocd-notifications-controller
pod and use kubectl exec
command to validate in-cluster
configuration.
Example
kubectl exec -it argocd-notifications-controller-<pod-hash> \
/app/argocd-notifications trigger get
Commands¶
argocd-notifications template get¶
Prints information about configured templates
argocd-notifications template get [flags]
Examples¶
# prints all templates
argocd-notifications template get
# print YAML formatted app-sync-succeeded template definition
argocd-notifications template get app-sync-succeeded -o=yaml
Options¶
-h, --help help for get
-o, --output string Output format. One of:json|yaml|wide|name (default "wide")
Options inherited from parent commands¶
--argocd-repo-server string Argo CD repo server address (default "argocd-repo-server:8081")
--as string Username to impersonate for the operation
--as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--certificate-authority string Path to a cert file for the certificate authority
--client-certificate string Path to a client certificate file for TLS
--client-key string Path to a client key file for TLS
--cluster string The name of the kubeconfig cluster to use
--config-map string argocd-notifications-cm.yaml file path
--context string The name of the kubeconfig context to use
--insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig string Path to a kube config. Only required if out-of-cluster
-n, --namespace string If present, the namespace scope for this CLI request
--password string Password for basic authentication to the API server
--request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0")
--secret string argocd-notifications-secret.yaml file path. Use empty secret if provided value is ':empty'
--server string The address and port of the Kubernetes API server
--tls-server-name string If provided, this name will be used to validate server certificate. If this is not provided, hostname used to contact the server is used.
--token string Bearer token for authentication to the API server
--user string The name of the kubeconfig user to use
--username string Username for basic authentication to the API server
argocd-notifications template notify¶
Generates notification using the specified template and send it to specified recipients
argocd-notifications template notify NAME APPLICATION [flags]
Examples¶
# Trigger notification using in-cluster config map and secret
argocd-notifications template notify app-sync-succeeded guestbook --recipient slack:argocd-notifications
# Render notification render generated notification in console
argocd-notifications template notify app-sync-succeeded guestbook
Options¶
-h, --help help for notify
--recipient stringArray List of recipients (default [console:stdout])
Options inherited from parent commands¶
--argocd-repo-server string Argo CD repo server address (default "argocd-repo-server:8081")
--as string Username to impersonate for the operation
--as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--certificate-authority string Path to a cert file for the certificate authority
--client-certificate string Path to a client certificate file for TLS
--client-key string Path to a client key file for TLS
--cluster string The name of the kubeconfig cluster to use
--config-map string argocd-notifications-cm.yaml file path
--context string The name of the kubeconfig context to use
--insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig string Path to a kube config. Only required if out-of-cluster
-n, --namespace string If present, the namespace scope for this CLI request
--password string Password for basic authentication to the API server
--request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0")
--secret string argocd-notifications-secret.yaml file path. Use empty secret if provided value is ':empty'
--server string The address and port of the Kubernetes API server
--tls-server-name string If provided, this name will be used to validate server certificate. If this is not provided, hostname used to contact the server is used.
--token string Bearer token for authentication to the API server
--user string The name of the kubeconfig user to use
--username string Username for basic authentication to the API server
argocd-notifications trigger get¶
Prints information about configured triggers
argocd-notifications trigger get [flags]
Examples¶
# prints all triggers
argocd-notifications trigger get
# print YAML formatted on-sync-failed trigger definition
argocd-notifications trigger get on-sync-failed -o=yaml
Options¶
-h, --help help for get
-o, --output string Output format. One of:json|yaml|wide|name (default "wide")
Options inherited from parent commands¶
--argocd-repo-server string Argo CD repo server address (default "argocd-repo-server:8081")
--as string Username to impersonate for the operation
--as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--certificate-authority string Path to a cert file for the certificate authority
--client-certificate string Path to a client certificate file for TLS
--client-key string Path to a client key file for TLS
--cluster string The name of the kubeconfig cluster to use
--config-map string argocd-notifications-cm.yaml file path
--context string The name of the kubeconfig context to use
--insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig string Path to a kube config. Only required if out-of-cluster
-n, --namespace string If present, the namespace scope for this CLI request
--password string Password for basic authentication to the API server
--request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0")
--secret string argocd-notifications-secret.yaml file path. Use empty secret if provided value is ':empty'
--server string The address and port of the Kubernetes API server
--tls-server-name string If provided, this name will be used to validate server certificate. If this is not provided, hostname used to contact the server is used.
--token string Bearer token for authentication to the API server
--user string The name of the kubeconfig user to use
--username string Username for basic authentication to the API server
argocd-notifications trigger run¶
Evaluates specified trigger condition and prints the result
argocd-notifications trigger run NAME APPLICATION [flags]
Examples¶
# Execute trigger configured in 'argocd-notification-cm' ConfigMap
argocd-notifications trigger run on-sync-status-unknown ./sample-app.yaml
# Execute trigger using argocd-notifications-cm.yaml instead of 'argocd-notification-cm' ConfigMap
argocd-notifications trigger run on-sync-status-unknown ./sample-app.yaml \
--config-map ./argocd-notifications-cm.yaml
Options¶
-h, --help help for run
Options inherited from parent commands¶
--argocd-repo-server string Argo CD repo server address (default "argocd-repo-server:8081")
--as string Username to impersonate for the operation
--as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--certificate-authority string Path to a cert file for the certificate authority
--client-certificate string Path to a client certificate file for TLS
--client-key string Path to a client key file for TLS
--cluster string The name of the kubeconfig cluster to use
--config-map string argocd-notifications-cm.yaml file path
--context string The name of the kubeconfig context to use
--insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig string Path to a kube config. Only required if out-of-cluster
-n, --namespace string If present, the namespace scope for this CLI request
--password string Password for basic authentication to the API server
--request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0")
--secret string argocd-notifications-secret.yaml file path. Use empty secret if provided value is ':empty'
--server string The address and port of the Kubernetes API server
--tls-server-name string If provided, this name will be used to validate server certificate. If this is not provided, hostname used to contact the server is used.
--token string Bearer token for authentication to the API server
--user string The name of the kubeconfig user to use
--username string Username for basic authentication to the API server