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

mme:
  nodeport_ip_addr: "10.90.0.152"
  port: 36412

enb:
  socket_interface: eth0

cu:
  location: remote # {remote: MME - same cluster, local: MME - different cluster}
  name: accelleran
  type: accelleran
  nodeselector:
    sriov: netdevice
  accelleran:
    images:
      init: "ngick8stesting/c3po-mmeinit"
      nats: "node1:30500/accelleran/vran-nats:20190121"
      redis: "node1:30500/accelleran/vran-redis:20190121"
      bbu: "node1:30500/accelleran/vran-l3-fdd:onf-dns"
    ports:
      s1ap: 36412
      s1ap_external: 31412
    replicas: 1
    instid: "enb_key"
    nats:
      servicename: "nats-cluster"
    resources:
      cpu: 3
      mem: "1Gi"

network:
  sriov:
    enabled: true
  etcdurl: http://node1:32379
  f1:
    cni_plugin: sriov
    ipam: centralip
    subnet: 116.0.0.0/24
    gateway: 116.0.0.254
