Add crane docker image

Crane is a lightweight 'pull only' container registry
implementation.

TripleO is aiming to replace our use of docker-distribution
with crane for the Undercloud.

Co-Authored-By: Martin André <m.andre@redhat.com>
Change-Id: I59d9521f99243401d7703a3dedc26b5baed2d595
This commit is contained in:
Dan Prince 2018-08-23 08:22:04 -04:00 committed by Martin André
parent 09b1147665
commit 4f9ee9f132
7 changed files with 103 additions and 1 deletions

View File

@ -57,6 +57,7 @@ COPY yum.conf /etc/yum.conf
{% if base_arch == 'x86_64' %} {% if base_arch == 'x86_64' %}
{% set base_yum_repo_files = [ {% set base_yum_repo_files = [
'crane.repo',
'elasticsearch.repo', 'elasticsearch.repo',
'grafana.repo', 'grafana.repo',
'influxdb.repo', 'influxdb.repo',

7
docker/base/crane.repo Normal file
View File

@ -0,0 +1,7 @@
# TODO(mandre) Remove when crane is in centos repos
# NOTE python-crane package is not signed
[pulp-2-testing]
name=Pulp 2 Testing
baseurl=https://repos.fedorapeople.org/pulp/pulp/testing/automation/2-master/stage/7Server/$basearch/
enabled=1
gpgcheck=0

View File

@ -0,0 +1,68 @@
FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
{% block crane_header %}{% endblock %}
{% import "macros.j2" as macros with context %}
{% if install_type == 'binary' %}
{% if base_distro in ['centos', 'rhel'] %}
{% set crane_packages = [
'httpd',
'mod_ssl',
'mod_wsgi',
'mod_xsendfile',
'python-crane'
] %}
{{ macros.install_packages(crane_packages | customizable("packages")) }}
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
{% else %}
RUN echo 'crane not yet available for {{ base_distro }}' && /bin/false
{% endif %}
{% elif install_type == 'source' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% set crane_packages = [
'httpd',
'mod_ssl',
'mod_wsgi',
'mod_xsendfile',
'python-flask'
] %}
{{ macros.install_packages(crane_packages | customizable("packages")) }}
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_distro in ['debian', 'ubuntu'] %}
RUN echo 'crane not yet available for {{ base_distro }}' && /bin/false
{% endif %}
{% block crane_source_install_python_pip %}
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
&& python get-pip.py \
&& rm get-pip.py
{% endblock %}
ADD crane-archive /crane-source
{% set crane_pip_packages = [
'/crane'
] %}
RUN ln -s crane-source/* crane \
&& {{ macros.install_pip(crane_pip_packages | customizable("pip_packages"), constraints=false) }}
{% endif %}
COPY extend_start.sh /usr/local/bin/kolla_extend_start
RUN chmod 755 /usr/local/bin/kolla_extend_start
{% block crane_footer %}{% endblock %}
{% block footer %}{% endblock %}

View File

@ -0,0 +1,14 @@
#!/bin/bash
# Assume the service runs on top of Apache when user is root
if [[ "$(whoami)" == 'root' ]]; then
# NOTE(pbourke): httpd will not clean up after itself in some cases which
# results in the container not being able to restart. (bug #1489676, 1557036)
if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then
# Loading Apache2 ENV variables
. /etc/apache2/envvars
rm -rf /var/run/apache2/*
else
rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd*
fi
fi

View File

@ -323,6 +323,10 @@ SOURCES = {
'type': 'url', 'type': 'url',
'location': ('$tarballs_base/cloudkitty/' 'location': ('$tarballs_base/cloudkitty/'
'cloudkitty-master.tar.gz')}, 'cloudkitty-master.tar.gz')},
'crane': {
'type': 'git',
'reference': 'master',
'location': ('https://github.com/pulp/crane.git')},
'designate-base': { 'designate-base': {
'type': 'url', 'type': 'url',
'location': ('$tarballs_base/designate/' 'location': ('$tarballs_base/designate/'

View File

@ -99,7 +99,7 @@ SKIPPED_IMAGES = {
"tripleoclient", "tripleoclient",
# TODO(jeffrey4l): remove tripleo-ui when following bug is fixed # TODO(jeffrey4l): remove tripleo-ui when following bug is fixed
# https://bugs.launchpad.net/tripleo/+bug/1744215 # https://bugs.launchpad.net/tripleo/+bug/1744215
"tripleo-ui" "tripleo-ui",
], ],
'ubuntu+binary': [ 'ubuntu+binary': [
"almanach-base", "almanach-base",
@ -107,6 +107,7 @@ SKIPPED_IMAGES = {
"blazar-base", "blazar-base",
"cloudkitty-base", "cloudkitty-base",
"congress-base", "congress-base",
"crane",
"dragonflow-base", "dragonflow-base",
"ec2-api", "ec2-api",
"freezer-base", "freezer-base",
@ -133,6 +134,7 @@ SKIPPED_IMAGES = {
"zun-base", "zun-base",
], ],
'ubuntu+source': [ 'ubuntu+source': [
"crane",
# There is no qdrouterd package for ubuntu bionic # There is no qdrouterd package for ubuntu bionic
"qdrouterd", "qdrouterd",
"tripleoclient", "tripleoclient",
@ -146,6 +148,7 @@ SKIPPED_IMAGES = {
"blazar-base", "blazar-base",
"cloudkitty-base", "cloudkitty-base",
"congress-base", "congress-base",
"crane",
"dragonflow-base", "dragonflow-base",
"ec2-api", "ec2-api",
"freezer-base", "freezer-base",
@ -171,6 +174,7 @@ SKIPPED_IMAGES = {
"zun-base" "zun-base"
], ],
'debian+source': [ 'debian+source': [
"crane",
"sensu-base", "sensu-base",
"tripleoclient", "tripleoclient",
"tripleo-ui" "tripleo-ui"
@ -179,6 +183,7 @@ SKIPPED_IMAGES = {
"almanach-base", "almanach-base",
"bifrost-base", "bifrost-base",
"blazar-base", "blazar-base",
"crane",
"dragonflow-base", "dragonflow-base",
"freezer-base", "freezer-base",
"karbor-base", "karbor-base",

View File

@ -0,0 +1,3 @@
---
features:
- Add crane image. Crane is a lightweight 'pull only' container registry implementation.