---
# 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 M-CORD Services
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.


# Global Block defines shared variables for all Kubernetes objects
# etcdurl: the etcd connection peer for centralIP network plugin
global:
  namespace: default
  fqdn: svc.cluster.local
  imagepullpolicy: IfNotPresent
  etcdurl: http://node1:32379

hssdb:
  name: hssdb
  image: krsna1729/c3po-hssdb
  cpu: 3
  memory: 4Gi

hss:
  name: hss
  initimage: krsna1729/c3po-hssdb
  image: krsna1729/c3po-hss
  cpu: 3
  memory: 1Gi

mme:
  initimage: ngick8stesting/c3po-mmeinit
  image: ngick8stesting/c3po-mme:5e2eaf6
  cpu: 3
  memory: 1Gi
  # Provide which mme will be used.
  # Possible options are c3po and openmme but note that c3po mme will be deprecated soon.
  type: c3po
  name: mme
  images:
    tags:
      dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
      mme: omecproject/openmme:0.1.0-dev
    pullPolicy: IfNotPresent
  resources:
    cpu: 3
    memory: 1Gi
  conf:
    # Leave hostnames and addressses null unless using external spgw and hss.
    mme:
      name: vmmestandalone
      group_id: 1
      code: 1
      mcc:
        dig1: 2
        dig2: 0
        dig3: 8
      mnc:
        dig1: 0
        dig2: 1
        dig3: -1
    s1ap:
      sctp_port: 36412
      sctp_port_external: 36412
    s11:
      egtp_default_port: 2123
      sgw_addr: null
      pgw_addr: null
    s6a:
      host_type: freediameter
      host: null
      realm: null

spgwc:
  name: spgwc
  initimage: ngick8stesting/kubectl
  image: krsna1729/ngic-cp
  cpu: 3
  memory: 5Gi

spgwu:
  name: spgwu
  nodeselector:
    sriov: vfio
  images:
    tags:
      init: ngick8stesting/c3po-init:latest
      spgwu: krsna1729/ngic-dp:latest
    pullPolicy: IfNotPresent
  resources:
    cpu: 4
    memory: 8Gi
  conf:
    dp:
      # s1u and sgi interfaces are fixed to "s1u-net" and "sgi-net"
      # Note that s1u_af_dev and sgi_af_dev are valid only when sriov is disabled
      # setup-af-iface.sh script creates additional veth pair with the names here
      s1u_af_dev: s1u-veth
      sgi_af_dev: sgi-veth
      # set "--no-pci --vdev eth_af_packet0,iface=s1u-dev --vdev eth_af_packet1,iface=sgi-net"
      # when sriov is disabled
      devices: ""
      rtr_sgi_ip: 13.1.1.254
      sgi_mask: 255.255.255.0

enb:
  host: 10.1.11.3
  port: 36412

# Network block defines the networks
# Note that currently we use fixed list of networks, s1u-net and sgi-net
#
# cni_plugin: provide what type of cni will be used
# ipam: provide what type of ipam will be used
#       possible options are centralip and host-local
#       note that centralip requires etcd cluster
# subnet: provide subnet range to be assigned to the pod
# gateway: provide default gateway of the network
#       valid only when centralip is used
network:
  sriov:
    enabled: true
  s1u:
    cni_plugin: vfioveth
    ipam: centralip
    subnet: 119.0.0.0/24
    gateway: 119.0.0.254
  sgi:
    cni_plugin: vfioveth
    ipam: centralip
    subnet: 13.1.1.0/24
    gateway: 13.1.1.254
