Skip to content

Argo CD Version Tags

Coralogix provides seamless integration with Argo CD so you can push tags to Coralogix automatically from your Argo CD pipelines.

Prerequisites

  • Have Argo CD installed, for more information on how to install: https://argo-cd.readthedocs.io/en/stable/getting_started/

  • Have Argo CD Notifications and Triggers and templates installed, for more information on how to install: https://argocd-notifications.readthedocs.io/en/stable/

  • To use this API you need to create a personal or team API key. It’s recommended to use permission presets, as they are automatically updated with all relevant permissions. Alternatively, you can manually add individual permissions.

    PresetActionDescription
    CICDIntegrationVERSION-BENCHMARK-TAGS:READ
    VERSION-BENCHMARKS-REPORTS:READ
    VERSION-BENCHMARK-TAGS:UPDATE
    View Version Benchmark Tags
    View Version Benchmark Reports
    Modify Version Benchmark Tags

Configuration

Add the Coralogix API Key to argocd-notifications-secret Secret:

apiVersion: v1
kind: Secret
metadata:
  name: argocd-notifications-secret
type: Opaque
stringData:
  coralogix-api-token: <cx_api_key>

Add webhooktemplate and trigger to argocd-notifications-cm ConfigMap. Select the Version Tags endpoint corresponding with your Coralogix domain for the url.

apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-notifications-cm
data:
  service.webhook.coralogix: |
    url: <version-tags-endpoint>
    headers:
    - name: Authorization
      value: Bearer $coralogix-api-token
    - name: Content-Type
      value: application/json
  template.coralogix: |
    webhook:
      coralogix:
        method: POST
        body: |
          {
            "name": "{{.app.status.sync.revision}}",
            "application": ["{{.app.spec.project}}"],
            "subsystem": ["{{.app.metadata.name}}"],
            "iconUrl": "https://raw.githubusercontent.com/coralogix/integrations-docs/master/integrations/argocd/images/argocd.png"
          }
  trigger.coralogix-on-success: |
    - when: app.status.operationState.phase in ['Succeeded']
      send: [coralogix]

There are 2 ways to publish a patch with the added annotation. Either create a .yml and perform the patch by specifying the patch file or use a command with the patch written into it.

  • The .yml file:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: <deployed-app-name>
  annotations:
    notifications.argoproj.io/subscribe.coralogix-on-success.coralogix: ""
  • The command:
kubectl patch app <deployed-app-name> -n argocd -p '{"metadata": {"annotations": {"notifications.argoproj.io/subscribe.coralogix-on-success.coralogix": ""}}}' --type merge

In Argocd, enter the deployed app in which the notifications were added under the annotations field to check if the patch was successfully created. You will find the Coralogix notification.
Each time the application syncs in Argocd, it automatically sends a tag to the Coralogix dashboard.