# Copyright 2019 AT&T Intellectual Property. All rights reserved.
#
# 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.

# The variable $BUILD will be generated dynamically when this file is sourced

RANDOM_STRING=`cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-zA-Z0-9' | head -c 4`
BUILD="ONAP$RANDOM_STRING"

# GLOBAL PARAMS
LOCATION="westus2"
USER_PUBLIC_IP_PREFIX="10.0.0.0/8 192.168.100.0/24"
BUILD_DIR=/home/username/$BUILD

# AKS PARAMS
AKS_RESOURCE_GROUP_NAME=$BUILD"-AKSRG"
AKS_NAME=$BUILD"-AKS"
AKS_K8_VERSION="1.14.6"
AKS_NODE_COUNT="7"
AKS_NODE_SIZE="Standard_DS4_v2"
AKS_VNET_NAME="$BUILD"-AKSVNET""
AKS_DNS_PREFIX=$BUILD"-dns"
AKS_POD_CIDR="10.244.0.0/16"
AKS_NODE_CIDR="169.1.0.0/16"
AKS_SERVICE_CIDR="170.1.0.0/16"
AKS_DNS_IP="170.1.0.10"
AKS_ADMIN_USER="onap_user"

# NFS PARAMS
NFS_NAME=$BUILD"-NFS"
NFS_RG=$BUILD"-NFS-RG"
NFS_VM_SIZE=$AKS_NODE_SIZE
NFS_LOCATION=$LOCATION
NFS_CIDR="173.163.0.0/28"
NFS_ADMIN_USER="onap_user"
NFS_VNET_NAME=$BUILD"-NFSVNET"
NFS_SUBNET_NAME=$BUILD"-NFSSUBNET"
NFS_DISK_SIZE=512

# DEVSTACK PARAMS
DEVSTACK_NAME=$BUILD"-DEVSTACK"
DEVSTACK_RG=$BUILD"-DEVSTACK-RG"
DEVSTACK_VM_SIZE="Standard_D16s_v3"
DEVSTACK_LOCATION=$LOCATION
DEVSTACK_CIDR="10.0.200.0/24"
DEVSTACK_PRIVATE_IP="10.0.200.4"
DEVSTACK_ADMIN_USER="onap_user"
DEVSTACK_VNET_NAME=$BUILD"-DEVSTACKVNET"
DEVSTACK_SUBNET_NAME=$BUILD"-DEVSTACKSUBNET"
DEVSTACK_DISK_SIZE=512
DEVSTACK_BRANCH="stable/stein"
OPENSTACK_USER="onap_user"
OPENSTACK_PASS="supersecret"
OPENSTACK_TENANT="onap_project"
OPENSTACK_REGION="RegionOne"
IMAGE_LIST="https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img"

# ONAP PARAMS
CLLI="testclli1"
CLOUD_OWNER="ONAPOWNER"
CLOUD_REGION="ONAPREGION"
CUSTOMER="ONAPCUSTOMER"
SUBSCRIBER="ONAPSUBSCRIBER"
SERVICE_TYPE="ONAPSERVICE"
AZ="nova"
OE="testentity"
LOB="testlob"
PROJECT="testproject"
PLATFORM="testplatform"
OS_ID="OnapOpenstack"
OS_TENANT_ROLE="admin"
OS_KEYSTONE="KEYSTONE_V3"
OOM_BRANCH="master"
CHART_VERSION="5.0.0"
OOM_OVERRIDES=""
DOCKER_REPOSITORY="nexus3.onap.org:10001"
