diff --git a/jupyterhub/templates/proxy/service.yaml b/jupyterhub/templates/proxy/service.yaml index 13321a0265..aa487bf052 100644 --- a/jupyterhub/templates/proxy/service.yaml +++ b/jupyterhub/templates/proxy/service.yaml @@ -81,3 +81,7 @@ spec: {{- . | toYaml | nindent 4 }} {{- end }} {{- end }} + {{- with .Values.proxy.service.externalIPs }} + externalIPs: + {{- . | toYaml | nindent 4 }} + {{- end }} diff --git a/jupyterhub/values.schema.yaml b/jupyterhub/values.schema.yaml index d74d990cc6..3a2821b43a 100644 --- a/jupyterhub/values.schema.yaml +++ b/jupyterhub/values.schema.yaml @@ -1751,6 +1751,12 @@ properties: See [the Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#serviceport-v1-core) for the structure of the items in this list. + externalIPs: + type: array + description: | + A list of external IP addresses (unmanaged by Kubernetes) for which + nodes in the cluster will accept traffic for this service. + See [externalIPs](https://kubernetes.io/docs/concepts/services-networking/service/#external-ips) for more details. loadBalancerIP: type: [string, "null"] description: | diff --git a/jupyterhub/values.yaml b/jupyterhub/values.yaml index 5b79d6b36f..df32e184c6 100644 --- a/jupyterhub/values.yaml +++ b/jupyterhub/values.yaml @@ -196,6 +196,7 @@ proxy: https: disableHttpPort: false extraPorts: [] + externalIPs: [] loadBalancerIP: loadBalancerSourceRanges: [] # chp relates to the proxy pod, which is responsible for routing traffic based diff --git a/tools/templates/lint-and-validate-values.yaml b/tools/templates/lint-and-validate-values.yaml index 921e756387..ed597f53fa 100644 --- a/tools/templates/lint-and-validate-values.yaml +++ b/tools/templates/lint-and-validate-values.yaml @@ -223,6 +223,9 @@ proxy: nodePorts: http: https: + externalIPs: + - 123.123.123.123 + - 123.123.123.124 chp: revisionHistoryLimit: 1 extraCommandLineFlags: