Fix bug 1777 - Adding openstack client to Keystone dockerfile
[osm/devops.git] / docker / Keystone / Dockerfile
index 9163562..e81a7b5 100644 (file)
@@ -1,9 +1,22 @@
-FROM ubuntu:16.04
+# Copyright 2021 Whitestack, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact: fbravo@whitestack.com or glavado@whitestack.com
+##
 
-LABEL Maintainer="esousa@whitestack.com" \
-      Description="Openstack Keystone Instance" \
-      Version="1.0" \
-      Author="Eduardo Sousa"
+FROM ubuntu:20.04
 
 EXPOSE 5000
 
@@ -11,35 +24,76 @@ WORKDIR /keystone
 
 COPY scripts/start.sh /keystone/start.sh
 
-RUN apt-get update && \
-    apt-get upgrade -y && \
-    apt-get autoremove -y && \
-    apt-get install -y software-properties-common && \
-    add-apt-repository -y cloud-archive:queens && \
-    apt-get update && apt dist-upgrade -y && \
-    apt-get install -y python-openstackclient keystone apache2 libapache2-mod-wsgi net-tools mysql-client && \
+RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \
+    DEBIAN_FRONTEND=noninteractive apt-get autoremove -y && \
+    DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common && \
+    add-apt-repository -y cloud-archive:victoria && \
+    DEBIAN_FRONTEND=noninteractive apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y && \
+    DEBIAN_FRONTEND=noninteractive apt-get install -y \
+    apache2=2.4.* \
+    keystone=2:18.0.* \
+    libapache2-mod-wsgi-py3=4.6.* \
+    python3-pip=20.0.* \
+    build-essential=12.8* \
+    python3-dev=3.8.* \
+    libldap2-dev=2.4.* \
+    libsasl2-dev=2.1.* \
+    libssl-dev=1.1.* \
+    libffi-dev=3.3* \
+    libxml2-dev=2.9.* \
+    libxslt1-dev=1.1.* \
+    zlib1g-dev=1:1.2.* \
+    ldap-utils=2.4.* \
+    curl=7.68.* \
+    net-tools=1.60* \
+    mysql-client=8.0.* \
+    dnsutils=1:9.16.* && \
     rm -rf /var/lib/apt/lists/* && \
     chmod +x start.sh
 
-# DB Hostname
-ENV DB_HOST                 keystone-db
+RUN pip3 install -U pip==21.3.1 && \
+    pip3 install python-ldap==3.2.0 ldappool==3.0.0 python-openstackclient==5.7.0
 
-# DB Port
+# database
+ENV DB_HOST                 keystone-db
 ENV DB_PORT                 3306
-
-# DB Root User
 ENV ROOT_DB_USER            root
-
-# DB Root Password
 ENV ROOT_DB_PASSWORD        admin
-
-# Keystone user password
 ENV KEYSTONE_DB_PASSWORD    admin
-
-# Admin password
+# keystone
+ENV REGION_ID               RegionOne
+ENV KEYSTONE_HOST           keystone
+# admin user
+ENV ADMIN_USERNAME          admin
 ENV ADMIN_PASSWORD          admin
+ENV ADMIN_PROJECT           admin
+# nbi service user
+ENV SERVICE_USERNAME        nbi
+ENV SERVICE_PASSWORD        nbi
+ENV SERVICE_PROJECT         service
+# ldap
+# ENV LDAP_AUTHENTICATION_DOMAIN_NAME     no default
+# ENV LDAP_URL                            ldap://localhost
+# ENV LDAP_BIND_USER                      no default
+# ENV LDAP_BIND_PASSWORD                  no default
+# ENV LDAP_CHASE_REFERRALS                no default
+# ENV LDAP_PAGE_SIZE                      0
+# ENV LDAP_USER_TREE_DN                   no default
+# ENV LDAP_USER_OBJECTCLASS               inetOrgPerson
+# ENV LDAP_USER_ID_ATTRIBUTE              cn
+# ENV LDAP_USER_NAME_ATTRIBUTE            sn
+# ENV LDAP_USER_PASS_ATTRIBUTE            userPassword
+# ENV LDAP_USER_FILTER                    no default
+# ENV LDAP_USER_ENABLED_ATTRIBUTE         enabled
+# ENV LDAP_USER_ENABLED_MASK              0
+# ENV LDAP_USER_ENABLED_DEFAULT           true
+# ENV LDAP_USER_ENABLED_INVERT            false
+# ENV LDAP_GROUP_OBJECTCLASS              groupOfNames
+# ENV LDAP_GROUP_TREE_DN                  no default
+# ENV LDAP_USE_STARTTLS                   false
+# ENV LDAP_TLS_CACERT_BASE64              no default
+# ENV LDAP_TLS_REQ_CERT                   demand
 
-# NBI password
-ENV NBI_PASSWORD            nbi
-
-ENTRYPOINT ./start.sh
\ No newline at end of file
+ENTRYPOINT ["./start.sh"]