Kolla provides production-ready containers and deployment tools for operating OpenStack clouds
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

345 lines
9.5 KiB

FROM {{ namespace }}/{{ infra_image_prefix }}base:{{ tag }}
{% block labels %}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
{% endblock %}
{% block openstack_base_header %}{% endblock %}
{% import "macros.j2" as macros with context %}
{{ macros.add_binary_source_envs() }}
{{ macros.enable_extra_repos(['opstools', 'powertools']) }}
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set openstack_base_packages = [
'avahi-libs',
'gnutls',
'httpd',
'initscripts',
'libxslt',
'libyaml',
'mailcap',
'mod_ssl',
'openssl',
'python3-PyYAML',
'python3-alembic',
'python3-anyjson',
'python3-aodhclient',
'python3-barbicanclient',
'python3-cachetools',
'python3-cloudkittyclient',
'python3-contextlib2',
'python3-cryptography',
'python3-designateclient',
'python3-elasticsearch',
'python3-eventlet',
'python3-extras',
'python3-glanceclient',
'python3-gnocchiclient',
'python3-heatclient',
'python3-httplib2',
'python3-ironicclient',
'python3-iso8601',
'python3-kazoo',
'python3-keystoneauth1',
'python3-keystoneclient',
'python3-keystonemiddleware',
'python3-logutils',
'python3-lxml',
'python3-magnumclient',
'python3-manilaclient',
'python3-migrate',
'python3-mimeparse',
'python3-mistralclient',
'python3-mod_wsgi',
'python3-muranoclient',
'python3-neutronclient',
'python3-novaclient',
'python3-openstackclient',
'python3-oslo-cache',
'python3-oslo-concurrency',
'python3-oslo-config',
'python3-oslo-context',
'python3-oslo-db',
'python3-oslo-i18n',
'python3-oslo-log',
'python3-oslo-messaging',
'python3-oslo-middleware',
'python3-oslo-policy',
'python3-oslo-reports',
'python3-oslo-rootwrap',
'python3-oslo-serialization',
'python3-oslo-service',
'python3-oslo-upgradecheck',
'python3-oslo-utils',
'python3-oslo-versionedobjects',
'python3-osprofiler',
'python3-paramiko',
'python3-paste-deploy',
'python3-pbr',
'python3-posix_ipc',
'python3-prettytable',
'python3-psycopg2',
'python3-pyasn1',
'python3-redis',
'python3-retrying',
'python3-routes',
'python3-saharaclient',
'python3-sqlalchemy',
'python3-sqlalchemy-collectd',
'python3-sqlparse',
'python3-swiftclient',
'python3-sysv_ipc',
'python3-tooz',
'python3-troveclient',
'python3-vitrageclient',
'python3-webob',
'systemd-sysv'
] %}
{% elif base_package_type == 'deb' %}
# This will prevent questions from being asked during the install
ENV DEBIAN_FRONTEND noninteractive
{% set openstack_base_packages = [
'apache2',
'libapache2-mod-wsgi-py3',
'openssl',
'patch',
'python3-aodhclient',
'python3-barbicanclient',
'python3-designateclient',
'python3-elasticsearch',
'python3-etcd',
'python3-etcd3gw',
'python3-gnocchiclient',
'python3-heatclient',
'python3-ironicclient',
'python3-kazoo',
'python3-keystoneclient',
'python3-magnumclient',
'python3-manilaclient',
'python3-memcache',
'python3-mistralclient',
'python3-muranoclient',
'python3-mysqldb',
'python3-openstackclient',
'python3-oslo.log',
'python3-osprofiler',
'python3-psycopg2',
'python3-pymemcache',
'python3-pymysql',
'python3-pyngus',
'python3-redis',
'python3-saharaclient',
'python3-sysv-ipc',
'python3-swiftclient',
'python3-troveclient',
'python3-zake',
] %}
{% endif %}
{{ macros.install_packages(openstack_base_packages | customizable("packages")) }}
{% elif install_type == 'source' %}
{% if base_package_type == 'rpm' %}
{% set openstack_base_packages = [
'gcc',
'gcc-c++',
'git',
'httpd',
'iproute',
'libffi-devel',
'libxml2-devel',
'libxslt-devel',
'libyaml-devel',
'make',
'mariadb-devel',
'mod_ssl',
'openssl',
'openssl-devel',
'pcre-devel',
'postgresql',
'postgresql-devel',
'python3-devel',
'python3-mod_wsgi',
'sqlite-devel',
'zip'
] %}
{% elif base_package_type == 'deb' %}
{% set openstack_base_packages = [
'apache2',
'build-essential',
'ca-certificates',
'git',
'libapache2-mod-wsgi-py3',
'libffi-dev',
'libmariadb-dev-compat',
'libpcre3-dev',
'libpq-dev',
'libssl-dev',
'libxml2-dev',
'libxslt1-dev',
'libyaml-dev',
'libz-dev',
'pkg-config',
'python3-dev',
'zip'
] %}
{% endif %}
{{ macros.enable_extra_repos(['powertools']) }}
{{ macros.install_packages(openstack_base_packages | customizable("packages")) }}
{% set openstack_base_pip_packages = [
'Babel',
'Mako',
'MarkupSafe',
'Paste',
'PasteDeploy',
'PyNaCl',
'PyYAML',
'Routes',
'SQLAlchemy',
'Tempita',
'WSME',
'WebOb',
'alembic',
'amqp',
'anyjson',
'aodhclient',
'appdirs',
'automaton',
'bcrypt',
'cachetools',
'castellan',
'click',
'cliff',
'cmd2',
'contextlib2',
'cryptography',
'debtcollector',
'decorator',
'elasticsearch',
'eventlet',
'fasteners',
'funcsigs',
'futurist',
'gnocchiclient',
'greenlet',
'httplib2',
'iso8601',
'jinja2',
'jsonpatch',
'jsonpointer',
'jsonschema',
'keystoneauth1',
'keystonemiddleware',
'kombu',
'logutils',
'monotonic',
'mysqlclient',
'netaddr',
'netifaces',
'os-brick',
'os-client-config',
'os-traits',
'os-win',
'oslo.concurrency',
'oslo.config',
'oslo.context',
'oslo.db',
'oslo.i18n',
'oslo.log',
'oslo.messaging',
'oslo.middleware',
'oslo.policy',
'oslo.privsep',
'oslo.reports',
'oslo.rootwrap',
'oslo.serialization',
'oslo.service',
'oslo.upgradecheck',
'oslo.utils',
'oslo.versionedobjects',
'oslo.vmware',
'osprofiler',
'paramiko',
'pbr',
'pecan',
'pika',
'prettytable',
'psutil',
'pycadf',
'pyinotify',
'pymongo',
'pymysql',
'pyngus',
'pyparsing',
'pyroute2',
'python-barbicanclient',
'python-cinderclient',
'python-cloudkittyclient',
'python-dateutil',
'python-designateclient',
'python-editor',
'python-glanceclient',
'python-heatclient',
'python-ironicclient',
'python-keystoneclient',
'python-magnumclient',
'python-manilaclient',
'python-memcached',
'python-mistralclient',
'python-muranoclient',
'python-neutronclient',
'python-novaclient',
'python-openstackclient',
'python-qpid-proton',
'python-saharaclient',
'python-swiftclient',
'python-troveclient',
'python-vitrageclient',
'pytz',
'repoze.lru',
'requests',
'requestsexceptions',
'retrying',
'setproctitle',
'simplegeneric',
'simplejson',
'six',
'sqlalchemy-migrate',
'sqlparse',
'stevedore',
'tooz[consul,etcd,etcd3,etcd3gw,zake,redis,postgresql,mysql,zookeeper,memcached,ipc]',
'unicodecsv',
'warlock',
'wrapt'
]
%}
ADD openstack-base-archive /openstack-base-source
RUN ln -s openstack-base-source/* /requirements \
&& mkdir -p /var/lib/kolla \
&& {{ macros.install_pip(['virtualenv'])}} \
&& virtualenv --system-site-packages /var/lib/kolla/venv
ENV PATH /var/lib/kolla/venv/bin:$PATH
RUN {{ macros.install_pip(openstack_base_pip_packages | customizable("pip_packages")) }}
{% endif %}
{% if base_package_type == 'rpm' %}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
{% elif base_package_type == 'deb' %}
RUN echo > /etc/apache2/ports.conf
{% endif %}
{% block openstack_base_footer %}{% endblock %}