feature: add env variables for Kubernetes service#10188
Conversation
|
Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it. 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. |
|
Welcome @MehdiRtal! |
|
Hi @MehdiRtal. 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. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: MehdiRtal 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 updates the Helm chart for cloud-provider-azure to allow overriding the KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT environment variables, primarily to improve API server connectivity for components running with hostNetwork: true in certain Azure networking topologies.
Changes:
- Add new Helm values to configure custom Kubernetes service host/port.
- Inject
KUBERNETES_SERVICE_HOST/KUBERNETES_SERVICE_PORTinto the CCM and CNM (Linux + Windows) pod specs when configured. - Regenerate the Helm repo
index.yamlto include the updated chart package metadata.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
helm/repo/index.yaml |
Updates chart index metadata (timestamps/digest) for the newly packaged chart. |
helm/cloud-provider-azure/values.yaml |
Introduces new configurable values for Kubernetes service host/port overrides. |
helm/cloud-provider-azure/templates/cloud-provider-azure.yaml |
Adds conditional env-var injection into CCM/CNM workloads based on the new values. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| env: | ||
| {{- if .Values.k8sServiceHost }} |
| {{- if .Values.k8sServiceHost }} | ||
| - name: KUBERNETES_SERVICE_HOST | ||
| value: "{{ .Values.k8sServiceHost }}" | ||
| {{- end }} | ||
| {{- if .Values.k8sServicePort }} |
| k8sServiceHost: "" | ||
| k8sServicePort: "" |
|
@mboersma what do you think of this change? |
|
PR needs rebase. 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. |
What type of PR is this?
/kind feature
What this PR does / why we need it:
The Problem: When a Pod is running in hostNetwork: true mode, it inherits the network namespace of the host. By default, Kubernetes injects KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT pointing to the internal ClusterIP of the API server. In certain Azure networking topologies (or when using specific local proxies), these default values can be unreachable or conflict with host-level services.
The Fix: This PR introduces the ability to specify custom values for these variables. This ensures that host-networked components (like the Azure Cloud Controller Manager or Node-level agents) can reliably reach the API server via a specific endpoint (e.g., a Load Balancer IP or localhost) rather than the default ClusterIP.
Which issue(s) this PR fixes:
NONE
Special notes for your reviewer:
Does this PR introduce a user-facing change?
Allows overriding KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT for components running in hostNetwork mode to improve connectivity in complex Azure networking environments.