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:
parent
b881e176f5
commit
0a7c1ec082
44
.zuul.yaml
44
.zuul.yaml
|
@ -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
|
||||||
|
|
7
Makefile
7
Makefile
|
@ -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)
|
||||||
|
|
|
@ -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::
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
@ -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"
|
||||||
|
|
Loading…
Reference in New Issue