Support armada to run on opensuse image leap15

Added Dockerfile for opensuse so it builds leap15 image
Modified to support multiple distros for image building.

Change-Id: Iffa7d0dbe4bc301e78a0bba1adc927d8aa2cbdcc
This commit is contained in:
rajdharwadkar 2019-02-15 03:23:51 -08:00 committed by Arun Kant
parent b881e176f5
commit 0a7c1ec082
6 changed files with 117 additions and 11 deletions

View File

@ -23,16 +23,19 @@
- openstack-tox-pep8 - openstack-tox-pep8
- armada-chart-build-gate - armada-chart-build-gate
- armada-chart-build-latest-htk - armada-chart-build-latest-htk
- armada-docker-build-gate - armada-docker-build-gate-ubuntu
- armada-docker-build-gate-opensuse
- armada-airskiff-deploy - armada-airskiff-deploy
gate: gate:
jobs: jobs:
- openstack-tox-pep8 - openstack-tox-pep8
- armada-chart-build-gate - armada-chart-build-gate
- armada-docker-build-gate - armada-docker-build-gate-ubuntu
- armada-docker-build-gate-opensuse
post: post:
jobs: jobs:
- armada-docker-publish - armada-docker-publish-ubuntu
- armada-docker-publish-opensuse
- nodeset: - nodeset:
name: armada-single-node name: armada-single-node
@ -60,12 +63,25 @@
HTK_COMMIT: master HTK_COMMIT: master
- job: - job:
name: armada-docker-build-gate name: armada-docker-build-gate-ubuntu
timeout: 1800 timeout: 1800
run: tools/gate/playbooks/docker-image-build.yaml run: tools/gate/playbooks/docker-image-build.yaml
nodeset: armada-single-node nodeset: armada-single-node
vars: vars:
publish: false publish: false
distro: ubuntu_bionic
tags:
dynamic:
patch_set: true
- job:
name: armada-docker-build-gate-opensuse
timeout: 1800
run: tools/gate/playbooks/docker-image-build.yaml
nodeset: armada-single-node
vars:
publish: false
distro: opensuse_15
tags: tags:
dynamic: dynamic:
patch_set: true patch_set: true
@ -98,7 +114,7 @@
- ^swagger/.*$ - ^swagger/.*$
- job: - job:
name: armada-docker-publish name: armada-docker-publish-ubuntu
timeout: 1800 timeout: 1800
run: tools/gate/playbooks/docker-image-build.yaml run: tools/gate/playbooks/docker-image-build.yaml
nodeset: armada-single-node nodeset: armada-single-node
@ -106,6 +122,24 @@
- armada_quay_creds - armada_quay_creds
vars: vars:
publish: true publish: true
distro: ubuntu_bionic
tags:
dynamic:
branch: true
commit: true
static:
- latest
- job:
name: armada-docker-publish-opensuse
timeout: 1800
run: tools/gate/playbooks/docker-image-build.yaml
nodeset: armada-single-node
secrets:
- airship_armada_quay_creds
vars:
publish: true
distro: opensuse_15
tags: tags:
dynamic: dynamic:
branch: true branch: true

View File

@ -28,8 +28,9 @@ LABEL ?= org.airshipit.build=community
COMMIT ?= $(shell git rev-parse HEAD) COMMIT ?= $(shell git rev-parse HEAD)
PYTHON = python3 PYTHON = python3
CHARTS := $(patsubst charts/%/.,%,$(wildcard charts/*/.)) CHARTS := $(patsubst charts/%/.,%,$(wildcard charts/*/.))
IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG} IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}
UBUNTU_BASE_IMAGE ?= UBUNTU_BASE_IMAGE ?=
DISTRO := ubuntu_bionic
# VERSION INFO # VERSION INFO
GIT_COMMIT = $(shell git rev-parse HEAD) GIT_COMMIT = $(shell git rev-parse HEAD)
@ -108,7 +109,7 @@ ifeq ($(USE_PROXY), true)
--label "org.opencontainers.image.revision=$(COMMIT)" \ --label "org.opencontainers.image.revision=$(COMMIT)" \
--label "org.opencontainers.image.created=$(shell date --rfc-3339=seconds --utc)" \ --label "org.opencontainers.image.created=$(shell date --rfc-3339=seconds --utc)" \
--label "org.opencontainers.image.title=$(IMAGE_NAME)" \ --label "org.opencontainers.image.title=$(IMAGE_NAME)" \
-f ./Dockerfile \ -f images/armada/Dockerfile.$(DISTRO) \
$(_BASE_IMAGE_ARG) \ $(_BASE_IMAGE_ARG) \
--build-arg http_proxy=$(PROXY) \ --build-arg http_proxy=$(PROXY) \
--build-arg https_proxy=$(PROXY) \ --build-arg https_proxy=$(PROXY) \
@ -121,7 +122,7 @@ else
--label "org.opencontainers.image.revision=$(COMMIT)" \ --label "org.opencontainers.image.revision=$(COMMIT)" \
--label "org.opencontainers.image.created=$(shell date --rfc-3339=seconds --utc)" \ --label "org.opencontainers.image.created=$(shell date --rfc-3339=seconds --utc)" \
--label "org.opencontainers.image.title=$(IMAGE_NAME)" \ --label "org.opencontainers.image.title=$(IMAGE_NAME)" \
-f ./Dockerfile \ -f images/armada/Dockerfile.$(DISTRO) \
$(_BASE_IMAGE_ARG) . $(_BASE_IMAGE_ARG) .
endif endif
ifeq ($(PUSH_IMAGE), true) ifeq ($(PUSH_IMAGE), true)

View File

@ -22,14 +22,19 @@ To use the docker container to develop:
#. Next, run the following commands to install ``tox``, generate sample policy #. Next, run the following commands to install ``tox``, generate sample policy
and configuration files, and build Armada charts as well as the Armada and configuration files, and build Armada charts as well as the Armada
container image:: container image. Armada Dockerfile.DISTRO are located in images/armada.
Supported DISTRO are ubuntu_bionic and opensuse_leap15.
By default DISTRO is ubuntu_bionic.
.. code-block:: bash
$ pip install tox $ pip install tox
$ tox -e genconfig $ tox -e genconfig
$ tox -e genpolicy $ tox -e genpolicy
$ docker build . -t armada/latest $ export DISTRO=distro_name
$ docker build -f Dockerfile.${DISTRO} -t armada/latest
$ make images $ make images
@ -111,7 +116,7 @@ Follow the steps below to install the Armada CLI.
.. warning:: .. warning::
Armada is only tested against a Ubuntu 16.04 environment. Armada is tested against a Ubuntu 16.04 and Opensuse(leap15.0)environment.
Clone the Armada repository, ``cd`` into it:: Clone the Armada repository, ``cd`` into it::

View File

@ -0,0 +1,62 @@
ARG FROM=opensuse/leap:15.0
FROM ${FROM}
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode'
LABEL org.opencontainers.image.url='https://airshipit.org'
LABEL org.opencontainers.image.documentation='https://airship-armada.readthedocs.org'
LABEL org.opencontainers.image.source='https://git.openstack.org/openstack/airship-armada'
LABEL org.opencontainers.image.vendor='The Airship Authors'
LABEL org.opencontainers.image.licenses='Apache-2.0'
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
EXPOSE 8000
ENTRYPOINT ["./entrypoint.sh"]
CMD ["server"]
RUN mkdir -p /armada && \
zypper refresh && \
zypper up -y && \
zypper --non-interactive install \
ca-certificates \
curl \
tar \
netcfg \
python3 \
python3-devel \
python3-setuptools \
python3-pip \
gcc \
git \
libopenssl-devel \
make && \
pip install --upgrade pip && \
python3 -m pip install -U pip && \
zypper clean -a && \
rm -rf \
/tmp/* \
/var/tmp/* \
/usr/share/man \
/usr/share/doc \
/usr/share/doc-base
WORKDIR /armada
COPY requirements.txt /tmp/
RUN \
pip3 install -r /tmp/requirements.txt && \
useradd -u 1000 -g users -d /armada armada && \
rm -rf /tmp/requirements.txt
COPY . /armada
RUN \
mv etc/armada /etc/ && \
cd /armada && \
chown -R armada:users /armada && \
python3 setup.py install
USER armada

View File

@ -20,6 +20,8 @@
block: block:
- debug: - debug:
var: publish var: publish
- debug:
var: distro
- debug: - debug:
var: tags var: tags
- debug: - debug:
@ -91,6 +93,7 @@
chdir: "{{ zuul.project.src_dir }}" chdir: "{{ zuul.project.src_dir }}"
target: images target: images
params: params:
DISTRO: "{{ distro }}"
IMAGE_TAG: "{{ item }}" IMAGE_TAG: "{{ item }}"
with_items: "{{ image_tags.stdout_lines }}" with_items: "{{ image_tags.stdout_lines }}"
@ -115,6 +118,7 @@
params: params:
DOCKER_REGISTRY: "quay.io" DOCKER_REGISTRY: "quay.io"
IMAGE_PREFIX: "airshipit" IMAGE_PREFIX: "airshipit"
DISTRO: "{{ distro }}"
IMAGE_TAG: "{{ item }}" IMAGE_TAG: "{{ item }}"
COMMIT: "{{ zuul.newrev | default('') }}" COMMIT: "{{ zuul.newrev | default('') }}"
PUSH_IMAGE: "true" PUSH_IMAGE: "true"