|
@@ -0,0 +1,41 @@
|
|
|
+{{/*
|
|
|
+This template serves as a blueprint for all Service objects that are created
|
|
|
+within the common library.
|
|
|
+*/}}
|
|
|
+{{- define "common.classes.service" -}}
|
|
|
+{{- $values := . -}}
|
|
|
+{{- $serviceName := include "common.names.fullname" . -}}
|
|
|
+{{- if hasKey $values "nameSuffix" -}}
|
|
|
+ {{- $serviceName = printf "%v-%v" $serviceName $values.nameSuffix -}}
|
|
|
+{{ end -}}
|
|
|
+{{- $svcType := $values.type | default "" -}}
|
|
|
+apiVersion: v1
|
|
|
+kind: Service
|
|
|
+metadata:
|
|
|
+ name: {{ $serviceName }}
|
|
|
+ labels:
|
|
|
+ {{- include "common.labels" . | nindent 4 }}
|
|
|
+ {{- if $values.labels }}
|
|
|
+ {{ toYaml $values.labels | nindent 4 }}
|
|
|
+ {{- end }}
|
|
|
+ {{- if $values.annotations }}
|
|
|
+ {{- with $values.annotations }}
|
|
|
+ annotations:
|
|
|
+ {{ toYaml . | nindent 4 }}
|
|
|
+ {{- end }}
|
|
|
+ {{- end }}
|
|
|
+spec:
|
|
|
+ {{- if (or (eq $svcType "ClusterIP") (empty $svcType)) }}
|
|
|
+ type: ClusterIP
|
|
|
+ {{- if $values.clusterIP }}
|
|
|
+ clusterIP: {{ $values.clusterIP }}
|
|
|
+ {{end}}
|
|
|
+ {{- else if eq $svcType "NodePort" }}
|
|
|
+ type: {{ $svcType }}
|
|
|
+ {{- else }}
|
|
|
+ {{- fail "Only ClusterIP and NodePort services are supported in common chart" }}
|
|
|
+ {{- end }}
|
|
|
+ {{- include "common.classes.service.ports" (dict "svcType" $svcType "values" $values ) | trim | nindent 2 }}
|
|
|
+ selector:
|
|
|
+ {{- include "common.labels.selectorLabels" . | nindent 4 }}
|
|
|
+{{- end }}
|