From cbd42ca6e90cca2ff4b84f5e4e46224e6455e8b2 Mon Sep 17 00:00:00 2001 From: Sam Yaple Date: Fri, 28 Aug 2015 12:16:53 +0000 Subject: Move docker_templates to docker dir Updated build.py to reflect this change. Deprecate --template option and make it a noop. Change-Id: I7cd98d1ee684a4c64984a49597159868152683b2 Partially-Implements: blueprint remove-docker-dir --- docker/keystone/Dockerfile.j2 | 71 ++++++++++++++++++++++++++++++++++++++ docker/keystone/config-external.sh | 25 ++++++++++++++ docker/keystone/start.sh | 48 ++++++++++++++++++++++++++ 3 files changed, 144 insertions(+) create mode 100644 docker/keystone/Dockerfile.j2 create mode 100644 docker/keystone/config-external.sh create mode 100755 docker/keystone/start.sh (limited to 'docker/keystone') diff --git a/docker/keystone/Dockerfile.j2 b/docker/keystone/Dockerfile.j2 new file mode 100644 index 000000000..a3b686165 --- /dev/null +++ b/docker/keystone/Dockerfile.j2 @@ -0,0 +1,71 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install openstack-keystone \ + python-keystoneclient \ + python-openstackclient \ + httpd \ + mod_wsgi \ + && yum clean all + +RUN mkdir -p /var/www/cgi-bin/keystone \ + && cp -a /usr/share/keystone/keystone.wsgi /var/www/cgi-bin/keystone/main \ + && cp -a /usr/share/keystone/keystone.wsgi /var/www/cgi-bin/keystone/admin + + {% elif base_distro in ['ubuntu', 'debian'] %} + +RUN apt-get install -y --no-install-recommends \ + apache2 \ + keystone \ + libapache2-mod-wsgi \ + python-keystoneclient \ + && apt-get clean + +RUN ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled \ + && mkdir -p /var/www/cgi-bin/keystone \ + && cp -a /usr/share/keystone/wsgi.py /var/www/cgi-bin/keystone/main \ + && cp -a /usr/share/keystone/wsgi.py /var/www/cgi-bin/keystone/admin + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %} + +RUN yum -y install \ + httpd \ + mod_wsgi \ + && yum clean all + + {% elif base_distro in ['ubuntu', 'debian'] %} + +RUN apt-get install -y --no-install-recommends \ + apache2 \ + libapache2-mod-wsgi \ + && echo > /etc/apache2/ports.conf \ + && apt-get clean + + {% endif %} + +ADD keystone.tar / +RUN ln -s /keystone-* keystone \ + && useradd --user-group keystone \ + && pip --no-cache-dir install /keystone \ + && mkdir -p /etc/keystone /var/www/cgi-bin/keystone /var/log/apache2 /home/keystone \ + && cp -r /keystone/etc/* /etc/keystone/ \ + && cp /keystone/httpd/keystone.py /var/www/cgi-bin/keystone/admin \ + && cp /keystone/httpd/keystone.py /var/www/cgi-bin/keystone/main \ + && chown -R keystone: /etc/keystone /var/www/cgi-bin/keystone /var/log/apache2 /home/keystone + +{% endif %} + +RUN chown -R keystone: /var/www/cgi-bin/keystone \ + && chmod 755 /var/www/cgi-bin/keystone/* + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/keystone/config-external.sh b/docker/keystone/config-external.sh new file mode 100644 index 000000000..1bd4e3bb4 --- /dev/null +++ b/docker/keystone/config-external.sh @@ -0,0 +1,25 @@ +#!/bin/bash +SOURCE="/opt/kolla/keystone/keystone.conf" +TARGET="/etc/keystone/keystone.conf" +OWNER="keystone" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi + +if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \ + "${KOLLA_BASE_DISTRO}" == "debian" ]]; then + SOURCE_WSGI="/opt/kolla/keystone/wsgi-keystone.conf" + TARGET_WSGI="/etc/apache2/conf-enabled/wsgi-keystone.conf" +else + SOURCE_WSGI="/opt/kolla/keystone/wsgi-keystone.conf" + TARGET_WSGI="/etc/httpd/conf.d/wsgi-keystone.conf" +fi + +if [[ -f "$SOURCE_WSGI" ]]; then + cp $SOURCE_WSGI $TARGET_WSGI + chown ${OWNER}: $TARGET_WSGI + chmod 0644 $TARGET_WSGI +fi diff --git a/docker/keystone/start.sh b/docker/keystone/start.sh new file mode 100755 index 000000000..d964b0303 --- /dev/null +++ b/docker/keystone/start.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +set -o errexit + +# Loading common functions +source /opt/kolla/kolla-common.sh + +if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \ + "${KOLLA_BASE_DISTRO}" == "debian" ]]; then + CMD="/usr/sbin/apache2" + ARGS="-DFOREGROUND" + + # Loading Apache2 ENV variables + source /etc/apache2/envvars +else + CMD="/usr/sbin/httpd" + ARGS="-DFOREGROUND" +fi + +# Execute config strategy +set_configs + +# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases +# of the KOLLA_BOOTSTRAP variable being set, including empty. +if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + su -s /bin/sh -c "keystone-manage db_sync" keystone + + # Start the api to set initial endpoint and users with the admin_token + $CMD + sleep 5 + + keystone service-create --name keystone --type identity \ + --description "OpenStack Identity" + keystone endpoint-create --region "${REGION_NAME}" \ + --publicurl "${PUBLIC_URL}" \ + --internalurl "${INTERNAL_URL}" \ + --adminurl "${ADMIN_URL}" \ + --service-id $(keystone service-list | awk '/ identity / {print $2}') + + keystone tenant-create --description "Admin Project" --name admin + keystone user-create --pass "${KEYSTONE_ADMIN_PASSWORD}" --name admin + keystone role-create --name admin + keystone user-role-add --user admin --tenant admin --role admin + + exit 0 +fi + +exec $CMD $ARGS -- cgit v1.2.3