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

images:
  tags:
    init: docker.io/omecproject/pod-init:0.1.0-dev
    omecCni: docker.io/omecproject/omec-cni:0.0.1
    sriovDp: docker.io/nfvpe/sriov-device-plugin:v3.0.0
    spgwu: docker.io/omecproject/ngic-dp:0.1.0-dev
    depCheck: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
  pullPolicy: IfNotPresent

nodeSelectors:
  enabled: false
  spgwu:
    label: omec-dp
    value: enabled

resources:
  enabled: true
  spgwu:
    requests:
      cpu: 4
      memory: 8Gi
    limits:
      cpu: 4
      memory: 8Gi

config:
  sriov:
    enabled: true
    # Provide interface used as a SR-IOV PF
    # If your cluster has multiple nodes with different interface names,
    # simply provide the whole list
    resourceList:
      # Provide PF name with its VFs are bounded to vfio-pci driver
      vfio:
        pfNames:
          - eno1
      # Provide PF name with its VFs bounded to PF's driver
      # The driver name must be specified to prevent one interface is
      # registered to both vfio and netdevice resource pools
      # NOTE: netDevice is required to use CDN service
      #netDevice:
      #  pfNames:
      #    - eno2
      #  drivers:
      #    - ixgbevf
  spgwu:
    # Provide the S1U and SGI networks facing device name and IP address
    s1u:
      device: s1u-net
      ip: 119.0.0.3/24
    sgi:
      device: sgi-net
      ip: 13.1.1.3/24
    cpComm:
      # IMPORTANT: when you deploy CP and DP to separate clusters, enable nodePort
      # from both cpComm(omec-control-plane) and dpComm(omec-data-plane) and
      # set "addr" to remote cluster's entry node IP and
      # "port" to cpComm.nodePort.port value configured in omec-control-plane.
      addr: spgwc-cp-comm
      port: 21
    dpComm:
      nodePort:
        enabled: false
        port: 30020
    # Set "--no-pci --vdev eth_af_packet0,iface=s1u-net --vdev eth_af_packet1,iface=sgi-net"
    # when sriov is disabled
    devices: ""

networks:
  cniPlugin: vfioveth
  # Currently, we do not support dynamic IP allocation
  ipam: static
  s1u:
    subnet: 119.0.0.0/24
    mask: 255.255.255.0
    gateway: 119.0.0.254
  sgi:
    subnet: 13.1.1.0/24
    mask: 255.255.255.0
    gateway: 13.1.1.254
