argocd-image-updater icon indicating copy to clipboard operation
argocd-image-updater copied to clipboard

Simplify bootstrapping/install process

Open hobbsh opened this issue 5 years ago • 4 comments

Is your feature request related to a problem? Please describe. First of all, this is an excellent addition to Argo and I think it should definitely be pulled in to the main project. This is an extremely critical feature to a GitOps flow imo.

Basically, the install process right now is cumbersome and hard to fully automate.

Current process:

  • Install raw manifests
  • Manually update image-updater configmap with repositories and Argo URLs
  • Create a local account in my argo-cd HelmRelease for image-updater (not a big deal)
  • Generate a new token for that user
  • Create a kubernetes secret from that token
  • Restart image-updater pod

Describe the solution you'd like

A helm chart would be a great start. I think a lot of this, if not all, could be automated with helm hooks or templating. Not completely sure about the user token though. Happy to contribute one if it makes sense.

Describe alternatives you've considered An alternative would be to fully integrate this component into Argo so no end-user configuration is required.

Additional context N/A

hobbsh avatar Oct 16 '20 19:10 hobbsh

Hi, I agree that manual installation of the image updater is quite bumpy and requires some effort on the user's side. Using Kustomize makes it a little better, but I totally see your point. In the long term, I think we want to make the image updater a component of Argo CD itself, but it's still some way to go until we reach a point where we can merge the code into Argo CD.

The main reason why there is no Helm chart is simply, that I am not much of a Helm user myself and have little to no experience writing Charts. Any contribution in this direction would be extremely appreciated. I remember that some people already offered to write a Chart, but as far as I know there is none yet.

I think the right place for such a contribution would be the community contributed Helm chart repository with the ArgoProj organization.

jannfis avatar Oct 17 '20 15:10 jannfis

@jannfis Added a chart here: https://github.com/argoproj/argo-helm/pull/477. One thing it does not do that would be nice is automatically hook up the image-updater service account to Argo CD. Can you think of an easier way to automate that? How do existing Argo components handle something like this?

hobbsh avatar Oct 20 '20 19:10 hobbsh

https://github.com/argoproj-labs/argocd-image-updater/issues/140 might simplify the installation process. If image updater assumes it is installed in Argo CD namespace then it can use K8S API to manage applications and token is no longer required.

Another enhancement is https://github.com/argoproj-labs/argocd-image-updater/issues/138 . Image updates might re-use repo credentials configured for Argo CD.

So if both enhancements are implemented then default installation manifests should work out-of-the box with public image registries.

alexmt avatar Jan 21 '21 06:01 alexmt

It looks like the feature added in https://github.com/argoproj-labs/argocd-image-updater/pull/144 enables the easy usage of the chart without needing to create a user and API key manuall. I've created a PR in https://github.com/argoproj/argo-helm/pull/918 to enable this functionality in the chart.

davidspek avatar Sep 02 '21 12:09 davidspek