diff options
author | Jack Lucas <jflucas@research.att.com> | 2020-02-03 18:21:29 -0500 |
---|---|---|
committer | Jack Lucas <jflucas@research.att.com> | 2020-02-07 13:07:09 -0500 |
commit | bad772074d0bfd4c4dcb7bdd2cbe9ca7246fc28e (patch) | |
tree | 5119178d7308c199ffdc12a5b8b1c4877a1c092b /reference_templates/consul_cluster.yaml-template | |
parent | 86685f86e7ee03a25f913da72de5105d92c1fbba (diff) |
Move k8s-bootstrap container to blueprints repo1.9.0
Cleanup of unnecessary input templates and other files
Use non-templatized blueprints instead of blueprint templates
Copy blueprints from blueprints/ directory into image
Move reference_templates to top-level directory
Issue-ID: DCAEGEN2-2041
Signed-off-by: Jack Lucas <jflucas@research.att.com>
Change-Id: Ib846a96a4995eb97383f63ff764705e6277a24b0
Diffstat (limited to 'reference_templates/consul_cluster.yaml-template')
-rw-r--r-- | reference_templates/consul_cluster.yaml-template | 384 |
1 files changed, 384 insertions, 0 deletions
diff --git a/reference_templates/consul_cluster.yaml-template b/reference_templates/consul_cluster.yaml-template new file mode 100644 index 0000000..a4ae89e --- /dev/null +++ b/reference_templates/consul_cluster.yaml-template @@ -0,0 +1,384 @@ +# -*- indent-tabs-mode: nil -*- # vi: set expandtab: +# +# ============LICENSE_START========================================== +# org.onap.dcae +# =================================================================== +# Copyright © 2017 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. +# ============LICENSE_END============================================ +# +# ECOMP and OpenECOMP are trademarks +# and service marks of AT&T Intellectual Property. +# + +tosca_definitions_version: cloudify_dsl_1_3 + +imports: + - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml + - http://www.getcloudify.org/spec/openstack-plugin/1.4/plugin.yaml + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/dnsdesig/dns_types.yaml" + - "{{ ONAPTEMPLATE_RAWREPOURL_org_onap_ccsdk_platform_plugins_releases }}/type_files/sshkeyshare/sshkey_types.yaml" + +inputs: + centos7image_id: + type: string + ubuntu1604image_id: + type: string + flavor_id: + type: string + security_group: + type: string + public_net: + type: string + private_net: + type: string + openstack: {} + keypair: + type: string + location_prefix: + type: string + location_domain: + type: string + key_filename: + type: string + codesource_url: + type: string + codesource_version: + type: string + datacenter: + type: string + vm_init_cnsl_00: + type: string + default: |- + #!/bin/sh + set -x + DATACENTER= + vm_init_cnsl_01: + type: string + default: | + CONSULVER=0.8.3 + CONSULNAME=consul_${CONSULVER}_linux_amd64 + MYIP=`wget -qO- http://169.254.169.254/2009-04-04/meta-data/local-ipv4` + MYNAME=`hostname` + echo >>/etc/hosts + echo $MYIP $MYNAME >>/etc/hosts + mkdir -p /opt/consul/config /opt/consul/data /opt/consul/bin + + # Download Consul + apt-get update + apt-get install unzip + wget https://releases.hashicorp.com/consul/${CONSULVER}/${CONSULNAME}.zip + unzip -d /opt/consul/bin ${CONSULNAME}.zip + rm ${CONSULNAME}.zip + chmod +x /opt/consul/bin/consul + + # NOTE: Not using port 80 for http to avoid port collision of user facing services + # particularly for more large scale deployments of Consul. + cat <<EOF > /opt/consul/config/consul.json + { + "bind_addr" : "$MYIP", + "client_addr" : "0.0.0.0", + "bootstrap_expect" : 3, + "data_dir" : "/opt/consul/data", + "datacenter": "$DATACENTER", + "http_api_response_headers": { + "Access-Control-Allow-Origin" : "*" + }, + "server": true, + "ui": true, + "enable_syslog": true, + "log_level": "info", + "ports": { + "dns": 53 + } + } + EOF + cat <<EOF > /lib/systemd/system/consul.service + [Unit] + Description=Consul + Requires=network-online.target + After=network.target + [Service] + Type=simple + ExecStart=/opt/consul/bin/consul agent -config-dir=/opt/consul/config + ExecReload=/bin/kill -HUP \$MAINPID + [Install] + WantedBy=multi-user.target + EOF + systemctl enable consul + systemctl start consul +node_templates: + key_pair: + type: cloudify.openstack.nodes.KeyPair + properties: + private_key_path: { get_input: key_filename } + use_external_resource: True + resource_id: { get_input: keypair } + openstack_config: &open_conf + get_input: openstack + private_net: + type: cloudify.openstack.nodes.Network + properties: + use_external_resource: True + resource_id: { get_input: private_net } + openstack_config: *open_conf + security_group: + type: cloudify.openstack.nodes.SecurityGroup + properties: + use_external_resource: True + resource_id: { get_input: security_group } + openstack_config: *open_conf + fixedip_cnsl00: + type: cloudify.openstack.nodes.Port + properties: + port: + extra_dhcp_opts: + - opt_name: 'domain-name' + opt_value: { get_input: location_domain } + openstack_config: *open_conf + relationships: + - type: cloudify.relationships.contained_in + target: private_net + floatingip_cnsl00: + type: cloudify.openstack.nodes.FloatingIP + properties: + openstack_config: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + floating_network_name: { get_input: public_net } + dns_cnsl00: + type: ccsdk.nodes.dns.arecord + properties: + fqdn: { concat: [ { get_input: location_prefix }, 'cnsl00.', { get_input: location_domain } ] } + openstack: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + ip_addresses: + - { get_attribute: [ floatingip_cnsl00, floating_ip_address ] } + relationships: + - type: cloudify.relationships.depends_on + target: floatingip_cnsl00 + host_cnsl00: + type: cloudify.openstack.nodes.Server + properties: + install_agent: false + image: { get_input: ubuntu1604image_id } + flavor: { get_input: flavor_id } + management_network_name: { get_input: private_net } + openstack_config: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + name: { concat: [ { get_input: location_prefix }, 'cnsl00' ] } + userdata: + concat: + - { get_input: vm_init_cnsl_00 } + - { get_input: datacenter } + - |+ + + - { get_input: vm_init_cnsl_01 } + - concat: + - 'until /opt/consul/bin/consul join ' + - { get_attribute: [host_cnsl01, ip] } + - '; do sleep 5; done; ' + - concat: + - 'until /opt/consul/bin/consul join ' + - { get_attribute: [host_cnsl02, ip]} + - '; do sleep 5; done' + + relationships: + - type: cloudify.openstack.server_connected_to_port + target: fixedip_cnsl00 + - type: cloudify.openstack.server_connected_to_security_group + target: security_group + - type: cloudify.openstack.server_connected_to_floating_ip + target: floatingip_cnsl00 + - type: cloudify.openstack.server_connected_to_keypair + target: key_pair + - type: cloudify.relationships.depends_on + target: dns_cnsl00 + - type: cloudify.relationships.depends_on + target: host_cnsl01 + - type: cloudify.relationships.depends_on + target: host_cnsl02 + fixedip_cnsl01: + type: cloudify.openstack.nodes.Port + properties: + port: + extra_dhcp_opts: + - opt_name: 'domain-name' + opt_value: { get_input: location_domain } + openstack_config: *open_conf + relationships: + - type: cloudify.relationships.contained_in + target: private_net + floatingip_cnsl01: + type: cloudify.openstack.nodes.FloatingIP + properties: + openstack_config: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + floating_network_name: { get_input: public_net } + dns_cnsl01: + type: ccsdk.nodes.dns.arecord + properties: + fqdn: { concat: [ { get_input: location_prefix }, 'cnsl01.', { get_input: location_domain } ] } + openstack: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + ip_addresses: + - { get_attribute: [ floatingip_cnsl01, floating_ip_address ] } + relationships: + - type: cloudify.relationships.depends_on + target: floatingip_cnsl01 + host_cnsl01: + type: cloudify.openstack.nodes.Server + properties: + install_agent: false + image: { get_input: ubuntu1604image_id } + flavor: { get_input: flavor_id } + management_network_name: { get_input: private_net } + openstack_config: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + name: { concat: [ { get_input: location_prefix }, 'cnsl01' ] } + userdata: + concat: + - { get_input: vm_init_cnsl_00 } + - { get_input: datacenter } + - |+ + + - { get_input: vm_init_cnsl_01 } + relationships: + - type: cloudify.openstack.server_connected_to_port + target: fixedip_cnsl01 + - type: cloudify.openstack.server_connected_to_security_group + target: security_group + - type: cloudify.openstack.server_connected_to_floating_ip + target: floatingip_cnsl01 + - type: cloudify.openstack.server_connected_to_keypair + target: key_pair + - type: cloudify.relationships.depends_on + target: dns_cnsl01 + fixedip_cnsl02: + type: cloudify.openstack.nodes.Port + properties: + port: + extra_dhcp_opts: + - opt_name: 'domain-name' + opt_value: { get_input: location_domain } + openstack_config: *open_conf + relationships: + - type: cloudify.relationships.contained_in + target: private_net + floatingip_cnsl02: + type: cloudify.openstack.nodes.FloatingIP + properties: + openstack_config: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + floating_network_name: { get_input: public_net } + dns_cnsl02: + type: ccsdk.nodes.dns.arecord + properties: + fqdn: { concat: [ { get_input: location_prefix }, 'cnsl02.', { get_input: location_domain } ] } + openstack: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + ip_addresses: + - { get_attribute: [ floatingip_cnsl02, floating_ip_address ] } + relationships: + - type: cloudify.relationships.depends_on + target: floatingip_cnsl02 + dns_cluster: + type: ccsdk.nodes.dns.arecord + properties: + fqdn: { concat: [ 'dcae-cnsl.', { get_input: location_domain } ] } + openstack: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + ip_addresses: + - { get_attribute: [ floatingip_cnsl00, floating_ip_address ] } + - { get_attribute: [ floatingip_cnsl01, floating_ip_address ] } + - { get_attribute: [ floatingip_cnsl02, floating_ip_address ] } + + relationships: + - type: cloudify.relationships.depends_on + target: floatingip_cnsl00 + - type: cloudify.relationships.depends_on + target: floatingip_cnsl01 + - type: cloudify.relationships.depends_on + target: floatingip_cnsl02 + host_cnsl02: + type: cloudify.openstack.nodes.Server + properties: + install_agent: false + image: { get_input: ubuntu1604image_id } + flavor: { get_input: flavor_id } + management_network_name: { get_input: private_net } + openstack_config: *open_conf + interfaces: + cloudify.interfaces.lifecycle: + create: + inputs: + args: + name: { concat: [ { get_input: location_prefix }, 'cnsl02' ] } + userdata: + concat: + - { get_input: vm_init_cnsl_00 } + - { get_input: datacenter } + - |+ + + - { get_input: vm_init_cnsl_01 } + relationships: + - type: cloudify.openstack.server_connected_to_port + target: fixedip_cnsl02 + - type: cloudify.openstack.server_connected_to_security_group + target: security_group + - type: cloudify.openstack.server_connected_to_floating_ip + target: floatingip_cnsl02 + - type: cloudify.openstack.server_connected_to_keypair + target: key_pair + - type: cloudify.relationships.depends_on + target: dns_cnsl02 + +outputs: + public_ip: + value: { get_attribute: [floatingip_cnsl00, floating_ip_address] } |