4f6a49769e
The download link is fixed and updated to use docker-1.7.0 from https://get.docker.com instead of https://master.dockerproject.com because later one only holds latest docker bin which is 1.8.0, and get.docker.io is also the official way of getting docker binary as mentioned in docker install docs.Also fixed the docs to point that 1.7.0 is minimum version required for docker. Closes-bug: 1467767 Change-Id: I7770295271499275f937be3c2feab7216a30a388
256 lines
7.0 KiB
YAML
256 lines
7.0 KiB
YAML
heat_template_version: 2013-05-23
|
|
|
|
description: >
|
|
This is a nested stack that defines a single Kolla node,
|
|
based on a Fedora 21 cloud image. This stack is included by
|
|
a ResourceGroup resource in the parent template (kollacluster.yaml).
|
|
|
|
parameters:
|
|
|
|
server_image:
|
|
type: string
|
|
default: fedora-21-x86_64
|
|
description: glance image used to boot the server
|
|
|
|
server_flavor:
|
|
type: string
|
|
default: m1.small
|
|
description: flavor to use when booting the server
|
|
|
|
ssh_key_name:
|
|
type: string
|
|
description: name of ssh key to be provisioned on our server
|
|
|
|
external_network_id:
|
|
type: string
|
|
description: uuid of a network to use for kolla host floating ip addresses
|
|
|
|
container_external_network_id:
|
|
type: string
|
|
description: uuid of a network to use for container floating ip addresses
|
|
|
|
container_external_subnet_id:
|
|
type: string
|
|
description: uuid of a subnet to use for container floating ip addresses
|
|
|
|
# The following are all generated in the parent template.
|
|
fixed_network_id:
|
|
type: string
|
|
description: Network from which to allocate fixed addresses.
|
|
fixed_subnet_id:
|
|
type: string
|
|
description: Subnet from which to allocate fixed addresses.
|
|
|
|
resources:
|
|
|
|
node_wait_handle:
|
|
type: "AWS::CloudFormation::WaitConditionHandle"
|
|
|
|
node_wait_condition:
|
|
type: "AWS::CloudFormation::WaitCondition"
|
|
depends_on:
|
|
- kolla_node
|
|
properties:
|
|
Handle:
|
|
get_resource: node_wait_handle
|
|
Timeout: "6000"
|
|
|
|
######################################################################
|
|
#
|
|
# security groups. we need to permit network traffic of various
|
|
# sorts.
|
|
#
|
|
secgroup_base:
|
|
type: "OS::Neutron::SecurityGroup"
|
|
properties:
|
|
rules:
|
|
- protocol: icmp
|
|
- protocol: tcp
|
|
port_range_min: 22
|
|
port_range_max: 22
|
|
|
|
# Use by eth1 to permit all traffic to instances.
|
|
# Let the Neutron container apply security to this traffic.
|
|
secgroup_all_open:
|
|
type: "OS::Neutron::SecurityGroup"
|
|
properties:
|
|
rules:
|
|
- protocol: icmp
|
|
- protocol: tcp
|
|
- protocol: udp
|
|
|
|
secgroup_kolla:
|
|
type: "OS::Neutron::SecurityGroup"
|
|
properties:
|
|
rules:
|
|
- protocol: tcp
|
|
port_range_min: 5672
|
|
port_range_max: 5672
|
|
- protocol: tcp
|
|
port_range_min: 3306
|
|
port_range_max: 3306
|
|
- protocol: tcp
|
|
port_range_min: 8773
|
|
port_range_max: 8776
|
|
- protocol: tcp
|
|
port_range_min: 6080
|
|
port_range_max: 6080
|
|
- protocol: tcp
|
|
port_range_min: 6081
|
|
port_range_max: 6081
|
|
- protocol: tcp
|
|
port_range_min: 35357
|
|
port_range_max: 35357
|
|
- protocol: tcp
|
|
port_range_min: 5000
|
|
port_range_max: 5000
|
|
- protocol: tcp
|
|
port_range_min: 9191
|
|
port_range_max: 9191
|
|
- protocol: tcp
|
|
port_range_min: 9292
|
|
port_range_max: 9292
|
|
- protocol: tcp
|
|
port_range_min: 9696
|
|
port_range_max: 9696
|
|
- protocol: tcp
|
|
port_range_min: 80
|
|
port_range_max: 80
|
|
- protocol: tcp
|
|
port_range_min: 443
|
|
port_range_max: 443
|
|
- protocol: tcp
|
|
port_range_min: 8000
|
|
port_range_max: 8000
|
|
- protocol: tcp
|
|
port_range_min: 8004
|
|
port_range_max: 8004
|
|
- protocol: tcp
|
|
port_range_min: 8003
|
|
port_range_max: 8003
|
|
- protocol: tcp
|
|
port_range_min: 8080
|
|
port_range_max: 8080
|
|
- protocol: tcp
|
|
port_range_min: 8777
|
|
port_range_max: 8777
|
|
|
|
kolla_node:
|
|
type: "OS::Nova::Server"
|
|
properties:
|
|
image:
|
|
get_param: server_image
|
|
flavor:
|
|
get_param: server_flavor
|
|
key_name:
|
|
get_param: ssh_key_name
|
|
user_data_format: RAW
|
|
user_data:
|
|
str_replace:
|
|
template: |
|
|
#!/bin/bash
|
|
|
|
# Latest packages
|
|
yum clean all
|
|
yum -y update
|
|
|
|
# Remove network manager
|
|
yum -y remove NetworkManager
|
|
chkconfig network on
|
|
|
|
# Install base packages
|
|
yum -y install wget ntp git tcpdump python-pip python-devel
|
|
|
|
# Install Docker from binaries
|
|
curl -L https://get.docker.com/builds/Linux/x86_64/docker-1.7.0 -o /usr/local/sbin/docker
|
|
chmod +x /usr/local/sbin/docker && cd /usr/local/sbin/
|
|
./docker -d &
|
|
|
|
# Install Compose with pid=host support
|
|
cd /root
|
|
git clone http://github.com/docker/compose.git
|
|
cd compose
|
|
pip install -e .
|
|
|
|
# Pull the Kolla repo
|
|
cd /root
|
|
git clone https://github.com/stackforge/kolla.git
|
|
|
|
# Add vxlan kernel module for Neutron
|
|
modprobe vxlan
|
|
|
|
# Start NTP
|
|
systemctl enable ntpd
|
|
systemctl start ntpd
|
|
|
|
# Install mariadb-client
|
|
yum install -y mariadb
|
|
|
|
# Install OpenStack Clients
|
|
yum install -y python-keystoneclient python-glanceclient \
|
|
python-novaclient python-cinderclient \
|
|
python-neutronclient python-heatclient
|
|
|
|
# Disable firewalld per OpenStack documentation
|
|
service firewalld stop
|
|
chkconfig firewalld off
|
|
|
|
# Install Magnum Client
|
|
git clone http://github.com/openstack/python-magnumclient
|
|
cd python-magnumclient
|
|
sudo pip install -e .
|
|
|
|
# Install Magnum Client Deps
|
|
# TODO remove when fixed: https://bugs.launchpad.net/python-magnumclient/+bug/1456360
|
|
sudo pip install oslo.serialization
|
|
|
|
# Send the CFN signal
|
|
cfn-signal -e0 --data 'OK' -r 'Setup complete' '$WAIT_HANDLE'
|
|
params:
|
|
"$WAIT_HANDLE":
|
|
get_resource: node_wait_handle
|
|
networks:
|
|
- port:
|
|
get_resource: kolla_node_eth0
|
|
- port:
|
|
get_resource: kolla_node_eth1
|
|
|
|
kolla_node_eth0:
|
|
type: "OS::Neutron::Port"
|
|
properties:
|
|
network_id:
|
|
get_param: fixed_network_id
|
|
security_groups:
|
|
- get_resource: secgroup_base
|
|
- get_resource: secgroup_kolla
|
|
fixed_ips:
|
|
- subnet_id:
|
|
get_param: fixed_subnet_id
|
|
|
|
kolla_node_eth1:
|
|
type: "OS::Neutron::Port"
|
|
properties:
|
|
network_id:
|
|
get_param: container_external_network_id
|
|
security_groups:
|
|
- get_resource: secgroup_all_open
|
|
fixed_ips:
|
|
- subnet_id:
|
|
get_param: container_external_subnet_id
|
|
|
|
kolla_node_floating:
|
|
type: "OS::Neutron::FloatingIP"
|
|
properties:
|
|
floating_network_id:
|
|
get_param: external_network_id
|
|
port_id:
|
|
get_resource: kolla_node_eth0
|
|
|
|
outputs:
|
|
|
|
kolla_node_ip_eth0:
|
|
value: {get_attr: [kolla_node_eth0, fixed_ips, 0, ip_address]}
|
|
|
|
kolla_node_external_ip:
|
|
value: {get_attr: [kolla_node_floating, floating_ip_address]}
|