Chart: Add controller.service.trafficDistribution
. (#12571)
This commit is contained in:
parent
1ece0ddbc1
commit
506ded73b1
6 changed files with 46 additions and 0 deletions
|
@ -468,6 +468,7 @@ metadata:
|
||||||
| controller.service.internal.ports | object | `{}` | |
|
| controller.service.internal.ports | object | `{}` | |
|
||||||
| controller.service.internal.sessionAffinity | string | `""` | Session affinity of the internal controller service. Must be either "None" or "ClientIP" if set. Defaults to "None". Ref: https://kubernetes.io/docs/reference/networking/virtual-ips/#session-affinity |
|
| controller.service.internal.sessionAffinity | string | `""` | Session affinity of the internal controller service. Must be either "None" or "ClientIP" if set. Defaults to "None". Ref: https://kubernetes.io/docs/reference/networking/virtual-ips/#session-affinity |
|
||||||
| controller.service.internal.targetPorts | object | `{}` | |
|
| controller.service.internal.targetPorts | object | `{}` | |
|
||||||
|
| controller.service.internal.trafficDistribution | string | `""` | Traffic distribution policy of the internal controller service. Set to "PreferClose" to route traffic to endpoints that are topologically closer to the client. Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution |
|
||||||
| controller.service.internal.type | string | `""` | Type of the internal controller service. Defaults to the value of `controller.service.type`. Ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types |
|
| controller.service.internal.type | string | `""` | Type of the internal controller service. Defaults to the value of `controller.service.type`. Ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types |
|
||||||
| controller.service.ipFamilies | list | `["IPv4"]` | List of IP families (e.g. IPv4, IPv6) assigned to the external controller service. This field is usually assigned automatically based on cluster configuration and the `ipFamilyPolicy` field. Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services |
|
| controller.service.ipFamilies | list | `["IPv4"]` | List of IP families (e.g. IPv4, IPv6) assigned to the external controller service. This field is usually assigned automatically based on cluster configuration and the `ipFamilyPolicy` field. Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services |
|
||||||
| controller.service.ipFamilyPolicy | string | `"SingleStack"` | Represents the dual-stack capabilities of the external controller service. Possible values are SingleStack, PreferDualStack or RequireDualStack. Fields `ipFamilies` and `clusterIP` depend on the value of this field. Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services |
|
| controller.service.ipFamilyPolicy | string | `"SingleStack"` | Represents the dual-stack capabilities of the external controller service. Possible values are SingleStack, PreferDualStack or RequireDualStack. Fields `ipFamilies` and `clusterIP` depend on the value of this field. Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services |
|
||||||
|
@ -484,6 +485,7 @@ metadata:
|
||||||
| controller.service.sessionAffinity | string | `""` | Session affinity of the external controller service. Must be either "None" or "ClientIP" if set. Defaults to "None". Ref: https://kubernetes.io/docs/reference/networking/virtual-ips/#session-affinity |
|
| controller.service.sessionAffinity | string | `""` | Session affinity of the external controller service. Must be either "None" or "ClientIP" if set. Defaults to "None". Ref: https://kubernetes.io/docs/reference/networking/virtual-ips/#session-affinity |
|
||||||
| controller.service.targetPorts.http | string | `"http"` | Port of the ingress controller the external HTTP listener is mapped to. |
|
| controller.service.targetPorts.http | string | `"http"` | Port of the ingress controller the external HTTP listener is mapped to. |
|
||||||
| controller.service.targetPorts.https | string | `"https"` | Port of the ingress controller the external HTTPS listener is mapped to. |
|
| controller.service.targetPorts.https | string | `"https"` | Port of the ingress controller the external HTTPS listener is mapped to. |
|
||||||
|
| controller.service.trafficDistribution | string | `""` | Traffic distribution policy of the external controller service. Set to "PreferClose" to route traffic to endpoints that are topologically closer to the client. Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution |
|
||||||
| controller.service.type | string | `"LoadBalancer"` | Type of the external controller service. Ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types |
|
| controller.service.type | string | `"LoadBalancer"` | Type of the external controller service. Ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types |
|
||||||
| controller.shareProcessNamespace | bool | `false` | |
|
| controller.shareProcessNamespace | bool | `false` | |
|
||||||
| controller.sysctls | object | `{}` | sysctls for controller pods # Ref: https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ |
|
| controller.sysctls | object | `{}` | sysctls for controller pods # Ref: https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ |
|
||||||
|
|
|
@ -46,6 +46,11 @@ spec:
|
||||||
{{- if .Values.controller.service.internal.healthCheckNodePort }}
|
{{- if .Values.controller.service.internal.healthCheckNodePort }}
|
||||||
healthCheckNodePort: {{ .Values.controller.service.internal.healthCheckNodePort }}
|
healthCheckNodePort: {{ .Values.controller.service.internal.healthCheckNodePort }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if semverCompare ">=1.31.0-0" .Capabilities.KubeVersion.Version -}}
|
||||||
|
{{- if .Values.controller.service.internal.trafficDistribution }}
|
||||||
|
trafficDistribution: {{ .Values.controller.service.internal.trafficDistribution }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
{{- if semverCompare ">=1.21.0-0" .Capabilities.KubeVersion.Version -}}
|
{{- if semverCompare ">=1.21.0-0" .Capabilities.KubeVersion.Version -}}
|
||||||
{{- if .Values.controller.service.internal.ipFamilyPolicy }}
|
{{- if .Values.controller.service.internal.ipFamilyPolicy }}
|
||||||
ipFamilyPolicy: {{ .Values.controller.service.internal.ipFamilyPolicy }}
|
ipFamilyPolicy: {{ .Values.controller.service.internal.ipFamilyPolicy }}
|
||||||
|
|
|
@ -46,6 +46,11 @@ spec:
|
||||||
{{- if .Values.controller.service.healthCheckNodePort }}
|
{{- if .Values.controller.service.healthCheckNodePort }}
|
||||||
healthCheckNodePort: {{ .Values.controller.service.healthCheckNodePort }}
|
healthCheckNodePort: {{ .Values.controller.service.healthCheckNodePort }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if semverCompare ">=1.31.0-0" .Capabilities.KubeVersion.Version -}}
|
||||||
|
{{- if .Values.controller.service.trafficDistribution }}
|
||||||
|
trafficDistribution: {{ .Values.controller.service.trafficDistribution }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
{{- if semverCompare ">=1.21.0-0" .Capabilities.KubeVersion.Version -}}
|
{{- if semverCompare ">=1.21.0-0" .Capabilities.KubeVersion.Version -}}
|
||||||
{{- if .Values.controller.service.ipFamilyPolicy }}
|
{{- if .Values.controller.service.ipFamilyPolicy }}
|
||||||
ipFamilyPolicy: {{ .Values.controller.service.ipFamilyPolicy }}
|
ipFamilyPolicy: {{ .Values.controller.service.ipFamilyPolicy }}
|
||||||
|
|
|
@ -47,3 +47,17 @@ tests:
|
||||||
value:
|
value:
|
||||||
- 10.0.0.1
|
- 10.0.0.1
|
||||||
- fd00::1
|
- fd00::1
|
||||||
|
|
||||||
|
- it: should create a Service with `trafficDistribution` if `controller.service.internal.trafficDistribution` is set
|
||||||
|
capabilities:
|
||||||
|
majorVersion: 1
|
||||||
|
minorVersion: 31
|
||||||
|
set:
|
||||||
|
controller.service.internal.enabled: true
|
||||||
|
controller.service.internal.annotations:
|
||||||
|
test.annotation: "true"
|
||||||
|
controller.service.internal.trafficDistribution: PreferClose
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.trafficDistribution
|
||||||
|
value: PreferClose
|
||||||
|
|
|
@ -50,3 +50,15 @@ tests:
|
||||||
value:
|
value:
|
||||||
- 10.0.0.1
|
- 10.0.0.1
|
||||||
- fd00::1
|
- fd00::1
|
||||||
|
|
||||||
|
- it: should create a Service with `trafficDistribution` if `controller.service.trafficDistribution` is set
|
||||||
|
capabilities:
|
||||||
|
majorVersion: 1
|
||||||
|
minorVersion: 31
|
||||||
|
set:
|
||||||
|
controller.service.external.enabled: true
|
||||||
|
controller.service.trafficDistribution: PreferClose
|
||||||
|
asserts:
|
||||||
|
- equal:
|
||||||
|
path: spec.trafficDistribution
|
||||||
|
value: PreferClose
|
||||||
|
|
|
@ -527,6 +527,10 @@ controller:
|
||||||
# Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
|
# Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
|
||||||
# healthCheckNodePort: 0
|
# healthCheckNodePort: 0
|
||||||
|
|
||||||
|
# -- Traffic distribution policy of the external controller service. Set to "PreferClose" to route traffic to endpoints that are topologically closer to the client.
|
||||||
|
# Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
|
||||||
|
trafficDistribution: ""
|
||||||
|
|
||||||
# -- Represents the dual-stack capabilities of the external controller service. Possible values are SingleStack, PreferDualStack or RequireDualStack.
|
# -- Represents the dual-stack capabilities of the external controller service. Possible values are SingleStack, PreferDualStack or RequireDualStack.
|
||||||
# Fields `ipFamilies` and `clusterIP` depend on the value of this field.
|
# Fields `ipFamilies` and `clusterIP` depend on the value of this field.
|
||||||
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
|
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
|
||||||
|
@ -611,6 +615,10 @@ controller:
|
||||||
# Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
|
# Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
|
||||||
# healthCheckNodePort: 0
|
# healthCheckNodePort: 0
|
||||||
|
|
||||||
|
# -- Traffic distribution policy of the internal controller service. Set to "PreferClose" to route traffic to endpoints that are topologically closer to the client.
|
||||||
|
# Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
|
||||||
|
trafficDistribution: ""
|
||||||
|
|
||||||
# -- Represents the dual-stack capabilities of the internal controller service. Possible values are SingleStack, PreferDualStack or RequireDualStack.
|
# -- Represents the dual-stack capabilities of the internal controller service. Possible values are SingleStack, PreferDualStack or RequireDualStack.
|
||||||
# Fields `ipFamilies` and `clusterIP` depend on the value of this field.
|
# Fields `ipFamilies` and `clusterIP` depend on the value of this field.
|
||||||
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
|
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
|
||||||
|
|
Loading…
Reference in a new issue