blob: a2478f8146e88514a40f2edd80966223b002d328 [file] [log] [blame]
---
# Copyright 2018-present Open Networking Foundation
# Copyright 2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Default values for mcord-vepc-helm.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Values.hss.name }}
data:
acl.conf: |
ALLOW_OLD_TLS *.cluster.local
hss.conf: |
Identity = "HSS_IDENTITY";
Realm = "HSS_REALM";
TLS_Cred = "CONF_DIR/HSS_HOST.cert.pem", "CONF_DIR/HSS_HOST.key.pem";
TLS_CA = "CONF_DIR/cacert.pem";
No_SCTP;
Prefer_TCP;
No_IPv6;
SCTP_streams = 3;
NoRelay;
AppServThreads = 4;
Port = 3868;
SecPort = 5868;
LoadExtension = "/usr/local/lib/freeDiameter/acl_wl.fdx" : "CONF_DIR/acl.conf";
LoadExtension = "/usr/local/lib/freeDiameter/dict_3gpp2_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_draftload_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_etsi283034_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4004_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4006bis_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4072_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4590_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5447_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5580_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5777_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5778_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6734_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6942_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7155_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7683_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7944_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29061_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29128_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29154_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29173_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29212_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29214_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29215_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29217_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29229_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29272_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29273_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29329_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29336_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29337_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29338_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29343_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29344_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29345_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29368_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29468_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_ts32299_avps.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_S6as6d.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_S6t.fdx";
LoadExtension = "/usr/local/lib/freeDiameter/dict_S6c.fdx";
hss.json: |
{"common": {
"fdcfg": "CONF_DIR/hss.conf",
"originhost": "HSS_IDENTITY",
"originrealm": "HSS_REALM"
},
"hss": {
"gtwhost": "*",
"gtwport" : 9080,
"restport" : 9081,
"ossport" : 9082,
"casssrv": "HSSDB_ADDR",
"cassusr": "root",
"casspwd": "root",
"cassdb" : "vhss",
"casscoreconnections" : 2,
"cassmaxconnections" : 8,
"cassioqueuesize" : 32768,
"cassiothreads" : 2,
"randv" : true,
"optkey" : "63bfa50ee6523365ff14c1f45f88737d",
"reloadkey" : true,
"logsize": 20,
"lognumber": 5,
"logname": "LOGS_DIR/hss.log",
"logqsize": 8192,
"statlogsize": 20,
"statlognumber": 5,
"statlogname": "LOGS_DIR/hss_stat.log",
"auditlogsize": 20,
"auditlognumber": 5,
"auditlogname": "LOGS_DIR/hss_audit.log",
"statfreq": 2000,
"numworkers": 4,
"concurrent": 10,
"ossfile": "CONF_DIR/oss.json"
}
}
oss.json: |
{
"option": {
"id": "url",
"type": "string"
},
"services": [
{
"id": "logger",
"commands": [
{
"id": "describe_loggers"
},
{
"id": "set_logger_level",
"options": [
{
"id": "name",
"type": "string"
},
{
"id": "level",
"type": "integer"
}
]
}
]
},
{
"id": "stats",
"commands": [
{
"id": "describe_stats_frequency"
},
{
"id": "describe_stats_live"
},
{
"id": "set_stats_frequency",
"options": [
{
"id": "frequency",
"type": "integer"
}
]
}
]
}
]
}
launch.sh: |
#!/bin/bash -x
CONF_DIR="/opt/c3po/hss/conf"
LOGS_DIR="/opt/c3po/hss/logs"
mkdir -p $CONF_DIR $LOGS_DIR
cp /etc/hss/conf/{acl.conf,hss.json,hss.conf,oss.json} $CONF_DIR
HSS_HOST=$(hostname)
HSS_DOMAIN=$(dnsdomainname)
# from hss.json
sed -i "s!HSS_IDENTITY!$HSS_HOST.$HSS_DOMAIN!g" $CONF_DIR/hss.json
sed -i "s!HSS_REALM!$HSS_DOMAIN!g" $CONF_DIR/hss.json
sed -i "s!HSSDB_ADDR!$HSSDB_ADDR!g" $CONF_DIR/hss.json
sed -i "s!CONF_DIR!$CONF_DIR!g" $CONF_DIR/hss.json
sed -i "s!LOGS_DIR!$LOGS_DIR!g" $CONF_DIR/hss.json
# from hss.conf
sed -i "s!HSS_IDENTITY!$HSS_HOST.$HSS_DOMAIN!g" $CONF_DIR/hss.conf
sed -i "s!HSS_REALM!$HSS_DOMAIN!g" $CONF_DIR/hss.conf
sed -i "s!HSS_HOST!$HSS_HOST!g" $CONF_DIR/hss.conf
sed -i "s!CONF_DIR!$CONF_DIR!g" $CONF_DIR/hss.conf
cat $CONF_DIR/{hss.json,hss.conf}
# If necessary, calculate the OPc value for each UE (User Equipment).
#./bin/hss -j conf/hss.json --onlyloadkey
cd $CONF_DIR
make_certs.sh $(hostname) $(dnsdomainname)
cd ..
# finally, launch
hss -j $CONF_DIR/hss.json
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.hss.name }}
spec:
selector:
app: {{ .Values.hss.name }}
clusterIP: None
ports:
- name: s6a
port: 3868
protocol: TCP
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ .Values.hss.name }}
labels:
app: {{ .Values.hss.name }}
spec:
replicas: 1
selector:
matchLabels:
app: {{ .Values.hss.name }}
serviceName: {{ .Values.hss.name }}
template:
metadata:
labels:
app: {{ .Values.hss.name }}
spec:
initContainers:
- name: init-hss
image: {{ .Values.hss.initimage }}
imagePullPolicy: Always
command: [ "bash", "-xc"]
# TODO: Move the SIM card configuration into values.yaml
args:
- until nslookup $HSSDB_ADDR; do echo "waiting for hssdb"; sleep 2; done;
until cqlsh --file /opt/c3po/hssdb/oai_db.cql $HSSDB_ADDR; do echo "provisioning hssdb"; sleep 2; done;
until data_provisioning_users.sh 208014567891200 1122334455 apn1 465B5CE8B199B49FAA5F0A2EE238A6BC 10 $HSSDB_ADDR $MME_HOST.$MME_REALM $MME_REALM;
do echo "setting up users"; sleep 2; done;
until data_provisioning_mme.sh 1 19136246000 $MME_HOST.$MME_REALM $MME_REALM 1 $HSSDB_ADDR; do echo "setting up mme"; sleep 2; done;
until data_provisioning_mme.sh 1 19136246000 smsrouter.test3gpp.net test3gpp.net 0 $HSSDB_ADDR; do echo "setting up smsrouter"; sleep 2; done;
env:
- name: HSSDB_ADDR
value: {{ .Values.hssdb.name }}
- name: MME_HOST
value: {{ tuple "mme" "host" . | include "mcord-services.endpoint_lookup" | quote }}
- name: MME_REALM
value: {{ tuple "mme" "realm" . | include "mcord-services.endpoint_lookup" | quote }}
containers:
- name: hss
image: {{ .Values.hss.image }}
imagePullPolicy: {{ .Values.global.imagepullpolicy }}
stdin: true
tty: true
env:
- name: HSSDB_ADDR
value: {{ .Values.hssdb.name | quote }}
- name: MME_IDENTITY
value: {{ tuple "mme" "identity" . | include "mcord-services.endpoint_lookup" | quote }}
command: ["bash", "-c", "/opt/c3po/hss/launch.sh; sleep 3600"]
resources:
limits:
cpu: {{ .Values.hss.cpu | quote }}
memory: {{ .Values.hss.memory }}
volumeMounts:
- name: hss-script
mountPath: /opt/c3po/hss/launch.sh
subPath: launch.sh
- name: hss-config
mountPath: /etc/hss/conf
volumes:
- name: hss-script
configMap:
name: {{ .Values.hss.name }}
defaultMode: 493
- name: hss-config
configMap:
name: {{ .Values.hss.name }}
defaultMode: 420