[SDNC] Create Authorization Policies for SDNC
[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: {{ if (include "common.ingressEnabled" .) }}ClusterIP{{ else }}NodePort{{ end }}
42   ports:
43     - name: "{{ .Values.service.portName }}-restconf"
44       port: {{ .Values.service.externalPort }}
45       targetPort: {{ .Values.service.internalPort }}
46       {{ if not (include "common.ingressEnabled" .) }}
47       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort4 }}
48       {{ end }}
49   {{ if .Values.config.sdnr.enabled }}
50   sessionAffinity:  ClientIP
51   {{ end }}
52   selector:
53     app.kubernetes.io/name: {{ include "common.name" . }}
54     app.kubernetes.io/instance: {{ include "common.release" . }}
55 ---
56 apiVersion: v1
57 kind: Service
58 metadata:
59   name: "{{ .Values.service.name }}-oam"
60   namespace: {{ include "common.namespace" . }}
61   labels:
62     app: {{ include "common.name" . }}
63     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
64     release: {{ include "common.release" . }}
65     heritage: {{ .Release.Service }}
66 spec:
67   type: ClusterIP
68   ports:
69     - name: "{{ .Values.service.portName }}-restconf-alt"
70       port: {{ .Values.service.externalPort }}
71       targetPort: {{ .Values.service.internalPort }}
72     - name: "{{ .Values.service.portName }}-karaf"
73       port: {{ .Values.service.externalPort2 }}
74       targetPort: {{ .Values.service.internalPort2 }}
75   selector:
76     app.kubernetes.io/name: {{ include "common.name" . }}
77     app.kubernetes.io/instance: {{ include "common.release" . }}
78 ---
79 apiVersion: v1
80 kind: Service
81 metadata:
82   name: {{ .Values.service.portName }}-cluster
83   namespace: {{ include "common.namespace" . }}
84   labels:
85     app: {{ include "common.name" . }}
86     release: {{ include "common.release" . }}
87   annotations:
88     service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
89 spec:
90   ports:
91    - name: "{{ .Values.service.portName }}-cluster-port"
92      port: {{ .Values.service.clusterPort }}
93   clusterIP: None
94   selector:
95     app.kubernetes.io/name: {{ include "common.name" . }}
96     app.kubernetes.io/instance: {{ include "common.release" . }}
97   sessionAffinity: None
98   type: ClusterIP
99
100 {{ if .Values.config.geoEnabled }}
101 ---
102 apiVersion: v1
103 kind: Service
104 metadata:
105   name: sdnhost-{{ include "common.servicename" . }}-0
106   namespace: {{ .Release.Namespace }}
107   labels:
108     app: sdnhost-{{ include "common.name" . }}
109     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
110 spec:
111   ports:
112   - name: {{ .Values.service.portName }}-0-port-{{ .Values.service.internalPort }}
113     port: {{ .Values.service.clusterPort3 }}
114     targetPort: {{ .Values.service.internalPort }}
115     {{ if not (include "common.ingressEnabled" .) }}
116     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort1 }}
117     {{ end }}
118   type: {{ if (include "common.ingressEnabled" .) }}ClusterIP{{ else }}NodePort{{ end }}
119   selector:
120     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
121 {{ end }}
122 {{ if .Values.config.geoEnabled }}
123 ---
124 apiVersion: v1
125 kind: Service
126 metadata:
127   name: sdnhost-{{ include "common.servicename" . }}-1
128   namespace: {{ .Release.Namespace }}
129   labels:
130     app: sdnhost-{{ include "common.name" . }}
131     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-1
132 spec:
133   ports:
134   - name: {{ .Values.service.portName }}-1-port-{{ .Values.service.internalPort }}
135     port: {{ .Values.service.clusterPort3 }}
136     targetPort: {{ .Values.service.internalPort }}
137     {{ if not (include "common.ingressEnabled" .) }}
138     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort2 }}
139     {{ end }}
140   type: {{ if (include "common.ingressEnabled" .) }}ClusterIP{{ else }}NodePort{{ end }}
141   selector:
142     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-1
143 {{ end }}
144 {{ if .Values.config.geoEnabled }}
145 ---
146 apiVersion: v1
147 kind: Service
148 metadata:
149   name: sdnhost-{{ include "common.servicename" . }}-2
150   namespace: {{ .Release.Namespace }}
151   labels:
152     app: sdnhost-{{ include "common.name" . }}
153     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-2
154 spec:
155   ports:
156   - name: {{ .Values.service.portName }}-2-port-{{ .Values.service.internalPort }}
157     port: {{ .Values.service.clusterPort3 }}
158     targetPort: {{ .Values.service.internalPort }}
159     {{ if not (include "common.ingressEnabled" .) }}
160     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort3 }}
161     {{ end }}
162   type: {{ if (include "common.ingressEnabled" .) }}ClusterIP{{ else }}NodePort{{ end }}
163   selector:
164     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-2
165 {{ end }}
166
167 {{ if .Values.config.sdnr.netconfCallHome.enabled }}
168 ---
169 apiVersion: v1
170 kind: Service
171 metadata:
172   name: {{ include "common.servicename" . }}-callhome
173   namespace: {{ include "common.namespace" . }}
174   labels:
175     app: {{ include "common.name" . }}
176     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
177     release: {{ include "common.release" . }}
178     heritage: {{ .Release.Service }}
179 spec:
180   type: {{ if (include "common.ingressEnabled" .) }}ClusterIP{{ else }}NodePort{{ end }}
181   ports:
182     - name: "{{ .Values.service.portName }}-callhome"
183       port: {{ .Values.service.callHomePort }}
184       targetPort: {{ .Values.service.callHomePort }}
185       {{ if not (include "common.ingressEnabled" .) }}
186       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.callHomeNodePort }}
187       {{ end }}
188   selector:
189     app.kubernetes.io/name: {{ include "common.name" . }}
190     app.kubernetes.io/instance: {{ include "common.release" . }}
191 {{ end }}