stark, steven | 6754bc1 | 2019-09-19 15:43:00 -0700 | [diff] [blame^] | 1 | #!/bin/bash |
| 2 | # Copyright 2019 AT&T Intellectual Property. All rights reserved. |
| 3 | # |
| 4 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | # you may not use this file except in compliance with the License. |
| 6 | # You may obtain a copy of the License at |
| 7 | # |
| 8 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | # |
| 10 | # Unless required by applicable law or agreed to in writing, software |
| 11 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | # See the License for the specific language governing permissions and |
| 14 | # limitations under the License. |
| 15 | |
| 16 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" |
| 17 | |
| 18 | NO_PROMPT=0 |
| 19 | NO_INSTALL=0 |
| 20 | OVERRIDE=0 |
| 21 | |
| 22 | OPENSTACK_CLI_POD="os-cli-0" |
| 23 | |
| 24 | if [ ! -f $DIR/cloud.conf ]; then |
| 25 | echo "cloud.conf not found, exiting..." |
| 26 | exit 1 |
| 27 | fi |
| 28 | |
| 29 | . $DIR/cloud.conf |
| 30 | |
| 31 | while test $# -gt 0; do |
| 32 | case "$1" in |
| 33 | -h|--help) |
| 34 | echo "./cloud.sh [options]" |
| 35 | echo " " |
| 36 | echo " " |
| 37 | echo "options:" |
| 38 | echo "-f, --no-prompt executes with no prompt for confirmation" |
| 39 | echo "-n, --no-install don't install ONAP" |
| 40 | echo "-o, --override create integration override for robot configuration" |
| 41 | echo "-h, --help provide brief overview of script" |
| 42 | echo " " |
| 43 | echo "This script deploys a cloud environment in Azure." |
| 44 | echo "It: " |
| 45 | echo "- Uses Azure Kubernetes Service (AKS) to bootstrap a kubernetes cluster." |
| 46 | echo "- Creates a VM with an external disk to be used as NFS storage." |
| 47 | echo "- Creates a VM and installs DevStack, to be used with ONAP." |
| 48 | echo "- Launches ONAP onto the AKS Cluster via OOM." |
| 49 | echo "- Configures Networking, SSH Access, and Security Group Rules" |
| 50 | echo "" |
| 51 | exit 0 |
| 52 | ;; |
| 53 | -f|--no-prompt) |
| 54 | shift |
| 55 | NO_PROMPT=1 |
| 56 | ;; |
| 57 | -n|--no-install) |
| 58 | shift |
| 59 | NO_INSTALL=1 |
| 60 | ;; |
| 61 | -o|--override) |
| 62 | shift |
| 63 | OVERRIDE=1 |
| 64 | ;; |
| 65 | *) |
| 66 | echo "Unknown Argument. Try running with --help ." |
| 67 | exit 0 |
| 68 | ;; |
| 69 | esac |
| 70 | done |
| 71 | |
| 72 | cat <<EOF |
| 73 | |
| 74 | Here are the parameters to be used in this build: |
| 75 | |
| 76 | # GLOBAL PARAMS |
| 77 | LOCATION = "$LOCATION" |
| 78 | USER_PUBLIC_IP_PREFIX = "$USER_PUBLIC_IP_PREFIX" |
| 79 | BUILD_DIR = "$BUILD_DIR" |
| 80 | |
| 81 | # AKS PARAMS |
| 82 | AKS_RESOURCE_GROUP_NAME = "$AKS_RESOURCE_GROUP_NAME" |
| 83 | AKS_NAME = "$AKS_NAME" |
| 84 | AKS_K8_VERSION = "$AKS_K8_VERSION" |
| 85 | AKS_NODE_COUNT = "$AKS_NODE_COUNT" |
| 86 | AKS_NODE_SIZE = "$AKS_NODE_SIZE" |
| 87 | AKS_DNS_PREFIX = "$AKS_DNS_PREFIX" |
| 88 | AKS_POD_CIDR = "$AKS_POD_CIDR" |
| 89 | AKS_NODE_CIDR = "$AKS_NODE_CIDR" |
| 90 | AKS_SERVICE_CIDR = "$AKS_SERVICE_CIDR" |
| 91 | AKS_DNS_IP = "$AKS_DNS_IP" |
| 92 | AKS_VNET_NAME = "$AKS_VNET_NAME" |
| 93 | AKS_ADMIN_USER= = "$AKS_ADMIN_USER" |
| 94 | |
| 95 | # NFS PARAMS |
| 96 | NFS_NAME = "$NFS_NAME" |
| 97 | NFS_RG = "$NFS_RG" |
| 98 | NFS_VM_SIZE = "$NFS_VM_SIZE" |
| 99 | NFS_LOCATION = "$NFS_LOCATION" |
| 100 | NFS_CIDR = "$NFS_CIDR" |
| 101 | NFS_ADMIN_USER = "$NFS_ADMIN_USER" |
| 102 | NFS_VNET_NAME = "$NFS_VNET_NAME" |
| 103 | NFS_SUBNET_NAME = "$NFS_SUBNET_NAME" |
| 104 | NFS_DISK_SIZE = "$NFS_DISK_SIZE" |
| 105 | |
| 106 | # DEVSTACK PARAMS |
| 107 | DEVSTACK_NAME = "$DEVSTACK_NAME" |
| 108 | DEVSTACK_RG = "$DEVSTACK_RG" |
| 109 | DEVSTACK_VM_SIZE = "$DEVSTACK_VM_SIZE" |
| 110 | DEVSTACK_LOCATION = "$DEVSTACK_LOCATION" |
| 111 | DEVSTACK_CIDR = "$DEVSTACK_CIDR" |
| 112 | DEVSTACK_PRIVATE_IP = "$DEVSTACK_PRIVATE_IP" |
| 113 | DEVSTACK_ADMIN_USER = "$DEVSTACK_ADMIN_USER" |
| 114 | DEVSTACK_VNET_NAME = "$DEVSTACK_VNET_NAME" |
| 115 | DEVSTACK_SUBNET_NAME = "$DEVSTACK_SUBNET_NAME" |
| 116 | DEVSTACK_DISK_SIZE = "$DEVSTACK_DISK_SIZE" |
| 117 | OPENSTACK_USER = "$OPENSTACK_USER" |
| 118 | OPENSTACK_PASS = "$OPENSTACK_PASS" |
| 119 | OPENSTACK_TENANT = "$OPENSTACK_TENANT" |
| 120 | IMAGE_LIST = "$IMAGE_LIST" |
| 121 | |
| 122 | # ONAP PARAMS |
| 123 | CLLI = "$CLLI" |
| 124 | CLOUD_OWNER = "$CLOUD_OWNER" |
| 125 | CLOUD_REGION = "$CLOUD_REGION" |
| 126 | CUSTOMER = "$CUSTOMER" |
| 127 | SUBSCRIBER = "$SUBSCRIBER" |
| 128 | SERVICE_TYPE = "$SERVICE_TYPE" |
| 129 | AZ = "$AZ" |
| 130 | OE = "$OE" |
| 131 | LOB = "$LOB" |
| 132 | PLATFORM = "$PLATFORM" |
| 133 | OS_ID = "$OS_ID" |
| 134 | OS_TENANT_ROLE = "$OS_TENANT_ROLE" |
| 135 | OS_KEYSTONE = "$OS_KEYSTONE" |
| 136 | OPENSTACK_REGION = "$OPENSTACK_REGION" |
| 137 | PROJECT = "$PROJECT" |
| 138 | OOM_BRANCH = "$OOM_BRANCH" |
| 139 | CHART_VERSION = "$CHART_VERSION" |
| 140 | OOM_OVERRIDES = "$OOM_OVERRIDES" |
| 141 | DOCKER_REPOSITORY = "$DOCKER_REPOSITORY" |
| 142 | |
| 143 | EOF |
| 144 | |
| 145 | if [ $NO_PROMPT = 0 ]; then |
| 146 | read -p "Would you like to proceed? [y/n]" -n 1 -r |
| 147 | echo " " |
| 148 | if [[ ! $REPLY =~ ^[Yy]$ ]] |
| 149 | then |
| 150 | exit 0 |
| 151 | fi |
| 152 | fi |
| 153 | |
| 154 | echo "Starting instantiation. This will take a little while..." |
| 155 | sleep 3 |
| 156 | |
| 157 | set -x |
| 158 | set -e |
| 159 | |
| 160 | mkdir -p $BUILD_DIR |
| 161 | |
| 162 | echo "#!/bin/bash" > $BUILD_DIR/clean.sh |
| 163 | echo "" >> $BUILD_DIR/clean.sh |
| 164 | chmod 755 $BUILD_DIR/clean.sh |
| 165 | |
| 166 | ssh-keygen -t rsa -N "" -f $BUILD_DIR/id_rsa |
| 167 | |
| 168 | PUBLIC_KEY=$BUILD_DIR/id_rsa.pub |
| 169 | PRIVATE_KEY=$BUILD_DIR/id_rsa |
| 170 | |
| 171 | |
| 172 | echo "az group delete --resource-group $DEVSTACK_RG --yes" >> $BUILD_DIR/clean.sh |
| 173 | echo "" >> $BUILD_DIR/clean.sh |
| 174 | |
| 175 | echo "Creating DEVSTACK Server $DEVSTACK_NAME in $LOCATION" |
| 176 | $DIR/create_devstack.sh --name "$DEVSTACK_NAME" \ |
| 177 | --resource-group "$DEVSTACK_RG" \ |
| 178 | --size "$DEVSTACK_VM_SIZE" \ |
| 179 | --location "$DEVSTACK_LOCATION" \ |
| 180 | --cidr "$DEVSTACK_CIDR" \ |
| 181 | --admin-user "$DEVSTACK_ADMIN_USER" \ |
| 182 | --directory "$BUILD_DIR" \ |
| 183 | --vnet-name "$DEVSTACK_VNET_NAME" \ |
| 184 | --public-key "$PUBLIC_KEY" \ |
| 185 | --user-public-ip "$USER_PUBLIC_IP_PREFIX" \ |
| 186 | --devstack-private-ip "$DEVSTACK_PRIVATE_IP" \ |
| 187 | --devstack-subnet-name "$DEVSTACK_SUBNET_NAME" \ |
| 188 | --devstack-disk-size "$DEVSTACK_DISK_SIZE" \ |
| 189 | --openstack-username "$OPENSTACK_USER" \ |
| 190 | --openstack-password "$OPENSTACK_PASS" \ |
| 191 | --openstack-tenant "$OPENSTACK_TENANT" \ |
| 192 | --image-list "$IMAGE_LIST" \ |
| 193 | --no-prompt |
| 194 | |
| 195 | |
| 196 | echo "az group delete --resource-group $NFS_RG --yes" >> $BUILD_DIR/clean.sh |
| 197 | echo "" >> $BUILD_DIR/clean.sh |
| 198 | |
| 199 | echo "Creating NFS Server $NFS_NAME in $LOCATION" |
| 200 | $DIR/create_nfs.sh --name "$NFS_NAME" \ |
| 201 | --resource-group "$NFS_RG" \ |
| 202 | --size "$NFS_VM_SIZE" \ |
| 203 | --location "$NFS_LOCATION" \ |
| 204 | --cidr "$NFS_CIDR" \ |
| 205 | --admin-user "$NFS_ADMIN_USER" \ |
| 206 | --directory "$BUILD_DIR" \ |
| 207 | --vnet-name "$NFS_VNET_NAME" \ |
| 208 | --public-key "$PUBLIC_KEY" \ |
| 209 | --user-public-ip "$USER_PUBLIC_IP_PREFIX" \ |
| 210 | --nfs-subnet-name "$NFS_SUBNET_NAME" \ |
| 211 | --aks-node-cidr "$AKS_NODE_CIDR" \ |
| 212 | --nfs-disk-size "$NFS_DISK_SIZE" \ |
| 213 | --no-prompt |
| 214 | |
| 215 | |
| 216 | echo "az group delete --resource-group $AKS_RESOURCE_GROUP_NAME --yes" >> $BUILD_DIR/clean.sh |
| 217 | echo "" >> $BUILD_DIR/clean.sh |
| 218 | |
| 219 | echo "Creating AKS $AKS_NAME in $LOCATION" |
| 220 | $DIR/create_aks.sh --name "$AKS_NAME" \ |
| 221 | --resource-group "$AKS_RESOURCE_GROUP_NAME" \ |
| 222 | --kube-version "$AKS_K8_VERSION" \ |
| 223 | --location "$LOCATION" \ |
| 224 | --node-count "$AKS_NODE_COUNT" \ |
| 225 | --size "$AKS_NODE_SIZE" \ |
| 226 | --service-cidr "$AKS_SERVICE_CIDR" \ |
| 227 | --pod-cidr "$AKS_POD_CIDR" \ |
| 228 | --dns-ip "$AKS_DNS_IP" \ |
| 229 | --node-cidr "$AKS_NODE_CIDR" \ |
| 230 | --vnet-name "$AKS_VNET_NAME" \ |
| 231 | --user-public-ip "$USER_PUBLIC_IP_PREFIX" \ |
| 232 | --public-key "$PUBLIC_KEY" \ |
| 233 | --admin-user "$AKS_ADMIN_USER" \ |
| 234 | --no-prompt |
| 235 | |
| 236 | |
| 237 | AKS_MANAGEMENT_RESOURCE_GROUP_NAME=`az group list --query "[?starts_with(name, 'MC_${AKS_RESOURCE_GROUP_NAME}')].name | [0]" --output tsv` |
| 238 | AKS_VNET_ID=`az network vnet show --resource-group ${AKS_RESOURCE_GROUP_NAME} --name ${AKS_VNET_NAME} --query 'id' --output tsv` |
| 239 | NFS_VNET_ID=`az network vnet show --name ${NFS_VNET_NAME} --resource-group ${NFS_RG} --query "id" --output tsv` |
| 240 | DEVSTACK_VNET_ID=`az network vnet show --name ${DEVSTACK_VNET_NAME} --resource-group ${DEVSTACK_RG} --query "id" --output tsv` |
| 241 | AKS_ROUTE_TABLE_NAME=`az resource list --resource-group ${AKS_MANAGEMENT_RESOURCE_GROUP_NAME} --resource-type "Microsoft.Network/routeTables" --query "[0] | name" --output tsv` |
| 242 | DEVSTACK_PRIVATE_IP=`az vm show --name ${DEVSTACK_NAME} --resource-group ${DEVSTACK_RG} -d --query "privateIps" --output tsv` |
| 243 | NFS_PRIVATE_IP=`az vm show --name ${NFS_NAME} --resource-group ${NFS_RG} -d --query "privateIps" --output tsv` |
| 244 | NFS_PUBLIC_IP=`az vm show --name ${NFS_NAME} --resource-group ${NFS_RG} -d --query "publicIps" --output tsv` |
| 245 | DEVSTACK_PUBLIC_IP=`az vm show --name ${DEVSTACK_NAME} --resource-group ${DEVSTACK_RG} -d --query "publicIps" --output tsv` |
| 246 | |
| 247 | # adding public ip to aks |
| 248 | NIC_NAME0=`az resource list --resource-group ${AKS_MANAGEMENT_RESOURCE_GROUP_NAME} --resource-type "Microsoft.Network/networkInterfaces" --query "[0] | name" --output tsv` |
| 249 | AKS_NSG_NAME=`az resource list --resource-group ${AKS_MANAGEMENT_RESOURCE_GROUP_NAME} --resource-type "Microsoft.Network/networkSecurityGroups" --query "[0] | name" --output tsv` |
| 250 | $DIR/create_public_ip.sh "AKSPUBLICIP1" "$AKS_MANAGEMENT_RESOURCE_GROUP_NAME" "$NIC_NAME0" |
| 251 | $DIR/create_sg_rule.sh "$AKS_MANAGEMENT_RESOURCE_GROUP_NAME" "$AKS_NSG_NAME" '*' "30000-32000" "$USER_PUBLIC_IP_PREFIX" '*' '*' "ONAP" "120" |
| 252 | |
| 253 | AKS_PUBLIC_IP_ADDRESS=`az network public-ip show --resource-group ${AKS_MANAGEMENT_RESOURCE_GROUP_NAME} -n AKSPUBLICIP1 --query "ipAddress" --output tsv` |
| 254 | |
| 255 | ### Peering networks ### |
| 256 | # peering requires source = VNet NAME, destination = VNet ID |
| 257 | |
| 258 | echo "creating peering from AKS Vnet to NFS Vnet..." |
| 259 | $DIR/create_peering.sh "$AKS_VNET_NAME" \ |
| 260 | "$AKS_RESOURCE_GROUP_NAME" \ |
| 261 | "$NFS_VNET_ID" \ |
| 262 | "kube-to-nfs" |
| 263 | |
| 264 | echo "creating peering from AKS Vnet to Devstack Vnet..." |
| 265 | $DIR/create_peering.sh "$AKS_VNET_NAME" \ |
| 266 | "$AKS_RESOURCE_GROUP_NAME" \ |
| 267 | "$DEVSTACK_VNET_ID" \ |
| 268 | "kube-to-devstack" |
| 269 | |
| 270 | echo "creating peering from NFS Vnet to AKS Vnet..." |
| 271 | $DIR/create_peering.sh "$NFS_VNET_NAME" \ |
| 272 | "$NFS_RG" \ |
| 273 | "$AKS_VNET_ID" \ |
| 274 | "nfs-to-kube" |
| 275 | |
| 276 | echo "creating peering from NFS Vnet to AKS Vnet..." |
| 277 | $DIR/create_peering.sh "$DEVSTACK_VNET_NAME" \ |
| 278 | "$DEVSTACK_RG" \ |
| 279 | "$AKS_VNET_ID" \ |
| 280 | "devstack-to-kube" |
| 281 | |
| 282 | |
| 283 | ### Adding next hop to kubernetes for devstack ### |
| 284 | echo "creating route from AKS Vnet to Devstack Vnet..." |
| 285 | $DIR/create_route.sh "$DEVSTACK_CIDR" \ |
| 286 | "guestvms" \ |
| 287 | "$AKS_MANAGEMENT_RESOURCE_GROUP_NAME" \ |
| 288 | "$AKS_ROUTE_TABLE_NAME" \ |
| 289 | "$DEVSTACK_PRIVATE_IP" |
| 290 | |
| 291 | |
| 292 | |
| 293 | # TODO |
| 294 | # Lets find a better place for this |
| 295 | az aks get-credentials --resource-group "$AKS_RESOURCE_GROUP_NAME" \ |
| 296 | --name "$AKS_NAME" \ |
| 297 | --file "$BUILD_DIR"/"kubeconfig" |
| 298 | |
| 299 | $DIR/configure_nfs_pod.sh "$PRIVATE_KEY" \ |
| 300 | "$BUILD_DIR"/"kubeconfig" \ |
| 301 | "$NFS_PRIVATE_IP" \ |
| 302 | "$AKS_ADMIN_USER" |
| 303 | |
| 304 | # TODO |
| 305 | # add this to post-install or post-configure phase |
| 306 | # to support adding multiple devstacks to same ONAP |
| 307 | cat > "$BUILD_DIR/openstack_rc" <<EOF |
| 308 | export OS_USERNAME="$OPENSTACK_USER" |
| 309 | export OS_PROJECT_NAME="$OPENSTACK_TENANT" |
| 310 | export OS_AUTH_URL="http://$DEVSTACK_PRIVATE_IP/identity" |
| 311 | export OS_PASSWORD="$OPENSTACK_PASS" |
| 312 | export OS_USER_DOMAIN_NAME=default |
| 313 | export OS_PROJECT_DOMAIN_ID=default |
| 314 | EOF |
| 315 | |
| 316 | $DIR/util/create_openstack_cli.sh "$BUILD_DIR/kubeconfig" \ |
| 317 | "$BUILD_DIR/openstack_rc" \ |
| 318 | "$OPENSTACK_CLI_POD" |
| 319 | |
| 320 | if [ $OVERRIDE = 1 ]; then |
| 321 | |
| 322 | $DIR/util/create_integration_override.sh "$BUILD_DIR" \ |
| 323 | "$OPENSTACK_CLI_POD" \ |
| 324 | "$BUILD_DIR/openstack_rc" \ |
| 325 | "$DOCKER_REPOSITORY" \ |
| 326 | "$NFS_PRIVATE_IP" \ |
| 327 | "$AKS_PUBLIC_IP_ADDRESS" \ |
| 328 | "$BUILD_DIR/kubeconfig" |
| 329 | |
| 330 | fi |
| 331 | |
| 332 | if [ $NO_INSTALL = 0 ]; then |
| 333 | |
| 334 | ### Starting OOM install ### |
| 335 | echo "Installing ONAP..." |
| 336 | $DIR/create_onap.sh "$BUILD" \ |
| 337 | "$BUILD_DIR/kubeconfig" \ |
| 338 | "$NFS_PRIVATE_IP" \ |
| 339 | "$OOM_BRANCH" \ |
| 340 | "$BUILD_DIR" \ |
| 341 | "$CHART_VERSION" \ |
| 342 | "$OOM_OVERRIDES" |
| 343 | |
| 344 | ### Starting OOM install ### |
| 345 | echo "Configuring ONAP..." |
| 346 | |
| 347 | cat > "$BUILD_DIR/onap.conf" <<EOF |
| 348 | export CLLI=$CLLI |
| 349 | export CLOUD_OWNER=$CLOUD_OWNER |
| 350 | export CLOUD_REGION=$CLOUD_REGION |
| 351 | export OPENSTACK_IP=$DEVSTACK_PRIVATE_IP |
| 352 | export OPENSTACK_USER=$OPENSTACK_USER |
| 353 | export OPENSTACK_PASS=$OPENSTACK_PASS |
| 354 | export OPENSTACK_TENANT=$OPENSTACK_TENANT |
| 355 | export OPENSTACK_REGION=$OPENSTACK_REGION |
| 356 | export CUSTOMER=$CUSTOMER |
| 357 | export SUBSCRIBER=$SUBSCRIBER |
| 358 | export SERVICE_TYPE=$SERVICE_TYPE |
| 359 | export AZ=$AZ |
| 360 | export OE=$OE |
| 361 | export LOB=$LOB |
| 362 | export PLATFORM=$PLATFORM |
| 363 | export PROJECT=$PROJECT |
| 364 | export OS_ID=$OS_ID |
| 365 | export OS_TENANT_ROLE=$OS_TENANT_ROLE |
| 366 | export OS_KEYSTONE=$OS_KEYSTONE |
| 367 | export KUBECONFIG=$BUILD_DIR/kubeconfig |
| 368 | EOF |
| 369 | |
| 370 | $DIR/bootstrap_onap.sh "$BUILD_DIR/onap.conf" |
| 371 | |
| 372 | fi |
| 373 | |
| 374 | set +x |
| 375 | |
| 376 | cat > "$BUILD_DIR/deployment.notes" <<EOF |
| 377 | ================================================================== |
| 378 | Phew, all done (yay!). ONAP and DevStack might still be installing |
| 379 | but here are the access details... |
| 380 | |
| 381 | --------DEVSTACK ACCESS-------- |
| 382 | ssh -i ${PRIVATE_KEY} ${DEVSTACK_ADMIN_USER}@${DEVSTACK_PUBLIC_IP} |
| 383 | horizon: http://${DEVSTACK_PUBLIC_IP} |
| 384 | cli: kubectl exec $OPENSTACK_CLI_POD -- sh -lc "<openstack command>" |
| 385 | |
| 386 | --------NFS ACCESS-------- |
| 387 | ssh -i ${PRIVATE_KEY} ${NFS_ADMIN_USER}@${NFS_PUBLIC_IP} |
| 388 | |
| 389 | --------KUBERNETES ACCESS-------- |
| 390 | kubeconfig: export KUBECONFIG=$BUILD_DIR/kubeconfig |
| 391 | dashboard: az aks browse --resource-group ${AKS_RESOURCE_GROUP_NAME} --name ${AKS_NAME} |
| 392 | |
| 393 | --------BUILD DETAILS-------- |
| 394 | Build directory: $BUILD_DIR |
| 395 | Integration repo: $BUILD_DIR/integration |
| 396 | OOM repo: $BUILD_DIR/oom |
| 397 | |
| 398 | --------ADD TO /etc/hosts-------- |
| 399 | $AKS_PUBLIC_IP_ADDRESS portal.api.simpledemo.onap.org |
| 400 | $AKS_PUBLIC_IP_ADDRESS sdc.api.simpledemo.onap.org |
| 401 | $AKS_PUBLIC_IP_ADDRESS sdc.api.fe.simpledemo.onap.org |
| 402 | $AKS_PUBLIC_IP_ADDRESS sdc.api.be.simpledemo.onap.org |
| 403 | $AKS_PUBLIC_IP_ADDRESS vid.api.simpledemo.onap.org |
| 404 | $AKS_PUBLIC_IP_ADDRESS policy.api.simpledemo.onap.org |
| 405 | $AKS_PUBLIC_IP_ADDRESS aai.api.simpledemo.onap.org |
| 406 | $AKS_PUBLIC_IP_ADDRESS cli.api.simpledemo.onap.org |
| 407 | $AKS_PUBLIC_IP_ADDRESS so.api.simpledemo.onap.org |
| 408 | $AKS_PUBLIC_IP_ADDRESS so.monitoring.api.simpledemo.onap.org |
| 409 | $AKS_PUBLIC_IP_ADDRESS so-monitoring |
| 410 | $AKS_PUBLIC_IP_ADDRESS sdnc.api.simpledemo.onap.org |
| 411 | $AKS_PUBLIC_IP_ADDRESS clamp.api.simpledemo.onap.org |
| 412 | $AKS_PUBLIC_IP_ADDRESS dcae.api.simpledemo.onap.org |
| 413 | $AKS_PUBLIC_IP_ADDRESS appc.api.simpledemo.onap.org |
| 414 | $AKS_PUBLIC_IP_ADDRESS aaf.api.simpledemo.onap.org |
| 415 | $AKS_PUBLIC_IP_ADDRESS portal-sdk.simpledemo.onap.org |
| 416 | $AKS_PUBLIC_IP_ADDRESS robot.api.simpledemo.onap.org |
| 417 | $AKS_PUBLIC_IP_ADDRESS msb.api.discovery.simpledemo.onap.org |
| 418 | $AKS_PUBLIC_IP_ADDRESS msb.api.simpledemo.onap.org |
| 419 | $AKS_PUBLIC_IP_ADDRESS aai.ui.simpledemo.onap.org |
| 420 | $AKS_PUBLIC_IP_ADDRESS policy.api.simpledemo.onap.org |
| 421 | |
| 422 | EOF |
| 423 | |
| 424 | cat "$BUILD_DIR/deployment.notes" |