Add openstack-helm repo images

This adds the building of the images present in the OpenStack-Helm
repository.

Images follow the same process as images from the osh-infra
repository.

Kubernetes-entrypoint is not used anymore and therefore was
not migrated over.

Likewise, LOCI is not following these images building process,
and therefore will be included in a different patch.

The manual build script do not expose the extra arguments
previously exposed, like KUBE_VERSION or OVS_VERSION by default.
It also means a future tagged version of this repository will
use the KUBE_VERSION or OVS_VERSION that are in tree, and
therefore very explicit.

Change-Id: If4ff73c37ed8bccb9f6951f3ccdbb7640e9b55a5
This commit is contained in:
Jean-Philippe Evrard 2018-11-28 14:52:40 +01:00
parent 8468a18ae3
commit 0acfaab7b1
17 changed files with 450 additions and 0 deletions

View File

@ -0,0 +1,40 @@
FROM docker.io/ubuntu:xenial
LABEL maintainer="pete.birley@att.com"
ARG KUBE_VERSION=v1.10.3
ARG CEPH_RELEASE=luminous
ADD https://download.ceph.com/keys/release.asc /etc/apt/ceph-release.asc
RUN set -ex ;\
export DEBIAN_FRONTEND=noninteractive ;\
apt-key add /etc/apt/ceph-release.asc ;\
rm -f /etc/apt/ceph-release.asc ;\
echo deb http://download.ceph.com/debian-${CEPH_RELEASE}/ xenial main | tee /etc/apt/sources.list.d/ceph.list ;\
TMP_DIR=$(mktemp --directory) ;\
cd ${TMP_DIR} ;\
apt-get update ;\
apt-get dist-upgrade -y ;\
apt-get install --no-install-recommends -y \
apt-transport-https \
ca-certificates \
ceph \
curl \
gcc \
python \
python-dev \
jq ;\
curl -sSL https://bootstrap.pypa.io/get-pip.py | python ;\
pip --no-cache-dir install --upgrade \
crush \
rgwadmin \
six \
python-openstackclient \
python-swiftclient ;\
curl -sSL https://dl.k8s.io/${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz | tar -zxv --strip-components=1 ;\
mv ${TMP_DIR}/client/bin/kubectl /usr/bin/kubectl ;\
chmod +x /usr/bin/kubectl ;\
rm -rf ${TMP_DIR} ;\
apt-get purge -y --auto-remove \
python-dev \
gcc ;\
rm -rf /var/lib/apt/lists/*

14
ceph-config-helper/build.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
SCRIPT=`realpath $0`
SCRIPT_DIR=`dirname ${SCRIPT}`
## Only build from main folder
cd ${SCRIPT_DIR}/..
IMAGE="ceph-config-helper"
VERSION=${VERSION:-latest}
DISTRO=${DISTRO:-ubuntu_xenial}
REGISTRY_URI=${REGISTRY_URI:-"openstackhelm/"}
EXTRA_TAG_INFO=${EXTRA_TAG_INFO:-""}
docker build -f ${IMAGE}/Dockerfile.${DISTRO} --network=host -t ${REGISTRY_URI}${IMAGE}:${VERSION}-${DISTRO}${EXTRA_TAG_INFO} ${extra_build_args} ${IMAGE}
cd -

View File

@ -0,0 +1,22 @@
==================================
ceph-config-helper container image
==================================
This container builds a small image with kubectl and some other
utilites for use in the ceph charts or interact with a ceph
deployment.
Manual build for Ubuntu Xenial
==============================
Here are the instructions for building Xenial image:
.. literalinclude:: ../../ceph-config-helper/build.sh
:lines: 7-12
:language: shell
Alternatively, this step can be performed by running the script directly:
.. code-block:: shell
./ceph-config-helper/build.sh

24
doc/source/gate-utils.rst Normal file
View File

@ -0,0 +1,24 @@
==========================
gate-utils container image
==========================
This container builds a small image with ipcalc for use in both the
multinode checks and development.
Manual build
============
Debian
------
Here are the instructions for building the default Debian image:
.. literalinclude:: ../../gate-utils/build.sh
:lines: 7-12
:language: shell
Alternatively, this step can be performed by running the script directly:
.. code-block:: shell
./gate-utils/build.sh

View File

@ -63,7 +63,11 @@ an overview of the build process for each container.
:maxdepth: 2
:caption: Contents:
ceph-config-helper
gate-utils
libvirt
mariadb
openvswitch
tempest
vbmc
loci

View File

@ -0,0 +1,24 @@
===========================
OpenvSwitch container image
===========================
This container builds a small image with OpenvSwitch for use with
OpenStack-Helm.
Manual build
============
Debian
------
Here are the instructions for building the default Debian image:
.. literalinclude:: ../../openvswitch/build.sh
:lines: 7-12
:language: shell
Alternatively, this step can be performed by running the script directly:
.. code-block:: shell
./openvswitch/build.sh

21
doc/source/tempest.rst Normal file
View File

@ -0,0 +1,21 @@
=======================
Tempest container image
=======================
This image is installing tempest with a few tempest plugins from the
head of the master branch in OpenStack.
Manual build for Ubuntu Xenial
==============================
Here are the instructions for building Xenial image:
.. literalinclude:: ../../tempest/build.sh
:lines: 7-12
:language: shell
Alternatively, this step can be performed by running the script directly:
.. code-block:: shell
./tempest/build.sh

View File

@ -0,0 +1,3 @@
FROM gcr.io/google-containers/debian-base-amd64:0.3
RUN /usr/local/bin/clean-install ipcalc

14
gate-utils/build.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
SCRIPT=`realpath $0`
SCRIPT_DIR=`dirname ${SCRIPT}`
## Only build from main folder
cd ${SCRIPT_DIR}/..
IMAGE="gate-utils"
VERSION=${VERSION:-latest}
DISTRO=${DISTRO:-debian}
REGISTRY_URI=${REGISTRY_URI:-"openstackhelm/"}
EXTRA_TAG_INFO=${EXTRA_TAG_INFO:-""}
docker build -f ${IMAGE}/Dockerfile.${DISTRO} --network=host -t ${REGISTRY_URI}${IMAGE}:${VERSION}-${DISTRO}${EXTRA_TAG_INFO} ${extra_build_args} ${IMAGE}
cd -

View File

@ -0,0 +1,56 @@
FROM k8s.gcr.io/debian-iptables-amd64:v10
LABEL maintainer="pete.birley@att.com"
ARG OVS_VERSION=2.8.1
RUN set -ex ;\
export DEBIAN_FRONTEND=noninteractive ;\
apt-get update ;\
apt-get upgrade -y ;\
apt-get install --no-install-recommends -y \
bash ;\
apt-get install --no-install-recommends -y \
build-essential \
curl \
libatomic1 \
libssl1.1 \
openssl \
uuid-runtime \
graphviz \
autoconf \
automake \
bzip2 \
debhelper \
dh-autoreconf \
libssl-dev \
libtool \
python-all \
python-six \
python-twisted-conch \
python-zopeinterface ;\
TMP_DIR=$(mktemp -d) ;\
curl -sSL http://openvswitch.org/releases/openvswitch-${OVS_VERSION}.tar.gz | tar xz -C ${TMP_DIR} --strip-components=1 ;\
cd ${TMP_DIR} ;\
./boot.sh ;\
./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc ;\
make ;\
make install ;\
cd / ;\
rm -rf ${TMP_DIR} ;\
apt-get purge --auto-remove -y \
build-essential \
curl \
graphviz \
autoconf \
automake \
bzip2 \
debhelper \
dh-autoreconf \
libssl-dev \
libtool \
python-all \
python-six \
python-twisted-conch \
python-zopeinterface ;\
clean-install \
iproute2 ;\

14
openvswitch/build.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
SCRIPT=`realpath $0`
SCRIPT_DIR=`dirname ${SCRIPT}`
## Only build from main folder
cd ${SCRIPT_DIR}/..
IMAGE="openvswitch"
VERSION=${VERSION:-latest}
DISTRO=${DISTRO:-debian}
REGISTRY_URI=${REGISTRY_URI:-"openstackhelm/"}
EXTRA_TAG_INFO=${EXTRA_TAB_INFO:-""}
docker build -f ${IMAGE}/Dockerfile.${DISTRO} --network=host -t ${REGISTRY_URI}${IMAGE}:${VERSION}-${DISTRO}${EXTRA_TAG_INFO} ${extra_build_args} ${IMAGE}
cd -

View File

@ -0,0 +1,24 @@
FROM ubuntu:16.04
RUN set -ex ;\
export DEBIAN_FRONTEND=noninteractive ;\
apt-get update ;\
apt-get upgrade -y ;\
apt-get install netbase -y ;\
apt-get install --no-install-recommends -y \
python-dev \
build-essential \
python-pip \
git ;\
git clone https://git.openstack.org/openstack/tempest ;\
git clone https://git.openstack.org/openstack/cinder-tempest-plugin ;\
git clone https://git.openstack.org/openstack/heat-tempest-plugin ;\
git clone https://git.openstack.org/openstack/keystone-tempest-plugin ;\
git clone https://git.openstack.org/openstack/neutron-tempest-plugin ;\
pip install -U setuptools ;\
pip install wheel ;\
pip install -e tempest/ \
cinder-tempest-plugin/ \
heat-tempest-plugin/ \
keystone-tempest-plugin/ \
neutron-tempest-plugin/ ;\

14
tempest/build.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
SCRIPT=`realpath $0`
SCRIPT_DIR=`dirname ${SCRIPT}`
## Only build from main folder
cd ${SCRIPT_DIR}/..
IMAGE="tempest"
VERSION=${VERSION:-latest}
DISTRO=${DISTRO:-ubuntu_xenial}
REGISTRY_URI=${REGISTRY_URI:-"openstackhelm/"}
EXTRA_TAG_INFO=${EXTRA_TAG_INFO:-""}
docker build -f ${IMAGE}/Dockerfile.${DISTRO} --network=host -t ${REGISTRY_URI}${IMAGE}:${VERSION}-${DISTRO}${EXTRA_TAG_INFO} ${extra_build_args} ${IMAGE}
cd -

View File

@ -0,0 +1,44 @@
---
# Copyright 2018, SUSE LINUX GmbH.
#
# 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.
- project:
check:
jobs:
- openstack-helm-images-ceph-config-helper-ubuntu_xenial
gate:
jobs:
- openstack-helm-images-ceph-config-helper-ubuntu_xenial
#experimental:
# jobs:
# - openstack-helm-infra-five-ubuntu
- job:
name: openstack-helm-images-ceph-config-helper
parent: openstack-helm-images-base
abstract: true
files:
- ^ceph-config-helper/.*
vars:
image_path: ceph-config-helper
- job:
name: openstack-helm-images-ceph-config-helper-ubuntu_xenial
parent: openstack-helm-images-ceph-config-helper
files:
- ^ceph-config-helper/build.sh
- ^ceph-config-helper/Dockerfile.ubuntu_xenial$
- ^zuul.d/ceph-config-helper.yaml
vars:
distro: "ubuntu_xenial"

44
zuul.d/gate-utils.yaml Normal file
View File

@ -0,0 +1,44 @@
---
# Copyright 2018, SUSE LINUX GmbH.
#
# 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.
- project:
check:
jobs:
- openstack-helm-images-gate-utils-debian
gate:
jobs:
- openstack-helm-images-gate-utils-debian
#experimental:
# jobs:
# - openstack-helm-infra-five-ubuntu
- job:
name: openstack-helm-images-gate-utils
parent: openstack-helm-images-base
abstract: true
files:
- ^gate-utils/.*
vars:
image_path: gate-utils
- job:
name: openstack-helm-images-gate-utils-debian
parent: openstack-helm-images-gate-utils
files:
- ^gate-utils/build.sh
- ^gate-utils/Dockerfile.debian$
- ^zuul.d/gate-utils.yaml
vars:
distro: "debian"

44
zuul.d/openvswitch.yaml Normal file
View File

@ -0,0 +1,44 @@
---
# Copyright 2018, SUSE LINUX GmbH.
#
# 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.
- project:
check:
jobs:
- openstack-helm-images-openvswitch-debian
gate:
jobs:
- openstack-helm-images-openvswitch-debian
#experimental:
# jobs:
# - openstack-helm-infra-five-ubuntu
- job:
name: openstack-helm-images-openvswitch
parent: openstack-helm-images-base
abstract: true
files:
- ^openvswitch/.*
vars:
image_path: openvswitch
- job:
name: openstack-helm-images-openvswitch-debian
parent: openstack-helm-images-openvswitch
files:
- ^openvswitch/build.sh
- ^openvswitch/Dockerfile.debian$
- ^zuul.d/openvswitch.yaml
vars:
distro: "debian"

44
zuul.d/tempest.yaml Normal file
View File

@ -0,0 +1,44 @@
---
# Copyright 2018, SUSE LINUX GmbH.
#
# 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.
- project:
check:
jobs:
- openstack-helm-images-tempest-ubuntu_xenial
gate:
jobs:
- openstack-helm-images-tempest-ubuntu_xenial
#experimental:
# jobs:
# - openstack-helm-infra-five-ubuntu
- job:
name: openstack-helm-images-tempest
parent: openstack-helm-images-base
abstract: true
files:
- ^tempest/.*
vars:
image_path: tempest
- job:
name: openstack-helm-images-tempest-ubuntu_xenial
parent: openstack-helm-images-tempest
files:
- ^tempest/build.sh
- ^tempest/Dockerfile.ubuntu_xenial$
- ^zuul.d/tempest.yaml
vars:
distro: "ubuntu_xenial"