# Copyright © 2017 Amdocs, Bell Canada
#
# 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.

# UUID of the OpenStack"s CentOS 7 cloud VM image
# If your Openstack does not have a CentOS 7 cloud image, you will have to add one.
centos7image_id: '52d4ea09-cc69-4a9a-9961-938a3282d209'
# UUID of the OpenStack"s Ubuntu 16.04 VM image
# If your Openstack does not have a buntu 16.04 cloud image, you will have to add one.
ubuntu1604image_id: '97bbe637-5d42-419a-a2c7-beff33ffa23c'
# ID of the OpenStack"s VM flavor to be used by DCAEGEN2 VMs (m1.medium/m1.large)
flavor_id: '4'
# UUID of the OpenStack"s security group to be used for DCAEGEN2 VMs
security_group: 'abc0687d-34ab-4d37-8fe8-4b544d94ba71'
# The name of the OpenStack network where public IP addresses and floating IPs are allocated from
# This must use the name and not the UUID.  The name must be unique otherwise the installer fails
public_net: 'public'
# The name of the OpenStack network where private IP addresses are allocated from
private_net: 'onap_oam'
# Group header for OpenStack Keystone parameters
openstack:
  # User name
  username: 'dev'
  # Password
  password: 'dev'
  # Name of the OpenStack tenant/project where DCAEGEN2 VMs are deployed
  tenant_name: 'dev'
  # Openstack authentication API URL, for example 'https://horizon.playground.onap.org:5000/v2.0'
  auth_url: 'http://1.2.3.4:5000/v2.0'
  # Name of the OpenStack region where DCAEGEN2 VMs are deployed, for example 'RegionOne'
  region: 'RegionOne'
# Name of the public key uploaded to OpenStack in the Prepration step
keypair: 'dcae-g2'
# Path to the private key within the conatiner (!! Do not change!!)
key_filename: '/opt/dcae/key'
# Prefix (location code) of all DCAEGEN2 VMs
location_prefix: 'onapr1'
# Domain name of the OpenStack tenant 'onapr1.playground.onap.org'
location_domain: 'onap-dcaegen2'
# Location of the raw artifact repo hosting additional boot scripts called by DCAEGEN2 VMs" cloud-init, for example: 'https://nexus.onap.org/service/local/repositories/raw/content'
codesource_url: 'https://nexus.onap.org/content/sites/raw'
# Path to the boot scripts within the raw artifact repo, for example: 'org.onap.dcaegen2.deployments.scripts/releases/'
codesource_version: 'org.onap.dcaegen2.deployments/releases/scripts/'


