# Copyright 2018 Intel Corporation
# Copyright 2018-present Open Networking Foundation
#
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

images:
  tags:
    init: docker.io/omecproject/pod-init:1.0.0
    hssdb: docker.io/omecproject/c3po-hssdb:master-latest
    hss: docker.io/omecproject/c3po-hss:master-latest
    mme: docker.io/omecproject/nucleus:master-latest
    spgwc: docker.io/omecproject/spgw:master-latest
    pcrf: omecproject/c3po-pcrf:pcrf-latest
    pcrfdb: omecproject/c3po-pcrfdb:pcrf-latest
    depCheck: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
  pullPolicy: IfNotPresent
  credentials: {}
  # If specified, use this credential to access the image
  #   registry:
  #   username:
  #   password:

nodeSelectors:
  enabled: false
  hss:
    label: omec-cp
    value: enabled
  pcrf:
    label: omec-cp
    value: enabled
  mme:
    label: omec-cp
    value: enabled
  spgwc:
    label: omec-cp
    value: enabled

resources:
  enabled: true
  pcrf:
    requests:
      cpu: 2
      memory: 1Gi
    limits:
      cpu: 2
      memory: 1Gi
  hss:
    requests:
      cpu: 2
      memory: 1Gi
    limits:
      cpu: 2
      memory: 1Gi
  mme:
    # Note that MME pod is composed of 4 containers
    # Provide resources for a container, not a pod total
    requests:
      cpu: 0.5
      memory: 1Gi
    limits:
      cpu: 0.5
      memory: 1Gi
  spgwc:
    requests:
      cpu: 2
      memory: 5Gi
    limits:
      cpu: 2
      memory: 5Gi

cassandra:
  deploy: true
  fullnameOverride: cassandra
  image:
    tag: 2.1.20
  #selector:
  #  nodeSelector:
  #    cassandra: enabled
  persistence:
    enabled: false
  config:
    #cluster_size: 1
    #seed_size: 1
    endpoint_snitch: GossipingPropertyFileSnitch
  readinessProbe:
    initialDelaySeconds: 10
  resources: {}
    #requests:
    #  memory: 4Gi
    #  cpu: 2
    #limits:
    #  memory: 4Gi
    #  cpu: 2

config:
  clusterDomain: cluster.local
  coreDump:
    enabled: true
    path: /tmp/coredump
  pcrf:
    deploy: true
    pcrfdb: cassandra
    gx:
      nodePort:
        enabled: false
        port: 33868
    prometheus:
      port: 9089
      nodePort:
        enabled: false
        port: 30086
    # Provide the peer whitelist extension
    # The peer name must be a fqdn. We allow also a special "*" character as the
    # first label of the fqdn, to allow all fqdn with the same domain name.
    # Example: *.example.net will allow host1.example.net and host2.example.net
    acl:
      oldTls: "*.cluster.local"
      #ipSec:
    bootstrap:
      enabled: false
    # See https://github.com/omec-project/c3po for details of config options
    cfgFiles:
      pcrf.json:
        common:
          fdcfg: conf/pcrf.conf
          # Origin host and realm will be set automatically if unset
          #originhost: ""
          #originrealm: ""
        pcrf:
          gtwhost: "*"
          gtwport: 9080
          restport: 9081
          ossport: 9082
          # casssrv will be set to cassandra in the same cluster if unset
          #casssrv: ""
          casskeyspace: vpcrf
          casshost: "cassandra"
          cassusr: root
          casspwd: root
          cassdb: vpcrf
          casscoreconnections: 2
          cassmaxconnections: 8
          cassioqueuesize: 32768
          cassiothreads: 2
          randv: true
          optkey: "63bfa50ee6523365ff14c1f45f88737d"
          reloadkey: false
          logsize: 20
          lognumber: 5
          logname: logs/pcrf.log
          logqsize: 8192
          statlogsize: 20
          statlognumber: 5
          statlogname: logs/pcrf_stat.log
          auditlogsize: 20
          auditlognumber: 5
          auditlogname: logs/pcrf_audit.log
          statfreq: 2000
          numworkers: 4
          concurrent: 10
          ossfile: conf/oss.json
          verifyroamingsubscribers: false
      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


  hss:
    deploy: true
    podAnnotations:
      field.cattle.io/workloadMetrics: '[{"path":"/metrics","port":9089,"schema":"HTTP"}]'
    hssdb: cassandra
    s6a:
      nodePort:
        enabled: false
        port: 33868
    configPort:
      port: 8080
      nodePort:
        enabled: false
        port: 30081
    prometheus:
      port: 9089
      nodePort:
        enabled: false
        port: 30086
    # Provide the peer whitelist extension
    # The peer name must be a fqdn. We allow also a special "*" character as the
    # first label of the fqdn, to allow all fqdn with the same domain name.
    # Example: *.example.net will allow host1.example.net and host2.example.net
    acl:
      oldTls: "*.cluster.local"
      #ipSec:
    bootstrap:
      enabled: true
      users:
        - apn: internet
          key: "465b5ce8b199b49faa5f0a2ee238a6bc"
          opc: "d4416644f6154936193433dd20a0ace0"
          sqn: 96
          imsiStart: "208014567891200"
          msisdnStart: "1122334455"
          count: 10
      staticusers:
        - apn: internet
          key: "465b5ce8b199b49faa5f0a2ee238a6bc"
          opc: "d4416644f6154936193433dd20a0ace0"
          sqn: 96
          imsi: "208014567891200"
          msisdn: "1122334455"
          staticAddr: 0.0.0.0
      mmes:
        - id: 1
          mme_identity: mme.omec.svc.cluster.local
          mme_realm: omec.svc.cluster.local
          isdn: "19136246000"
          unreachability: 1
    # See https://github.com/omec-project/c3po for details of config options
    cfgFiles:
      hss.json:
        common:
          fdcfg: conf/hss.conf
          # Origin host and realm will be set automatically if unset
          #originhost: ""
          #originrealm: ""
        hss:
          gtwhost: "*"
          gtwport: 9080
          #restport will be set by configmap
          #restport: ""
          ossport: 9082
          # casssrv will be set to cassandra in the same cluster if unset
          #casssrv: ""
          cassusr: root
          casspwd: root
          cassdb: vhss
          casscoreconnections: 2
          cassmaxconnections: 8
          cassioqueuesize: 32768
          cassiothreads: 2
          randv: true
          optkey: "63bfa50ee6523365ff14c1f45f88737d"
          reloadkey: false
          logsize: 20
          lognumber: 5
          logname: logs/hss.log
          logqsize: 8192
          statlogsize: 20
          statlognumber: 5
          statlogname: logs/hss_stat.log
          auditlogsize: 20
          auditlognumber: 5
          auditlogname: logs/hss_audit.log
          statfreq: 2000
          numworkers: 4
          concurrent: 10
          ossfile: conf/oss.json
          verifyroamingsubscribers: false
      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

  mme:
    deploy: true
    podAnnotations:
      field.cattle.io/workloadMetrics: '[{"path":"/metrics","port":3081,"schema":"HTTP"}]'
    spgwAddr: spgwc
    s11:
      nodePort:
        enabled: false
        port: 32124
    s6a:
      nodePort:
        enabled: false
        port: 33869
    prometheus:
      port: 3081
      nodePort:
        enabled: false
        port: 30085
    # See https://github.com/omec-project/openmme/blob/master/README.txt for more config options
    cfgFiles:
      config.json:
        mme:
          name: vmmestandalone
          group_id: 1
          code: 1
          logging: error
          mcc:
            dig1: 2
            dig2: 0
            dig3: 8
          mnc:
            dig1: 0
            dig2: 1
            dig3: -1
          plmnlist:
            #plmn1 - aether common plmn, plmn2 is for comac-in-box
            plmn1: "mcc=315,mnc=010"
            plmn2: "mcc=208,mnc=01"
          apnlist:
            internet: "spgwc"
          feature_list:
            dcnr_support: "disabled"
          security:
            #int_alg_list: "[EIA0]"
            int_alg_list: "[EIA1, EIA2, EIA0]"
            sec_alg_list: "[EEA0, EEA1, EEA2]"
        s1ap:
          sctp_port: 36412
          sctp_port_external: 36412
        s11:
          egtp_default_port: 2123
          # sgw_addr and pgw_addr will be set dynamically if unset
          #sgw_addr:
          #pgw_addr:
        s6a:
          host_type: freediameter
          # host and realm will be set dynamically if unset
          #host:
          #realm:
  spgwc:
    deploy: true
    podAnnotations:
      field.cattle.io/workloadMetrics: '[{"path":"/metrics","port":9089,"schema":"HTTP"}]'
    global:
      transmitTimerSec: 2
      periodicTimerSec: 10
      transmitCount: 5
      requestTimeoutMilliSec: 5000
      requestTries: 3
      cpLogger: 0
      gx_config: 0
      urr_config: 0
      logging_level: "LOG_DEBUG"
    #DNS Server - 3gpp compliant DNS server
    dns:
      cache:
        concurrent: 25
        percentage: 80
        intervalSec: 60
        queryTimeoutMilliSec: 1000
        queryTries: 1
      app:
        frequencySec: 3
        filename: "appqueries.json"
        nameserver: "127.0.0.1"
      ops:
        frequencySec: 3
        filename: "opsqueries.json"
        nameserver: "127.0.0.1"
    ueIpPool:
      ip: "10.250.0.0"
      mask: "255.255.0.0"
    s11:
      port: 2123
      nodePort:
        enabled: false
        port: 32123
    n4:
      port: 8805
      nodePort:
        enabled: false
        port: 30021
    prometheus:
      port: 9089
      nodePort:
        enabled: false
        port: 30084
    rest:
      port: 8080
      nodePort:
        enabled: false
        port: 30080
    jsonCfgFiles:
      config.json:
        gx:
          host_type: freediameter
          # host and realm will be set dynamically if unset
          #host:
          #realm:
      subscriber_mapping.json:
        subscriber-selection-rules:
          - priority: 5
            keys:
              serving-plmn:
                mcc: 208
                mnc: 10
                tac: 1
              imsi-range:
                from: 200000000000000
                to: 299999999999999
            selected-apn-profile: apn-profile1
            selected-qos-profile: qos-profile1
            selected-access-profile:
              - access-all
            selected-user-plane-profile: user-plane1
          - priority: 10
            keys:
              match-all: true
            selected-apn-profile: apn-profile1
            selected-qos-profile: qos-profile1
            selected-access-profile:
              - access-all
            selected-user-plane-profile: user-plane1
        apn-profiles:
          apn-profile1:
            apn-name: internet
            usage: 1
            network: lbo
            gx_enabled: true
            dns_primary: 8.8.8.4
            dns_secondary: 8.8.8.8
            mtu: 1460
        user-plane-profiles:
          user-plane1:
            user-plane: upf
            qos-tags:
              tag1: BW
            access-tags:
              tag1: ACC
        qos-profiles:
          mobile:
            apn-ambr:
              - 12345678
              - 12345678
        access-profiles:
          access-all:
            type: allow-all
          internet-only:
            type: internet-only
            filter: No_private_network
          intranet-only:
            type: intranet-only
            filter: only_private_network
          apps-only:
            type: specific-network
            filter: only_apps_network
          specific-app:
            type: specific-destination-only
            filter: allow-app-name
          excluding-app:
            type: excluding-this-app
            filter: exclude-app-name
    cfgFiles:
      adc_rules.cfg: |
        [GLOBAL]
        NUM_ADC_RULES = 0
      meter_profile.cfg: |
        [GLOBAL]
        NUM_OF_IDX = 0
      pcc_rules.cfg: |
        [GLOBAL]
        NUM_PCC_FILTERS = 1
        UL_AMBR_MTR_PROFILE_IDX = 1
        DL_AMBR_MTR_PROFILE_IDX = 2
        [PCC_FILTER_1]
        RULE_NAME = DefaultRule
        RATING_GROUP = 9
        SERVICE_ID = 0
        RULE_STATUS = 0
        GATE_STATUS = 1
        SESSION_CONT = 0
        REPORT_LEVEL = 1
        CHARGING_MODE = 0
        METERING_METHOD = 0
        MUTE_NOTIFY = 0
        MONITORING_KEY = 0
        SPONSOR_ID = 0
        REDIRECT_INFO = 0
        PRECEDENCE = 254
        DROP_PKT_COUNT = 0
        UL_MBR_MTR_PROFILE_IDX = 3
        DL_MBR_MTR_PROFILE_IDX = 3
        SDF_FILTER_IDX = 99998
      sdf_rules.cfg: |
        [GLOBAL]
        NUM_SDF_FILTERS = 1
        [SDF_FILTER_1]
        DIRECTION = downlink_only
        IPV4_REMOTE = 13.2.1.113
        IPV4_REMOTE_MASK = 255.255.255.0
        PROTOCOL = 17
        LOCAL_LOW_LIMIT_PORT = 0
        LOCAL_HIGH_LIMIT_PORT = 65535
        REMOTE_LOW_LIMIT_PORT = 0
        REMOTE_HIGH_LIMIT_PORT = 65535
