Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Chart)!: 📦 add separated chart for CRDs #1223

Open
wants to merge 27 commits into
base: master
Choose a base branch
from

Conversation

darkweaver87
Copy link
Contributor

@darkweaver87 darkweaver87 commented Oct 14, 2024

What does this PR do?

This PR introduces a separate chart used by the main one to install CRDs.
The dependency between the main chart and the CRDs one will be added once CRDs one will be released.

Motivation

#1141
#1209

More

  • Yes, I updated the tests accordingly
  • Yes, I updated the schema accordingly
  • Yes, I ran make test and all the tests passed

@darkweaver87 darkweaver87 added kind/enhancement New feature or request kind/proposal a proposal that needs to be discussed. labels Oct 14, 2024
@darkweaver87 darkweaver87 force-pushed the feat/crds branch 2 times, most recently from bd35651 to b674cf7 Compare October 14, 2024 08:39
@darkweaver87 darkweaver87 changed the title feat: 📦 add separated chart for CRDs feat!: 📦 add separated chart for CRDs Oct 14, 2024
traefik/values.yaml Outdated Show resolved Hide resolved
Copy link
Contributor

@mloiseleur mloiseleur left a comment

Choose a reason for hiding this comment

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

  1. The CI needs to be tested, with a tag on your fork.
  2. The documented CRDs upgrade process should still work. I see (at least) two options:
    a. Keep and copy crd files
    b. Update CRD upgrade instruction to use them in the new directory

@darkweaver87 darkweaver87 force-pushed the feat/crds branch 2 times, most recently from e9619df to 6a67459 Compare October 21, 2024 06:50
@darkweaver87
Copy link
Contributor Author

darkweaver87 commented Oct 21, 2024

Tested on my own account as seen with you 👍

@darkweaver87
Copy link
Contributor Author

darkweaver87 commented Nov 22, 2024

I'm not strongly against option 1, but I think we will clearly lost users on the way. The approach of having a dependency chart seduced me at first because of managing all this compatibility complexity being a responsibility delegated to us.
With option 1, we will somehow, have to complete a compatibility matrix for users to know which version of CRD chart comes with which chart version or traefik/traefik-hub version.
Even for us, managing a crds will be a nightmare as we will have to maintain a CRD chat and a crds directory. Or, we need to test if symlinks work on charts.

The other option is keeping it that way:

  • people who don't want to bother with it and let us manage their CRDs for them will just need to set:
traefik-crds:
  traefik: true
  • people who want to manage two or more instances of traefik will just need to install the chart as previously and either manage CRDs by themselves or install the CRD chart (they will be able to find which version of the CRD chart comes with which version of traefik or traefik-hub following the dependencies section of the main chart)
  • people who want a specific version of traefik will fall in the previous case

However, even with the option 1, the main points remains how users can migrate from the previous system to the new one ? Adding the annotation works but the command I provided is mainly linux friendly :-)

@genebean
Copy link

It might be worth checking out how https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack is setup. It bundles https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-operator-crds in but has an option to not install them for when you want to manage them separately. I’ve been using that lately and it works well and isn’t too difficult.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot/no-merge kind/enhancement New feature or request kind/proposal a proposal that needs to be discussed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Don’t bundle Gateway API CRDs CRD only Helm chart for Traefik
4 participants