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
Add dnsendpoint
CRD to Helm chart
#4322
Conversation
Welcome @onedr0p! |
Hi @onedr0p. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@stevehipwell as discussed in #2640 I have put this in the
If the maintainers or community decide to remove support or change the CRD, it can be updated as such from the Helm chart moving forward but I see no blockers for adding this right now. |
/ok-to-test |
It makes sense to me. |
@mloiseleur should I update the chart version? If so to what version? |
Nope. Release of the chart are done in a dedicated PR. See for instance this one. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@onedr0p I've added some review comments and you also need to add an entry to the CHANGELOG for each chart PR.
That said I'm not convinced that adding the CRD to the Helm chart is the right move. Firstly adding a CRD to a _Helm_chart means that by default everyone who installs the chart will also install the CRD; this makes sense where the CRD is required or likely to be required (given the constraints below), but in this case I suspect users of the CRD are in the minority. Secondly as Helm shouldn't be used for managing CRDs (it will only install them and never modify them) adding the CRD would only help the small subset of users who want to use the CRD and are putting together a quick POC (for a non-GA CRD this is even worse). On balance I think adding the CRD makes the chart experience worse for more users than better.
/hold
Co-authored-by: Steve Hipwell <steve.hipwell@gmail.com>
Co-authored-by: Steve Hipwell <steve.hipwell@gmail.com>
Co-authored-by: Steve Hipwell <steve.hipwell@gmail.com>
@stevehipwell changes made. For me, adding the DNSEndpoint CR actually improves the experience since I am using Flux and it can upgrade the CRDs (I suspect this is the same for Argo users). Having the CRD in the chart means I don't need to apply it manually or install it out-of-band of the chart itself. |
@onedr0p in this case Helm isn't managing the CRD and you're just using it as a lookup for Flux (which should be setting the |
@stevehipwell I wonder if it would be good to change the upgrade/install command in the charts README to include Important By default this chart will install the Does that make sense? |
@onedr0p the more I think about this the less I think we should do this. In your use case all you'd need to do is add the CRD to your Flux repo as a raw manifest, given that it hasn't changed in a long time it doesn't seem like there is a usability problem to solve here (you could add repo automation to either keep this updated if it ever changed or block if there is a drift). If the CRD looks like it's going to start changing more regularly then the following options would be a better fit than adding the CRD to the chart.
|
This is what I already do, but it's not ideal. I and others would love for this to be handled by the chart since it's currently a "supported" feature of the application. I get Helm doesn't make this easy... but it seems like you have some strong biases against adding CRDs to charts in general where a lot of projects include them (to name one of many node-feature-discovery). I really don't see how adding them here will degrade UX for people using the chart especially if documented but I digress 🤷🏼 It's unfortunate but I can close this PR and never bring it up again if you won't budge. At least the conversation on trying to add the CRDs exists for anyone in the future trying to contribute the same change. |
@onedr0p I'm not saying I wont budge; what I'm saying is that adding a CRD to each cluster with ExternalDNS installed where the end user isn't aware of the Given the current state of play I think the next step would be to figure out if there is a requirement from enough people to have a Helm style CRD installation method (e.g. CRD chart or For me the following scenarios would warrant a reevaluation.
|
It feels like your reason not to include the CRD, are assuming that:
I personally find As @onedr0p already stated, other If a chart installs a CRD, and they try to manually manage it externally anyways, they'll find out pretty quickly. Either way, count me as an End user using the method that would implemented by this PR |
I've read you concerns but I still really don't know what we're trying to protect against here by not merging this PR. It seems we're at a conflict at how managing Charts that contain CRDs should be handled. I and others would like the chart to handle CRDs either by the That other idea to template the CRDs and have a I really feel like having a Job or a separate helm chart for just the CRDs is not the right way to go and this is evident by how many application and Helm Chart developers do not actually handle the CRDs this way. Here's a list of some kubernetes-sigs applications that have Helm charts with crds included by either templated or
From my experience most applications that have CRDs and implement a Helm chart are doing it one of those two ways and not the ways you have described. Please reconsider ❤️ |
I think in this case, one should have a precise and non-general reason to deviate from the standards set by nearly every other project catering a helm-chart. TLDR, unless there is a good reason against it, +1 on including the CRD as-well. |
I agree that current status of CRD with Helm CLI is not convenient. CLI of Helm v3 is out there since a long time, and so, CRDs limitations are known by many Helm CLI users. At least, (other) IaC tools handle CRDs of a Chart in a more convenient way. => As an Considering that this CRD has not been modified in the last 3 years, it makes sense to me to put it in |
I agree; it makes sense to include the CRD in the chart. So many others do it this way, and it seems it's the preferred way going forward. |
Thanks for your feedback @mloiseleur, if the CRD is effectively a core part of ExternalDNS I see no reason not to include it. Let's get this merged so it can be included in #4357. @onedr0p @joryirving @Ornias1993 @buroa; I'd like to point out that the argument that "other charts do something, so we should too" isn't a valid one. A lot of Helm charts lack curation and as such often implement functionality before considering the wider context and then are unable to revert the changes. Functionality should be evaluated by merit within the specific context where it's being applied. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR @onedr0p.
/approve
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: stevehipwell The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/unhold |
/label tide/merge-method-squash |
It's great to finally see this in the helm chart. I'm finally able to use this "new" CR now. Maybe it would make sense to enable the Custom Resource service by default? external-dns/charts/external-dns/values.yaml Lines 199 to 203 in f5545b1
Currently, the ClusterRole is not allowed to monitor the Custom Resource: external-dns/charts/external-dns/templates/clusterrole.yaml Lines 50 to 57 in f5545b1
(thanks for pushing it though @onedr0p) |
@Skaronator I am OK with it not being a default source in the chart as that is easy enough to override. |
I would like to point out thats essentially a strawman argument. There is a difference between informal standards set by the industry, by big names as cert-manager, traefik, bitnami, velero etcetcetc and random other helm charts. No one here pointed out to follow random other helm charts, but the standards set by big names including in the very same repo you're responding on. |
@Ornias1993 you realise I maintain this chart? The informal standards you refer to sound and awful lot like cargo culting. None of the charts you referenced would be in my list of "idiomatic" charts to base out of context decisions on. |
Thanks for adding the CRD to the chart! --
@onedr0p
cilium/cilium does their CRDs on the chart too and think it's pretty neat and well thought out. |
Description
Taken from https://github.com/kubernetes-sigs/external-dns/tree/master/docs/contributing/crd-source
Fixes: #2640
Checklist