---
# 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.

---
apiVersion: v1
kind: Service
metadata:
  name: hss
spec:
  selector:
    app: hss
  clusterIP: None
  ports:
  - name: s6a
    port: {{ .Values.hss.ports.s6a }}
    protocol: TCP
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: hss
  labels:
    app: hss
spec:
  replicas: {{ .Values.hss.replicas }}
  selector:
    matchLabels:
      app: hss
  serviceName: "hss"
  template:
    metadata:
      labels:
        app: hss
    spec:
      nodeSelector:
        kubernetes.io/hostname: "{{ .Values.hss_node_selector }}"
      terminationGracePeriodSeconds: 1
      initContainers:
      - name: init-db
        image: {{ .Values.hss.images.init }}
        command: ["bash", "-xc"]
        args:
        - until nslookup {{ .Values.hssdb_hostname }}; do echo "waiting for cassandra domain name resolve."; sleep 2; done;
          until cqlsh -e "show version" {{ .Values.hssdb_hostname }}; do echo "waiting for cassandra database ready."; sleep 2; done;
          until cqlsh --file /scripts/oai_db.cql {{ .Values.hssdb_hostname }}; do echo "Writing data into database failed. Retrying ..."; sleep 2; done;
          /scripts/data_provisioning_users.sh 302720100000420 1122334456 apn1 6226194254742F2D67145153602F7C8D 1 {{ .Values.hssdb_hostname }} {{ .Values.mme_hostname }} {{ .Values.mme_hostname }};
          /scripts/data_provisioning_users.sh 302720100000421 1122334456 apn1 6226194254742F2D67145153602F7C8D 1 {{ .Values.hssdb_hostname }} {{ .Values.mme_hostname }} {{ .Values.mme_hostname }};
          cqlsh -e "use vhss; update users_imsi set opc='D6CAF10C337FD65AC31A18EBACBF5BF9' where imsi='302720100000420';" {{ .Values.hssdb_hostname }};
          cqlsh -e "use vhss; update users_imsi set opc='D6CAF10C337FD65AC31A18EBACBF5BF9' where imsi='302720100000421';" {{ .Values.hssdb_hostname }};
          /scripts/data_provisioning_mme.sh 1 19136246000 mme-0.{{ .Values.mme_hostname }}.{{ .Values.namespace }}.svc.cluster.local {{ .Values.mme_hostname }}.{{ .Values.namespace }}.svc.cluster.local 1 {{ .Values.hssdb_hostname }};
          /scripts/data_provisioning_mme.sh 1 19136246000 smsrouter.test3gpp.net test3gpp.net 0 {{ .Values.hssdb_hostname }};
      containers:
      - name: hss
        image: {{ .Values.hss.images.hss }}
        imagePullPolicy: Always
        env:
          - name: CASSANDRA_ADDR
            value: {{ .Values.hssdb_hostname }}
          - name: MME_ADDR
            value: mme-0.{{ .Values.mme_hostname }}.{{ .Values.namespace }}.svc.cluster.local
        #command: [ "sleep", "3600"]
        resources:
          limits:
            cpu: {{ .Values.hss.resources.cpu }}
            memory: {{ .Values.hss.resources.mem }}
        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: hss
          defaultMode: 493
      - name: hss-config
        configMap:
          name: hss
          defaultMode: 420
