argo-cd icon indicating copy to clipboard operation
argo-cd copied to clipboard

feat(ui): implement abstraction layer for appset ui support

Open pjiang-dev opened this issue 3 months ago • 4 comments

Originally part of the AppSet UI PR: https://github.com/argoproj/argo-cd/pull/16689/files#diff-7035eb962aa6d0d147a318d9d131f4ce457e91e9f6aa4ac4a6ce0c5133616564 we are breaking it down to make it easier to review/test/

This PR introduces an abstraction layer for handling both Application and ApplicationSet types throughout the UI codebase. This is a foundational change that prepares the codebase to support ApplicationSet features in the future without duplicating code.

This PR should have zero functional impact on the UI. All existing Application functionality works exactly as before. No user-facing features are added or changed. Since no ApplicationSet routes exist:pathname is always /applications/*

This abstraction layer sets the foundation for future PRs that will:

  1. Add ApplicationSet UI Components - Create panels, details views, etc.
  2. Add ApplicationSet Routes - Enable navigation to /applicationsets

Each of these can now be implemented without duplicating all the Application code and reduce chance of regressions

Checklist:

  • [x] 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.
  • [x] The title of the PR states what changed and the related issues number (used for the release note).
  • [x] The title of the PR conforms to the Title of the PR
  • [ ] 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).

pjiang-dev avatar Oct 09 '25 23:10 pjiang-dev

:x: Preview Environment deleted from Bunnyshell

Available commands (reply to this comment):

  • :rocket: /bns:deploy to deploy the environment

bunnyshell[bot] avatar Oct 09 '25 23:10 bunnyshell[bot]

@reggie-k @keithchong Could you review and let me know your thoughts on this. Thanks!

pjiang-dev avatar Oct 22 '25 17:10 pjiang-dev

Maybe even create a corresponding abstract type on the backend that both types will extend (need to check whether this would introduce a big API change or not).

@reggie-k I believe creating an abstract type on the backend would be a breaking change as changing struct inheritance would alter the CRD schema and the code generation expects concrete types ect.

I added some more docs with the common / specific properties for the 2 types. Please take a look to see if it makes sense. Thanks!

pjiang-dev avatar Oct 25 '25 00:10 pjiang-dev

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 62.45%. Comparing base (7c0f032) to head (18bff30). :warning: Report is 3 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #24916      +/-   ##
==========================================
+ Coverage   62.43%   62.45%   +0.01%     
==========================================
  Files         351      351              
  Lines       49477    49490      +13     
==========================================
+ Hits        30893    30911      +18     
+ Misses      15620    15618       -2     
+ Partials     2964     2961       -3     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Oct 25 '25 00:10 codecov[bot]

Took a look at generated changes, looks okay to me!

crenshaw-dev avatar Dec 04 '25 19:12 crenshaw-dev