From: Mike Ludwig Date: Tue, 20 Oct 2020 22:54:26 +0000 (-0400) Subject: support annotations on loadbalancer services for metallb X-Git-Url: https://git.arvados.org/arvados-k8s.git/commitdiff_plain/bfa408ab4ee94687301d41df60ca7aab9524290b support annotations on loadbalancer services for metallb Arvados-DCO-1.1-Signed-off-by: Michael Ludwig --- diff --git a/charts/arvados/templates/api-server-service.yaml b/charts/arvados/templates/api-server-service.yaml index b1b9e8b..1be78e7 100644 --- a/charts/arvados/templates/api-server-service.yaml +++ b/charts/arvados/templates/api-server-service.yaml @@ -11,9 +11,13 @@ metadata: chart: {{ template "arvados.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} + annotations: + {{- range $key, $value := .Values.loadBalancer.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} spec: type: LoadBalancer - externalTrafficPolicy: Local + externalTrafficPolicy: {{ .Values.loadBalancer.apiServerExternalTrafficPolicy }} loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }} ports: - name: http diff --git a/charts/arvados/templates/keep-proxy-service.yaml b/charts/arvados/templates/keep-proxy-service.yaml index 4a3fcff..e184273 100644 --- a/charts/arvados/templates/keep-proxy-service.yaml +++ b/charts/arvados/templates/keep-proxy-service.yaml @@ -12,6 +12,10 @@ metadata: chart: {{ template "arvados.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} + annotations: + {{- range $key, $value := .Values.loadBalancer.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} spec: type: LoadBalancer loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }} diff --git a/charts/arvados/templates/keep-web-service.yaml b/charts/arvados/templates/keep-web-service.yaml index 6789e9b..389fbdb 100644 --- a/charts/arvados/templates/keep-web-service.yaml +++ b/charts/arvados/templates/keep-web-service.yaml @@ -12,6 +12,10 @@ metadata: chart: {{ template "arvados.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} + annotations: + {{- range $key, $value := .Values.loadBalancer.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} spec: type: LoadBalancer loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }} diff --git a/charts/arvados/templates/sso-service.yaml b/charts/arvados/templates/sso-service.yaml index fd9ad1a..31f5e8d 100644 --- a/charts/arvados/templates/sso-service.yaml +++ b/charts/arvados/templates/sso-service.yaml @@ -11,6 +11,10 @@ metadata: chart: {{ template "arvados.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} + annotations: + {{- range $key, $value := .Values.loadBalancer.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} spec: type: LoadBalancer loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }} diff --git a/charts/arvados/templates/workbench-service.yaml b/charts/arvados/templates/workbench-service.yaml index a12aa22..cd2d9e8 100644 --- a/charts/arvados/templates/workbench-service.yaml +++ b/charts/arvados/templates/workbench-service.yaml @@ -11,6 +11,10 @@ metadata: chart: {{ template "arvados.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} + annotations: + {{- range $key, $value := .Values.loadBalancer.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} spec: type: LoadBalancer loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }} diff --git a/charts/arvados/templates/ws-service.yaml b/charts/arvados/templates/ws-service.yaml index 8dcf9d2..f6978b4 100644 --- a/charts/arvados/templates/ws-service.yaml +++ b/charts/arvados/templates/ws-service.yaml @@ -12,6 +12,10 @@ metadata: chart: {{ template "arvados.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} + annotations: + {{- range $key, $value := .Values.loadBalancer.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} spec: type: LoadBalancer loadBalancerIP: {{ required "A valid externalIP is required!" .Values.externalIP }} diff --git a/charts/arvados/values.yaml b/charts/arvados/values.yaml index e17804c..1336eed 100644 --- a/charts/arvados/values.yaml +++ b/charts/arvados/values.yaml @@ -13,6 +13,17 @@ image: # Must be set to a valid IP address, e.g. by using --set when invoking helm externalIP: ~ +loadBalancer: + # Annotations to add to all LoadBalancer Services. + # This is required for MetalLB, since the same externalIP is reused for all + # services, and sharing is disabled by default. + # metallb.universe.tf/allow-shared-ip: arbitrary-sharing-key + annotations: + + # externalTrafficPolicy for the api-server-service + # Set to Cluster if using MetalLB, otherwise an externalIP won't be allocated + apiServerExternalTrafficPolicy: Local + # The default e-mail address and password for the initial cluster admin user adminUserEmail: "test@example.com" adminUserPassword: "passw0rd"