blob: 4ed1a1d59ae392f20b701cc308f709e4c76bae95 [file] [log] [blame]
Hyunsun Moon06f98552019-08-15 13:44:47 -06001{{/*
2Copyright 2018-present Open Networking Foundation
3Copyright 2018 Intel Corporation
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -07004
Hyunsun Moon06f98552019-08-15 13:44:47 -06005Licensed under the Apache License, Version 2.0 (the "License");
6you may not use this file except in compliance with the License.
7You may obtain a copy of the License at
8
9http://www.apache.org/licenses/LICENSE-2.0
10
11Unless required by applicable law or agreed to in writing, software
12distributed under the License is distributed on an "AS IS" BASIS,
13WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14See the License for the specific language governing permissions and
15limitations under the License.
16
17Default values for mcord-vepc-helm.
18This is a YAML-formatted file.
19Declare variables to be passed into your templates.
20*/}}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070021---
22apiVersion: v1
23kind: ConfigMap
24metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -060025 name: hss
26 labels:
27{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070028data:
29 acl.conf: |
30 ALLOW_OLD_TLS *.cluster.local
31 hss.conf: |
32 Identity = "HSS_IDENTITY";
33 Realm = "HSS_REALM";
34 TLS_Cred = "CONF_DIR/HSS_HOST.cert.pem", "CONF_DIR/HSS_HOST.key.pem";
35 TLS_CA = "CONF_DIR/cacert.pem";
36 No_SCTP;
37 Prefer_TCP;
38 No_IPv6;
39 SCTP_streams = 3;
40 NoRelay;
41 AppServThreads = 4;
42 Port = 3868;
43 SecPort = 5868;
44 LoadExtension = "/usr/local/lib/freeDiameter/acl_wl.fdx" : "CONF_DIR/acl.conf";
45 LoadExtension = "/usr/local/lib/freeDiameter/dict_3gpp2_avps.fdx";
46 LoadExtension = "/usr/local/lib/freeDiameter/dict_draftload_avps.fdx";
47 LoadExtension = "/usr/local/lib/freeDiameter/dict_etsi283034_avps.fdx";
48 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4004_avps.fdx";
49 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4006bis_avps.fdx";
50 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4072_avps.fdx";
51 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4590_avps.fdx";
52 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5447_avps.fdx";
53 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5580_avps.fdx";
54 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5777_avps.fdx";
55 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5778_avps.fdx";
56 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6734_avps.fdx";
57 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6942_avps.fdx";
58 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7155_avps.fdx";
59 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7683_avps.fdx";
60 LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7944_avps.fdx";
61 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29061_avps.fdx";
62 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29128_avps.fdx";
63 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29154_avps.fdx";
64 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29173_avps.fdx";
65 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29212_avps.fdx";
66 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29214_avps.fdx";
67 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29215_avps.fdx";
68 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29217_avps.fdx";
69 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29229_avps.fdx";
70 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29272_avps.fdx";
71 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29273_avps.fdx";
72 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29329_avps.fdx";
73 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29336_avps.fdx";
74 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29337_avps.fdx";
75 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29338_avps.fdx";
76 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29343_avps.fdx";
77 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29344_avps.fdx";
78 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29345_avps.fdx";
79 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29368_avps.fdx";
80 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29468_avps.fdx";
81 LoadExtension = "/usr/local/lib/freeDiameter/dict_ts32299_avps.fdx";
82 LoadExtension = "/usr/local/lib/freeDiameter/dict_S6as6d.fdx";
83 LoadExtension = "/usr/local/lib/freeDiameter/dict_S6t.fdx";
84 LoadExtension = "/usr/local/lib/freeDiameter/dict_S6c.fdx";
85 hss.json: |
86 {"common": {
87 "fdcfg": "CONF_DIR/hss.conf",
88 "originhost": "HSS_IDENTITY",
89 "originrealm": "HSS_REALM"
90 },
91 "hss": {
92 "gtwhost": "*",
93 "gtwport" : 9080,
94 "restport" : 9081,
95 "ossport" : 9082,
96 "casssrv": "HSSDB_ADDR",
97 "cassusr": "root",
98 "casspwd": "root",
99 "cassdb" : "vhss",
100 "casscoreconnections" : 2,
101 "cassmaxconnections" : 8,
102 "cassioqueuesize" : 32768,
103 "cassiothreads" : 2,
104 "randv" : true,
105 "optkey" : "63bfa50ee6523365ff14c1f45f88737d",
106 "reloadkey" : true,
107 "logsize": 20,
108 "lognumber": 5,
109 "logname": "LOGS_DIR/hss.log",
110 "logqsize": 8192,
111 "statlogsize": 20,
112 "statlognumber": 5,
113 "statlogname": "LOGS_DIR/hss_stat.log",
114 "auditlogsize": 20,
115 "auditlognumber": 5,
116 "auditlogname": "LOGS_DIR/hss_audit.log",
117 "statfreq": 2000,
118 "numworkers": 4,
119 "concurrent": 10,
120 "ossfile": "CONF_DIR/oss.json"
121 }
122 }
123 oss.json: |
124 {
125 "option": {
126 "id": "url",
127 "type": "string"
128 },
129 "services": [
130 {
131 "id": "logger",
132 "commands": [
133 {
134 "id": "describe_loggers"
135 },
136 {
137 "id": "set_logger_level",
138 "options": [
139 {
140 "id": "name",
141 "type": "string"
142 },
143 {
144 "id": "level",
145 "type": "integer"
146 }
147 ]
148 }
149 ]
150 },
151 {
152 "id": "stats",
153 "commands": [
154 {
155 "id": "describe_stats_frequency"
156 },
157 {
158 "id": "describe_stats_live"
159 },
160 {
161 "id": "set_stats_frequency",
162 "options": [
163 {
164 "id": "frequency",
165 "type": "integer"
166 }
167 ]
168 }
169 ]
170 }
171 ]
172 }
173 launch.sh: |
174 #!/bin/bash -x
175
176 CONF_DIR="/opt/c3po/hss/conf"
177 LOGS_DIR="/opt/c3po/hss/logs"
178 mkdir -p $CONF_DIR $LOGS_DIR
179
180 cp /etc/hss/conf/{acl.conf,hss.json,hss.conf,oss.json} $CONF_DIR
181
182 HSS_HOST=$(hostname)
183 HSS_DOMAIN=$(dnsdomainname)
184
185 # from hss.json
186 sed -i "s!HSS_IDENTITY!$HSS_HOST.$HSS_DOMAIN!g" $CONF_DIR/hss.json
187 sed -i "s!HSS_REALM!$HSS_DOMAIN!g" $CONF_DIR/hss.json
188 sed -i "s!HSSDB_ADDR!$HSSDB_ADDR!g" $CONF_DIR/hss.json
189 sed -i "s!CONF_DIR!$CONF_DIR!g" $CONF_DIR/hss.json
190 sed -i "s!LOGS_DIR!$LOGS_DIR!g" $CONF_DIR/hss.json
191
192 # from hss.conf
193 sed -i "s!HSS_IDENTITY!$HSS_HOST.$HSS_DOMAIN!g" $CONF_DIR/hss.conf
194 sed -i "s!HSS_REALM!$HSS_DOMAIN!g" $CONF_DIR/hss.conf
195 sed -i "s!HSS_HOST!$HSS_HOST!g" $CONF_DIR/hss.conf
196 sed -i "s!CONF_DIR!$CONF_DIR!g" $CONF_DIR/hss.conf
197 cat $CONF_DIR/{hss.json,hss.conf}
198
199 # If necessary, calculate the OPc value for each UE (User Equipment).
200 #./bin/hss -j conf/hss.json --onlyloadkey
201 cd $CONF_DIR
202 make_certs.sh $(hostname) $(dnsdomainname)
203 cd ..
204 # finally, launch
205 hss -j $CONF_DIR/hss.json
206---
207apiVersion: v1
208kind: Service
209metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600210 name: hss
211 labels:
212{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700213spec:
214 selector:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600215{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700216 clusterIP: None
217 ports:
218 - name: s6a
219 port: 3868
220 protocol: TCP
221---
222apiVersion: apps/v1
223kind: StatefulSet
224metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600225 name: hss
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700226 labels:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600227{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700228spec:
229 replicas: 1
230 selector:
231 matchLabels:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600232{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 6 }}
233 serviceName: hss
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700234 template:
235 metadata:
236 labels:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600237{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 8 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700238 spec:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600239 {{- if .Values.nodeSelectors.enabled }}
240 nodeSelector:
241 {{ .Values.nodeSelectors.hss.label }}: {{ .Values.nodeSelectors.hss.value }}
242 {{- end }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700243 initContainers:
244 - name: init-hss
Hyunsun Moon06f98552019-08-15 13:44:47 -0600245 image: {{ .Values.images.tags.hssdb }}
246 imagePullPolicy: {{ .Values.images.pullPolicy }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700247 command: [ "bash", "-xc"]
248 # TODO: Move the SIM card configuration into values.yaml
249 args:
250 - until nslookup $HSSDB_ADDR; do echo "waiting for hssdb"; sleep 2; done;
251 until cqlsh --file /opt/c3po/hssdb/oai_db.cql $HSSDB_ADDR; do echo "provisioning hssdb"; sleep 2; done;
252 until data_provisioning_users.sh 208014567891200 1122334455 apn1 465B5CE8B199B49FAA5F0A2EE238A6BC 10 $HSSDB_ADDR $MME_HOST.$MME_REALM $MME_REALM;
253 do echo "setting up users"; sleep 2; done;
254 until data_provisioning_mme.sh 1 19136246000 $MME_HOST.$MME_REALM $MME_REALM 1 $HSSDB_ADDR; do echo "setting up mme"; sleep 2; done;
255 until data_provisioning_mme.sh 1 19136246000 smsrouter.test3gpp.net test3gpp.net 0 $HSSDB_ADDR; do echo "setting up smsrouter"; sleep 2; done;
256 env:
257 - name: HSSDB_ADDR
Hyunsun Moon06f98552019-08-15 13:44:47 -0600258 value: hssdb
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700259 - name: MME_HOST
Hyunsun Moon636e17d2019-07-03 12:52:15 -0500260 value: {{ tuple "mme" "host" . | include "mcord-services.endpoint_lookup" | quote }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700261 - name: MME_REALM
Hyunsun Moon636e17d2019-07-03 12:52:15 -0500262 value: {{ tuple "mme" "realm" . | include "mcord-services.endpoint_lookup" | quote }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700263 containers:
264 - name: hss
Hyunsun Moon06f98552019-08-15 13:44:47 -0600265 image: {{ .Values.images.tags.hss }}
266 imagePullPolicy: {{ .Values.images.pullPolicy }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700267 stdin: true
268 tty: true
269 env:
270 - name: HSSDB_ADDR
Hyunsun Moon06f98552019-08-15 13:44:47 -0600271 value: hssdb
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700272 - name: MME_IDENTITY
Hyunsun Moon636e17d2019-07-03 12:52:15 -0500273 value: {{ tuple "mme" "identity" . | include "mcord-services.endpoint_lookup" | quote }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700274 command: ["bash", "-c", "/opt/c3po/hss/launch.sh; sleep 3600"]
Hyunsun Moon06f98552019-08-15 13:44:47 -0600275 {{- if .Values.resources.enabled }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700276 resources:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600277{{ toYaml .Values.resources.hss | indent 10 }}
278 {{- end }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700279 volumeMounts:
280 - name: hss-script
281 mountPath: /opt/c3po/hss/launch.sh
282 subPath: launch.sh
283 - name: hss-config
284 mountPath: /etc/hss/conf
285 volumes:
286 - name: hss-script
287 configMap:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600288 name: hss
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700289 defaultMode: 493
290 - name: hss-config
291 configMap:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600292 name: hss
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700293 defaultMode: 420