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' %}
{% set base_yum_repo_files = [
'crane.repo',
'elasticsearch.repo',
'grafana.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',
'location': ('$tarballs_base/cloudkitty/'
'cloudkitty-master.tar.gz')},
'crane': {
'type': 'git',
'reference': 'master',
'location': ('https://github.com/pulp/crane.git')},
'designate-base': {
'type': 'url',
'location': ('$tarballs_base/designate/'

View File

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

View File

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