feat: add Node Readiness Controller (nrc) minikube addon#22924
feat: add Node Readiness Controller (nrc) minikube addon#22924arnab-logs wants to merge 3 commits into
Conversation
|
Can one of the admins verify this patch? |
|
/retest |
|
/ok-to-test |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: arnab-logs 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 |
There was a problem hiding this comment.
Pull request overview
This PR introduces a new Minikube addon (nrc) to deploy the Node Readiness Controller, including its controller Pod manifest and the NodeReadinessRule CRD, enabling minikube start --addons=nrc.
Changes:
- Registered a new
nrcaddon with embedded CRD + controller Pod template and a pinned controller image. - Added
nrcto the addons configuration list so it can be enabled/disabled via standard addon flows. - Minor formatting/whitespace-only changes in existing CI/minitest/release scripts.
Reviewed changes
Copilot reviewed 5 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/minikube/assets/addons.go | Registers the nrc addon and its assets/images (but currently introduces a filename collision risk). |
| pkg/addons/config.go | Adds nrc to the addon config list (enable/disable support). |
| deploy/addons/nrc/nrc.yaml.tmpl | Adds the controller Pod template (scheduling + image templating concerns). |
| deploy/addons/nrc/crds.yaml | Adds the NodeReadinessRule CRD manifest. |
| deploy/addons/assets.go | Embeds NRC addon assets into the binary. |
| hack/prow/minitest/tester/vfkit_docker_macos_arm64_integration.go | Formatting-only change. |
| hack/prow/minitest/main.go | Formatting-only change. |
| hack/jenkins/release_update_releases_json.go | Formatting-only change. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| path: /etc/kubernetes/admin.conf | ||
| type: File | ||
| - name: nrc-kubeconfig | ||
| emptyDir: {} |
| # Init container to prepare a readable kubeconfig for the non-root manager. | ||
| initContainers: | ||
| - name: prepare-kubeconfig | ||
| image: busybox:latest |
| mountPath: /tmp/kubeconfig | ||
| containers: | ||
| - name: manager | ||
| image: {{.CustomRegistries.NrcController | default .Registries.NrcController}}{{.Images.NrcController}} |
| { | ||
| name: "nrc", | ||
| set: SetBool, | ||
| callbacks: []setFn{EnableOrDisableAddon}, |
| "Kubetail": "docker.io", | ||
| }, nil), | ||
| "nrc": NewAddon([]*BinAsset{ | ||
| MustBinAsset(addons.NrcAssets, "nrc/crds.yaml", vmpath.GuestAddonsDir, "crds.yaml", "0640"), |
This comment has been minimized.
This comment has been minimized.
|
@arnab-logs: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. 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. I understand the commands that are listed here. |
|
kvm2 driver with docker runtime DetailsTimes for minikube start: 38.6s 40.0s 38.4s 39.2s 40.1s Times for minikube ingress: 19.3s 19.3s 18.8s 19.3s 19.3s docker driver with docker runtime DetailsTimes for minikube start: 18.6s 21.0s 21.6s 19.1s 21.8s Times for minikube ingress: 12.6s 12.7s 12.2s 12.6s 12.1s docker driver with containerd runtime DetailsTimes for minikube ingress: 25.1s 24.6s 24.6s 25.1s 24.6s Times for minikube start: 16.0s 16.8s 16.6s 20.1s 17.1s |
Fixes kubernetes-sigs/node-readiness-controller#188
cc: @ajaysundark
What this PR does
This PR adds a new Minikube addon for the Node Readiness Controller (NRC).
This addon is part of enabling easier adoption and testing of NRC and enables a lifecycle-managed way to deploy NRC in Minikube using:
minikube start --addons=nrcImplementation details
nrcNodeReadinessRulekube-systemnamespacekubernetes.io/minikube-addons: nrcHow to test
Build and start
Verify installation
Verify scheduling (control-plane)
Check logs
Disable and cleanup
Verify cleanup: