[SDNC] Add SDNR Websocket support
[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     - name: "{{ .Values.service.portName }}-sdnrwebsocket"
51       port: {{ .Values.service.sdnrWebsocketPort | default "8182" }}
52       targetPort: {{ .Values.service.sdnrWebsocketPort }}
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.internalPort }}
115     port: {{ .Values.service.clusterPort3 }}
116     targetPort: {{ .Values.service.internalPort }}
117     {{ if not (include "common.ingressEnabled" .) }}
118     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort1 }}
119     {{ end }}
120   type: {{ if (include "common.ingressEnabled" .) }}ClusterIP{{ else }}NodePort{{ end }}
121   selector:
122     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
123 {{ end }}
124 {{ if .Values.config.geoEnabled }}
125 ---
126 apiVersion: v1
127 kind: Service
128 metadata:
129   name: sdnhost-{{ include "common.servicename" . }}-1
130   namespace: {{ .Release.Namespace }}
131   labels:
132     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-1
133 spec:
134   ports:
135   - name: {{ .Values.service.portName }}-1-port-{{ .Values.service.internalPort }}
136     port: {{ .Values.service.clusterPort3 }}
137     targetPort: {{ .Values.service.internalPort }}
138     {{ if not (include "common.ingressEnabled" .) }}
139     nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.geoNodePort2 }}
140     {{ end }}
141   type: {{ if (include "common.ingressEnabled" .) }}ClusterIP{{ else }}NodePort{{ end }}
142   selector:
143     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-1
144 {{ end }}
145 {{ if .Values.config.geoEnabled }}
146 ---
147 apiVersion: v1
148 kind: Service
149 metadata:
150   name: sdnhost-{{ include "common.servicename" . }}-2
151   namespace: {{ .Release.Namespace }}
152   labels:
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 }}