[SDNC] Fix service template for ServiceMesh case
[oom.git] / kubernetes / sdnc / templates / service.yaml
1 {{/*
2 # Copyright © 2017 Amdocs, Bell Canada
3 # Copyright © 2020 highstreet technologies GmbH
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 */}}
17
18 apiVersion: v1
19 kind: Service
20 metadata:
21   name: {{ include "common.servicename" . }}
22   namespace: {{ include "common.namespace" . }}
23   labels:
24     app: {{ include "common.name" . }}
25     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
26     release: {{ include "common.release" . }}
27     heritage: {{ .Release.Service }}
28   annotations:
29     msb.onap.org/service-info: '[
30       {
31           "serviceName": "sdnc",
32           "version": "v1",
33           "url": "/",
34           "protocol": "REST",
35           "port": "{{ .Values.service.externalPort }}",
36           "visualRange":"1",
37           "path": "/"
38       }
39       ]'
40 spec:
41   type: NodePort
42   ports:
43     - name: "{{ .Values.service.portName }}-restconf"
44       {{ if not .Values.global.aafEnabled }}
45       port: {{ .Values.service.externalPort }}
46       targetPort: {{ .Values.service.internalPort }}
47       {{- else -}}
48       port: {{ .Values.service.externalPort4 }}
49       targetPort: {{ .Values.service.internalPort4 }}
50       {{ end }}
51       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort4 }}
52   {{ if .Values.config.sdnr.enabled }}
53   sessionAffinity:  ClientIP
54   {{ end }}
55   selector:
56     app.kubernetes.io/name: {{ include "common.name" . }}
57     app.kubernetes.io/instance: {{ include "common.release" . }}
58 ---
59 apiVersion: v1
60 kind: Service
61 metadata:
62   name: "{{ .Values.service.name }}-oam"
63   namespace: {{ include "common.namespace" . }}
64   labels:
65     app: {{ include "common.name" . }}
66     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
67     release: {{ include "common.release" . }}
68     heritage: {{ .Release.Service }}
69 spec:
70   type: ClusterIP
71   ports:
72     - name: "{{ .Values.service.portName }}-restconf-alt"
73       port: {{ .Values.service.externalPort }}
74       targetPort: {{ .Values.service.internalPort }}
75     - name: "{{ .Values.service.portName }}-karaf"
76       port: {{ .Values.service.externalPort2 }}
77       targetPort: {{ .Values.service.internalPort2 }}
78   selector:
79     app.kubernetes.io/name: {{ include "common.name" . }}
80     app.kubernetes.io/instance: {{ include "common.release" . }}
81 ---
82 apiVersion: v1
83 kind: Service
84 metadata:
85   name: {{ .Values.service.portName }}-cluster
86   namespace: {{ include "common.namespace" . }}
87   labels:
88     app: {{ include "common.name" . }}
89     release: {{ include "common.release" . }}
90   annotations:
91     service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
92 spec:
93   ports:
94    - name: "{{ .Values.service.portName }}-cluster-port"
95      port: {{ .Values.service.clusterPort }}
96   clusterIP: None
97   selector:
98     app.kubernetes.io/name: {{ include "common.name" . }}
99     app.kubernetes.io/instance: {{ include "common.release" . }}
100   sessionAffinity: None
101   type: ClusterIP
102
103 {{ if .Values.config.geoEnabled }}
104 ---
105 apiVersion: v1
106 kind: Service
107 metadata:
108   name: sdnhost-{{ include "common.servicename" . }}-0
109   namespace: {{ .Release.Namespace }}
110   labels:
111     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
112 spec:
113   ports:
114   - name: {{ .Values.service.portName }}-0-port-{{ .Values.service.internalPort4 }}
115     port: {{ .Values.service.clusterPort2 }}
116     targetPort: {{ .Values.service.internalPort4 }}
117     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort4 }}
118   - name: {{ .Values.service.portName }}-0-port-{{ .Values.service.internalPort }}
119     port: {{ .Values.service.clusterPort3 }}
120     targetPort: {{ .Values.service.internalPort }}
121     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort1 }}
122   type: NodePort
123   selector:
124     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
125 {{ end }}
126 {{ if .Values.config.geoEnabled }}
127 ---
128 apiVersion: v1
129 kind: Service
130 metadata:
131   name: sdnhost-{{ include "common.servicename" . }}-1
132   namespace: {{ .Release.Namespace }}
133   labels:
134     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-1
135 spec:
136   ports:
137   - name: {{ .Values.service.portName }}-1-port-{{ .Values.service.internalPort4 }}
138     port: {{ .Values.service.clusterPort2 }}
139     targetPort: {{ .Values.service.internalPort4 }}
140     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort5 }}
141   - name: {{ .Values.service.portName }}-1-port-{{ .Values.service.internalPort }}
142     port: {{ .Values.service.clusterPort3 }}
143     targetPort: {{ .Values.service.internalPort }}
144     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort2 }}
145   type: NodePort
146   selector:
147     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-1
148 {{ end }}
149 {{ if .Values.config.geoEnabled }}
150 ---
151 apiVersion: v1
152 kind: Service
153 metadata:
154   name: sdnhost-{{ include "common.servicename" . }}-2
155   namespace: {{ .Release.Namespace }}
156   labels:
157     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-2
158 spec:
159   ports:
160   - name: {{ .Values.service.portName }}-2-port-{{ .Values.service.internalPort4 }}
161     port: {{ .Values.service.clusterPort2 }}
162     targetPort: {{ .Values.service.internalPort4 }}
163     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort6 }}
164   - name: {{ .Values.service.portName }}-2-port-{{ .Values.service.internalPort }}
165     port: {{ .Values.service.clusterPort3 }}
166     targetPort: {{ .Values.service.internalPort }}
167     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort3 }}
168   type: NodePort
169   selector:
170     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-2
171 {{ end }}
172
173 {{ if .Values.config.sdnr.netconfCallHome.enabled }}
174 ---
175 apiVersion: v1
176 kind: Service
177 metadata:
178   name: {{ include "common.servicename" . }}-callhome
179   namespace: {{ include "common.namespace" . }}
180   labels:
181     app: {{ include "common.name" . }}
182     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
183     release: {{ include "common.release" . }}
184     heritage: {{ .Release.Service }}
185 spec:
186   type: NodePort
187   ports:
188     - name: "{{ .Values.service.portName }}-callhome"
189       port: {{ .Values.service.callHomePort }}
190       targetPort: {{ .Values.service.callHomePort }}
191       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.callHomeNodePort }}
192   selector:
193     app.kubernetes.io/name: {{ include "common.name" . }}
194     app.kubernetes.io/instance: {{ include "common.release" . }}
195 {{ end }}