aboutsummaryrefslogtreecommitdiff
path: root/docker/keystone
diff options
context:
space:
mode:
authorSam Yaple <sam@yaple.net>2015-08-28 12:16:53 +0000
committerSam Yaple <sam@yaple.net>2015-08-28 13:33:50 +0000
commitcbd42ca6e90cca2ff4b84f5e4e46224e6455e8b2 (patch)
tree2e4256b6b7b8339da11b1d17250378596e61605b /docker/keystone
parent3b5380ade021c9884551f427441cbfc0122eb0f0 (diff)
downloadkolla-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.j271
-rw-r--r--docker/keystone/config-external.sh25
-rwxr-xr-xdocker/keystone/start.sh48
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