argoproj-labs / argocd-image-updater

Automatic container image update for Argo CD
https://argocd-image-updater.readthedocs.io/en/stable/
Apache License 2.0
1.29k stars 265 forks source link

Deployment Changes Not Reflecting in Argo CD UI with Git-Write-Back Method #652

Open MinaMohammadi opened 11 months ago

MinaMohammadi commented 11 months ago

What is my probem?

Greetings,

I'm currently facing an issue with my setup. I've installed Argo CD version v2.9.1 along with Helm Chart version 5.51.4 on my cluster. Additionally, I've installed Argo CD Image Updater version v0.12.2 with Helm Chart version 0.9.1 to manage the deployment of new program versions. My configuration in Argo CD Image Updater employs the argocd method for staging and the git-write-back method for production.

Application

This is my Application config file:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  annotations:
    argocd-image-updater.argoproj.io/image-list: 'cephs3sync={{ cephs3sync_image_url }}'
    argocd-image-updater.argoproj.io/cephs3sync.pull-secret: 'pullsecret:argocd/registry'
    argocd-image-updater.argoproj.io/cephs3sync.update-strategy: '{{ 'latest' if stagingcluster is defined and stagingcluster | default(false) else 'semver' }}'
    argocd-image-updater.argoproj.io/cephs3sync.force-update: 'true'
{% if not stagingcluster | default(false) %}
    argocd-image-updater.argoproj.io/cephs3sync.allow-tags: 'regexp:^[0-9]+(\.[0-9]+){0,2}$'
{% endif %}
  finalizers:
    - resources-finalizer.argocd.argoproj.io
  name: cephs3sync
  namespace: argocd
spec:
  project: default
  source:
    helm:
      valueFiles:
        - values.yaml
      parameters:
        - name: image.repository
          value: '{{ cephs3sync_image_url }}'
        - name: image.tag
          value: '{{ cephs3sync_image_tag }}'
    repoURL: https://{{ git_url }}/iaas/cephs3sync.git
    path: charts
    targetRevision: '{{ 'dev' if stagingcluster is defined and stagingcluster | default(false) else 'main' }}'
  destination:
    server: https://kubernetes.default.svc
    namespace: interface
  syncPolicy:
{% if stagingcluster is defined and stagingcluster | default(false) %}
    automated:
      selfHeal: true
      prune: true
      allowEmpty: false
{% endif %}
    syncOptions:
      - CreateNamespace=true
      - Validate=true
      - PruneLast=true
      - PrunePropagationPolicy=foreground
      - Replace=true
      - ApplyOutOfSyncOnly=true

While the first method(argocd method) operates smoothly, I've encountered an issue with the second method(git-write-back method) where the program doesn't reflect any changes in the Argo CD UI. After thorough investigation, I reviewed the logs of all containers, and there were no apparent errors or problems.

Argo CD Image Updater Logs

Furthermore, I've noted that there might be additional insights in the Argo CD Image Updater logs during the notice and redeployment of the new version of my app.

time="2023-12-05T14:52:28Z" level=info msg="Successfully updated image 'reg.arr.com/interface/prod/cephs3sync:0.4.2' to 'reg.arr.com/interface/prod/cephs3sync:0.4.3', but pending spec update (dry run=false)" alias=cephs3sync application=cephs3sync image_name=interface/prod/cephs3sync image_tag=0.4.2 registry=reg.arr.com
time="2023-12-05T14:52:28Z" level=info msg="Committing 1 parameter update(s) for application cephs3sync" application=cephs3sync
time="2023-12-05T14:52:28Z" level=info msg="Initializing https://git.arr.com/iaas/cephs3sync.git to /tmp/git-cephs3sync3949202410"
time="2023-12-05T14:52:28Z" level=info msg="rm -rf /tmp/git-cephs3sync3949202410" dir= execID=443e4
time="2023-12-05T14:52:28Z" level=info msg=Trace args="[rm -rf /tmp/git-cephs3sync3949202410]" dir= operation_name="exec rm" time_ms=1.803898
time="2023-12-05T14:52:28Z" level=info msg="git fetch origin --tags --force" dir=/tmp/git-cephs3sync3949202410 execID=12bd4
time="2023-12-05T14:52:29Z" level=info msg=Trace args="[git fetch origin --tags --force]" dir=/tmp/git-cephs3sync3949202410 operation_name="exec git" time_ms=1043.440004
time="2023-12-05T14:52:29Z" level=info msg="git config user.name argocd-image-updater" dir=/tmp/git-cephs3sync3949202410 execID=2adbf
time="2023-12-05T14:52:29Z" level=info msg=Trace args="[git config user.name argocd-image-updater]" dir=/tmp/git-cephs3sync3949202410 operation_name="exec git" time_ms=3.326561
time="2023-12-05T14:52:29Z" level=info msg="git config user.email noreply@argoproj.io" dir=/tmp/git-cephs3sync3949202410 execID=37e0b
time="2023-12-05T14:52:29Z" level=info msg=Trace args="[git config user.email noreply@argoproj.io]" dir=/tmp/git-cephs3sync3949202410 operation_name="exec git" time_ms=8.85276
time="2023-12-05T14:52:29Z" level=info msg="git checkout --force argocd" dir=/tmp/git-cephs3sync3949202410 execID=3bd3a
time="2023-12-05T14:52:29Z" level=info msg=Trace args="[git checkout --force argocd]" dir=/tmp/git-cephs3sync3949202410 operation_name="exec git" time_ms=30.662612999999997
time="2023-12-05T14:52:29Z" level=info msg="git clean -fdx" dir=/tmp/git-cephs3sync3949202410 execID=b80e3
time="2023-12-05T14:52:29Z" level=info msg=Trace args="[git clean -fdx]" dir=/tmp/git-cephs3sync3949202410 operation_name="exec git" time_ms=5.5891530000000005
time="2023-12-05T14:52:29Z" level=info msg="Successfully updated the live application spec" application=cephs3sync
time="2023-12-05T14:52:29Z" level=info msg="Processing results: applications=1 images_considered=1 images_skipped=0 images_updated=1 errors=0"

As you can see through the above logs, the Argo CD Image Updater appears to be working fine with no problems.

Argo CD UI

Additionally, in the photo below, you will notice that even in the Argo CD UI, the changes are displayed, indicating that the version of the program has transitioned from 0.4.2 to 0.4.3. However, despite this UI indication, the program is not deployed to the next version.

image

I would appreciate it if you could investigate and follow up on this problem.

gouravjoshicldcvr commented 3 months ago

Hi Team, Do we have any update on this we are facing the same issue.

chengfang commented 3 months ago

Did you configure write-back-target properly? For ex,

    argocd-image-updater.argoproj.io/write-back-method: git:secret:argocd/xxx
    argocd-image-updater.argoproj.io/write-back-target: helmvalues:/apps/workflows/staging/values.yaml

See docs https://argocd-image-updater.readthedocs.io/en/stable/basics/update-methods/#git-write-back-target

gouravjoshicldcvr commented 3 months ago

yes it is working in few apps but not working with other apps and all the config are same just the change in docker image but it worked now Solution: We changed image name and container name in the deployment.yaml file so it started updating this also I cleaned up redis cache as well. but I am still not sure why it was not picking older image name