3 # Copyright 2018 Huawei Technologies Co., Ltd.
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
12 if [ "$#" -ne 1 ]; then
13 echo This script generates the HEAT template for X number of k8s VMs
14 echo "$0 <num k8s vms>"
19 if [ -z "$WORKSPACE" ]; then
20 export WORKSPACE=`git rev-parse --show-toplevel`
22 PARTS_DIR=$WORKSPACE/deployment/heat/onap-rke/parts
26 # Generated by scripts/gen-onap-oom-yaml.sh; MANUAL CHANGES WILL BE LOST
30 cat $PARTS_DIR/onap-oom-1.yaml
34 type: OS::Cinder::Volume
39 type: OS::Cinder::VolumeAttachment
41 instance_uuid: { get_resource: nfs_vm }
42 volume_id: { get_resource: nfs_volume }
45 type: OS::Nova::Server
48 list_join: ['-', [{ get_param: 'OS::stack_name' }, 'nfs']]
49 image: { get_param: ubuntu_1804_image }
50 flavor: { get_param: nfs_vm_flavor }
51 key_name: { get_param: key_name }
53 - port: { get_resource: nfs_private_port }
58 get_file: nfs_vm_entrypoint.sh
60 __nfs_volume_id__: { get_resource: nfs_volume }
61 __docker_proxy__: { get_param: docker_proxy }
62 __apt_proxy__: { get_param: apt_proxy }
63 __nfs_ip_addr__: { get_attr: [nfs_floating_ip, floating_ip_address] }
64 __nfs_private_ip_addr__: { get_attr: [nfs_floating_ip, fixed_ip_address] }
65 __integration_override_yaml__: { get_param: integration_override_yaml }
66 __integration_gerrit_branch__: { get_param: integration_gerrit_branch }
67 __integration_gerrit_refspec__: { get_param: integration_gerrit_refspec }
68 __oom_gerrit_branch__: { get_param: oom_gerrit_branch }
69 __oom_gerrit_refspec__: { get_param: oom_gerrit_refspec }
70 __docker_manifest__: { get_param: docker_manifest }
71 __docker_version__: { get_param: docker_version }
72 __kubectl_version__: { get_param: kubectl_version }
73 __helm_version__: { get_param: helm_version }
74 __helm_deploy_delay__: { get_param: helm_deploy_delay }
75 __mtu__: { get_param: mtu }
76 __portal_hostname__: { get_param: portal_hostname }
77 __public_net_id__: { get_param: public_net_id }
78 __oam_network_cidr__: { get_param: oam_network_cidr }
79 __oam_network_id__: { get_resource: oam_network }
80 __oam_subnet_id__: { get_resource: oam_subnet }
81 __sec_group__: { get_resource: onap_sg }
82 __k8s_01_vm_ip__: { get_attr: [k8s_01_floating_ip, floating_ip_address] }
86 for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
87 K8S_VM_NAME=k8s_$VM_NUM
89 get_attr: [${K8S_VM_NAME}_floating_ip, floating_ip_address],
95 __k8s_private_ips__: [
98 for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
99 K8S_VM_NAME=k8s_$VM_NUM
101 get_attr: [${K8S_VM_NAME}_floating_ip, fixed_ip_address],
109 for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
110 VM_TYPE=k8s HOST_LABEL=compute VM_NUM=$VM_NUM envsubst < $PARTS_DIR/onap-oom-2.yaml
113 for VM_NUM in $(seq 3); do
114 VM_TYPE=orch HOST_LABEL=orchestration VM_NUM=$VM_NUM envsubst < $PARTS_DIR/onap-oom-2.yaml
118 cat $PARTS_DIR/onap-oom-3.yaml
120 for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
121 K8S_VM_NAME=k8s_$VM_NUM
123 ${K8S_VM_NAME}_vm_ip:
124 description: The IP address of the ${K8S_VM_NAME} instance
125 value: { get_attr: [${K8S_VM_NAME}_floating_ip, floating_ip_address] }
127 ${K8S_VM_NAME}_vm_private_ip:
128 description: The private IP address of the ${K8S_VM_NAME} instance
129 value: { get_attr: [${K8S_VM_NAME}_floating_ip, fixed_ip_address] }
134 for VM_NUM in $(seq 3); do
135 K8S_VM_NAME=orch_$VM_NUM
137 ${K8S_VM_NAME}_vm_ip:
138 description: The IP address of the ${K8S_VM_NAME} instance
139 value: { get_attr: [${K8S_VM_NAME}_floating_ip, floating_ip_address] }
141 ${K8S_VM_NAME}_vm_private_ip:
142 description: The private IP address of the ${K8S_VM_NAME} instance
143 value: { get_attr: [${K8S_VM_NAME}_floating_ip, fixed_ip_address] }