# Copyright 2019-present Open Networking Foundation
#
# 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.

# Sample override values for 3-nodes cluster with SR-IOV configured on DP node.
cassandra:
  config:
    cluster_size: 3

config:
  sriov:
    resourceList:
      vfio:
        pfNames:
          - eth2
      netDevice:
        pfNames:
          - eth2
        drivers:
          - i40evf
          - ixgbevf
  mme:
    cfgFiles:
      config.json:
        mme:
          mcc:
            dig1: 7
            dig2: 3
            dig3: 2
          mnc:
            dig1: 1
            dig2: 1
            dig3: 1
  hss:
    bootstrap:
      enabled: true
      users:
        - imsi: "732111000000420"
          msisdn: "1122334455"
          apn: apn1
          key: "000102030405060708090a0b0c0d0e0f"
          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
          sqn: 135
        - imsi: "732111000000421"
          msisdn: "1122334455"
          apn: apn1
          key: "000102030405060708090a0b0c0d0e0f"
          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
          sqn: 135
      mmes:
        - id: 1
          isdn: "19136246000"
          unreachability: 1
  spgwu:
    cpComm:
      addr: 10.90.0.151
      port: 30021
    dpComm:
      nodePort:
        enabled: true
        port: 30020
  spgwc:
    cpComm:
      nodePort:
        enabled: true
        port: 30021
    dpComm:
      addr: 10.90.0.131
      port: 30020
# CDN configuration values
  cdnRemotes:
  - name: remote-1
    ip: 10.90.0.151
    port: 30935
    streams:
    - name: 360p
      value: 360
    - name: 480p
      value: 480
    - name: 720p
      value: 720

# cord-platform values
etcd-operator:
  enabled: false

# comac values
seba-services:
  enabled: false
