summaryrefslogtreecommitdiffstats
path: root/blueprints/reference_templates/consul_cluster.yaml-template
diff options
context:
space:
mode:
Diffstat (limited to 'blueprints/reference_templates/consul_cluster.yaml-template')
-rw-r--r--blueprints/reference_templates/consul_cluster.yaml-template384
1 files changed, 0 insertions, 384 deletions
diff --git a/blueprints/reference_templates/consul_cluster.yaml-template b/blueprints/reference_templates/consul_cluster.yaml-template
deleted file mode 100644
index a4ae89e..0000000
--- a/blueprints/reference_templates/consul_cluster.yaml-template
+++ /dev/null
@@ -1,384 +0,0 @@
-# -*- 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] }