diff options
| author | Sam Yaple <sam@yaple.net> | 2015-08-28 12:16:53 +0000 |
|---|---|---|
| committer | Sam Yaple <sam@yaple.net> | 2015-08-28 13:33:50 +0000 |
| commit | cbd42ca6e90cca2ff4b84f5e4e46224e6455e8b2 (patch) | |
| tree | 2e4256b6b7b8339da11b1d17250378596e61605b /docker/keystone | |
| parent | 3b5380ade021c9884551f427441cbfc0122eb0f0 (diff) | |
| download | kolla-cbd42ca6e90cca2ff4b84f5e4e46224e6455e8b2.tar.gz kolla-cbd42ca6e90cca2ff4b84f5e4e46224e6455e8b2.zip | |
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
Diffstat (limited to 'docker/keystone')
| -rw-r--r-- | docker/keystone/Dockerfile.j2 | 71 | ||||
| -rw-r--r-- | docker/keystone/config-external.sh | 25 | ||||
| -rwxr-xr-x | docker/keystone/start.sh | 48 |
3 files changed, 144 insertions, 0 deletions
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 |
