From 897337cdd61f1702aa7e68da0466804bf0d21a86 Mon Sep 17 00:00:00 2001 From: Paul Bourke Date: Wed, 17 Jun 2015 11:14:59 +0000 Subject: [PATCH] Symlink all non Dockerfile resources in images The only files in the docker image directories that differ majorly between distros are the Dockerfiles (e.g. different package manager mechanisms, different repo sources, etc). The supporting files such as the start.sh/check.sh and config files should largely stay the same between base images. This change moves these files up into a "common" directory, and symlinks them in the same way that the build script is managed. This means when adding a new base distro only new Dockerfiles need to be created. Also, if a distro does happen to require a vastly different start.sh script for example, one can choose to simply not symlink to the common and instead drop in a custom one. Implements: blueprint refactor-base-image-layout Change-Id: Ic4db69d31ff54a1fb95af4853a2e5ae490064284 --- docker/centos/binary/barbican/start.sh | 82 +------ docker/centos/binary/base/kolla-common.sh | 2 +- docker/centos/binary/base/service_hosts.sh | 2 +- .../ceilometer/ceilometer-alarm/start.sh | 11 +- .../binary/ceilometer/ceilometer-api/start.sh | 52 +---- .../ceilometer-base/config-ceilometer.sh | 72 +----- .../ceilometer/ceilometer-central/start.sh | 15 +- .../ceilometer/ceilometer-collector/start.sh | 10 +- .../ceilometer/ceilometer-compute/start.sh | 26 +-- .../ceilometer-notification/start.sh | 10 +- .../binary/cinder-app/cinder-api/check.sh | 17 +- .../binary/cinder-app/cinder-api/start.sh | 74 +----- .../binary/cinder-app/cinder-backup/start.sh | 37 +-- .../cinder-app/cinder-base/config-cinder.sh | 133 +---------- .../cinder-app/cinder-scheduler/start.sh | 33 +-- .../binary/cinder-app/cinder-volume/start.sh | 76 +------ .../cinder-volume/volume-group-create.sh | 23 +- .../binary/designate/designate-api/start.sh | 38 +--- .../designate-backend-bind9/start.sh | 61 +---- .../designate-base/config-designate.sh | 80 +------ .../designate/designate-central/start.sh | 25 +-- .../binary/designate/designate-mdns/start.sh | 18 +- .../designate/designate-poolmanager/start.sh | 55 +---- docker/centos/binary/galera/config-galera.sh | 95 +------- docker/centos/binary/galera/start.sh | 15 +- .../centos/binary/glance/glance-api/check.sh | 18 +- .../centos/binary/glance/glance-api/start.sh | 53 +---- .../glance/glance-base/config-glance.sh | 64 +----- .../binary/glance/glance-registry/start.sh | 22 +- .../centos/binary/hautoproxy/haproxy.cfg.tmpl | 27 +-- docker/centos/binary/hautoproxy/start.py | 66 +----- .../centos/binary/heat/heat-api-cfn/check.sh | 17 +- .../centos/binary/heat/heat-api-cfn/start.sh | 29 +-- docker/centos/binary/heat/heat-api/check.sh | 17 +- docker/centos/binary/heat/heat-api/start.sh | 30 +-- .../binary/heat/heat-base/config-heat.sh | 68 +----- .../centos/binary/heat/heat-engine/start.sh | 18 +- docker/centos/binary/horizon/start.sh | 37 +-- docker/centos/binary/keystone/check.sh | 13 +- docker/centos/binary/keystone/start.sh | 163 +------------- .../centos/binary/magnum/magnum-api/check.sh | 17 +- .../centos/binary/magnum/magnum-api/start.sh | 28 +-- .../magnum/magnum-base/config-magnum.sh | 47 +--- .../binary/magnum/magnum-conductor/start.sh | 18 +- .../centos/binary/mariadb-app/config-mysql.sh | 25 +-- .../check-scripts/check-dhcp-agent.sh | 14 +- .../check-scripts/check-l3-agent.sh | 14 +- .../check-scripts/check-linuxbridge-agent.sh | 14 +- .../check-scripts/check-metadata-agent.sh | 14 +- .../config-scripts/config-dhcp-agent.sh | 89 +------- .../config-scripts/config-l3-agent.sh | 86 +------ .../config-linuxbridge-agent.sh | 30 +-- .../config-scripts/config-metadata-agent.sh | 75 +------ .../config-scripts/config-sudoers.sh | 13 +- .../neutron/neutron-agents/fwaas_driver.ini | 4 +- .../neutron/neutron-agents/supervisord.conf | 54 +---- .../neutron/neutron-base/config-neutron.sh | 211 +----------------- .../binary/neutron/neutron-server/check.sh | 18 +- .../binary/neutron/neutron-server/start.sh | 99 +------- docker/centos/binary/nova-base/config-nova.sh | 138 +----------- .../nova-compute/config-nova-compute.sh | 29 +-- .../binary/nova-compute/nova-compute/start.sh | 11 +- .../binary/nova-compute/nova-libvirt/start.sh | 23 +- .../nova-network/config-nova-network.sh | 31 +-- .../binary/nova-compute/nova-network/start.sh | 9 +- .../binary/nova-controller/nova-api/check.sh | 18 +- .../binary/nova-controller/nova-api/start.sh | 47 +--- .../nova-controller/nova-conductor/start.sh | 24 +- .../nova-controller/nova-consoleauth/start.sh | 12 +- .../nova-controller/nova-novncproxy/start.sh | 23 +- .../nova-controller/nova-scheduler/start.sh | 16 +- .../centos/binary/rabbitmq/rabbitmq-env.conf | 3 +- docker/centos/binary/rabbitmq/rabbitmq.config | 12 +- docker/centos/binary/rabbitmq/start.sh | 25 +-- .../binary/swift/swift-account/start.sh | 35 +-- .../binary/swift/swift-container/start.sh | 35 +-- .../centos/binary/swift/swift-object/start.sh | 35 +-- .../binary/swift/swift-proxy-server/start.sh | 6 +- docker/centos/binary/zaqar/check.sh | 11 +- docker/centos/binary/zaqar/start.sh | 65 +----- docker/common/barbican/start.sh | 81 +++++++ docker/common/{ => base}/kolla-common.sh | 0 docker/common/{ => base}/service_hosts.sh | 0 .../ceilometer/ceilometer-alarm/start.sh | 10 + .../common/ceilometer/ceilometer-api/start.sh | 51 +++++ .../ceilometer-base/config-ceilometer.sh | 71 ++++++ .../ceilometer/ceilometer-central/start.sh | 14 ++ .../ceilometer/ceilometer-collector/start.sh | 9 + .../ceilometer/ceilometer-compute/start.sh | 25 +++ .../ceilometer-notification/start.sh | 9 + docker/common/cinder-app/cinder-api/check.sh | 16 ++ docker/common/cinder-app/cinder-api/start.sh | 73 ++++++ .../common/cinder-app/cinder-backup/start.sh | 36 +++ .../cinder-app/cinder-base/config-cinder.sh | 132 +++++++++++ .../cinder-app/cinder-scheduler/start.sh | 32 +++ .../common/cinder-app/cinder-volume/start.sh | 75 +++++++ .../cinder-volume/volume-group-create.sh | 22 ++ .../common/designate/designate-api/start.sh | 37 +++ .../designate-backend-bind9/start.sh | 60 +++++ .../designate-base/config-designate.sh | 62 +++++ .../designate/designate-central/start.sh | 24 ++ .../common/designate/designate-mdns/start.sh | 17 ++ .../designate/designate-poolmanager/start.sh | 54 +++++ docker/common/galera/config-galera.sh | 94 ++++++++ docker/common/galera/start.sh | 14 ++ docker/common/glance/glance-api/check.sh | 17 ++ docker/common/glance/glance-api/start.sh | 52 +++++ .../glance/glance-base/config-glance.sh | 63 ++++++ docker/common/glance/glance-registry/start.sh | 21 ++ docker/common/hautoproxy/haproxy.cfg.tmpl | 26 +++ docker/common/hautoproxy/start.py | 65 ++++++ docker/common/heat/heat-api-cfn/check.sh | 16 ++ docker/common/heat/heat-api-cfn/start.sh | 28 +++ docker/common/heat/heat-api/check.sh | 16 ++ docker/common/heat/heat-api/start.sh | 29 +++ docker/common/heat/heat-base/config-heat.sh | 67 ++++++ docker/common/heat/heat-engine/start.sh | 17 ++ docker/common/horizon/start.sh | 36 +++ docker/common/keystone/check.sh | 12 + docker/common/keystone/start.sh | 162 ++++++++++++++ docker/common/magnum/magnum-api/check.sh | 16 ++ docker/common/magnum/magnum-api/start.sh | 27 +++ .../magnum/magnum-base/config-magnum.sh | 46 ++++ .../common/magnum/magnum-conductor/start.sh | 17 ++ docker/common/mariadb-app/config-mysql.sh | 24 ++ .../mariadb-app/mysql-entrypoint.sh | 2 +- .../check-scripts/check-dhcp-agent.sh | 13 ++ .../check-scripts/check-l3-agent.sh | 13 ++ .../check-scripts/check-linuxbridge-agent.sh | 13 ++ .../check-scripts/check-metadata-agent.sh | 13 ++ .../config-scripts/config-dhcp-agent.sh | 88 ++++++++ .../config-scripts/config-l3-agent.sh | 85 +++++++ .../config-linuxbridge-agent.sh | 29 +++ .../config-scripts/config-metadata-agent.sh | 74 ++++++ .../config-scripts/config-sudoers.sh | 12 + .../neutron/neutron-agents/fwaas_driver.ini | 3 + .../neutron/neutron-agents/supervisord.conf | 53 +++++ .../neutron/neutron-base/config-neutron.sh | 210 +++++++++++++++++ docker/common/neutron/neutron-server/check.sh | 17 ++ docker/common/neutron/neutron-server/start.sh | 98 ++++++++ docker/common/nova-base/config-nova.sh | 137 ++++++++++++ .../nova-compute/config-nova-compute.sh | 28 +++ .../common/nova-compute/nova-compute/start.sh | 10 + .../common/nova-compute/nova-libvirt/start.sh | 22 ++ .../nova-network/config-nova-network.sh | 30 +++ .../common/nova-compute/nova-network/start.sh | 8 + .../common/nova-controller/nova-api/check.sh | 17 ++ .../common/nova-controller/nova-api/start.sh | 46 ++++ .../nova-controller/nova-conductor/start.sh | 23 ++ .../nova-controller/nova-consoleauth/start.sh | 11 + .../nova-controller/nova-novncproxy/start.sh | 22 ++ .../nova-controller/nova-scheduler/start.sh | 15 ++ docker/common/rabbitmq/rabbitmq-env.conf | 2 + docker/common/rabbitmq/rabbitmq.config | 11 + docker/common/rabbitmq/start.sh | 24 ++ docker/common/swift/swift-account/start.sh | 34 +++ docker/common/swift/swift-container/start.sh | 34 +++ docker/common/swift/swift-object/start.sh | 34 +++ .../common/swift/swift-proxy-server/start.sh | 5 + docker/common/zaqar/check.sh | 10 + docker/common/zaqar/start.sh | 64 ++++++ docker/fedora/binary/base/kolla-common.sh | 2 +- docker/fedora/binary/base/service_hosts.sh | 2 +- docker/rhel/binary/base/kolla-common.sh | 2 +- docker/rhel/binary/base/service_hosts.sh | 2 +- 165 files changed, 3168 insertions(+), 3107 deletions(-) mode change 100755 => 120000 docker/centos/binary/barbican/start.sh mode change 100644 => 120000 docker/centos/binary/ceilometer/ceilometer-alarm/start.sh mode change 100644 => 120000 docker/centos/binary/ceilometer/ceilometer-api/start.sh mode change 100644 => 120000 docker/centos/binary/ceilometer/ceilometer-base/config-ceilometer.sh mode change 100644 => 120000 docker/centos/binary/ceilometer/ceilometer-central/start.sh mode change 100644 => 120000 docker/centos/binary/ceilometer/ceilometer-collector/start.sh mode change 100644 => 120000 docker/centos/binary/ceilometer/ceilometer-compute/start.sh mode change 100644 => 120000 docker/centos/binary/ceilometer/ceilometer-notification/start.sh mode change 100755 => 120000 docker/centos/binary/cinder-app/cinder-api/check.sh mode change 100755 => 120000 docker/centos/binary/cinder-app/cinder-api/start.sh mode change 100755 => 120000 docker/centos/binary/cinder-app/cinder-backup/start.sh mode change 100644 => 120000 docker/centos/binary/cinder-app/cinder-base/config-cinder.sh mode change 100755 => 120000 docker/centos/binary/cinder-app/cinder-scheduler/start.sh mode change 100755 => 120000 docker/centos/binary/cinder-app/cinder-volume/start.sh mode change 100755 => 120000 docker/centos/binary/cinder-app/cinder-volume/volume-group-create.sh mode change 100755 => 120000 docker/centos/binary/designate/designate-api/start.sh mode change 100755 => 120000 docker/centos/binary/designate/designate-backend-bind9/start.sh mode change 100755 => 120000 docker/centos/binary/designate/designate-base/config-designate.sh mode change 100755 => 120000 docker/centos/binary/designate/designate-central/start.sh mode change 100755 => 120000 docker/centos/binary/designate/designate-mdns/start.sh mode change 100755 => 120000 docker/centos/binary/designate/designate-poolmanager/start.sh mode change 100755 => 120000 docker/centos/binary/galera/config-galera.sh mode change 100755 => 120000 docker/centos/binary/galera/start.sh mode change 100755 => 120000 docker/centos/binary/glance/glance-api/check.sh mode change 100755 => 120000 docker/centos/binary/glance/glance-api/start.sh mode change 100644 => 120000 docker/centos/binary/glance/glance-base/config-glance.sh mode change 100755 => 120000 docker/centos/binary/glance/glance-registry/start.sh mode change 100644 => 120000 docker/centos/binary/hautoproxy/haproxy.cfg.tmpl mode change 100755 => 120000 docker/centos/binary/hautoproxy/start.py mode change 100755 => 120000 docker/centos/binary/heat/heat-api-cfn/check.sh mode change 100755 => 120000 docker/centos/binary/heat/heat-api-cfn/start.sh mode change 100755 => 120000 docker/centos/binary/heat/heat-api/check.sh mode change 100755 => 120000 docker/centos/binary/heat/heat-api/start.sh mode change 100755 => 120000 docker/centos/binary/heat/heat-base/config-heat.sh mode change 100755 => 120000 docker/centos/binary/heat/heat-engine/start.sh mode change 100755 => 120000 docker/centos/binary/horizon/start.sh mode change 100755 => 120000 docker/centos/binary/keystone/check.sh mode change 100755 => 120000 docker/centos/binary/keystone/start.sh mode change 100755 => 120000 docker/centos/binary/magnum/magnum-api/check.sh mode change 100755 => 120000 docker/centos/binary/magnum/magnum-api/start.sh mode change 100755 => 120000 docker/centos/binary/magnum/magnum-base/config-magnum.sh mode change 100755 => 120000 docker/centos/binary/magnum/magnum-conductor/start.sh mode change 100755 => 120000 docker/centos/binary/mariadb-app/config-mysql.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-l3-agent.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-metadata-agent.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-sudoers.sh mode change 100644 => 120000 docker/centos/binary/neutron/neutron-agents/fwaas_driver.ini mode change 100644 => 120000 docker/centos/binary/neutron/neutron-agents/supervisord.conf mode change 100644 => 120000 docker/centos/binary/neutron/neutron-base/config-neutron.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-server/check.sh mode change 100755 => 120000 docker/centos/binary/neutron/neutron-server/start.sh mode change 100755 => 120000 docker/centos/binary/nova-base/config-nova.sh mode change 100755 => 120000 docker/centos/binary/nova-compute/nova-compute/config-nova-compute.sh mode change 100755 => 120000 docker/centos/binary/nova-compute/nova-compute/start.sh mode change 100755 => 120000 docker/centos/binary/nova-compute/nova-libvirt/start.sh mode change 100755 => 120000 docker/centos/binary/nova-compute/nova-network/config-nova-network.sh mode change 100755 => 120000 docker/centos/binary/nova-compute/nova-network/start.sh mode change 100755 => 120000 docker/centos/binary/nova-controller/nova-api/check.sh mode change 100755 => 120000 docker/centos/binary/nova-controller/nova-api/start.sh mode change 100755 => 120000 docker/centos/binary/nova-controller/nova-conductor/start.sh mode change 100755 => 120000 docker/centos/binary/nova-controller/nova-consoleauth/start.sh mode change 100755 => 120000 docker/centos/binary/nova-controller/nova-novncproxy/start.sh mode change 100755 => 120000 docker/centos/binary/nova-controller/nova-scheduler/start.sh mode change 100644 => 120000 docker/centos/binary/rabbitmq/rabbitmq-env.conf mode change 100644 => 120000 docker/centos/binary/rabbitmq/rabbitmq.config mode change 100755 => 120000 docker/centos/binary/rabbitmq/start.sh mode change 100644 => 120000 docker/centos/binary/swift/swift-account/start.sh mode change 100644 => 120000 docker/centos/binary/swift/swift-container/start.sh mode change 100644 => 120000 docker/centos/binary/swift/swift-object/start.sh mode change 100644 => 120000 docker/centos/binary/swift/swift-proxy-server/start.sh mode change 100755 => 120000 docker/centos/binary/zaqar/check.sh mode change 100755 => 120000 docker/centos/binary/zaqar/start.sh create mode 100755 docker/common/barbican/start.sh rename docker/common/{ => base}/kolla-common.sh (100%) rename docker/common/{ => base}/service_hosts.sh (100%) create mode 100644 docker/common/ceilometer/ceilometer-alarm/start.sh create mode 100644 docker/common/ceilometer/ceilometer-api/start.sh create mode 100644 docker/common/ceilometer/ceilometer-base/config-ceilometer.sh create mode 100644 docker/common/ceilometer/ceilometer-central/start.sh create mode 100644 docker/common/ceilometer/ceilometer-collector/start.sh create mode 100644 docker/common/ceilometer/ceilometer-compute/start.sh create mode 100644 docker/common/ceilometer/ceilometer-notification/start.sh create mode 100755 docker/common/cinder-app/cinder-api/check.sh create mode 100755 docker/common/cinder-app/cinder-api/start.sh create mode 100755 docker/common/cinder-app/cinder-backup/start.sh create mode 100644 docker/common/cinder-app/cinder-base/config-cinder.sh create mode 100755 docker/common/cinder-app/cinder-scheduler/start.sh create mode 100755 docker/common/cinder-app/cinder-volume/start.sh create mode 100755 docker/common/cinder-app/cinder-volume/volume-group-create.sh create mode 100755 docker/common/designate/designate-api/start.sh create mode 100755 docker/common/designate/designate-backend-bind9/start.sh create mode 100755 docker/common/designate/designate-base/config-designate.sh create mode 100755 docker/common/designate/designate-central/start.sh create mode 100755 docker/common/designate/designate-mdns/start.sh create mode 100755 docker/common/designate/designate-poolmanager/start.sh create mode 100755 docker/common/galera/config-galera.sh create mode 100755 docker/common/galera/start.sh create mode 100755 docker/common/glance/glance-api/check.sh create mode 100755 docker/common/glance/glance-api/start.sh create mode 100644 docker/common/glance/glance-base/config-glance.sh create mode 100755 docker/common/glance/glance-registry/start.sh create mode 100644 docker/common/hautoproxy/haproxy.cfg.tmpl create mode 100755 docker/common/hautoproxy/start.py create mode 100755 docker/common/heat/heat-api-cfn/check.sh create mode 100755 docker/common/heat/heat-api-cfn/start.sh create mode 100755 docker/common/heat/heat-api/check.sh create mode 100755 docker/common/heat/heat-api/start.sh create mode 100755 docker/common/heat/heat-base/config-heat.sh create mode 100755 docker/common/heat/heat-engine/start.sh create mode 100755 docker/common/horizon/start.sh create mode 100755 docker/common/keystone/check.sh create mode 100755 docker/common/keystone/start.sh create mode 100755 docker/common/magnum/magnum-api/check.sh create mode 100755 docker/common/magnum/magnum-api/start.sh create mode 100755 docker/common/magnum/magnum-base/config-magnum.sh create mode 100755 docker/common/magnum/magnum-conductor/start.sh create mode 100755 docker/common/mariadb-app/config-mysql.sh rename docker/{centos/binary => common}/mariadb-app/mysql-entrypoint.sh (93%) create mode 100755 docker/common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh create mode 100755 docker/common/neutron/neutron-agents/check-scripts/check-l3-agent.sh create mode 100755 docker/common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh create mode 100755 docker/common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh create mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh create mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-l3-agent.sh create mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh create mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-metadata-agent.sh create mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-sudoers.sh create mode 100644 docker/common/neutron/neutron-agents/fwaas_driver.ini create mode 100644 docker/common/neutron/neutron-agents/supervisord.conf create mode 100644 docker/common/neutron/neutron-base/config-neutron.sh create mode 100755 docker/common/neutron/neutron-server/check.sh create mode 100755 docker/common/neutron/neutron-server/start.sh create mode 100755 docker/common/nova-base/config-nova.sh create mode 100755 docker/common/nova-compute/nova-compute/config-nova-compute.sh create mode 100755 docker/common/nova-compute/nova-compute/start.sh create mode 100755 docker/common/nova-compute/nova-libvirt/start.sh create mode 100755 docker/common/nova-compute/nova-network/config-nova-network.sh create mode 100755 docker/common/nova-compute/nova-network/start.sh create mode 100755 docker/common/nova-controller/nova-api/check.sh create mode 100755 docker/common/nova-controller/nova-api/start.sh create mode 100755 docker/common/nova-controller/nova-conductor/start.sh create mode 100755 docker/common/nova-controller/nova-consoleauth/start.sh create mode 100755 docker/common/nova-controller/nova-novncproxy/start.sh create mode 100755 docker/common/nova-controller/nova-scheduler/start.sh create mode 100644 docker/common/rabbitmq/rabbitmq-env.conf create mode 100644 docker/common/rabbitmq/rabbitmq.config create mode 100755 docker/common/rabbitmq/start.sh create mode 100644 docker/common/swift/swift-account/start.sh create mode 100644 docker/common/swift/swift-container/start.sh create mode 100644 docker/common/swift/swift-object/start.sh create mode 100644 docker/common/swift/swift-proxy-server/start.sh create mode 100755 docker/common/zaqar/check.sh create mode 100755 docker/common/zaqar/start.sh diff --git a/docker/centos/binary/barbican/start.sh b/docker/centos/binary/barbican/start.sh deleted file mode 100755 index 673aa43393..0000000000 --- a/docker/centos/binary/barbican/start.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash - -set -e - -: ${BARBICAN_DB_USER:=barbican} -: ${BARBICAN_DB_NAME:=barbican} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${BARBICAN_KEYSTONE_USER:=barbican} -: ${ADMIN_TENANT_NAME:=admin} - -if ! [ "$BARBICAN_DB_PASSWORD" ]; then - BARBICAN_DB_PASSWORD=$(openssl rand -hex 15) - export BARBICAN_DB_PASSWORD -fi - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - KEYSTONE_ADMIN_SERVICE_PORT BARBICAN_ADMIN_PASSWORD -fail_unless_db -fail_unless_os_service_running keystone - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql < /dev/null 2>&1 || /bin/keystone user-create --name ${BARBICAN_KEYSTONE_USER} --pass ${BARBICAN_ADMIN_PASSWORD} - -keystone role-get observer > /dev/null 2>&1 || /bin/keystone role-create --name observer -keystone role-get creator > /dev/null 2>&1 || /bin/keystone role-create --name creator - -keystone user-get ${BARBICAN_KEYSTONE_USER} > /dev/null 2>&1 || /bin/keystone user-role-add --user ${BARBICAN_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} - -# launch Barbican using uwsgi -exec uwsgi --master --emperor /etc/barbican/vassals diff --git a/docker/centos/binary/barbican/start.sh b/docker/centos/binary/barbican/start.sh new file mode 120000 index 0000000000..fbb47be02d --- /dev/null +++ b/docker/centos/binary/barbican/start.sh @@ -0,0 +1 @@ +../../../common/barbican/start.sh \ No newline at end of file diff --git a/docker/centos/binary/base/kolla-common.sh b/docker/centos/binary/base/kolla-common.sh index 380efbc3d7..c265c62f7a 120000 --- a/docker/centos/binary/base/kolla-common.sh +++ b/docker/centos/binary/base/kolla-common.sh @@ -1 +1 @@ -../../../common/kolla-common.sh \ No newline at end of file +../../../common/base/kolla-common.sh \ No newline at end of file diff --git a/docker/centos/binary/base/service_hosts.sh b/docker/centos/binary/base/service_hosts.sh index 777b7334d5..06e0454405 120000 --- a/docker/centos/binary/base/service_hosts.sh +++ b/docker/centos/binary/base/service_hosts.sh @@ -1 +1 @@ -../../../common/service_hosts.sh \ No newline at end of file +../../../common/base/service_hosts.sh \ No newline at end of file diff --git a/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh b/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh deleted file mode 100644 index 7470ae608f..0000000000 --- a/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-ceilometer.sh - - -exec /usr/bin/ceilometer-alarm-evaluator & -exec /usr/bin/ceilometer-alarm-notifier diff --git a/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh b/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh new file mode 120000 index 0000000000..ed3ac528d4 --- /dev/null +++ b/docker/centos/binary/ceilometer/ceilometer-alarm/start.sh @@ -0,0 +1 @@ +../../../../common/ceilometer/ceilometer-alarm/start.sh \ No newline at end of file diff --git a/docker/centos/binary/ceilometer/ceilometer-api/start.sh b/docker/centos/binary/ceilometer/ceilometer-api/start.sh deleted file mode 100644 index f081c9f84d..0000000000 --- a/docker/centos/binary/ceilometer/ceilometer-api/start.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-ceilometer.sh - -check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME \ - CEILOMETER_DB_PASSWORD KEYSTONE_ADMIN_TOKEN \ - KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_HOST \ - KEYSTONE_ADMIN_SERVICE_PORT ADMIN_TENANT_NAME \ - CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD \ - CEILOMETER_API_SERVICE_HOST PUBLIC_IP - -fail_unless_os_service_running keystone -fail_unless_db - -#TODO(pkilambi): Add mongodb support - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql < /openrc < /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! cinder list > /dev/null; then - echo "ERROR: cinder list failed" >&2 - RES=1 - fi -fi - -exit $RES diff --git a/docker/centos/binary/cinder-app/cinder-api/check.sh b/docker/centos/binary/cinder-app/cinder-api/check.sh new file mode 120000 index 0000000000..829110b458 --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-api/check.sh @@ -0,0 +1 @@ +../../../../common/cinder-app/cinder-api/check.sh \ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-api/start.sh b/docker/centos/binary/cinder-app/cinder-api/start.sh deleted file mode 100755 index 28293ac6cc..0000000000 --- a/docker/centos/binary/cinder-app/cinder-api/start.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-cinder.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - ADMIN_TENANT_NAME PUBLIC_IP CINDER_API_SERVICE_HOST \ - KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \ - CINDER_KEYSTONE_USER CINDER_KEYSTONE_PASSWORD \ - CINDER_API_LOG_FILE CINDER_API_SERVICE_LISTEN \ - CINDER_API_SERVICE_PORT CINDER_API_SERVICE_LISTEN - -fail_unless_os_service_running keystone - -cfg=/etc/cinder/cinder.conf - -# Set the auth credentials -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -# Create Keystone User -crux user-create --update \ - -n "${CINDER_KEYSTONE_USER}" \ - -p "${CINDER_KEYSTONE_PASSWORD}" \ - -t "${ADMIN_TENANT_NAME}" \ - -r admin - -# Configure Keystone -crux endpoint-create --remove-all \ - -n cinder \ - -t volume \ - -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \ - -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \ - -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" - -crux endpoint-create --remove-all \ - -n cinderv2 \ - -t volumev2 \ - -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \ - -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \ - -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" - -# Logging -crudini --set $cfg \ - DEFAULT \ - log_file \ - "${CINDER_API_LOG_FILE}" - -# API Configuration -crudini --set $cfg \ - DEFAULT \ - osapi_volume_listen \ - "${CINDER_API_SERVICE_LISTEN}" - -crudini --set $cfg \ - DEFAULT \ - osapi_volume_listen_port \ - "${CINDER_API_SERVICE_PORT}" - -crudini --set $cfg \ - DEFAULT \ - enable_v1_api \ - "true" - -crudini --set $cfg \ - DEFAULT \ - enable_v2_api \ - "true" - -echo "Starting cinder-api" -exec /usr/bin/cinder-api --config-file $cfg diff --git a/docker/centos/binary/cinder-app/cinder-api/start.sh b/docker/centos/binary/cinder-app/cinder-api/start.sh new file mode 120000 index 0000000000..33182c78cf --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-api/start.sh @@ -0,0 +1 @@ +../../../../common/cinder-app/cinder-api/start.sh \ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-backup/start.sh b/docker/centos/binary/cinder-app/cinder-backup/start.sh deleted file mode 100755 index 5dff79b356..0000000000 --- a/docker/centos/binary/cinder-app/cinder-backup/start.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-cinder.sh - -check_required_vars CINDER_BACKUP_DRIVER CINDER_BACKUP_MANAGER \ - CINDER_BACKUP_API_CLASS CINDER_BACKUP_NAME_TEMPLATE - -cfg=/etc/cinder/cinder.conf - -# volume backup configuration -crudini --set $cfg \ - DEFAULT \ - backup_driver \ - "${CINDER_BACKUP_DRIVER}" -crudini --set $cfg \ - DEFAULT \ - backup_topic \ - "cinder-backup" -crudini --set $cfg \ - DEFAULT \ - backup_manager \ - "${CINDER_BACKUP_MANAGER}" -crudini --set $cfg \ - DEFAULT \ - backup_api_class \ - "${CINDER_BACKUP_API_CLASS}" -crudini --set $cfg \ - DEFAULT \ - backup_name_template \ - "${CINDER_BACKUP_NAME_TEMPLATE}" - -echo "Starting cinder-backup" -exec /usr/bin/cinder-backup --config-file $cfg diff --git a/docker/centos/binary/cinder-app/cinder-backup/start.sh b/docker/centos/binary/cinder-app/cinder-backup/start.sh new file mode 120000 index 0000000000..c21a17f09a --- /dev/null +++ b/docker/centos/binary/cinder-app/cinder-backup/start.sh @@ -0,0 +1 @@ +../../../../common/cinder-app/cinder-backup/start.sh \ No newline at end of file diff --git a/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh b/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh deleted file mode 100644 index f82cb5510c..0000000000 --- a/docker/centos/binary/cinder-app/cinder-base/config-cinder.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/sh - -set -e - -. /opt/kolla/kolla-common.sh - -check_required_vars CINDER_DB_PASSWORD CINDER_KEYSTONE_PASSWORD \ - KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \ - GLANCE_API_SERVICE_HOST MARIADB_SERVICE_HOST \ - RABBITMQ_SERVICE_HOST RABBITMQ_SERVICE_PORT \ - RABBIT_USERID RABBIT_PASSWORD GLANCE_API_SERVICE_HOST \ - GLANCE_API_SERVICE_PORT ADMIN_TENANT_NAME \ - CINDER_DB_NAME CINDER_DB_USER CINDER_KEYSTONE_USER \ - PUBLIC_IP KEYSTONE_AUTH_PROTOCOL CINDER_LOG_DIR - -dump_vars - -cat > /openrc <> /etc/named.conf < /etc/rndc.key < /etc/rndc.conf <> /etc/rndc.conf -chown named /etc/rndc.key - -# Launch and keep in the foreground. -exec /usr/sbin/named -u named -g diff --git a/docker/centos/binary/designate/designate-backend-bind9/start.sh b/docker/centos/binary/designate/designate-backend-bind9/start.sh new file mode 120000 index 0000000000..918411fa1a --- /dev/null +++ b/docker/centos/binary/designate/designate-backend-bind9/start.sh @@ -0,0 +1 @@ +../../../../common/designate/designate-backend-bind9/start.sh \ No newline at end of file diff --git a/docker/centos/binary/designate/designate-base/config-designate.sh b/docker/centos/binary/designate/designate-base/config-designate.sh deleted file mode 100755 index 6edfd1bd24..0000000000 --- a/docker/centos/binary/designate/designate-base/config-designate.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh - -get_or_create_domain() { - local DOMAIN_NAME=$1 - - DOMAIN_ID=$(designate domain-create --name $DOMAIN_NAME | awk '/id/ { print $4; }') - # Searching domain if not created - if [ -z $DOMAIN_ID ]; then - DOMAIN_ID=$(designate domain-list | awk "/$DOMAIN_NAME/ { print \$2; }") - fi - # Fail if domain still don't exist - if [ -z $DOMAIN_ID ]; then - echo "Creating domain failed" 1>&2 - exit 1 - fi - - echo $DOMAIN_ID -} - -check_required_vars DESIGNATE_DB_PASSWORD DESIGNATE_KEYSTONE_PASSWORD \ - KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \ - DESIGNATE_BIND9_RNDC_KEY DESIGNATE_BACKEND \ - KEYSTONE_PUBLIC_SERVICE_PORT DESIGNATE_KEYSTONE_USER \ - RABBIT_USERID RABBIT_PASSWORD DESIGNATE_DB_USER \ - DESIGNATE_DB_NAME KEYSTONE_AUTH_PROTOCOL \ - KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT \ - DEBUG_LOGGING DESIGNATE_POOLMAN_POOLID - -fail_unless_db -dump_vars - -cat > /openrc < /etc/rndc.key < $DB_CLUSTER_INIT_SQL - - if [ "$MARIADB_DATABASE" ]; then - echo "CREATE DATABASE IF NOT EXISTS $MARIADB_DATABASE ;" >> $DB_CLUSTER_INIT_SQL - fi - - if [ "$MARIADB_USER" -a "$MARIADB_PASSWORD" ]; then - echo "CREATE USER '$MARIADB_USER'@'%' IDENTIFIED BY '$MARIADB_PASSWORD' ;" >> $DB_CLUSTER_INIT_SQL - - if [ "$MARIADB_DATABASE" ]; then - echo "GRANT ALL ON $MARIADB_DATABASE.* TO '$MARIADB_USER'@'%' ;" >> $DB_CLUSTER_INIT_SQL - fi - fi - - echo "FLUSH PRIVILEGES" >> $DB_CLUSTER_INIT_SQL -} - -function populate_db { - if [[ $(ls /var/lib/mysql) == "" ]]; then - echo "POPULATING NEW DB" - mysql_install_db - chown -R mysql /var/lib/mysql - else - echo "DB ALREADY EXISTS" - fi -} - -function prepare_db { - populate_db - configure_db - configure_files -} diff --git a/docker/centos/binary/galera/config-galera.sh b/docker/centos/binary/galera/config-galera.sh new file mode 120000 index 0000000000..f6782bb871 --- /dev/null +++ b/docker/centos/binary/galera/config-galera.sh @@ -0,0 +1 @@ +../../../common/galera/config-galera.sh \ No newline at end of file diff --git a/docker/centos/binary/galera/start.sh b/docker/centos/binary/galera/start.sh deleted file mode 100755 index 9288b77cc7..0000000000 --- a/docker/centos/binary/galera/start.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-galera.sh - -check_required_vars DB_CLUSTER_INIT_DB -prepare_db - -if [[ "${DB_CLUSTER_INIT_DB}" == "true" ]] && ! [[ -a /var/lib/mysql/cluster.exists ]]; then - DB_CLUSTER_IS_MASTER_NODE="--wsrep-new-cluster" - touch /var/lib/mysql/cluster.exists -fi - -mysqld_safe --init-file=$DB_CLUSTER_INIT_SQL $DB_CLUSTER_IS_MASTER_NODE \ No newline at end of file diff --git a/docker/centos/binary/galera/start.sh b/docker/centos/binary/galera/start.sh new file mode 120000 index 0000000000..1fa9a143db --- /dev/null +++ b/docker/centos/binary/galera/start.sh @@ -0,0 +1 @@ +../../../common/galera/start.sh \ No newline at end of file diff --git a/docker/centos/binary/glance/glance-api/check.sh b/docker/centos/binary/glance/glance-api/check.sh deleted file mode 100755 index f97ef70f46..0000000000 --- a/docker/centos/binary/glance/glance-api/check.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! glance image-list > /dev/null; then - echo "ERROR: glance image-list failed" >&2 - RES=1 - fi -fi - -exit $RES - diff --git a/docker/centos/binary/glance/glance-api/check.sh b/docker/centos/binary/glance/glance-api/check.sh new file mode 120000 index 0000000000..73dd5e2537 --- /dev/null +++ b/docker/centos/binary/glance/glance-api/check.sh @@ -0,0 +1 @@ +../../../../common/glance/glance-api/check.sh \ No newline at end of file diff --git a/docker/centos/binary/glance/glance-api/start.sh b/docker/centos/binary/glance/glance-api/start.sh deleted file mode 100755 index c546333f44..0000000000 --- a/docker/centos/binary/glance/glance-api/start.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-glance.sh -: ${GLANCE_API_SERVICE_HOST:=$PUBLIC_IP} - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - GLANCE_KEYSTONE_USER GLANCE_KEYSTONE_PASSWORD \ - ADMIN_TENANT_NAME GLANCE_API_SERVICE_HOST \ - PUBLIC_IP - -fail_unless_os_service_running keystone - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -crux user-create --update \ - -n "${GLANCE_KEYSTONE_USER}" \ - -p "${GLANCE_KEYSTONE_PASSWORD}" \ - -t "${ADMIN_TENANT_NAME}" \ - -r admin - -crux endpoint-create --remove-all \ - -n glance -t image \ - -I "http://${GLANCE_API_SERVICE_HOST}:9292" \ - -P "http://${PUBLIC_IP}:9292" \ - -A "http://${GLANCE_API_SERVICE_HOST}:9292" - -# turn on notification sending by glance -crudini --set /etc/glance/glance-api.conf \ - DEFAULT \ - notification_driver \ - "messaging" - -crudini --set /etc/glance/glance-api.conf \ - DEFAULT \ - rabbit_host \ - "${RABBITMQ_SERVICE_HOST}" - -crudini --set /etc/glance/glance-api.conf \ - DEFAULT \ - registry_host \ - "${GLANCE_REGISTRY_SERVICE_HOST}" - -crudini --set /etc/glance/glance-api.conf \ - DEFAULT \ - debug \ - "True" - -exec /usr/bin/glance-api diff --git a/docker/centos/binary/glance/glance-api/start.sh b/docker/centos/binary/glance/glance-api/start.sh new file mode 120000 index 0000000000..6740e1fe92 --- /dev/null +++ b/docker/centos/binary/glance/glance-api/start.sh @@ -0,0 +1 @@ +../../../../common/glance/glance-api/start.sh \ No newline at end of file diff --git a/docker/centos/binary/glance/glance-base/config-glance.sh b/docker/centos/binary/glance/glance-base/config-glance.sh deleted file mode 100644 index 97d076c116..0000000000 --- a/docker/centos/binary/glance/glance-base/config-glance.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh - -: ${ADMIN_TENANT_NAME:=admin} -: ${GLANCE_DB_NAME:=glance} -: ${GLANCE_DB_USER:=glance} -: ${GLANCE_KEYSTONE_USER:=glance} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${PUBLIC_IP:=$GLANCE_API_PORT_9292_TCP_ADDR} - -check_required_vars GLANCE_DB_PASSWORD GLANCE_KEYSTONE_PASSWORD -dump_vars - -cat > /openrc <.*)_PORT_(?P\d+)_(?P(UDP|TCP))$') - -def parse_args(): - p = argparse.ArgumentParser() - p.add_argument('--output', '-o', - default='/etc/haproxy/haproxy.cfg') - p.add_argument('--no-start', '-n', - action='store_true') - p.add_argument('--template-dir', '-t', - default='/etc/haproxy/templates') - return p.parse_args() - -def discover_services(): - services = [] - for k in os.environ: - mo = re_url.match(k) - - if mo: - parts = urlparse.urlparse(os.environ[k]) - remote_host,remote_port = parts.netloc.split(':') - service_name = '%(name)s-%(port)s' % mo.groupdict() - - services.append({ - 'remote_name': mo.group('name'), - 'remote_addr': remote_host, - 'remote_port': remote_port, - 'remote_proto': parts.scheme, - 'local_port': mo.group('port'), - 'service_name': service_name, - }) - - return services - -def main(): - args = parse_args() - services = discover_services() - - env = Environment(loader=FileSystemLoader(['.', - args.template_dir])) - template = env.get_template('haproxy.cfg.tmpl') - with open(args.output, 'w') as fd: - fd.write(template.render(services=services)) - - if args.no_start: - return - - os.execlp('haproxy', 'haproxy', '-f', args.output, '-db') - -if __name__ == '__main__': - main() - diff --git a/docker/centos/binary/hautoproxy/start.py b/docker/centos/binary/hautoproxy/start.py new file mode 120000 index 0000000000..f89efa2f89 --- /dev/null +++ b/docker/centos/binary/hautoproxy/start.py @@ -0,0 +1 @@ +../../../common/hautoproxy/start.py \ No newline at end of file diff --git a/docker/centos/binary/heat/heat-api-cfn/check.sh b/docker/centos/binary/heat/heat-api-cfn/check.sh deleted file mode 100755 index ee03dc6d23..0000000000 --- a/docker/centos/binary/heat/heat-api-cfn/check.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! heat stack-list > /dev/null; then - echo "ERROR: heat stack-list failed" >&2 - RES=1 - fi -fi - -exit $RES diff --git a/docker/centos/binary/heat/heat-api-cfn/check.sh b/docker/centos/binary/heat/heat-api-cfn/check.sh new file mode 120000 index 0000000000..68fce28bf1 --- /dev/null +++ b/docker/centos/binary/heat/heat-api-cfn/check.sh @@ -0,0 +1 @@ +../../../../common/heat/heat-api-cfn/check.sh \ No newline at end of file diff --git a/docker/centos/binary/heat/heat-api-cfn/start.sh b/docker/centos/binary/heat/heat-api-cfn/start.sh deleted file mode 100755 index bcd72250b4..0000000000 --- a/docker/centos/binary/heat/heat-api-cfn/start.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-heat.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - HEAT_CFN_KEYSTONE_USER HEAT_CFN_KEYSTONE_PASSWORD \ - KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \ - ADMIN_TENANT_NAME HEAT_API_CFN_SERVICE_HOST \ - HEAT_API_CFN_SERVICE_PORT - -fail_unless_os_service_running keystone - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" - -crux user-create -n ${HEAT_CFN_KEYSTONE_USER} \ - -p ${HEAT_CFN_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create --remove-all -n ${HEAT_CFN_KEYSTONE_USER} -t cloudformation \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" - -exec /usr/bin/heat-api-cfn diff --git a/docker/centos/binary/heat/heat-api-cfn/start.sh b/docker/centos/binary/heat/heat-api-cfn/start.sh new file mode 120000 index 0000000000..a71201d4b0 --- /dev/null +++ b/docker/centos/binary/heat/heat-api-cfn/start.sh @@ -0,0 +1 @@ +../../../../common/heat/heat-api-cfn/start.sh \ No newline at end of file diff --git a/docker/centos/binary/heat/heat-api/check.sh b/docker/centos/binary/heat/heat-api/check.sh deleted file mode 100755 index ee03dc6d23..0000000000 --- a/docker/centos/binary/heat/heat-api/check.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -RES=0 - -. /openrc -if ! keystone token-get > /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! heat stack-list > /dev/null; then - echo "ERROR: heat stack-list failed" >&2 - RES=1 - fi -fi - -exit $RES diff --git a/docker/centos/binary/heat/heat-api/check.sh b/docker/centos/binary/heat/heat-api/check.sh new file mode 120000 index 0000000000..1e72d2e2c1 --- /dev/null +++ b/docker/centos/binary/heat/heat-api/check.sh @@ -0,0 +1 @@ +../../../../common/heat/heat-api/check.sh \ No newline at end of file diff --git a/docker/centos/binary/heat/heat-api/start.sh b/docker/centos/binary/heat/heat-api/start.sh deleted file mode 100755 index b57aaa710b..0000000000 --- a/docker/centos/binary/heat/heat-api/start.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-heat.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - HEAT_KEYSTONE_USER HEAT_KEYSTONE_PASSWORD \ - KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ - HEAT_API_SERVICE_HOST PUBLIC_IP - -fail_unless_os_service_running keystone - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" -crux user-create -n ${HEAT_KEYSTONE_USER} \ - -p ${HEAT_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create --remove-all -n ${HEAT_KEYSTONE_USER} -t orchestration \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8004/v1/%(tenant_id)s" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s" - -# will use crux after https://github.com/larsks/crux/issues/1 is implemented -openstack role list --os-token="${KEYSTONE_ADMIN_TOKEN}" --os-url $SERVICE_ENDPOINT -f csv | tail -n +2 | awk -F, '{print $2}' | grep heat_stack_user || keystone role-create --name heat_stack_user - -exec /usr/bin/heat-api diff --git a/docker/centos/binary/heat/heat-api/start.sh b/docker/centos/binary/heat/heat-api/start.sh new file mode 120000 index 0000000000..cf3eb022cd --- /dev/null +++ b/docker/centos/binary/heat/heat-api/start.sh @@ -0,0 +1 @@ +../../../../common/heat/heat-api/start.sh \ No newline at end of file diff --git a/docker/centos/binary/heat/heat-base/config-heat.sh b/docker/centos/binary/heat/heat-base/config-heat.sh deleted file mode 100755 index 74b2718a4b..0000000000 --- a/docker/centos/binary/heat/heat-base/config-heat.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh - -: ${ADMIN_TENANT_NAME:=admin} -: ${HEAT_DB_NAME:=heat} -: ${HEAT_DB_USER:=heat} -: ${HEAT_KEYSTONE_USER:=heat} -: ${HEAT_CFN_KEYSTONE_USER:=heat_cfn} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${PUBLIC_IP:=$HEAT_API_PORT_8004_TCP_ADDR} -: ${RABBIT_USER:=guest} -: ${RABBIT_PASSWORD:=guest} - -check_required_vars HEAT_DB_PASSWORD HEAT_KEYSTONE_PASSWORD \ - KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST - -fail_unless_db -dump_vars - -cat > /openrc < /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -fi - -exit $RES - diff --git a/docker/centos/binary/keystone/check.sh b/docker/centos/binary/keystone/check.sh new file mode 120000 index 0000000000..fe8e7608c0 --- /dev/null +++ b/docker/centos/binary/keystone/check.sh @@ -0,0 +1 @@ +../../../common/keystone/check.sh \ No newline at end of file diff --git a/docker/centos/binary/keystone/start.sh b/docker/centos/binary/keystone/start.sh deleted file mode 100755 index 6dfebe0605..0000000000 --- a/docker/centos/binary/keystone/start.sh +++ /dev/null @@ -1,162 +0,0 @@ -#!/bin/bash - -set -e - -# Run Kolla common script -echo "Running the kolla-common script" -. /opt/kolla/kolla-common.sh - -# Credentials, token, etc.. -: ${ADMIN_USER:=admin} -: ${ADMIN_USER_PASSWORD:=password} -: ${ADMIN_TENANT_NAME:=admin} -: ${KEYSTONE_USER:=keystone} -: ${KEYSTONE_ADMIN_PASSWORD:=password} -: ${KEYSTONE_ADMIN_TOKEN:=changeme} -# DB Settings -: ${INIT_DB:=true} -: ${KEYSTONE_DB_NAME:=keystone} -: ${KEYSTONE_DB_USER:=keystone} -: ${DB_ROOT_PASSWORD:=password} -: ${MARIADB_SERVICE_HOST:=$PUBLIC_IP} -: ${KEYSTONE_DB_PASSWORD:=password} -# Service Addresses/Ports/Version -: ${KEYSTONE_PUBLIC_SERVICE_HOST:=$PUBLIC_IP} -: ${KEYSTONE_ADMIN_SERVICE_HOST:=$PUBLIC_IP} -: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000} -: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357} -: ${KEYSTONE_API_VERSION:=2.0} -# Logging -: ${LOG_FILE:=/var/log/keystone/keystone.log} -: ${VERBOSE_LOGGING:=true} -: ${DEBUG_LOGGING:=false} -: ${USE_STDERR:=false} -# Token provider, driver, etc.. -: ${TOKEN_PROVIDER:=uuid} -: ${TOKEN_DRIVER:=sql} - -## Check DB connectivity and required variables -echo "Checking connectivity to the DB" -fail_unless_db -echo "Checking for required variables" -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_DB_PASSWORD \ - KEYSTONE_ADMIN_PASSWORD ADMIN_TENANT_NAME \ - KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_HOST \ - PUBLIC_IP -dump_vars - -# Setup the Keystone DB -echo "Setting up Keystone DB" -mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql < /openrc < /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! heat stack-list > /dev/null; then - echo "ERROR: heat stack-list failed" >&2 - RES=1 - fi -fi - -exit $RES diff --git a/docker/centos/binary/magnum/magnum-api/check.sh b/docker/centos/binary/magnum/magnum-api/check.sh new file mode 120000 index 0000000000..7464ba2960 --- /dev/null +++ b/docker/centos/binary/magnum/magnum-api/check.sh @@ -0,0 +1 @@ +../../../../common/magnum/magnum-api/check.sh \ No newline at end of file diff --git a/docker/centos/binary/magnum/magnum-api/start.sh b/docker/centos/binary/magnum/magnum-api/start.sh deleted file mode 100755 index 00a51b3cdf..0000000000 --- a/docker/centos/binary/magnum/magnum-api/start.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -set -e - -. /opt/kolla/kolla-common.sh -. /opt/kolla/config-magnum.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - MAGNUM_KEYSTONE_USER MAGNUM_KEYSTONE_PASSWORD \ - KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ - MAGNUM_API_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT \ - MAGNUM_API_SERVICE_PORT - -fail_unless_os_service_running keystone - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" -crux user-create -n ${MAGNUM_KEYSTONE_USER} \ - -p ${MAGNUM_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create --remove-all -n ${MAGNUM_KEYSTONE_USER} -t container \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" - -exec /usr/bin/magnum-api diff --git a/docker/centos/binary/magnum/magnum-api/start.sh b/docker/centos/binary/magnum/magnum-api/start.sh new file mode 120000 index 0000000000..58cc9e37c9 --- /dev/null +++ b/docker/centos/binary/magnum/magnum-api/start.sh @@ -0,0 +1 @@ +../../../../common/magnum/magnum-api/start.sh \ No newline at end of file diff --git a/docker/centos/binary/magnum/magnum-base/config-magnum.sh b/docker/centos/binary/magnum/magnum-base/config-magnum.sh deleted file mode 100755 index 03599d359e..0000000000 --- a/docker/centos/binary/magnum/magnum-base/config-magnum.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/kolla-common.sh - -check_required_vars MAGNUM_DB_PASSWORD MAGNUM_KEYSTONE_PASSWORD \ - KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_PUBLIC_SERVICE_PORT \ - MAGNUM_KEYSTONE_USER ADMIN_TENANT_NAME \ - MAGNUM_DB_USER MAGNUM_DB_NAME KEYSTONE_AUTH_PROTOCOL \ - KEYSTONE_PUBLIC_SERVICE_PORT RABBITMQ_SERVICE_HOST \ - VERBOSE_LOGGING DEBUG_LOGGING - -fail_unless_db -dump_vars - -cat > /openrc <&2 - RES=1 -fi - -exit $RES diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh new file mode 120000 index 0000000000..fcce4f251e --- /dev/null +++ b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh @@ -0,0 +1 @@ +../../../../../common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh deleted file mode 100755 index d32c1e272f..0000000000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ L3 / {print $9}') -error="ERROR: Neutron L3 Agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh new file mode 120000 index 0000000000..3975d06b63 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh @@ -0,0 +1 @@ +../../../../../common/neutron/neutron-agents/check-scripts/check-l3-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh deleted file mode 100755 index 4485fc1ec9..0000000000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ Linux / {print $10}') -error="ERROR: Neutron Linux Bridge agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh new file mode 120000 index 0000000000..8f26a18feb --- /dev/null +++ b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh @@ -0,0 +1 @@ +../../../../../common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh deleted file mode 100755 index fd1c6812b4..0000000000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ Metadata / {print $9}') -error="ERROR: Neutron Metadata Agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh new file mode 120000 index 0000000000..aabb2a9eef --- /dev/null +++ b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh @@ -0,0 +1 @@ +../../../../../common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh deleted file mode 100755 index db71678b1d..0000000000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh -. /opt/kolla/config-sudoers.sh - -: ${DHCP_DRIVER:=neutron.agent.linux.dhcp.Dnsmasq} -: ${USE_NAMESPACES:=true} -: ${DELETE_NAMESPACES:=true} -: ${DNSMASQ_CONFIG_FILE:=/etc/neutron/dnsmasq/dnsmasq-neutron.conf} -: ${ROOT_HELPER:=sudo neutron-rootwrap /etc/neutron/rootwrap.conf} - -mkdir -p $(dirname $DNSMASQ_CONFIG_FILE) - -check_required_vars VERBOSE_LOGGING DEBUG_LOGGING MECHANISM_DRIVERS \ - DHCP_DRIVER USE_NAMESPACES DELETE_NAMESPACES \ - NEUTRON_LOG_DIR DNSMASQ_CONFIG_FILE \ - -cfg=/etc/neutron/dhcp_agent.ini -neutron_conf=/etc/neutron/neutron.conf - -# Workaround bug in dhclient in cirros images which does not correctly -# handle setting checksums of packets when using hardware with checksum -# offloading. See: -# https://www.rdoproject.org/forum/discussion/567/packstack-allinone-grizzly-cirros-image-cannot-get-a-dhcp-address-when-a-centos-image-can/p1 - -/usr/sbin/iptables -A POSTROUTING -t mangle -p udp --dport bootpc \ - -j CHECKSUM --checksum-fill - -if [[ ${MECHANISM_DRIVERS} =~ linuxbridge ]]; then - interface_driver="neutron.agent.linux.interface.BridgeInterfaceDriver" -elif [[ ${MECHANISM_DRIVERS} == "openvswitch" ]]; then - interface_driver="neutron.agent.linux.interface.OVSInterfaceDriver" -fi - -# Logging -crudini --set $neutron_conf \ - DEFAULT \ - log_file \ - "${NEUTRON_DHCP_AGENT_LOG_FILE}" - -# Configure dhcp_agent.ini -crudini --set $cfg \ - DEFAULT \ - verbose \ - "${VERBOSE_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - debug \ - "${DEBUG_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - interface_driver \ - "$interface_driver" -crudini --set $cfg \ - DEFAULT \ - dhcp_driver \ - "${DHCP_DRIVER}" -crudini --set $cfg \ - DEFAULT \ - use_namespaces \ - "${USE_NAMESPACES}" -crudini --set $cfg \ - DEFAULT \ - delete_namespaces \ - "${DELETE_NAMESPACES}" -crudini --set $cfg \ - DEFAULT \ - dnsmasq_config_file \ - "${DNSMASQ_CONFIG_FILE}" -crudini --set $cfg \ - DEFAULT \ - root_helper \ - "${ROOT_HELPER}" - -cat > ${DNSMASQ_CONFIG_FILE} < /openrc < /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! neutron ext-list > /dev/null; then - echo "ERROR: neutron ext-list failed" >&2 - RES=1 - fi -fi - -exit $RES - diff --git a/docker/centos/binary/neutron/neutron-server/check.sh b/docker/centos/binary/neutron/neutron-server/check.sh new file mode 120000 index 0000000000..0019366163 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-server/check.sh @@ -0,0 +1 @@ +../../../../common/neutron/neutron-server/check.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-server/start.sh b/docker/centos/binary/neutron/neutron-server/start.sh deleted file mode 100755 index fb971083f5..0000000000 --- a/docker/centos/binary/neutron/neutron-server/start.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh - -: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1} -: ${NEUTRON_FLAT_NETWORK_INTERFACE:=eth1} - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - KEYSTONE_AUTH_PROTOCOL NOVA_API_SERVICE_HOST \ - NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \ - NEUTRON_DB_NAME NEUTRON_DB_USER NEUTRON_DB_PASSWORD \ - NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \ - ADMIN_TENANT_NAME NEUTRON_SERVER_SERVICE_HOST \ - PUBLIC_IP NEUTRON_DB_PASSWORD -fail_unless_os_service_running keystone -fail_unless_db - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql < /openrc < /etc/sysconfig/network-scripts/ifcfg-$FLAT_INTERFACE < /dev/null; then - echo "ERROR: keystone token-get failed" >&2 - RES=1 -else - if ! nova list > /dev/null; then - echo "ERROR: nova list failed" >&2 - RES=1 - fi -fi - -exit $RES - diff --git a/docker/centos/binary/nova-controller/nova-api/check.sh b/docker/centos/binary/nova-controller/nova-api/check.sh new file mode 120000 index 0000000000..2a047038e4 --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-api/check.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-api/check.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-api/start.sh b/docker/centos/binary/nova-controller/nova-api/start.sh deleted file mode 100755 index 7928370a46..0000000000 --- a/docker/centos/binary/nova-controller/nova-api/start.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-nova.sh - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \ - ADMIN_TENANT_NAME NOVA_API_SERVICE_HOST \ - NOVA_EC2_API_SERVICE_HOST PUBLIC_IP NOVA_DB_NAME -fail_unless_os_service_running keystone -fail_unless_db $NOVA_DB_NAME - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" - -cfg=/etc/nova/nova.conf - -# configure logging -crudini --set $cfg DEFAULT log_file "${NOVA_API_LOG_FILE}" - -crux user-create --update \ - -n "${NOVA_KEYSTONE_USER}" \ - -p "${NOVA_KEYSTONE_PASSWORD}" \ - -t "${ADMIN_TENANT_NAME}" \ - -r admin - -crux endpoint-create --remove-all \ - -n ec2 -t ec2 \ - -I "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Cloud" \ - -P "http://${PUBLIC_IP}:8773/services/Cloud" \ - -A "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Admin" - -crux endpoint-create --remove-all \ - -n nova -t compute \ - -I "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" \ - -P "http://${PUBLIC_IP}:8774/v2/\$(tenant_id)s" \ - -A "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" - -crux endpoint-create --remove-all \ - -n novav3 -t computev3 \ - -I "http://${NOVA_API_SERVICE_HOST}:8774/v3" \ - -P "http://${PUBLIC_IP}:8774/v3" \ - -A "http://${NOVA_API_SERVICE_HOST}:8774/v3" - -exec /usr/bin/nova-api --config-file /etc/nova/nova.conf diff --git a/docker/centos/binary/nova-controller/nova-api/start.sh b/docker/centos/binary/nova-controller/nova-api/start.sh new file mode 120000 index 0000000000..7613d713aa --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-api/start.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-api/start.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-conductor/start.sh b/docker/centos/binary/nova-controller/nova-conductor/start.sh deleted file mode 100755 index 575e7ff6cc..0000000000 --- a/docker/centos/binary/nova-controller/nova-conductor/start.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-nova.sh - -check_required_vars NOVA_DB_NAME NOVA_DB_USER NOVA_DB_PASSWORD -fail_unless_db - -cfg=/etc/nova/nova.conf - -# configure logging -crudini --set $cfg DEFAULT log_file "${NOVA_CONDUCTOR_LOG_FILE}" - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <>}, - {default_pass, <<"@RABBITMQ_PASS@">>} - ]}, - {kernel, [ - - ]} -]. -% EOF - diff --git a/docker/centos/binary/rabbitmq/rabbitmq.config b/docker/centos/binary/rabbitmq/rabbitmq.config new file mode 120000 index 0000000000..cfb088507e --- /dev/null +++ b/docker/centos/binary/rabbitmq/rabbitmq.config @@ -0,0 +1 @@ +../../../common/rabbitmq/rabbitmq.config \ No newline at end of file diff --git a/docker/centos/binary/rabbitmq/start.sh b/docker/centos/binary/rabbitmq/start.sh deleted file mode 100755 index f70c348668..0000000000 --- a/docker/centos/binary/rabbitmq/start.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -set -e - -: ${RABBITMQ_USER:=guest} -: ${RABBITMQ_PASS:=guest} -: ${RABBITMQ_NODENAME:=rabbit} -: ${RABBITMQ_LOG_BASE:=/var/log/rabbitmq} - -sed -i ' - s|@RABBITMQ_USER@|'"$RABBITMQ_USER"'|g - s|@RABBITMQ_PASS@|'"$RABBITMQ_PASS"'|g -' /etc/rabbitmq/rabbitmq.config - -sed -i ' - s|@RABBITMQ_NODENAME@|'"$RABBITMQ_NODENAME"'|g - s|@RABBITMQ_LOG_BASE@|'"$RABBITMQ_LOG_BASE"'|g -' /etc/rabbitmq/rabbitmq-env.conf - -# work around: -# https://bugs.launchpad.net/ubuntu/+source/rabbitmq-server/+bug/653405 -echo "${RABBITMQ_SERVICE_HOST} `/usr/bin/hostname -s`" > /etc/hosts - -exec /usr/sbin/rabbitmq-server diff --git a/docker/centos/binary/rabbitmq/start.sh b/docker/centos/binary/rabbitmq/start.sh new file mode 120000 index 0000000000..035f55e267 --- /dev/null +++ b/docker/centos/binary/rabbitmq/start.sh @@ -0,0 +1 @@ +../../../common/rabbitmq/start.sh \ No newline at end of file diff --git a/docker/centos/binary/swift/swift-account/start.sh b/docker/centos/binary/swift/swift-account/start.sh deleted file mode 100644 index bf86830f98..0000000000 --- a/docker/centos/binary/swift/swift-account/start.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -: ${SWIFT_DB_USER:=swift} -: ${SWIFT_DB_NAME:=swift} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${SWIFT_KEYSTONE_USER:=swift} -: ${ADMIN_TENANT_NAME:=admin} - -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - SWIFT_ADMIN_PASSWORD -fail_unless_db -fail_unless_os_service_running keystone - -if ! [ "$SWIFT_DB_PASSWORD" ]; then - SWIFT_DB_PASSWORD=$(openssl rand -hex 15) - export SWIFT_DB_PASSWORD -fi - -sh /opt/swift/config-swift.sh account-server - -mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql < /openrc < /dev/null 2>&1 || /bin/keystone user-create --name ${BARBICAN_KEYSTONE_USER} --pass ${BARBICAN_ADMIN_PASSWORD} + +keystone role-get observer > /dev/null 2>&1 || /bin/keystone role-create --name observer +keystone role-get creator > /dev/null 2>&1 || /bin/keystone role-create --name creator + +keystone user-get ${BARBICAN_KEYSTONE_USER} > /dev/null 2>&1 || /bin/keystone user-role-add --user ${BARBICAN_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} + +# launch Barbican using uwsgi +exec uwsgi --master --emperor /etc/barbican/vassals diff --git a/docker/common/kolla-common.sh b/docker/common/base/kolla-common.sh similarity index 100% rename from docker/common/kolla-common.sh rename to docker/common/base/kolla-common.sh diff --git a/docker/common/service_hosts.sh b/docker/common/base/service_hosts.sh similarity index 100% rename from docker/common/service_hosts.sh rename to docker/common/base/service_hosts.sh diff --git a/docker/common/ceilometer/ceilometer-alarm/start.sh b/docker/common/ceilometer/ceilometer-alarm/start.sh new file mode 100644 index 0000000000..7470ae608f --- /dev/null +++ b/docker/common/ceilometer/ceilometer-alarm/start.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-ceilometer.sh + + +exec /usr/bin/ceilometer-alarm-evaluator & +exec /usr/bin/ceilometer-alarm-notifier diff --git a/docker/common/ceilometer/ceilometer-api/start.sh b/docker/common/ceilometer/ceilometer-api/start.sh new file mode 100644 index 0000000000..f081c9f84d --- /dev/null +++ b/docker/common/ceilometer/ceilometer-api/start.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-ceilometer.sh + +check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME \ + CEILOMETER_DB_PASSWORD KEYSTONE_ADMIN_TOKEN \ + KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_HOST \ + KEYSTONE_ADMIN_SERVICE_PORT ADMIN_TENANT_NAME \ + CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD \ + CEILOMETER_API_SERVICE_HOST PUBLIC_IP + +fail_unless_os_service_running keystone +fail_unless_db + +#TODO(pkilambi): Add mongodb support + +mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql < /openrc < /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +else + if ! cinder list > /dev/null; then + echo "ERROR: cinder list failed" >&2 + RES=1 + fi +fi + +exit $RES diff --git a/docker/common/cinder-app/cinder-api/start.sh b/docker/common/cinder-app/cinder-api/start.sh new file mode 100755 index 0000000000..28293ac6cc --- /dev/null +++ b/docker/common/cinder-app/cinder-api/start.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-cinder.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + ADMIN_TENANT_NAME PUBLIC_IP CINDER_API_SERVICE_HOST \ + KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \ + CINDER_KEYSTONE_USER CINDER_KEYSTONE_PASSWORD \ + CINDER_API_LOG_FILE CINDER_API_SERVICE_LISTEN \ + CINDER_API_SERVICE_PORT CINDER_API_SERVICE_LISTEN + +fail_unless_os_service_running keystone + +cfg=/etc/cinder/cinder.conf + +# Set the auth credentials +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" + +# Create Keystone User +crux user-create --update \ + -n "${CINDER_KEYSTONE_USER}" \ + -p "${CINDER_KEYSTONE_PASSWORD}" \ + -t "${ADMIN_TENANT_NAME}" \ + -r admin + +# Configure Keystone +crux endpoint-create --remove-all \ + -n cinder \ + -t volume \ + -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \ + -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \ + -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" + +crux endpoint-create --remove-all \ + -n cinderv2 \ + -t volumev2 \ + -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \ + -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \ + -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" + +# Logging +crudini --set $cfg \ + DEFAULT \ + log_file \ + "${CINDER_API_LOG_FILE}" + +# API Configuration +crudini --set $cfg \ + DEFAULT \ + osapi_volume_listen \ + "${CINDER_API_SERVICE_LISTEN}" + +crudini --set $cfg \ + DEFAULT \ + osapi_volume_listen_port \ + "${CINDER_API_SERVICE_PORT}" + +crudini --set $cfg \ + DEFAULT \ + enable_v1_api \ + "true" + +crudini --set $cfg \ + DEFAULT \ + enable_v2_api \ + "true" + +echo "Starting cinder-api" +exec /usr/bin/cinder-api --config-file $cfg diff --git a/docker/common/cinder-app/cinder-backup/start.sh b/docker/common/cinder-app/cinder-backup/start.sh new file mode 100755 index 0000000000..5dff79b356 --- /dev/null +++ b/docker/common/cinder-app/cinder-backup/start.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-cinder.sh + +check_required_vars CINDER_BACKUP_DRIVER CINDER_BACKUP_MANAGER \ + CINDER_BACKUP_API_CLASS CINDER_BACKUP_NAME_TEMPLATE + +cfg=/etc/cinder/cinder.conf + +# volume backup configuration +crudini --set $cfg \ + DEFAULT \ + backup_driver \ + "${CINDER_BACKUP_DRIVER}" +crudini --set $cfg \ + DEFAULT \ + backup_topic \ + "cinder-backup" +crudini --set $cfg \ + DEFAULT \ + backup_manager \ + "${CINDER_BACKUP_MANAGER}" +crudini --set $cfg \ + DEFAULT \ + backup_api_class \ + "${CINDER_BACKUP_API_CLASS}" +crudini --set $cfg \ + DEFAULT \ + backup_name_template \ + "${CINDER_BACKUP_NAME_TEMPLATE}" + +echo "Starting cinder-backup" +exec /usr/bin/cinder-backup --config-file $cfg diff --git a/docker/common/cinder-app/cinder-base/config-cinder.sh b/docker/common/cinder-app/cinder-base/config-cinder.sh new file mode 100644 index 0000000000..f82cb5510c --- /dev/null +++ b/docker/common/cinder-app/cinder-base/config-cinder.sh @@ -0,0 +1,132 @@ +#!/bin/sh + +set -e + +. /opt/kolla/kolla-common.sh + +check_required_vars CINDER_DB_PASSWORD CINDER_KEYSTONE_PASSWORD \ + KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \ + GLANCE_API_SERVICE_HOST MARIADB_SERVICE_HOST \ + RABBITMQ_SERVICE_HOST RABBITMQ_SERVICE_PORT \ + RABBIT_USERID RABBIT_PASSWORD GLANCE_API_SERVICE_HOST \ + GLANCE_API_SERVICE_PORT ADMIN_TENANT_NAME \ + CINDER_DB_NAME CINDER_DB_USER CINDER_KEYSTONE_USER \ + PUBLIC_IP KEYSTONE_AUTH_PROTOCOL CINDER_LOG_DIR + +dump_vars + +cat > /openrc <> /etc/named.conf < /etc/rndc.key < /etc/rndc.conf <> /etc/rndc.conf +chown named /etc/rndc.key + +# Launch and keep in the foreground. +exec /usr/sbin/named -u named -g diff --git a/docker/common/designate/designate-base/config-designate.sh b/docker/common/designate/designate-base/config-designate.sh new file mode 100755 index 0000000000..5a31401eec --- /dev/null +++ b/docker/common/designate/designate-base/config-designate.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh + +check_required_vars DESIGNATE_DB_PASSWORD DESIGNATE_KEYSTONE_PASSWORD \ + KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \ + DESIGNATE_BIND9_RNDC_KEY DESIGNATE_BACKEND \ + KEYSTONE_PUBLIC_SERVICE_PORT DESIGNATE_KEYSTONE_USER \ + RABBIT_USERID RABBIT_PASSWORD DESIGNATE_DB_USER \ + DESIGNATE_DB_NAME KEYSTONE_AUTH_PROTOCOL \ + KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT \ + DEBUG_LOGGING DESIGNATE_POOLMAN_POOLID + +fail_unless_db +dump_vars + +cat > /openrc < /etc/rndc.key < $DB_CLUSTER_INIT_SQL + + if [ "$MARIADB_DATABASE" ]; then + echo "CREATE DATABASE IF NOT EXISTS $MARIADB_DATABASE ;" >> $DB_CLUSTER_INIT_SQL + fi + + if [ "$MARIADB_USER" -a "$MARIADB_PASSWORD" ]; then + echo "CREATE USER '$MARIADB_USER'@'%' IDENTIFIED BY '$MARIADB_PASSWORD' ;" >> $DB_CLUSTER_INIT_SQL + + if [ "$MARIADB_DATABASE" ]; then + echo "GRANT ALL ON $MARIADB_DATABASE.* TO '$MARIADB_USER'@'%' ;" >> $DB_CLUSTER_INIT_SQL + fi + fi + + echo "FLUSH PRIVILEGES" >> $DB_CLUSTER_INIT_SQL +} + +function populate_db { + if [[ $(ls /var/lib/mysql) == "" ]]; then + echo "POPULATING NEW DB" + mysql_install_db + chown -R mysql /var/lib/mysql + else + echo "DB ALREADY EXISTS" + fi +} + +function prepare_db { + populate_db + configure_db + configure_files +} diff --git a/docker/common/galera/start.sh b/docker/common/galera/start.sh new file mode 100755 index 0000000000..9288b77cc7 --- /dev/null +++ b/docker/common/galera/start.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-galera.sh + +check_required_vars DB_CLUSTER_INIT_DB +prepare_db + +if [[ "${DB_CLUSTER_INIT_DB}" == "true" ]] && ! [[ -a /var/lib/mysql/cluster.exists ]]; then + DB_CLUSTER_IS_MASTER_NODE="--wsrep-new-cluster" + touch /var/lib/mysql/cluster.exists +fi + +mysqld_safe --init-file=$DB_CLUSTER_INIT_SQL $DB_CLUSTER_IS_MASTER_NODE \ No newline at end of file diff --git a/docker/common/glance/glance-api/check.sh b/docker/common/glance/glance-api/check.sh new file mode 100755 index 0000000000..f97ef70f46 --- /dev/null +++ b/docker/common/glance/glance-api/check.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +RES=0 + +. /openrc +if ! keystone token-get > /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +else + if ! glance image-list > /dev/null; then + echo "ERROR: glance image-list failed" >&2 + RES=1 + fi +fi + +exit $RES + diff --git a/docker/common/glance/glance-api/start.sh b/docker/common/glance/glance-api/start.sh new file mode 100755 index 0000000000..c546333f44 --- /dev/null +++ b/docker/common/glance/glance-api/start.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-glance.sh +: ${GLANCE_API_SERVICE_HOST:=$PUBLIC_IP} + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + GLANCE_KEYSTONE_USER GLANCE_KEYSTONE_PASSWORD \ + ADMIN_TENANT_NAME GLANCE_API_SERVICE_HOST \ + PUBLIC_IP + +fail_unless_os_service_running keystone + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" + +crux user-create --update \ + -n "${GLANCE_KEYSTONE_USER}" \ + -p "${GLANCE_KEYSTONE_PASSWORD}" \ + -t "${ADMIN_TENANT_NAME}" \ + -r admin + +crux endpoint-create --remove-all \ + -n glance -t image \ + -I "http://${GLANCE_API_SERVICE_HOST}:9292" \ + -P "http://${PUBLIC_IP}:9292" \ + -A "http://${GLANCE_API_SERVICE_HOST}:9292" + +# turn on notification sending by glance +crudini --set /etc/glance/glance-api.conf \ + DEFAULT \ + notification_driver \ + "messaging" + +crudini --set /etc/glance/glance-api.conf \ + DEFAULT \ + rabbit_host \ + "${RABBITMQ_SERVICE_HOST}" + +crudini --set /etc/glance/glance-api.conf \ + DEFAULT \ + registry_host \ + "${GLANCE_REGISTRY_SERVICE_HOST}" + +crudini --set /etc/glance/glance-api.conf \ + DEFAULT \ + debug \ + "True" + +exec /usr/bin/glance-api diff --git a/docker/common/glance/glance-base/config-glance.sh b/docker/common/glance/glance-base/config-glance.sh new file mode 100644 index 0000000000..97d076c116 --- /dev/null +++ b/docker/common/glance/glance-base/config-glance.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh + +: ${ADMIN_TENANT_NAME:=admin} +: ${GLANCE_DB_NAME:=glance} +: ${GLANCE_DB_USER:=glance} +: ${GLANCE_KEYSTONE_USER:=glance} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${PUBLIC_IP:=$GLANCE_API_PORT_9292_TCP_ADDR} + +check_required_vars GLANCE_DB_PASSWORD GLANCE_KEYSTONE_PASSWORD +dump_vars + +cat > /openrc <.*)_PORT_(?P\d+)_(?P(UDP|TCP))$') + +def parse_args(): + p = argparse.ArgumentParser() + p.add_argument('--output', '-o', + default='/etc/haproxy/haproxy.cfg') + p.add_argument('--no-start', '-n', + action='store_true') + p.add_argument('--template-dir', '-t', + default='/etc/haproxy/templates') + return p.parse_args() + +def discover_services(): + services = [] + for k in os.environ: + mo = re_url.match(k) + + if mo: + parts = urlparse.urlparse(os.environ[k]) + remote_host,remote_port = parts.netloc.split(':') + service_name = '%(name)s-%(port)s' % mo.groupdict() + + services.append({ + 'remote_name': mo.group('name'), + 'remote_addr': remote_host, + 'remote_port': remote_port, + 'remote_proto': parts.scheme, + 'local_port': mo.group('port'), + 'service_name': service_name, + }) + + return services + +def main(): + args = parse_args() + services = discover_services() + + env = Environment(loader=FileSystemLoader(['.', + args.template_dir])) + template = env.get_template('haproxy.cfg.tmpl') + with open(args.output, 'w') as fd: + fd.write(template.render(services=services)) + + if args.no_start: + return + + os.execlp('haproxy', 'haproxy', '-f', args.output, '-db') + +if __name__ == '__main__': + main() + diff --git a/docker/common/heat/heat-api-cfn/check.sh b/docker/common/heat/heat-api-cfn/check.sh new file mode 100755 index 0000000000..ee03dc6d23 --- /dev/null +++ b/docker/common/heat/heat-api-cfn/check.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +RES=0 + +. /openrc +if ! keystone token-get > /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +else + if ! heat stack-list > /dev/null; then + echo "ERROR: heat stack-list failed" >&2 + RES=1 + fi +fi + +exit $RES diff --git a/docker/common/heat/heat-api-cfn/start.sh b/docker/common/heat/heat-api-cfn/start.sh new file mode 100755 index 0000000000..bcd72250b4 --- /dev/null +++ b/docker/common/heat/heat-api-cfn/start.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-heat.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + HEAT_CFN_KEYSTONE_USER HEAT_CFN_KEYSTONE_PASSWORD \ + KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \ + ADMIN_TENANT_NAME HEAT_API_CFN_SERVICE_HOST \ + HEAT_API_CFN_SERVICE_PORT + +fail_unless_os_service_running keystone + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" + +crux user-create -n ${HEAT_CFN_KEYSTONE_USER} \ + -p ${HEAT_CFN_KEYSTONE_PASSWORD} \ + -t ${ADMIN_TENANT_NAME} \ + -r admin + +crux endpoint-create --remove-all -n ${HEAT_CFN_KEYSTONE_USER} -t cloudformation \ + -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \ + -P "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \ + -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" + +exec /usr/bin/heat-api-cfn diff --git a/docker/common/heat/heat-api/check.sh b/docker/common/heat/heat-api/check.sh new file mode 100755 index 0000000000..ee03dc6d23 --- /dev/null +++ b/docker/common/heat/heat-api/check.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +RES=0 + +. /openrc +if ! keystone token-get > /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +else + if ! heat stack-list > /dev/null; then + echo "ERROR: heat stack-list failed" >&2 + RES=1 + fi +fi + +exit $RES diff --git a/docker/common/heat/heat-api/start.sh b/docker/common/heat/heat-api/start.sh new file mode 100755 index 0000000000..b57aaa710b --- /dev/null +++ b/docker/common/heat/heat-api/start.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-heat.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + HEAT_KEYSTONE_USER HEAT_KEYSTONE_PASSWORD \ + KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ + HEAT_API_SERVICE_HOST PUBLIC_IP + +fail_unless_os_service_running keystone + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" +crux user-create -n ${HEAT_KEYSTONE_USER} \ + -p ${HEAT_KEYSTONE_PASSWORD} \ + -t ${ADMIN_TENANT_NAME} \ + -r admin + +crux endpoint-create --remove-all -n ${HEAT_KEYSTONE_USER} -t orchestration \ + -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s" \ + -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8004/v1/%(tenant_id)s" \ + -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s" + +# will use crux after https://github.com/larsks/crux/issues/1 is implemented +openstack role list --os-token="${KEYSTONE_ADMIN_TOKEN}" --os-url $SERVICE_ENDPOINT -f csv | tail -n +2 | awk -F, '{print $2}' | grep heat_stack_user || keystone role-create --name heat_stack_user + +exec /usr/bin/heat-api diff --git a/docker/common/heat/heat-base/config-heat.sh b/docker/common/heat/heat-base/config-heat.sh new file mode 100755 index 0000000000..74b2718a4b --- /dev/null +++ b/docker/common/heat/heat-base/config-heat.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh + +: ${ADMIN_TENANT_NAME:=admin} +: ${HEAT_DB_NAME:=heat} +: ${HEAT_DB_USER:=heat} +: ${HEAT_KEYSTONE_USER:=heat} +: ${HEAT_CFN_KEYSTONE_USER:=heat_cfn} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${PUBLIC_IP:=$HEAT_API_PORT_8004_TCP_ADDR} +: ${RABBIT_USER:=guest} +: ${RABBIT_PASSWORD:=guest} + +check_required_vars HEAT_DB_PASSWORD HEAT_KEYSTONE_PASSWORD \ + KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST + +fail_unless_db +dump_vars + +cat > /openrc < /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +fi + +exit $RES + diff --git a/docker/common/keystone/start.sh b/docker/common/keystone/start.sh new file mode 100755 index 0000000000..6dfebe0605 --- /dev/null +++ b/docker/common/keystone/start.sh @@ -0,0 +1,162 @@ +#!/bin/bash + +set -e + +# Run Kolla common script +echo "Running the kolla-common script" +. /opt/kolla/kolla-common.sh + +# Credentials, token, etc.. +: ${ADMIN_USER:=admin} +: ${ADMIN_USER_PASSWORD:=password} +: ${ADMIN_TENANT_NAME:=admin} +: ${KEYSTONE_USER:=keystone} +: ${KEYSTONE_ADMIN_PASSWORD:=password} +: ${KEYSTONE_ADMIN_TOKEN:=changeme} +# DB Settings +: ${INIT_DB:=true} +: ${KEYSTONE_DB_NAME:=keystone} +: ${KEYSTONE_DB_USER:=keystone} +: ${DB_ROOT_PASSWORD:=password} +: ${MARIADB_SERVICE_HOST:=$PUBLIC_IP} +: ${KEYSTONE_DB_PASSWORD:=password} +# Service Addresses/Ports/Version +: ${KEYSTONE_PUBLIC_SERVICE_HOST:=$PUBLIC_IP} +: ${KEYSTONE_ADMIN_SERVICE_HOST:=$PUBLIC_IP} +: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000} +: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357} +: ${KEYSTONE_API_VERSION:=2.0} +# Logging +: ${LOG_FILE:=/var/log/keystone/keystone.log} +: ${VERBOSE_LOGGING:=true} +: ${DEBUG_LOGGING:=false} +: ${USE_STDERR:=false} +# Token provider, driver, etc.. +: ${TOKEN_PROVIDER:=uuid} +: ${TOKEN_DRIVER:=sql} + +## Check DB connectivity and required variables +echo "Checking connectivity to the DB" +fail_unless_db +echo "Checking for required variables" +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_DB_PASSWORD \ + KEYSTONE_ADMIN_PASSWORD ADMIN_TENANT_NAME \ + KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_HOST \ + PUBLIC_IP +dump_vars + +# Setup the Keystone DB +echo "Setting up Keystone DB" +mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql < /openrc < /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +else + if ! heat stack-list > /dev/null; then + echo "ERROR: heat stack-list failed" >&2 + RES=1 + fi +fi + +exit $RES diff --git a/docker/common/magnum/magnum-api/start.sh b/docker/common/magnum/magnum-api/start.sh new file mode 100755 index 0000000000..00a51b3cdf --- /dev/null +++ b/docker/common/magnum/magnum-api/start.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-magnum.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + MAGNUM_KEYSTONE_USER MAGNUM_KEYSTONE_PASSWORD \ + KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ + MAGNUM_API_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT \ + MAGNUM_API_SERVICE_PORT + +fail_unless_os_service_running keystone + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0" +crux user-create -n ${MAGNUM_KEYSTONE_USER} \ + -p ${MAGNUM_KEYSTONE_PASSWORD} \ + -t ${ADMIN_TENANT_NAME} \ + -r admin + +crux endpoint-create --remove-all -n ${MAGNUM_KEYSTONE_USER} -t container \ + -I "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" \ + -P "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" \ + -A "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" + +exec /usr/bin/magnum-api diff --git a/docker/common/magnum/magnum-base/config-magnum.sh b/docker/common/magnum/magnum-base/config-magnum.sh new file mode 100755 index 0000000000..03599d359e --- /dev/null +++ b/docker/common/magnum/magnum-base/config-magnum.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh + +check_required_vars MAGNUM_DB_PASSWORD MAGNUM_KEYSTONE_PASSWORD \ + KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_PUBLIC_SERVICE_PORT \ + MAGNUM_KEYSTONE_USER ADMIN_TENANT_NAME \ + MAGNUM_DB_USER MAGNUM_DB_NAME KEYSTONE_AUTH_PROTOCOL \ + KEYSTONE_PUBLIC_SERVICE_PORT RABBITMQ_SERVICE_HOST \ + VERBOSE_LOGGING DEBUG_LOGGING + +fail_unless_db +dump_vars + +cat > /openrc <> "$TEMP_FILE" + echo "CREATE USER '$MARIADB_USER'@'%' IDENTIFIED BY '$MARIADB_PASSWORD' ;" >> "$TEMP_FILE" if [ "$MARIADB_DATABASE" ]; then echo "GRANT ALL ON $MARIADB_DATABASE.* TO '$MARIADB_USER'@'%' ;" >> "$TEMP_FILE" diff --git a/docker/common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh b/docker/common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh new file mode 100755 index 0000000000..7dda736efb --- /dev/null +++ b/docker/common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +RES=0 + +check=$(/usr/bin/neutron agent-list | awk '/ DHCP / {print $9}') +error="ERROR: Neutron DHCP Agent is not alive." + +if [[ $check != ":-)" ]]; then + echo $error >&2 + RES=1 +fi + +exit $RES diff --git a/docker/common/neutron/neutron-agents/check-scripts/check-l3-agent.sh b/docker/common/neutron/neutron-agents/check-scripts/check-l3-agent.sh new file mode 100755 index 0000000000..d32c1e272f --- /dev/null +++ b/docker/common/neutron/neutron-agents/check-scripts/check-l3-agent.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +RES=0 + +check=$(/usr/bin/neutron agent-list | awk '/ L3 / {print $9}') +error="ERROR: Neutron L3 Agent is not alive." + +if [[ $check != ":-)" ]]; then + echo $error >&2 + RES=1 +fi + +exit $RES diff --git a/docker/common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh b/docker/common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh new file mode 100755 index 0000000000..4485fc1ec9 --- /dev/null +++ b/docker/common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +RES=0 + +check=$(/usr/bin/neutron agent-list | awk '/ Linux / {print $10}') +error="ERROR: Neutron Linux Bridge agent is not alive." + +if [[ $check != ":-)" ]]; then + echo $error >&2 + RES=1 +fi + +exit $RES diff --git a/docker/common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh b/docker/common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh new file mode 100755 index 0000000000..fd1c6812b4 --- /dev/null +++ b/docker/common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +RES=0 + +check=$(/usr/bin/neutron agent-list | awk '/ Metadata / {print $9}') +error="ERROR: Neutron Metadata Agent is not alive." + +if [[ $check != ":-)" ]]; then + echo $error >&2 + RES=1 +fi + +exit $RES diff --git a/docker/common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh b/docker/common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh new file mode 100755 index 0000000000..db71678b1d --- /dev/null +++ b/docker/common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh @@ -0,0 +1,88 @@ +#!/bin/bash + +set -e + +. /opt/kolla/config-neutron.sh +. /opt/kolla/config-sudoers.sh + +: ${DHCP_DRIVER:=neutron.agent.linux.dhcp.Dnsmasq} +: ${USE_NAMESPACES:=true} +: ${DELETE_NAMESPACES:=true} +: ${DNSMASQ_CONFIG_FILE:=/etc/neutron/dnsmasq/dnsmasq-neutron.conf} +: ${ROOT_HELPER:=sudo neutron-rootwrap /etc/neutron/rootwrap.conf} + +mkdir -p $(dirname $DNSMASQ_CONFIG_FILE) + +check_required_vars VERBOSE_LOGGING DEBUG_LOGGING MECHANISM_DRIVERS \ + DHCP_DRIVER USE_NAMESPACES DELETE_NAMESPACES \ + NEUTRON_LOG_DIR DNSMASQ_CONFIG_FILE \ + +cfg=/etc/neutron/dhcp_agent.ini +neutron_conf=/etc/neutron/neutron.conf + +# Workaround bug in dhclient in cirros images which does not correctly +# handle setting checksums of packets when using hardware with checksum +# offloading. See: +# https://www.rdoproject.org/forum/discussion/567/packstack-allinone-grizzly-cirros-image-cannot-get-a-dhcp-address-when-a-centos-image-can/p1 + +/usr/sbin/iptables -A POSTROUTING -t mangle -p udp --dport bootpc \ + -j CHECKSUM --checksum-fill + +if [[ ${MECHANISM_DRIVERS} =~ linuxbridge ]]; then + interface_driver="neutron.agent.linux.interface.BridgeInterfaceDriver" +elif [[ ${MECHANISM_DRIVERS} == "openvswitch" ]]; then + interface_driver="neutron.agent.linux.interface.OVSInterfaceDriver" +fi + +# Logging +crudini --set $neutron_conf \ + DEFAULT \ + log_file \ + "${NEUTRON_DHCP_AGENT_LOG_FILE}" + +# Configure dhcp_agent.ini +crudini --set $cfg \ + DEFAULT \ + verbose \ + "${VERBOSE_LOGGING}" +crudini --set $cfg \ + DEFAULT \ + debug \ + "${DEBUG_LOGGING}" +crudini --set $cfg \ + DEFAULT \ + interface_driver \ + "$interface_driver" +crudini --set $cfg \ + DEFAULT \ + dhcp_driver \ + "${DHCP_DRIVER}" +crudini --set $cfg \ + DEFAULT \ + use_namespaces \ + "${USE_NAMESPACES}" +crudini --set $cfg \ + DEFAULT \ + delete_namespaces \ + "${DELETE_NAMESPACES}" +crudini --set $cfg \ + DEFAULT \ + dnsmasq_config_file \ + "${DNSMASQ_CONFIG_FILE}" +crudini --set $cfg \ + DEFAULT \ + root_helper \ + "${ROOT_HELPER}" + +cat > ${DNSMASQ_CONFIG_FILE} < /openrc < /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +else + if ! neutron ext-list > /dev/null; then + echo "ERROR: neutron ext-list failed" >&2 + RES=1 + fi +fi + +exit $RES + diff --git a/docker/common/neutron/neutron-server/start.sh b/docker/common/neutron/neutron-server/start.sh new file mode 100755 index 0000000000..fb971083f5 --- /dev/null +++ b/docker/common/neutron/neutron-server/start.sh @@ -0,0 +1,98 @@ +#!/bin/bash + +set -e + +. /opt/kolla/config-neutron.sh + +: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1} +: ${NEUTRON_FLAT_NETWORK_INTERFACE:=eth1} + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + KEYSTONE_AUTH_PROTOCOL NOVA_API_SERVICE_HOST \ + NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \ + NEUTRON_DB_NAME NEUTRON_DB_USER NEUTRON_DB_PASSWORD \ + NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \ + ADMIN_TENANT_NAME NEUTRON_SERVER_SERVICE_HOST \ + PUBLIC_IP NEUTRON_DB_PASSWORD +fail_unless_os_service_running keystone +fail_unless_db + +mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql < /openrc < /etc/sysconfig/network-scripts/ifcfg-$FLAT_INTERFACE < /dev/null; then + echo "ERROR: keystone token-get failed" >&2 + RES=1 +else + if ! nova list > /dev/null; then + echo "ERROR: nova list failed" >&2 + RES=1 + fi +fi + +exit $RES + diff --git a/docker/common/nova-controller/nova-api/start.sh b/docker/common/nova-controller/nova-api/start.sh new file mode 100755 index 0000000000..7928370a46 --- /dev/null +++ b/docker/common/nova-controller/nova-api/start.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e + +. /opt/kolla/config-nova.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \ + ADMIN_TENANT_NAME NOVA_API_SERVICE_HOST \ + NOVA_EC2_API_SERVICE_HOST PUBLIC_IP NOVA_DB_NAME +fail_unless_os_service_running keystone +fail_unless_db $NOVA_DB_NAME + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" + +cfg=/etc/nova/nova.conf + +# configure logging +crudini --set $cfg DEFAULT log_file "${NOVA_API_LOG_FILE}" + +crux user-create --update \ + -n "${NOVA_KEYSTONE_USER}" \ + -p "${NOVA_KEYSTONE_PASSWORD}" \ + -t "${ADMIN_TENANT_NAME}" \ + -r admin + +crux endpoint-create --remove-all \ + -n ec2 -t ec2 \ + -I "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Cloud" \ + -P "http://${PUBLIC_IP}:8773/services/Cloud" \ + -A "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Admin" + +crux endpoint-create --remove-all \ + -n nova -t compute \ + -I "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" \ + -P "http://${PUBLIC_IP}:8774/v2/\$(tenant_id)s" \ + -A "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" + +crux endpoint-create --remove-all \ + -n novav3 -t computev3 \ + -I "http://${NOVA_API_SERVICE_HOST}:8774/v3" \ + -P "http://${PUBLIC_IP}:8774/v3" \ + -A "http://${NOVA_API_SERVICE_HOST}:8774/v3" + +exec /usr/bin/nova-api --config-file /etc/nova/nova.conf diff --git a/docker/common/nova-controller/nova-conductor/start.sh b/docker/common/nova-controller/nova-conductor/start.sh new file mode 100755 index 0000000000..575e7ff6cc --- /dev/null +++ b/docker/common/nova-controller/nova-conductor/start.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -e + +. /opt/kolla/config-nova.sh + +check_required_vars NOVA_DB_NAME NOVA_DB_USER NOVA_DB_PASSWORD +fail_unless_db + +cfg=/etc/nova/nova.conf + +# configure logging +crudini --set $cfg DEFAULT log_file "${NOVA_CONDUCTOR_LOG_FILE}" + +mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <>}, + {default_pass, <<"@RABBITMQ_PASS@">>} + ]}, + {kernel, [ + + ]} +]. +% EOF + diff --git a/docker/common/rabbitmq/start.sh b/docker/common/rabbitmq/start.sh new file mode 100755 index 0000000000..f70c348668 --- /dev/null +++ b/docker/common/rabbitmq/start.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +: ${RABBITMQ_USER:=guest} +: ${RABBITMQ_PASS:=guest} +: ${RABBITMQ_NODENAME:=rabbit} +: ${RABBITMQ_LOG_BASE:=/var/log/rabbitmq} + +sed -i ' + s|@RABBITMQ_USER@|'"$RABBITMQ_USER"'|g + s|@RABBITMQ_PASS@|'"$RABBITMQ_PASS"'|g +' /etc/rabbitmq/rabbitmq.config + +sed -i ' + s|@RABBITMQ_NODENAME@|'"$RABBITMQ_NODENAME"'|g + s|@RABBITMQ_LOG_BASE@|'"$RABBITMQ_LOG_BASE"'|g +' /etc/rabbitmq/rabbitmq-env.conf + +# work around: +# https://bugs.launchpad.net/ubuntu/+source/rabbitmq-server/+bug/653405 +echo "${RABBITMQ_SERVICE_HOST} `/usr/bin/hostname -s`" > /etc/hosts + +exec /usr/sbin/rabbitmq-server diff --git a/docker/common/swift/swift-account/start.sh b/docker/common/swift/swift-account/start.sh new file mode 100644 index 0000000000..bf86830f98 --- /dev/null +++ b/docker/common/swift/swift-account/start.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +: ${SWIFT_DB_USER:=swift} +: ${SWIFT_DB_NAME:=swift} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${SWIFT_KEYSTONE_USER:=swift} +: ${ADMIN_TENANT_NAME:=admin} + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + SWIFT_ADMIN_PASSWORD +fail_unless_db +fail_unless_os_service_running keystone + +if ! [ "$SWIFT_DB_PASSWORD" ]; then + SWIFT_DB_PASSWORD=$(openssl rand -hex 15) + export SWIFT_DB_PASSWORD +fi + +sh /opt/swift/config-swift.sh account-server + +mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql < /openrc <