ArgoCD Integration

Argo CD is a declarative GitOps continuous delivery tool for Kubernetes. It watches your Git repositories and automatically syncs the desired state into your cluster. Through its Notifications Engine, Argo CD can push webhook events to external systems like itoc360 whenever an application's sync or health status changes — making it straightforward to wire on-call alerting directly into your deployment pipeline.

Prerequisites

  • Docker Desktop installed and running

  • minikube and kubectl available on your machine

  • An ITOC360 source token for Argo CD

Setting Up a Local Kubernetes Cluster

Since Argo CD runs inside Kubernetes, you need a local cluster first. Install minikube via Homebrew if you haven't already:

brew install minikube

Then start the cluster using Docker as the driver:

minikube start --driver=docker

Minikube will pull the necessary images and initialize a single-node cluster. The whole process takes a couple of minutes depending on your connection speed.

Installing Argo CD

Create a dedicated namespace and apply the official Argo CD manifest:

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

This installs all the Argo CD components — server, application controller, notifications controller, Redis, and the supporting RBAC configuration.

Wait for the server pod to become ready before proceeding:

Once you see condition met, open a port-forward so you can reach the UI locally:

Retrieve the initial admin password:

Open https://localhost:8081 in your browser (accept the self-signed certificate warning), log in with username admin and the password you just retrieved.

Creating a Test Application

Argo CD's notification system only fires when an Application resource exists. Create one that tracks a public example repository:

After a few seconds the application card appears in the Argo CD dashboard.

Configuring the Notification Webhook

Argo CD sends notifications through the argocd-notifications-cm ConfigMap. Apply the following to configure the ITOC360 webhook, the message template, and the trigger rules:

Then subscribe the test application to the trigger:

How It Works

Whenever the itoc360-test application changes state, the notifications controller fires a POST request to your ITOC360 endpoint with a JSON body containing the application name, sync status, health status, destination namespace, and cluster server URL.

itoc360 maps these fields as follows:

  • health_status: Degraded or sync_status: OutOfSyncALERT, HIGH priority

  • health_status: MissingALERT, HIGH priority

  • health_status: ProgressingALERT, MEDIUM priority

  • sync_status: Synced and health_status: HealthyRESOLVE

Alerts are correlated by application name and namespace, so a degraded deployment and its eventual recovery are treated as a single incident lifecycle.

Verifying the Integration

Trigger a manual sync to confirm the webhook fires end-to-end:

You should see the application transition through its sync phases in the Argo CD UI, and a corresponding alert appear in your ITOC360 dashboard within a few seconds.

Last updated

Was this helpful?