-
Notifications
You must be signed in to change notification settings - Fork 31
/
_service-cluster.tpl
36 lines (34 loc) · 1.2 KB
/
_service-cluster.tpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{{- define "pinglib.service-cluster.tpl" -}}
{{- $top := index . 0 -}}
{{- $v := index . 1 -}}
apiVersion: v1
kind: Service
metadata:
{{ include "pinglib.metadata.labels" . | nindent 2 }}
{{ include "pinglib.metadata.annotations" . | nindent 2 }}
{{- if $v.services.clusterExternalDNSHostname }}
annotations:
{{ include "pinglib.metadata.annotations" . | nindent 2 }}
external-dns.alpha.kubernetes.io/hostname: {{ $v.services.clusterExternalDNSHostname }}
{{- end }}
name: {{ include "pinglib.fullclusterservicename" . }}
spec:
type: ClusterIP
clusterIP: None
ports:
{{- range $serviceName, $val := $v.services }}
{{- if kindIs "map" $val }}
{{- if $val.clusterService }}
- name: {{ $serviceName }}
port: {{ required "containerPort is required for services with clusterService:true" $val.containerPort }}
# targetPort isn't provided as it will ALWAYS be the same as the
# port of the service,since it's a type:ClusterIP or headless
# service
protocol: {{ default "TCP" $val.protocol }}
{{- end }}
{{- end }}
{{- end }}
{{- end -}}
{{- define "pinglib.service-cluster" -}}
{{- include "pinglib.merge.templates" (append . "service-cluster") -}}
{{- end -}}