docs: add Helm installation guide - #388
Conversation
✅ Deploy Preview for node-readiness-controller ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: tejassinghbhati The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Hi @tejassinghbhati. 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 Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions 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-sigs/prow repository. |
Ayush4958
left a comment
There was a problem hiding this comment.
It's great documentation but i got some suggestion for it :-
- we should add helm upgrade section after initial installing it can be great for use
- mention that users can supply their own overrides file using
-f custom-values.yaml
Review feedback on kubernetes-sigs#388. Covers keeping settings in a values file rather than a long --set list, and upgrading an existing release, with a pointer to the CRD note since Helm will not update the CRD on upgrade. Signed-off-by: tejassinghbhati <tejassinghbhati077@gmail.com>
|
Good calls, added both in 9fde2a2. There is a values file section now with |
Review feedback on kubernetes-sigs#388. Covers keeping settings in a values file rather than a long --set list, and upgrading an existing release, with a pointer to the CRD note since Helm will not update the CRD on upgrade. Signed-off-by: tejassinghbhati <tejassinghbhati077@gmail.com>
9fde2a2 to
8b8bd68
Compare
|
Rebased on main and added a section for the controller tuning values that landed in #392, since they were not in the chart when I opened this. Checked all six flags exist in cmd/main.go and rendered them to confirm they only get passed when moved off their defaults. Chart tests are at 31 now, all green. |
The chart has been in the repo since kubernetes-sigs#163 but Helm is not mentioned anywhere in the book, so the install page only covered release manifests, kustomize and static pods. Adds a Helm section covering install from a checkout, since OCI chart releases are still WIP, which values turn on metrics, TLS and the validating webhook, and how to ship rules through the chart. Also documents two things that bite people and are specific to Helm. Helm only installs the CRD from crds/ on first install and never upgrades it, so a chart bump that changes the schema needs the CRD applied by hand. And rules declared in values are release resources, so helm uninstall removes them together with the controller and the taint finalizer has no controller left to run, which is the stuck-resource case already documented further down the page. Signed-off-by: tejassinghbhati <tejassinghbhati077@gmail.com>
Review feedback on kubernetes-sigs#388. Covers keeping settings in a values file rather than a long --set list, and upgrading an existing release, with a pointer to the CRD note since Helm will not update the CRD on upgrade. Signed-off-by: tejassinghbhati <tejassinghbhati077@gmail.com>
The chart gained a controller block with concurrency, QPS and pprof settings after this PR was opened, so document them alongside the rest of the install options. Signed-off-by: tejassinghbhati <tejassinghbhati077@gmail.com>
The chart directory and name became node-readiness-controller in kubernetes-sigs#407, so the install, upgrade and uninstall commands in the Helm section needed updating along with the path to the bundled CRD. Also fixes the selector in Verification. It looked for component=node-readiness-controller, and nothing sets a component label, not the chart and not the kustomize manifests, so the command matched no pods on either path. Both set control-plane=controller-manager, so use that. A reader following the new Helm section lands on those commands straight after installing. Signed-off-by: tejassinghbhati <tejassinghbhati077@gmail.com>
8b8bd68 to
70e9163
Compare
|
Rebased for the chart rename in #407, so the install, upgrade and uninstall commands and the CRD path all use node-readiness-controller now. Also added a section for the tuning values from #392 since those landed after I opened this. One extra thing in here that predates the PR, flagging it so it does not look random. The Verification section looked for pods with Happy to pull that into its own PR if you would rather keep this one to Helm. |
Backing this out. kubernetes-sigs#401 was already filed and assigned for it, two days before I touched it, and the analysis there is better than mine. I claimed nothing sets a component label. That is wrong. examples/static-pod/node-readiness-controller.yaml sets it, and it is the only place in the repo that does. That pod carries component and tier and no control-plane label at all, so swapping the selector to control-plane=controller-manager would have broken verification for static pod installs, which is the one path where the documented command works today. Leaving the selector alone so kubernetes-sigs#401 can fix it properly per install path. Signed-off-by: tejassinghbhati <tejassinghbhati077@gmail.com>
|
Backed out the verification selector change in f3057ce, and I got it wrong twice over. #401 was already filed and assigned for this two days before I touched it, so it was not mine to fix. And my analysis was wrong anyway. I said nothing sets a component label. examples/static-pod/node-readiness-controller.yaml sets it, and it is the only place in the repo that does. That pod has component and tier and no control-plane label, so switching the selector to control-plane=controller-manager would have broken verification for static pod installs, the one path where the command currently works. So this PR is back to just the Helm section plus the rename and tuning updates. Sorry for the noise. |
Description
The chart has been in the repo since #163 but Helm is not mentioned anywhere in the book. The install page only covered release manifests, kustomize and static pods, so there was no documented Helm path at all.
Adds a Helm section to the installation guide covering install from a checkout, since OCI chart releases are still WIP, which values turn on metrics, TLS and the validating webhook, and how to ship rules through
nodeReadinessRules.It also documents two things that are specific to Helm and easy to get caught by:
Helm installs the CRD from
crds/on first install only and never touches it again, so a chart bump that changes the schema needs the CRD applied by hand or rules using new fields get rejected while the controller supports them. This is in the chart README already but not where someone following the install guide would see it.Rules declared in
nodeReadinessRulesare release resources, sohelm uninstalldeletes them together with the controller. The taint finalizer then has no controller left to run it, which is the stuck-resource case already documented further down the same page.Related Issue
Fixes #387
Type of Change
/kind documentation
Testing
Docs only, no code change. I checked every value and default against the chart rather than writing from memory.
leaderElection.enabledtrue,metrics.enabledandmetrics.securefalse,webhook.enabledandvalidatingWebhook.enabledfalse,certManager.enabledfalse. TheValidatingWebhookConfigurationis gated onand .Values.webhook.enabled .Values.validatingWebhook.enabled, which is why the guide says both are needed.I also rendered the exact commands in the guide. The default install produces the controller, RBAC and service account only. The full one produces what the table promises:
Checklist
make testpassesmake lintpassesDoes this PR introduce a user-facing change?