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


---
# mock ("mockup") scenario
# Brings up just core containers without synchronizers, for API tests and GUI dev

# create a cord_profile dir next to the cord checkout
config_cord_dir: "{{ ( playbook_dir ~ '/../..') | realpath }}"
config_cord_profile_dir: "{{ ( playbook_dir ~ '/../../../cord_profile' ) | realpath }}"

build_cord_dir: /opt/cord

# Vagrant VM configuration
head_vm_mem: 6048
head_vm_cpu: 4
head_vm_ip: "192.168.46.100"

vagrant_vms:
  - headnode

buildnode: headnode
headnode: headnode

physical_node_list:
  - name: headnode
    ipv4_last_octet: 1
    aliases:
      - head

# make targets
build_targets:
  - onboard-profile

prep_headnode_prereqs:
  - prep-buildnode

docker_images_prereqs:
  - prep-headnode

# mock profile configuration
frontend_only: True
use_maas: False
use_apt_cache: False
use_openstack: False
create_configdirs_become: False
xos_images: []

# whitelist of images for imagebuilder to build/pull (tagged elsewhere)
docker_image_whitelist:
  - "xosproject/xos-base"
  - "xosproject/xos"
  - "xosproject/xos-client"
  - "xosproject/xos-corebuilder"
  - "xosproject/xos-gui"
  - "xosproject/xos-gui-extension-builder"
  - "xosproject/xos-libraries"
  - "xosproject/xos-postgres"
  - "xosproject/xos-tosca"
  - "xosproject/xos-ws"
  - "xosproject/chameleon"
  - "xosproject/gui-extension-rcord"
  - "xosproject/gui-extension-sample"
  - "xosproject/gui-extension-vtr"
  - "gliderlabs/consul-server"
  - "gliderlabs/registrator"
  - "nginx"
  - "redis"
  - "node"

# Ansible Inventory
inventory_groups:

  config:
    localhost:
      ansible_connection: local

  build:
    headnode:

  head:
    headnode:

  compute:

