Skip to content

A service that bridges traditional pipelines and GitOps, improving deployment visibility. Includes a built-in GitOps repo updater.

License

Notifications You must be signed in to change notification settings

shini4i/argo-watcher

Repository files navigation

Argo Watcher

The project bridges traditional pipelines and GitOps, improving deployment visibility with Argo CD Image Updater and a built-in GitOps repo updater

GitHub Actions GitHub go.mod Go version GitHub release (latest by date) codecov Go Report Card Documentation Status GitHub

Showcase

Why Use Argo Watcher

Argo Watcher not only addresses the critical challenge of visibility during deployments with Argo CD Image Updater but also introduces optional built-in image updater.

It actively monitors the ArgoCD API for application changes and synchronizes the status of your image-related modifications, streamlining and potentially accelerating your deployment processes.

Prerequisites

  1. ArgoCD
  2. Argo CD Image Updater (we encourage you to try out built-in GitOps repo updater instead)
  3. CI/CD solution of your choice

Possible workflow

A possible workflow with Argo Watcher:

  1. Build and Deploy: Build a new Docker image of your application and push it to your image repository.
  2. Monitoring Setup: Run an Argo Watcher Client job after the new image is pushed. This job oversees the deployment process.
  3. Image Update in GitOps repo: Argo CD Image Updater or Argo Watcher commits the updated image tag to the GitOps repository, triggering deployment.
  4. Deployment Monitoring: Argo Watcher monitors and reports the deployment status in real-time.
  5. Pipeline Status Reporting: The client returns an exit code reflecting the deployment task status, marking the workflow's completion.
Showcase

Tip

In addition to pipeline logs, the whole process can be observed through the web UI.

Documentation

The up to date documentation is available here: argo-watcher.readthedocs.io.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.