Reduce sizes of etcd and orch VMs
[integration.git] / deployment / heat / onap-oom / scripts / gen-onap-oom-yaml.sh
1 #!/bin/bash
2 #
3 # Copyright 2018 Huawei Technologies Co., Ltd.
4 #
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
8 #
9 #     http://www.apache.org/licenses/LICENSE-2.0
10 #
11
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>"
15     exit 1
16 fi
17 NUM_K8S_VMS=$1
18
19 if [ -z "$WORKSPACE" ]; then
20     export WORKSPACE=`git rev-parse --show-toplevel`
21 fi
22 PARTS_DIR=$WORKSPACE/deployment/heat/onap-oom/parts
23
24 cat <<EOF
25 #
26 # Generated by scripts/gen-onap-oom-yaml.sh; MANUAL CHANGES WILL BE LOST
27 #
28 EOF
29
30 cat $PARTS_DIR/onap-oom-1.yaml
31
32 cat <<EOF
33   rancher_vm:
34     type: OS::Nova::Server
35     properties:
36       name:
37         list_join: ['-', [{ get_param: 'OS::stack_name' }, 'rancher']]
38       image: { get_param: ubuntu_1604_image }
39       flavor: { get_param: rancher_vm_flavor }
40       key_name: { get_param: key_name }
41       networks:
42       - port: { get_resource: rancher_private_port }
43       user_data_format: RAW
44       user_data:
45         str_replace:
46           template:
47             get_file: rancher_vm_entrypoint.sh
48           params:
49             __docker_proxy__: { get_param: docker_proxy }
50             __apt_proxy__: { get_param: apt_proxy }
51             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
52             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
53             __integration_override_yaml__: { get_param: integration_override_yaml }
54             __integration_gerrit_branch__: { get_param: integration_gerrit_branch }
55             __integration_gerrit_refspec__: { get_param: integration_gerrit_refspec }
56             __oom_gerrit_branch__: { get_param: oom_gerrit_branch }
57             __oom_gerrit_refspec__: { get_param: oom_gerrit_refspec }
58             __docker_manifest__: { get_param: docker_manifest }
59             __docker_version__: { get_param: docker_version }
60             __rancher_version__: { get_param: rancher_version }
61             __rancher_agent_version__: { get_param: rancher_agent_version }
62             __kubectl_version__: { get_param: kubectl_version }
63             __helm_version__: { get_param: helm_version }
64             __helm_deploy_delay__: { get_param: helm_deploy_delay }
65             __use_ramdisk__: { get_param: use_ramdisk }
66             __public_net_id__: { get_param: public_net_id }
67             __oam_network_cidr__: { get_param: oam_network_cidr }
68             __oam_network_id__: { get_resource: oam_network }
69             __oam_subnet_id__: { get_resource: oam_subnet }
70             __sec_group__: { get_resource: onap_sg }
71             __k8s_01_vm_ip__: { get_attr: [k8s_01_floating_ip, floating_ip_address] }
72             __k8s_vm_ips__: [
73 EOF
74
75 for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
76     K8S_VM_NAME=k8s_$VM_NUM
77     cat <<EOF
78               get_attr: [${K8S_VM_NAME}_floating_ip, floating_ip_address],
79 EOF
80 done
81
82 cat <<EOF
83             ]
84             __k8s_private_ips__: [
85 EOF
86
87 for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
88     K8S_VM_NAME=k8s_$VM_NUM
89     cat <<EOF
90               get_attr: [${K8S_VM_NAME}_floating_ip, fixed_ip_address],
91 EOF
92 done
93
94 cat <<EOF
95             ]
96 EOF
97
98 for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
99     VM_TYPE=k8s HOST_LABEL=compute VM_NUM=$VM_NUM envsubst < $PARTS_DIR/onap-oom-2.yaml
100 done
101
102 for VM_NUM in $(seq 3); do
103     VM_TYPE=etcd HOST_LABEL=etcd VM_NUM=$VM_NUM envsubst < $PARTS_DIR/onap-oom-2.yaml
104 done
105
106 for VM_NUM in $(seq 2); do
107     VM_TYPE=orch HOST_LABEL=orchestration VM_NUM=$VM_NUM envsubst < $PARTS_DIR/onap-oom-2.yaml
108 done
109
110
111 cat $PARTS_DIR/onap-oom-3.yaml
112
113 for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
114     K8S_VM_NAME=k8s_$VM_NUM
115     cat <<EOF
116   ${K8S_VM_NAME}_vm_ip:
117     description: The IP address of the ${K8S_VM_NAME} instance
118     value: { get_attr: [${K8S_VM_NAME}_floating_ip, floating_ip_address] }
119
120 EOF
121 done