FROM {{ base_distro }}:{{ base_distro_tag }}
MAINTAINER Kolla Project (https://launchpad.net/kolla)

{{ include_header }}

ENV KOLLA_BASE_DISTRO {{ base_distro }}
ENV KOLLA_INSTALL_TYPE {{ install_type }}

{% if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] %}

# Turns on MariaDB repos throughout the build
COPY mariadb.yum.repo /etc/yum.repos.d/MariaDB.repo

RUN yum install -y http://www.percona.com/redir/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm \
    && sed -i 's|$releasever|centos/latest|g' /etc/yum.repos.d/percona-release.repo

{% if base_distro == 'rhel' %}
# Turn on EPEL, rhel7-extras, and rhel7-optional throughout all builds for RHEL
RUN yum install -y \
        https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
    && subscription-manager repos --enable rhel-7-server-optional-rpms \
    && subscription-manager repos --enable rhel-7-server-extras-rpms \
    && yum clean all
{% endif %}

    {% if install_type == 'binary' %}
        {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}

# Set up repositories
# This repository provides all dependencies used by RDO OpenStack
RUN yum install -y https://rdoproject.org/repos/openstack-kilo/rdo-release-kilo.rpm

# This repository provides latest packages built from trunk master into RPMs
RUN curl http://trunk.rdoproject.org/centos7/current/delorean.repo -o /etc/yum.repos.d/delorean-current.repo

{% if base_distro == 'centos' %}
# CentOS 7.1 workaround for conflicting packages with libvirt
RUN rpm -e --nodeps systemd-container systemd-container-libs \
    && rpm -e --nodeps yum-plugin-fastestmirror \
    && yum -d 10 -y install systemd systemd-libs systemd-devel \
    && yum install -y epel-release \
    && yum clean all
{% endif %}

{% if base_distro == 'oraclelinux' %}
RUN yum install -y \
        yum-utils \
        https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
    && yum clean all
RUN yum-config-manager --enable ol7_optional_latest ol7_addons
{% endif %}

        # Endif for base_distro centos/oraclelinux
        {% elif base_distro == 'fedora' %}

# Set up repositories
RUN yum install -y https://rdo.fedorapeople.org/rdo-release.rpm \
    && yum -y install dnf dnf-plugins-core \
    && yum clean all

        {% endif %}

# Update packages
RUN yum update -y \
    && yum clean all

# Install base packages
RUN yum install -y \
        git \
        iproute \
        mariadb-libs \
        MySQL-python \
        openssl \
        openstack-utils \
        pyparsing \
        python-alembic \
        python-amqp \
        python-amqplib \
        python-anyjson \
        python-boto \
        python-cheetah \
        python-cliff \
        python-cmd2 \
        python-croniter \
        python-crypto \
        python-d2to1 \
        python-docutils \
        python-dogpile-cache \
        python-dogpile-core \
        python-empy \
        python-eventlet \
        python-flask \
        python-futures \
        python-greenlet \
        python-httplib2 \
        python-iso8601 \
        python-itsdangerous \
        python-jinja2 \
        python-jsonpatch \
        python-jsonpath-rw \
        python-jsonpointer \
        python-jsonschema \
        python-keyring \
        python-kombu \
        python-ldap \
        python-lesscpy \
        python-lockfile \
        python-lxml \
        python-markdown \
        python-memcached \
        python-migrate \
        python-msgpack \
        python-netifaces \
        python-networkx \
        python-oauthlib \
        python-openstackclient \
        python-oslo-config \
        python-oslo-messaging \
        python-oslo-rootwrap \
        python-oslo-policy \
        python-paramiko \
        python-passlib \
        python-paste-deploy \
        python-pbr \
        python-pecan \
        python-pip \
        python-ply \
        python-prettytable \
        python-psutil \
        python-pycadf \
        python-pygments \
        python-pymongo \
        python-qpid \
        python-repoze-lru \
        python-requests \
        python-routes \
        python-simplegeneric \
        python-simplejson \
        python-singledispatch \
        python-six \
        python-sqlalchemy \
        python-stevedore \
        python-taskflow \
        python-versiontools \
        python-warlock \
        python-webob \
        python-websockify \
        python-webtest \
        python-werkzeug \
        python-wsme \
        sudo \
        which \
    && yum clean all

    # Endif for install_type binary
    {% elif install_type == 'source' %}

        {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}

# Set up repositories
RUN yum install -y https://rdo.fedorapeople.org/rdo-release.rpm \
    && yum clean all

        {% endif %}

# Update packages
RUN yum update -y \
    && yum install -y \
        epel-release \
        gcc \
        gcc-c++ \
        git \
        libffi-devel \
        libxml2-devel \
        libxslt-devel \
        mariadb-devel \
        mysql-devel \
        openldap-devel \
        openssl \
        openssl-devel \
        postgresql \
        postgresql-devel \
        python-devel \
        python-oslo-policy \
        sqlite-devel \
        sudo \
        tar \
        which \
    && yum clean all

    # Endif for install_type source
   {% endif %}

# Endif for base_distro centos,fedora,oraclelinux,rhel
{% elif base_distro in ['ubuntu', 'debian'] %}

# This will prevent questions from being asked during the install
ENV DEBIAN_FRONTEND noninteractive

COPY sources.list /etc/apt/

RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com 199369E5404BD5FC7D2FE43BCBCB082A1BB943DB \
    && apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com 391A9AA2147192839E9DB0315EDB1B62EC4926EA \
    && apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A \
    && apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com 7F6C9F236D170493FCF404F27EBFDD5D17ED316D \
    && apt-get update \
    && apt-get upgrade -y \
    && apt-get dist-upgrade -y \
    && apt-get install -y --no-install-recommends python \
    && apt-get clean \
    && sed -i "s|'purelib': '\$base/local/lib/python\$py_version_short/dist-packages',|'purelib': '\$base/lib/python\$py_version_short/dist-packages',|;s|'platlib': '\$platbase/local/lib/python\$py_version_short/dist-packages',|'platlib': '\$platbase/lib/python\$py_version_short/dist-packages',|;s|'headers': '\$base/local/include/python\$py_version_short/\$dist_name',|'headers': '\$base/include/python\$py_version_short/\$dist_name',|;s|'scripts': '\$base/local/bin',|'scripts': '\$base/bin',|;s|'data'   : '\$base/local',|'data'   : '\$base',|" /usr/lib/python2.7/distutils/command/install.py \
    && rm -rf /usr/lib/python2.7/site-packages \
    && ln -s dist-packages /usr/lib/python2.7/site-packages


{% endif %}

COPY set_configs.py kolla-common.sh /opt/kolla/