diff options
Diffstat (limited to 'VNFs/DPPD-PROX/helper-scripts/rapid/openstack-rapid.yaml')
-rw-r--r-- | VNFs/DPPD-PROX/helper-scripts/rapid/openstack-rapid.yaml | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/VNFs/DPPD-PROX/helper-scripts/rapid/openstack-rapid.yaml b/VNFs/DPPD-PROX/helper-scripts/rapid/openstack-rapid.yaml new file mode 100644 index 00000000..1cc11e04 --- /dev/null +++ b/VNFs/DPPD-PROX/helper-scripts/rapid/openstack-rapid.yaml @@ -0,0 +1,168 @@ +heat_template_version: 2015-10-15 + +description: > + Template for deploying n PROX instances. The template allows for deploying + multiple groups of PROX VMs. You can create a first group with certain + flavors, availability groups, etc... Another group can be created with + different characteristics. + +parameters: + public_net_name: {description: Public network to allocate (floating) IPs to VMs', type: string, default: admin_floating_net} + mgmt_net_name: {description: Name of PROX mgmt network to be created, type: string, default: admin_internal_net} + PROX_image: {description: Image name to use for PROX, type: string, default: rapidVM} + PROX_key: {description: DO NOT CHANGE THIS DEFAULT KEY NAME, type: string, default: rapid_rsa_key} + my_availability_zone: {description: availability_zone for Hosting VMs, type: string, default: nova} + security_group: {description: Security Group to use, type: string, default: prox_security_group} + PROXType1VM_count: {description: Total number of testVMs to create, type: number, default: 2} + PROXType2VM_count: {description: Total number of testVMs type 2 to create, type: number, default: 1} + PROXType3VM_count: {description: Total number of testVMs type 3 to create, type: number, default: 1} + +# The following paramters are not used, but are here in case you want to also +# create the management and dataplane networks in this template + mgmt_net_cidr: {description: PROX mgmt network CIDR, type: string, default: 20.20.1.0/24} + mgmt_net_gw: {description: PROX mgmt network gateway address, type: string, default: 20.20.1.1} + mgmt_net_pool_start: {description: Start of mgmt network IP address allocation pool, type: string, default: 20.20.1.100} + mgmt_net_pool_end: {description: End of mgmt network IP address allocation pool, type: string, default: 20.20.1.200} + data_net_name: {description: Name of PROX private network to be created, type: string, default: dataplane-network} + data_net_cidr: {description: PROX private network CIDR,type: string, default: 30.30.1.0/24} + data_net_pool_start: {description: Start of private network IP address allocation pool, type: string, default: 30.30.1.100} + data_net_pool_end: {description: End of private network IP address allocation pool, type: string, default: 30.30.1.200} + data2_net_name: {description: Name of PROX private network 2 to be created, type: string, default: data2} + dns: + type: comma_delimited_list + label: DNS nameservers + description: Comma separated list of DNS nameservers for the management network. + default: '8.8.8.8' + +resources: + PROXType1VMs: + type: OS::Heat::ResourceGroup + description: Group of PROX VMs according to specs described in this section + properties: + count: { get_param: PROXType1VM_count } + resource_def: + type: rapid-openstack-server.yaml + properties: + PROX_availability_zone : {get_param: my_availability_zone} + PROX_security_group : {get_param: security_group} + PROX_image: {get_param: PROX_image} + PROX_key: {get_param: PROX_key} + PROX_server_name: rapidVM-%index% + PROX_public_net: {get_param: public_net_name} + PROX_mgmt_net_id: {get_param: mgmt_net_name} + PROX_data_net_id: {get_param: data_net_name} + PROX_config: {get_resource: MyConfig} + depends_on: + - MyConfig + + PROXType2VMs: + type: OS::Heat::ResourceGroup + description: Group of PROX VMs according to specs described in this section + properties: + count: { get_param: PROXType2VM_count } + resource_def: + type: rapid-openstack-server-2ports.yaml + properties: + PROX_availability_zone : {get_param: my_availability_zone} + PROX_security_group : {get_param: security_group} + PROX_image: {get_param: PROX_image} + PROX_key: {get_param: PROX_key} + PROX_server_name: rapidType2VM-%index% + PROX_public_net: {get_param: public_net_name} + PROX_mgmt_net_id: {get_param: mgmt_net_name} + PROX_data_net_id: {get_param: data_net_name} + PROX_data2_net_id: {get_param: data2_net_name} + PROX_config: {get_resource: MyConfig} + depends_on: + - MyConfig + + PROXType3VMs: + type: OS::Heat::ResourceGroup + description: Group of PROX VMs according to specs described in this section + properties: + count: { get_param: PROXType3VM_count } + resource_def: + type: rapid-openstack-server.yaml + properties: + PROX_availability_zone : {get_param: my_availability_zone} + PROX_security_group : {get_param: security_group} + PROX_image: {get_param: PROX_image} + PROX_key: {get_param: PROX_key} + PROX_server_name: rapidType3VM-%index% + PROX_public_net: {get_param: public_net_name} + PROX_mgmt_net_id: {get_param: mgmt_net_name} + PROX_data_net_id: {get_param: data2_net_name} + PROX_config: {get_resource: MyConfig} + depends_on: + - MyConfig + + MyConfig: + type: OS::Heat::CloudConfig + properties: + cloud_config: + users: + - default + - name: rapid + groups: "users,root" + lock-passwd: false + passwd: 'test' + shell: "/bin/bash" + sudo: "ALL=(ALL) NOPASSWD:ALL" + ssh_pwauth: true + chpasswd: + list: | + rapid:rapid + expire: False + write_files: + - path: /opt/rapid/after_boot_do_not_run.sh + # - path: /opt/rapid/after_boot.sh + # after_boot.sh is ran by check_prox_system_setup.sh, if it exists + # This can be used to fix some issues, like in the example below + # Remove this section or rename the file, if you do not want to run + # this after booting + # The code below is just an example of what could be ran after boot + content: | + OLDIFS="${IFS}" + IFS=$'\n' + list="$(ip route | grep via | grep -v 'dev eth0')" + # Delete all routes using gateway on other interfaces than eth0 + for item in ${list} + do /bin/bash -c "sudo ip route del ${item}" + done + # Make sure to replace the IP address with your gateway + /bin/bash -c "sudo ip route add default via 10.6.6.1 dev eth0" + /bin/bash -c "echo nameserver 8.8.8.8 > /etc/resolv.conf" + IFS="${OLDIFS}" + permissions: '0777' + +outputs: + number_of_servers: + description: List of number or PROX instance + value: + - {get_param: PROXType1VM_count} + - {get_param: PROXType2VM_count} + - {get_param: PROXType3VM_count} + server_name: + description: List of list of names of the PROX instances + value: + - {get_attr: [PROXType1VMs, name]} + - {get_attr: [PROXType2VMs, name]} + - {get_attr: [PROXType3VMs, name]} + mngmt_ips: + description: List of list of Management IPs of the VMs + value: + - {get_attr: [PROXType1VMs, mngmt_ip]} + - {get_attr: [PROXType2VMs, mngmt_ip]} + - {get_attr: [PROXType3VMs, mngmt_ip]} + data_plane_ips: + description: List of list of list of DataPlane IPs of the VMs + value: + - {get_attr: [PROXType1VMs, data_plane_ips]} + - {get_attr: [PROXType2VMs, data_plane_ips]} + - {get_attr: [PROXType3VMs, data_plane_ips]} + data_plane_macs: + description: List of list of list of DataPlane MACs of the VMs + value: + - {get_attr: [PROXType1VMs, data_plane_mac]} + - {get_attr: [PROXType2VMs, data_plane_mac]} + - {get_attr: [PROXType3VMs, data_plane_mac]} |