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

nginx_hostname: "nginx"
local_vlc_hostname: "local_vlc"

remote_ip: 10.90.0.132
stream_name: 1.stream
spgwu_sgiip: 13.1.1.3
ue_ip_subnet1: 16.0.0.0/8
ue_ip_subnet2: 17.0.0.0/8
etcdurl: http://node1:32379

nginx:
  images:
    nginx_image: "docker.io/omecproject/cdn-nginx:1.0.0"
  ports:
    rtmp_orig: 1935
    rtmp_np: 31935
  replicas: 1
  resources:
    cpu: 3
    mem: "1Gi"

networks:
  sriov:
    enabled: true
  sgi_net_nd:
    type: sriov
    ipam: static
    ip: 13.1.1.253/24
    subnet: 13.1.1.0/24
    gateway: 13.1.1.254
