Skip to content

Conversation

aali309
Copy link
Contributor

@aali309 aali309 commented Apr 24, 2025

Fixes: #14463

This PR integrates ProgressiveSync feature in UI
SEE: #10048
Checklist:

  • Either (a) I've created an enhancement proposal and discussed it with the community, (b) this is a bug fix, or (c) this does not need to be in the release notes.
  • The title of the PR states what changed and the related issues number (used for the release note).
  • The title of the PR conforms to the Toolchain Guide
  • I've included "Closes [ISSUE #]" or "Fixes [ISSUE #]" in the description to automatically close the associated issue.
  • I've updated both the CLI and UI to expose my feature, or I plan to submit a second PR with them.
  • Does this PR require documentation updates?
  • I've updated documentation as required by this PR.
  • I have signed off all my commits as required by DCO
  • I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged.
  • My build is green (troubleshooting builds).
  • My new feature complies with the feature status guidelines.
  • I have added a brief description of why this PR is necessary and/or what this PR solves.
  • Optional. My organization is added to USERS.md.
  • Optional. For bug fixes, I've indicated what older releases this fix should be cherry-picked into (this may or may not happen depending on risk/complexity).

Copy link

bunnyshell bot commented Apr 24, 2025

❌ Preview Environment deleted from Bunnyshell

Available commands (reply to this comment):

  • 🚀 /bns:deploy to deploy the environment

@aali309
Copy link
Contributor Author

aali309 commented Apr 25, 2025

First APP healthy, app3 progressing and app4 waiting

app1

Screenshot 2025-04-25 at 10 03 07 AM

app3

Screenshot 2025-04-25 at 10 03 29 AM

app4

Screenshot 2025-04-25 at 10 03 46 AM

    message: ApplicationSet Rollout Rollout started
    reason: ApplicationSetModified
    status: "True"
    type: RolloutProgressing
  resources:
  - group: argoproj.io
    health:
      lastTransitionTime: "2025-04-25T13:52:10Z"
      status: Healthy
    kind: Application
    name: app1-dev
    namespace: argocd-e2e
    status: Synced
    version: v1alpha1
  - group: argoproj.io
    health:
      lastTransitionTime: "2025-04-25T14:02:28Z"
      status: Progressing
    kind: Application
    name: app3-staging
    namespace: argocd-e2e
    status: Synced
    version: v1alpha1
  - group: argoproj.io
    health:
      lastTransitionTime: "2025-04-25T13:23:35Z"
      status: Missing
    kind: Application
    name: app4-prod
    namespace: argocd-e2e
    status: OutOfSync
    version: v1alpha1

This matches what you're seeing in the UI:

app1-dev:
Sync: Synced
Health: Healthy
Environment: dev
Status: Completed successfully
app3-staging:
Sync: Synced
Health: Progressing
Environment: staging
Status: Currently deploying
app4-prod:
Sync: OutOfSync
Health: Missing
Environment: prod
Status: Waiting for app3-staging to complete

@aali309
Copy link
Contributor Author

aali309 commented Apr 25, 2025

POV after all apps become healthy and PROGRESSIVE SYNC completed

D/w/R/argo-cd (progressive-sync)> kubectl get application -n argocd-e2e -o wide
NAME           SYNC STATUS   HEALTH STATUS   REVISION                                   PROJECT
app1-dev       Synced        Healthy         09a3b35beb76e6cc5eaab6fa9193a8c2448b4a39   default
app3-staging   Synced        Healthy         09a3b35beb76e6cc5eaab6fa9193a8c2448b4a39   default
app4-prod      Synced        Healthy         09a3b35beb76e6cc5eaab6fa9193a8c2448b4a39   default
atali@atali-mac ~/D/w/R/argo-cd (progressive-sync)> 
    type: RolloutProgressing
  resources:
  - group: argoproj.io
    health:
      lastTransitionTime: "2025-04-25T13:52:10Z"
      status: Healthy
    kind: Application
    name: app1-dev
    namespace: argocd-e2e
    status: Synced
    version: v1alpha1
  - group: argoproj.io
    health:
      lastTransitionTime: "2025-04-25T14:27:25Z"
      status: Healthy
    kind: Application
    name: app3-staging
    namespace: argocd-e2e
    status: Synced
    version: v1alpha1
  - group: argoproj.io
    health:
      lastTransitionTime: "2025-04-25T14:39:20Z"
      status: Healthy
    kind: Application
    name: app4-prod
    namespace: argocd-e2e
    status: Synced
    version: v1alpha1

app1-dev

Screenshot 2025-04-25 at 10 56 40 AM

app3-staging

Screenshot 2025-04-25 at 10 57 24 AM

app4-prod

Screenshot 2025-04-25 at 10 57 59 AM

@aali309 aali309 force-pushed the progressive-sync branch 2 times, most recently from c830700 to 10c7392 Compare April 25, 2025 17:22
@aali309 aali309 marked this pull request as ready for review April 25, 2025 17:22
@aali309 aali309 requested a review from a team as a code owner April 25, 2025 17:22
@aali309 aali309 force-pushed the progressive-sync branch 3 times, most recently from e3930df to 84332d0 Compare May 5, 2025 14:25
@aali309 aali309 force-pushed the progressive-sync branch from 84332d0 to fc25f9a Compare May 7, 2025 12:57
@aali309 aali309 requested a review from keithchong May 7, 2025 18:02
@aali309 aali309 force-pushed the progressive-sync branch from cda8036 to 4e714ea Compare May 7, 2025 18:03
Copy link
Contributor

@keithchong keithchong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @aali309 , just one comment.

if (!appSetRef) {
return false;
}
const appSet = await services.applications.getApplicationSet(appSetRef.name, application.metadata.namespace);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You return null right away in the original implementation which is probably ok but it looks like it will wait for that API call.

I wonder if you could consider refactoring the code in such a way that this API call could also be made within the (same or another) DataLoader, so the call is done asynchronously, so if this first step fails or there is no owner reference, we don't show anything.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@keithchong, PTAL

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. You're calling getApplicationSet once now.

@aali309 aali309 force-pushed the progressive-sync branch from 953a975 to cf0cc55 Compare May 13, 2025 16:55
@aali309 aali309 requested a review from keithchong May 13, 2025 16:55
aali309 added 5 commits May 14, 2025 14:39
Signed-off-by: Atif Ali <atali@redhat.com>

fix formatting

Signed-off-by: Atif Ali <atali@redhat.com>

clean up

Signed-off-by: Atif Ali <atali@redhat.com>

restore original imports structure

Signed-off-by: Atif Ali <atali@redhat.com>
Signed-off-by: Atif Ali <atali@redhat.com>
Signed-off-by: Atif Ali <atali@redhat.com>
Signed-off-by: Atif Ali <atali@redhat.com>
Signed-off-by: Atif Ali <atali@redhat.com>
@aali309 aali309 force-pushed the progressive-sync branch from cf0cc55 to 0eb9891 Compare May 14, 2025 18:39
Copy link
Contributor

@keithchong keithchong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@keithchong keithchong merged commit 9675487 into argoproj:master May 14, 2025
23 checks passed
LyhengTep pushed a commit to LyhengTep/argo-cd that referenced this pull request May 15, 2025
Signed-off-by: Atif Ali <atali@redhat.com>
LyhengTep pushed a commit to LyhengTep/argo-cd that referenced this pull request May 15, 2025
Signed-off-by: Atif Ali <atali@redhat.com>
Signed-off-by: Lyheng <lyhengtep@gmail.com>
ranakan19 pushed a commit to ranakan19/argo-cd that referenced this pull request May 20, 2025
Signed-off-by: Atif Ali <atali@redhat.com>
Signed-off-by: Kanika Rana <krana@redhat.com>
olivergondza pushed a commit to olivergondza/argo-cd that referenced this pull request May 20, 2025
Signed-off-by: Atif Ali <atali@redhat.com>
Signed-off-by: Oliver Gondža <ogondza@gmail.com>
tylerrosnett pushed a commit to StateFarmIns/argo-cd that referenced this pull request May 27, 2025
Signed-off-by: Atif Ali <atali@redhat.com>
chansuke pushed a commit to chansuke/argo-cd that referenced this pull request Jun 4, 2025
Signed-off-by: Atif Ali <atali@redhat.com>
dsuhinin pushed a commit to dsuhinin/argo-cd that referenced this pull request Jun 16, 2025
Signed-off-by: Atif Ali <atali@redhat.com>
Signed-off-by: dsuhinin <suhinin.dmitriy@gmail.com>
dsuhinin pushed a commit to dsuhinin/argo-cd that referenced this pull request Jun 16, 2025
Signed-off-by: Atif Ali <atali@redhat.com>
Signed-off-by: dsuhinin <suhinin.dmitriy@gmail.com>
@reggie-k reggie-k mentioned this pull request Aug 19, 2025
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

UI integration for ProgressiveSync feature
4 participants