Add initial version of Openstack Heat containering
Change-Id: I2f4f196ed736f987fd47e9f0a0312271cebc6d55
This commit is contained in:
parent
4471da33fe
commit
b42c088d6e
|
@ -0,0 +1,9 @@
|
||||||
|
FROM {{ namespace }}/heat-base:{{ tag }}
|
||||||
|
MAINTAINER {{ maintainer }}
|
||||||
|
|
||||||
|
#mysql-client only for provisioning need to be removed later
|
||||||
|
RUN apt-get install -y --no-install-recommends \
|
||||||
|
mysql-client \
|
||||||
|
&& apt-get clean
|
||||||
|
|
||||||
|
USER heat
|
|
@ -0,0 +1,14 @@
|
||||||
|
FROM {{ namespace }}/openstack-base:{{ tag }}
|
||||||
|
MAINTAINER {{ maintainer }}
|
||||||
|
|
||||||
|
RUN curl -o heat-{{ branch }}.tar.gz http://tarballs.openstack.org/heat/heat-{{ branch }}.tar.gz \
|
||||||
|
&& tar -zxvf heat-{{ branch }}.tar.gz
|
||||||
|
|
||||||
|
RUN mv heat*/ heat-{{ branch }}/ \
|
||||||
|
&& ln -s heat-{{ branch }} /heat \
|
||||||
|
&& useradd --user-group heat \
|
||||||
|
&& /var/lib/microservices/venv/bin/pip --no-cache-dir install --upgrade -c /heat/requirements.txt /heat \
|
||||||
|
&& mkdir -p /var/lib/heat /etc/heat \
|
||||||
|
&& chown -R heat: /var/lib/heat /etc/heat \
|
||||||
|
&& cp -r /heat/etc/heat/* /etc/heat \
|
||||||
|
&& usermod -a -G microservices heat
|
|
@ -0,0 +1,4 @@
|
||||||
|
FROM {{ namespace }}/heat-base:{{ tag }}
|
||||||
|
MAINTAINER {{ maintainer }}
|
||||||
|
|
||||||
|
USER heat
|
|
@ -0,0 +1,13 @@
|
||||||
|
configs:
|
||||||
|
heat_api_port: 8004
|
||||||
|
|
||||||
|
heat_db_username: heat
|
||||||
|
heat_db_password: password
|
||||||
|
heat_db_name: heat
|
||||||
|
|
||||||
|
heat_user: heat
|
||||||
|
heat_password: password
|
||||||
|
|
||||||
|
heat_memcache_secret_key: secret_key
|
||||||
|
|
||||||
|
heat_debug: false
|
|
@ -0,0 +1,51 @@
|
||||||
|
[DEFAULT]
|
||||||
|
debug = {{ heat_debug }}
|
||||||
|
use_syslog = False
|
||||||
|
use_stderr = True
|
||||||
|
use_forwarded_for = True
|
||||||
|
region_name_for_services = RegionOne
|
||||||
|
rpc_backend = rabbit
|
||||||
|
|
||||||
|
[database]
|
||||||
|
connection = mysql+pymysql://{{ heat_db_username }}:{{ heat_db_password }}@mariadb/{{ heat_db_name }}
|
||||||
|
|
||||||
|
[oslo_messaging_rabbit]
|
||||||
|
rabbit_userid = {{ rabbitmq_user }}
|
||||||
|
rabbit_password = {{ rabbitmq_password }}
|
||||||
|
rabbit_ha_queues = true
|
||||||
|
rabbit_hosts = rabbitmq
|
||||||
|
|
||||||
|
[keystone_authtoken]
|
||||||
|
auth_version = v3
|
||||||
|
auth_uri = http://keystone:{{ keystone_public_port }}/v3
|
||||||
|
auth_url = http://keystone:{{ keystone_admin_port }}/v3
|
||||||
|
auth_type = password
|
||||||
|
project_domain_id = default
|
||||||
|
user_domain_id = default
|
||||||
|
project_name = {{ openstack_project_name }}
|
||||||
|
username = {{ heat_user }}
|
||||||
|
password = {{ heat_password }}
|
||||||
|
|
||||||
|
memcache_security_strategy = ENCRYPT
|
||||||
|
memcache_secret_key = {{ heat_memcache_secret_key }}
|
||||||
|
memcached_servers = memcached:{{ memcached_port }}
|
||||||
|
|
||||||
|
[trustee]
|
||||||
|
user_domain_id = default
|
||||||
|
password = {{ heat_password }}
|
||||||
|
username = {{ heat_user }}
|
||||||
|
auth_uri = http://keystone:{{ keystone_public_port }}
|
||||||
|
auth_url = http://keystone:{{ keystone_admin_port }}
|
||||||
|
auth_type = password
|
||||||
|
|
||||||
|
[clients_keystone]
|
||||||
|
auth_uri = http://keystone:{{ keystone_public_port }}
|
||||||
|
|
||||||
|
[heat_api]
|
||||||
|
bind_host = {{ network_topology["private"]["address"] }}
|
||||||
|
bind_port = {{ heat_api_port }}
|
||||||
|
|
||||||
|
[cache]
|
||||||
|
backend = oslo_cache.memcache_pool
|
||||||
|
enabled = True
|
||||||
|
memcache_servers = memcached:{{ memcached_port }}
|
|
@ -0,0 +1,74 @@
|
||||||
|
service:
|
||||||
|
name: heat-api
|
||||||
|
ports:
|
||||||
|
- heat_api_port
|
||||||
|
containers:
|
||||||
|
- name: heat-api
|
||||||
|
image: heat-api
|
||||||
|
# TODO(drusskikh): add probes
|
||||||
|
probes:
|
||||||
|
readiness: "true"
|
||||||
|
liveness: "true"
|
||||||
|
pre:
|
||||||
|
- name: heat-db-create
|
||||||
|
dependencies:
|
||||||
|
- mariadb
|
||||||
|
type: single
|
||||||
|
command:
|
||||||
|
mysql -u root -p{{ db_root_password }} -h mariadb -e "create database {{ heat_db_name }};
|
||||||
|
grant all privileges on {{ heat_db_name }}.* to '{{ heat_db_username }}'@'%' identified by '{{ heat_db_password }}';"
|
||||||
|
- name: heat-db-sync
|
||||||
|
files:
|
||||||
|
- heat-conf
|
||||||
|
dependencies:
|
||||||
|
- heat-db-create
|
||||||
|
type: single
|
||||||
|
command: heat-manage db_sync
|
||||||
|
- name: heat-user-create
|
||||||
|
dependencies:
|
||||||
|
- keystone-create-project
|
||||||
|
type: single
|
||||||
|
command:
|
||||||
|
openstack user create --domain default --password {{ heat_password }} {{ heat_user }}
|
||||||
|
- name: heat-role-add
|
||||||
|
dependencies:
|
||||||
|
- heat-user-create
|
||||||
|
type: single
|
||||||
|
command:
|
||||||
|
openstack role add --project {{ openstack_project_name }} --user {{ heat_user }} admin
|
||||||
|
- name: heat-service-create
|
||||||
|
dependencies:
|
||||||
|
- keystone-create-project
|
||||||
|
type: single
|
||||||
|
command:
|
||||||
|
openstack service create --name heat --description "OpenStack orchestration service" orchestration
|
||||||
|
- name: heat-public-endpoint-create
|
||||||
|
dependencies:
|
||||||
|
- heat-service-create
|
||||||
|
type: single
|
||||||
|
command:
|
||||||
|
openstack endpoint create --region RegionOne orchestration public http://heat-api:{{ heat_api_port }}/v1/%\(tenant_id\)s
|
||||||
|
- name: heat-internal-endpoint-create
|
||||||
|
dependencies:
|
||||||
|
- heat-service-create
|
||||||
|
type: single
|
||||||
|
command:
|
||||||
|
openstack endpoint create --region RegionOne orchestration internal http://heat-api:{{ heat_api_port }}/v1/%\(tenant_id\)s
|
||||||
|
- name: heat-admin-endpoint-create
|
||||||
|
dependencies:
|
||||||
|
- heat-service-create
|
||||||
|
type: single
|
||||||
|
command:
|
||||||
|
openstack endpoint create --region RegionOne orchestration admin http://heat-api:{{ heat_api_port }}/v1/%\(tenant_id\)s
|
||||||
|
daemon:
|
||||||
|
name: heat-api
|
||||||
|
dependencies:
|
||||||
|
- rabbitmq
|
||||||
|
files:
|
||||||
|
- heat-conf
|
||||||
|
command: heat-api --config-file /etc/heat/heat.conf
|
||||||
|
|
||||||
|
files:
|
||||||
|
heat-conf:
|
||||||
|
path: /etc/heat/heat.conf
|
||||||
|
content: heat.conf.j2
|
|
@ -0,0 +1,21 @@
|
||||||
|
service:
|
||||||
|
name: heat-engine
|
||||||
|
containers:
|
||||||
|
- name: heat-engine
|
||||||
|
image: heat-engine
|
||||||
|
# TODO(drusskikh): add probes
|
||||||
|
probes:
|
||||||
|
readiness: "true"
|
||||||
|
liveness: "true"
|
||||||
|
daemon:
|
||||||
|
command: heat-engine --config-file /etc/heat/heat.conf
|
||||||
|
dependencies:
|
||||||
|
- heat-api
|
||||||
|
- rabbitmq
|
||||||
|
files:
|
||||||
|
- heat.conf
|
||||||
|
files:
|
||||||
|
heat.conf:
|
||||||
|
path: /etc/heat/heat.conf
|
||||||
|
content: heat.conf.j2
|
||||||
|
perm: "0600"
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
### Temp yaml syntax checker script.
|
||||||
|
set -e
|
||||||
|
for file in $(find . -name '*.yaml'); do
|
||||||
|
yamllint -d relaxed $file
|
||||||
|
done
|
|
@ -0,0 +1,14 @@
|
||||||
|
[tox]
|
||||||
|
minversion = 1.6
|
||||||
|
envlist = linters,bashate
|
||||||
|
skipsdist = True
|
||||||
|
|
||||||
|
[testenv:linters]
|
||||||
|
deps = yamllint
|
||||||
|
commands =
|
||||||
|
{toxinidir}/tools/run-check-yaml-syntax.sh
|
||||||
|
|
||||||
|
[testenv:bashate]
|
||||||
|
deps = bashate>=0.2
|
||||||
|
whitelist_externals = bash
|
||||||
|
commands = bash -c "find {toxinidir} -type f -name '*.sh' -not -path '*/.tox/*' -print0 | xargs -0 bashate -v"
|
Loading…
Reference in New Issue