From 2abedb9a039f48d4a887d9291c58e06835ea889b Mon Sep 17 00:00:00 2001 From: "Battina, Sai (sb464f)" Date: Mon, 30 Nov 2020 14:30:12 -0600 Subject: [PATCH] Update ironic-python-agent image Change-Id: Ia75bbae75dabba528f6aaf398258593fb214dbcf --- .zuul.yaml | 1 + ipa-downloader-image/Dockerfile | 27 +++++---- ipa-downloader-image/Dockerfile.ipa | 2 + ipa-downloader-image/Makefile | 93 +++++++++++++++++++++++++++++ 4 files changed, 111 insertions(+), 12 deletions(-) create mode 100644 ipa-downloader-image/Dockerfile.ipa create mode 100644 ipa-downloader-image/Makefile diff --git a/.zuul.yaml b/.zuul.yaml index 733f754..097cdee 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -41,6 +41,7 @@ - job: name: airship-images-build nodeset: airship-images-single-node + timeout: 3600 pre-run: playbooks/airship-images-deploy-docker.yaml run: playbooks/airship-images-build.yaml post-run: playbooks/airship-collect-logs.yaml diff --git a/ipa-downloader-image/Dockerfile b/ipa-downloader-image/Dockerfile index a8a2212..5afbef2 100644 --- a/ipa-downloader-image/Dockerfile +++ b/ipa-downloader-image/Dockerfile @@ -1,16 +1,19 @@ -FROM ubuntu:18.04 as downloader +FROM ubuntu:20.04 as downloader +ARG BRANCH=stable/victoria + +ENV DIB_DHCP_TIMEOUT=60 \ + DIB_REPOLOCATION_ironic_python_agent=/ironic-python-agent \ + DIB_REPOLOCATION_requirements=/requirements \ + DIB_DEV_USER_USERNAME=devuser \ + DIB_DEV_USER_PASSWORD=password \ + DIB_DEV_USER_PWDLESS_SUDO=yes \ + AUTHORIZE_SSH=true \ + DEBIAN_FRONTEND=noninteractive -ARG IPA_BASEURI=https://images.rdoproject.org/master/rdo_trunk/current-tripleo/ironic-python-agent.tar RUN set -ex ;\ apt-get update ;\ - apt-get install curl -y - -RUN set -ex ;\ - curl -sSL -o /tmp/ironic-python-agent.tar $IPA_BASEURI ;\ - mkdir -p /tmp/ironic-python-agent ;\ - tar -xf /tmp/ironic-python-agent.tar -C /tmp/ironic-python-agent - -FROM ubuntu:18.04 as dist - -COPY --from=downloader /tmp/ironic-python-agent / + apt-get install git python3-pip qemu-utils sudo curl squashfs-tools cpio -y ;\ + git clone https://opendev.org/openstack/ironic-python-agent.git -b ${BRANCH} /ironic-python-agent ;\ + git clone https://opendev.org/openstack/requirements.git -b ${BRANCH} /requirements ;\ + pip3 install --user diskimage-builder ironic-python-agent-builder diff --git a/ipa-downloader-image/Dockerfile.ipa b/ipa-downloader-image/Dockerfile.ipa new file mode 100644 index 0000000..1c37705 --- /dev/null +++ b/ipa-downloader-image/Dockerfile.ipa @@ -0,0 +1,2 @@ +FROM ubuntu:20.04 +COPY ./ipa-ubuntu-master.* / diff --git a/ipa-downloader-image/Makefile b/ipa-downloader-image/Makefile new file mode 100644 index 0000000..8e2adcc --- /dev/null +++ b/ipa-downloader-image/Makefile @@ -0,0 +1,93 @@ +# Copyright 2018 AT&T Intellectual Property. All other rights reserved. +# +# 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. + +SHELL := /bin/bash +PUSH_IMAGE ?= false +IMAGE_ID ?= none +COMMIT ?= $(shell git rev-parse HEAD) +LABEL ?= org.airshipit.build=community +IMAGE_NAME ?= ipa +DOCKER_REGISTRY ?= quay.io +IMAGE_PREFIX ?= airshipit +IMAGE_TAG ?= latest +IMAGE_IPA_NAME ?= ipabuilder +BRANCH ?= stable/victoria +IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG} +IMAGE_IPABUILDER := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_IPA_NAME}:${IMAGE_TAG} +PROXY ?= http://proxy.foo.com:8000 +NO_PROXY ?= localhost,127.0.0.1,.svc.cluster.local +USE_PROXY ?= false + + +build_ipa: +ifeq ($(USE_PROXY), true) + sudo docker build . \ + --tag $(IMAGE_IPABUILDER) \ + --label $(LABEL) \ + --label "org.opencontainers.image.revision=$(COMMIT)" \ + --label "org.opencontainers.image.created=\ + $(shell date --rfc-3339=seconds --utc)" \ + --label "org.opencontainers.image.title=$(IMAGE_NAME)" \ + --build-arg BRANCH=$(BRANCH) \ + --build-arg http_proxy=$(PROXY) \ + --build-arg https_proxy=$(PROXY) \ + --build-arg HTTP_PROXY=$(PROXY) \ + --build-arg HTTPS_PROXY=$(PROXY) \ + --build-arg no_proxy=$(NO_PROXY) \ + --build-arg NO_PROXY=$(NO_PROXY) + + sudo docker run --name ipabuilder \ + --privileged $(IMAGE_IPABUILDER) \ + /bin/bash -c "export PATH=$$PATH:/root/.local/bin/ && \ + export http_proxy=$(PROXY) && export https_proxy=$(PROXY) && \ + ironic-python-agent-builder -o ipa-ubuntu-master -b HEAD -v --extra-args=--no-tmpfs -e devuser ubuntu" +else + sudo docker build . \ + --tag $(IMAGE_IPABUILDER) \ + --label $(LABEL) \ + --label "org.opencontainers.image.revision=$(COMMIT)" \ + --label "org.opencontainers.image.created=\ + $(shell date --rfc-3339=seconds --utc)" \ + --label "org.opencontainers.image.title=$(IMAGE_NAME)" \ + --build-arg BRANCH=$(BRANCH) + + sudo docker run --name ipabuilder \ + --privileged $(IMAGE_IPABUILDER) \ + /bin/bash -c "export PATH=$$PATH:/root/.local/bin/ && \ + ironic-python-agent-builder -o ipa-ubuntu-master -b HEAD -v --extra-args=--no-tmpfs -e devuser ubuntu" +endif + + sudo docker cp $$(sudo docker ps -a | grep ipabuilder | awk '{print $$1}'):/ipa-ubuntu-master.initramfs . + sudo docker cp $$(sudo docker ps -a | grep ipabuilder | awk '{print $$1}'):/ipa-ubuntu-master.kernel . + + + sudo docker build . -f Dockerfile.ipa \ + --tag $(IMAGE) \ + --label $(LABEL) \ + --label "org.opencontainers.image.revision=$(COMMIT)" \ + --label "org.opencontainers.image.created=\ + $(shell date --rfc-3339=seconds --utc)" \ + --label "org.opencontainers.image.title=$(IMAGE_NAME)" + +ifeq ($(PUSH_IMAGE), true) + docker push $(IMAGE) +endif + + +images: build_ipa + +tests: + echo TODO + +.PHONY: images build_ipa tests