• Stars
    star
    1,220
  • Rank 38,152 (Top 0.8 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated 8 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Automatic container image update for Argo CD

Argo CD Image Updater

Integration tests Documentation Status codecov Go Report Card

Introduction

Argo CD Image Updater is a tool to automatically update the container images of Kubernetes workloads which are managed by Argo CD. In a nutshell, it will track image versions specified by annotations on the Argo CD Application resources and update them by setting parameter overrides using the Argo CD API.

Currently it will only work with applications that are built using Kustomize or Helm tooling. Applications built from plain YAML or custom tools are not supported yet (and maybe never will).

Documentation

Read the documentation for more information on how to setup and run Argo CD Image Updater and to get known to it's features and limitations.

Above URL points to the documentation for the current release. If you are interested in documentation of upcoming features, check out the the latest documentation which is up-to-date with the master branch.

Current status

Argo CD Image Updater is under active development. We would not recommend it yet for critical production workloads, but feel free to give it a spin.

We're very interested in feedback on usability and the user experience as well as in bug discoveries and enhancement requests.

Important note: Until the first stable version (i.e. v1.0) is released, breaking changes between the releases must be expected. We will do our best to indicate all breaking changes (and how to un-break them) in the Changelog

Contributing

You are welcome to contribute to this project by means of raising issues for bugs, sending & discussing enhancement ideas or by contributing code via pull requests.

In any case, please be sure that you have read & understood the currently known design limitations before raising issues.

Also, if you want to contribute code, please make sure that your code

  • has its functionality covered by unit tests (coverage goal is 80%),
  • is correctly linted,
  • is well commented,
  • and last but not least is compatible with our license and CLA

Please note that in the current early phase of development, the code base is a fast moving target and lots of refactoring will happen constantly.

License

argocd-image-updater is open source software, released under the Apache 2.0 license

Things that are planned (roadmap)

The following things are on the roadmap until the v1.0 release

  • Extend Argo CD functionality to be able to update images for other types of applications.

  • Extend Argo CD functionality to write back to Git

  • Provide web hook support to trigger update check for a given image

  • Use concurrency for updating multiple applications at once

  • Improve error handling

  • Support for image tags with i.e. Git commit SHAs

For more details, check out the v1.0.0 milestone

Frequently asked questions

Does it write back the changes to Git?

We're happy to announce that as of v0.9.0 and Argo CD v1.9.0, Argo CD Image Updater is able to commit changes to Git. It will not modify your application's manifests, but instead writes Parameter Overrides to the repository.

We think that this is a good compromise between functionality (have everything in Git) and ease-of-use (minimize conflicts).

Are there plans to extend functionality beyond Kustomize or Helm?

Not yet, since we are dependent upon what functionality Argo CD provides for these types of applications.

Will it ever be fully integrated with Argo CD?

In the current form, probably not. If there is community demand for it, let's see how we can make this happen.

There is an open proposal to migrate this project into the argoproj org (out of the argoproj-labs org) and include it in the installation of Argo CD.

More Repositories

1

argocd-autopilot

Argo-CD Autopilot
Go
889
star
2

argocd-vault-plugin

An Argo CD plugin to retrieve secrets from Secret Management tools and inject them into Kubernetes secrets
Go
805
star
3

argocd-operator

A Kubernetes operator for managing Argo CD clusters.
Go
625
star
4

hera

Hera is an Argo Python SDK. Hera aims to make construction and submission of various Argo Project resources easy and accessible to everyone! Hera abstracts away low-level setup details while still maintaining a consistent vocabulary with Argo. ⭐️ Remember to star!
Python
559
star
5

argocd-notifications

Notifications for Argo CD
Go
492
star
6

terraform-provider-argocd

Terraform provider for ArgoCD
Go
397
star
7

old-argo-dataflow

Dataflow is a Kubernetes-native platform for executing large parallel data-processing pipelines.
Go
268
star
8

rollout-extension

Argo Rollout visualization in Argo CD Web UI
TypeScript
186
star
9

argocd-bot

Bot to automate Kubernetes deployment via Github PRs
TypeScript
135
star
10

argocd-extension-metrics

An Argo CD extension to enable visualization of metrics in Argo CD UI.
TypeScript
115
star
11

argocd-extensions

Support for extending Argo CD
Go
108
star
12

argo-python-dsl

Python DSL for Argo Workflows
Python
99
star
13

argo-kube-notifier

Argo Kube Notifier controller monitors Kubernetes resources
Go
95
star
14

rollouts-plugin-trafficrouter-gatewayapi

The Argo Rollouts plugin implementing the Kubernetes Gateway API specification for using different traffic providers in progressive delivery scenarios
Go
92
star
15

argo-rollouts-manager

Kubernetes Operator for Argo Rollouts controller.
Go
90
star
16

argo-workflows-catalog

Argo Workflows Catalog
Go
86
star
17

gordian

Gordian applies transformations to files across multiple github repositories and creates pull requests for the owners of the repositories to review and merge them.
Python
78
star
18

argocd-interlace

Enabling Software Supply Chain Security Capabilities in ArgoCD
Go
78
star
19

argo-client-python

⚠️⚠️⚠️This repository is no longer maintained, please find your Java SDKs https://github.com/argoproj/argo-workflows/blob/master/docs/client-libraries.md ⚠️⚠️⚠️
Python
78
star
20

argocd-agent

Redefining the multi cluster story of Argo CD
Go
48
star
21

argo-client-java

⚠️This repository is no longer maintained, please find your Java SDKs https://github.com/argoproj/argo-workflows/blob/master/docs/client-libraries.md
Java
35
star
22

appsource

Automatically self-serviced applications for ArgoCD.
Go
24
star
23

argocd-extension-installer

Install Argo CD extensions using init-containers
Shell
17
star
24

rollouts-plugin-trafficrouter-contour

The Argo Rollouts plugin implementing the Contour HTTPProxy traffic control in progressive delivery scenarios.
Go
15
star
25

argocd-rbac-operator

Kubernetes Operator for Argo CD RBAC Management.
Go
14
star
26

applicationset-hello-plugin

Python
13
star
27

community

Community documents for argoproj-labs
12
star
28

argo-java-client

Created java data model from argo project by it's swagger files. Argo proj does use Kubernetes api so this client only contains Model and no APIs
Java
12
star
29

argoverse

ShaderLab
11
star
30

training-material

Shell
8
star
31

argo-client-gen

⚠️⚠️⚠️This repository is no longer maintained, please find your Java SDKs https://github.com/argoproj/argo-workflows/blob/master/docs/client-libraries.md ⚠️⚠️⚠️
8
star
32

gitops-promoter

A GitOps Environment Promotion Tool
Go
7
star
33

multi-cluster-kubernetes

Proof of concept of amalgamating multiple Kubernetes APIs into a single view
Go
6
star
34

argo-cd-benchmarking

JavaScript
6
star
35

argo-cd-tokens

Go
6
star
36

argo-workflows-slack-executor-plugin

Python
5
star
37

argocd-example-extension

JavaScript
5
star
38

argo-workflows-python-executor-plugin

Python
5
star
39

argo-graph

TypeScript
4
star
40

rollouts-plugin-trafficrouter-consul

Argo Rollouts Plugin for Consul Service Mesh
Go
4
star
41

friends

Projects which would love to associate themselves with the Argo ecosystem of projects!
4
star
42

argo-workflows-events-workshop

3
star
43

couler

This project has been moved to https://github.com/couler-proj/couler
3
star
44

argo-eventbus

Go
3
star
45

argocd-ephemeral-access

A kubernetes controller to manage Argo CD temporary access
Go
3
star
46

argocd-cmp-plugin-examples

2
star
47

terraform-provider-argocd-old

2
star
48

argo-workflows-hello-executor-plugin

Python
1
star
49

rollouts-opsmx-metric-plugin

Argo Rollouts plugin implementation for logs and metrics analysis
1
star
50

rollouts-plugin-trafficrouter-openshift

Go
1
star