support annotations on loadbalancer services for metallb
authorMike Ludwig <mludwig@mitre.org>
Tue, 20 Oct 2020 22:54:26 +0000 (18:54 -0400)
committerMike Ludwig <mludwig@mitre.org>
Thu, 22 Oct 2020 14:31:06 +0000 (10:31 -0400)
Arvados-DCO-1.1-Signed-off-by: Michael Ludwig <michael.david.ludwig@gmail.com>

charts/arvados/templates/api-server-service.yaml
charts/arvados/templates/keep-proxy-service.yaml
charts/arvados/templates/keep-web-service.yaml
charts/arvados/templates/sso-service.yaml
charts/arvados/templates/workbench-service.yaml
charts/arvados/templates/ws-service.yaml
charts/arvados/values.yaml

index b1b9e8b04f7974dbd9039b89e2b8e74736809daf..1be78e7a4dc63f0a9d36f0c5eaeec0ac05625f10 100644 (file)
@@ -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
index 4a3fcff59cef439e98c154e3ed18f767f1307a7f..e1842733b98162efb841361d8ec3ab37b05bc17c 100644 (file)
@@ -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 }}
index 6789e9ba54619b7d8913c98571bccbdd38d594e8..389fbdbf927f57b31455fd35692892dbd66cbe6c 100644 (file)
@@ -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 }}
index fd9ad1a472ac45df083cbd04404044b3ed3d04bd..31f5e8d6897fc691f8fb0cc0d32cb19bc060b0f0 100644 (file)
@@ -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 }}
index a12aa225dea8bdb0f53120a1cc40f1e139e46018..cd2d9e82d08486c60d1c9e3ebb847b3b220de336 100644 (file)
@@ -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 }}
index 8dcf9d2cc27039cfab86c3d34a001a4e31c33f5d..f6978b444870dc911fd5744a120feb234e1d642a 100644 (file)
@@ -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 }}
index e17804c039c7a58208c4c19f217684133a2b5667..1336eed66a46c08bbe1d4220364c6dba77bf1a50 100644 (file)
@@ -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"