Reduce number of jobs needed to tag images
Change-Id: Ie21cfa4ac909f0a69913f876a8659d9bb495df76
This commit is contained in:
parent
942ca33a53
commit
1f7138684d
@ -12,39 +12,43 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
SHELL := /bin/bash
|
SHELL := /bin/bash
|
||||||
COMMIT ?= $(shell git rev-parse HEAD)
|
COMMIT ?= $(shell git rev-parse HEAD)
|
||||||
LABEL ?= org.airshipit.build=community
|
LABEL ?= org.airshipit.build=community
|
||||||
IMAGE_NAME ?= image-builder
|
IMAGE_NAME ?= image-builder
|
||||||
DOCKER_REGISTRY ?= quay.io
|
DOCKER_REGISTRY ?= quay.io
|
||||||
IMAGE_PREFIX ?= airshipit
|
IMAGE_PREFIX ?= airshipit
|
||||||
IMAGE_TAG ?= latest
|
IMAGE_TAG ?=
|
||||||
IMAGE_TYPE ?= iso # iso | qcow
|
IMAGE_TAG_FIRST ?=
|
||||||
PUSH_IMAGE ?= false
|
IMAGE_TYPE ?= iso # iso | qcow
|
||||||
DISTRO ?= ubuntu_focal
|
PUSH_IMAGE ?= false
|
||||||
WORKDIR ?= ./manifests
|
DISTRO ?= ubuntu_focal
|
||||||
|
WORKDIR ?= ./manifests
|
||||||
# Specifiy if you want to use a different profile than the default.
|
# Specifiy if you want to use a different profile than the default.
|
||||||
# i.e. PROFILE ?= k8s-1.18
|
# i.e. PROFILE ?= k8s-1.18
|
||||||
PROFILE ?=
|
PROFILE ?=
|
||||||
QCOW_BUNDLE ?= ${WORKDIR}/qcow-bundle
|
QCOW_BUNDLE ?= ${WORKDIR}/qcow-bundle
|
||||||
# Specify if you want to only build a certain subset of QCOW bundles
|
# Specify if you want to only build a certain subset of QCOW bundles
|
||||||
QCOW_BUNDLE_DIRS ?=
|
QCOW_BUNDLE_DIRS ?=
|
||||||
# Set to true to skip multistrap.sh script. Useful for testing
|
# Set to true to skip multistrap.sh script. Useful for testing
|
||||||
SKIP_MULTISTRAP ?=
|
SKIP_MULTISTRAP ?=
|
||||||
# Set to true to skip multistrap playbook. Useful for testing
|
# Set to true to skip multistrap playbook. Useful for testing
|
||||||
SKIP_MULTI_ROLE ?=
|
SKIP_MULTI_ROLE ?=
|
||||||
# Set to true to skip osconfig playbook. Useful for testing
|
# Set to true to skip osconfig playbook. Useful for testing
|
||||||
SKIP_OSCONFIG_ROLE ?=
|
SKIP_OSCONFIG_ROLE ?=
|
||||||
# Set to true to skip livecdcontent playbook. Useful for testing
|
# Set to true to skip livecdcontent playbook. Useful for testing
|
||||||
SKIP_LIVECDCONTENT_ROLE ?=
|
SKIP_LIVECDCONTENT_ROLE ?=
|
||||||
IMAGE ?= ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}
|
IMAGE ?= ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}
|
||||||
PROXY ?=
|
TARGET_IMAGE_TAG ?=
|
||||||
NO_PROXY ?= localhost,127.0.0.1
|
PROXY ?=
|
||||||
BOOT_TIMEOUT ?= 300 # Image boot validation timeout. Set to 0 to disable to make console available for manual debugging.
|
NO_PROXY ?= localhost,127.0.0.1
|
||||||
|
# Image boot validation timeout. Set to 0 to disable to make console available for manual debugging.
|
||||||
|
BOOT_TIMEOUT ?= 300
|
||||||
#it doesn't matter - we're not going to publish it, because it's useless without jsons
|
#it doesn't matter - we're not going to publish it, because it's useless without jsons
|
||||||
KRM_BASE_IMAGE ?= ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/image-profile-krm:${IMAGE_TAG}
|
KRM_IMAGE_TAG ?= latest
|
||||||
|
KRM_BASE_IMAGE ?= ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/image-profile-krm:${KRM_IMAGE_TAG}
|
||||||
|
|
||||||
.PHONY: help build images cut_image package_qcow krm_base_image run clean
|
.PHONY: help build images cut_image package_qcow krm_base_image run clean docker_build tag push
|
||||||
|
|
||||||
.ONESHELL:
|
.ONESHELL:
|
||||||
|
|
||||||
@ -55,17 +59,21 @@ help: ## This help.
|
|||||||
images: build generate_iso package_qcow clean
|
images: build generate_iso package_qcow clean
|
||||||
|
|
||||||
build:
|
build:
|
||||||
ifneq ($(PROFILE), )
|
|
||||||
set -ex
|
set -ex
|
||||||
|
ifneq ($(PROFILE), )
|
||||||
# Apply any user-defined profiles overrides to playbooks
|
# Apply any user-defined profiles overrides to playbooks
|
||||||
rsync -rc ./../profiles/$(PROFILE)/manifests/ $(WORKDIR)/
|
rsync -rc ./../profiles/$(PROFILE)/manifests/ $(WORKDIR)/
|
||||||
endif
|
endif
|
||||||
set -ex
|
|
||||||
# Apply any user-defined rootfs overrides to playbooks
|
# Apply any user-defined rootfs overrides to playbooks
|
||||||
cp $(WORKDIR)/rootfs/multistrap-vars.yaml assets/playbooks/roles/multistrap/vars/main.yaml
|
cp $(WORKDIR)/rootfs/multistrap-vars.yaml assets/playbooks/roles/multistrap/vars/main.yaml
|
||||||
cp $(WORKDIR)/rootfs/osconfig-vars.yaml assets/playbooks/roles/osconfig/vars/main.yaml
|
cp $(WORKDIR)/rootfs/osconfig-vars.yaml assets/playbooks/roles/osconfig/vars/main.yaml
|
||||||
cp $(WORKDIR)/rootfs/livecdcontent-vars.yaml assets/playbooks/roles/livecdcontent/vars/main.yaml
|
cp $(WORKDIR)/rootfs/livecdcontent-vars.yaml assets/playbooks/roles/livecdcontent/vars/main.yaml
|
||||||
|
|
||||||
|
export DOCKERFILE=Dockerfile.$(DISTRO)
|
||||||
|
export DOCKERFILE_FOLDER="."
|
||||||
|
export IMAGE_NAME=image-builder
|
||||||
|
export SOURCE_IMAGE_TAG=${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}
|
||||||
|
ifneq (,$(findstring latest, $(IMAGE_TAG)))
|
||||||
ifneq ($(PROXY), )
|
ifneq ($(PROXY), )
|
||||||
sudo -E ./tools/docker_proxy.sh $(PROXY) $(NO_PROXY)
|
sudo -E ./tools/docker_proxy.sh $(PROXY) $(NO_PROXY)
|
||||||
export http_proxy=$(PROXY)
|
export http_proxy=$(PROXY)
|
||||||
@ -77,40 +85,34 @@ ifneq ($(PROXY), )
|
|||||||
ifneq ($(SKIP_MULTISTRAP), true)
|
ifneq ($(SKIP_MULTISTRAP), true)
|
||||||
sudo -E ./tools/multistrap.sh $(WORKDIR)
|
sudo -E ./tools/multistrap.sh $(WORKDIR)
|
||||||
endif
|
endif
|
||||||
sudo -E DOCKER_BUILDKIT=1 docker -D -l debug build --tag $(IMAGE) -f Dockerfile.$(DISTRO) . \
|
# run docker build for w/proxy
|
||||||
--label $(LABEL) \
|
sudo -E make docker_build
|
||||||
--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 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)
|
|
||||||
else
|
else
|
||||||
ifneq ($(SKIP_MULTISTRAP), true)
|
ifneq ($(SKIP_MULTISTRAP), true)
|
||||||
sudo -E ./tools/multistrap.sh $(WORKDIR)
|
sudo -E ./tools/multistrap.sh $(WORKDIR)
|
||||||
endif
|
endif
|
||||||
sudo -E DOCKER_BUILDKIT=1 docker -D -l debug build --tag $(IMAGE) -f Dockerfile.$(DISTRO) . \
|
# run docker build for wo/proxy
|
||||||
--label $(LABEL) \
|
sudo -E make docker_build
|
||||||
--label "org.opencontainers.image.revision=$(COMMIT)" \
|
|
||||||
--label "org.opencontainers.image.created=\
|
|
||||||
$(shell date --rfc-3339=seconds --utc)" \
|
|
||||||
--label "org.opencontainers.image.title=$(IMAGE_NAME)"
|
|
||||||
endif
|
endif
|
||||||
imgId=`sudo docker images | grep 'image-builder ' | awk '{print $$3}'`
|
imgId=`sudo docker images | grep 'image-builder ' | awk '{print $$3}'`
|
||||||
time sudo -E DOCKER_BUILDKIT=1 docker run $$imgId ls -ltra /build/usr/bin/sudo > /tmp/sticky_result
|
time sudo -E DOCKER_BUILDKIT=1 docker run $$imgId ls -ltra /build/usr/bin/sudo > /tmp/sticky_result
|
||||||
time sudo grep '^-rws' /tmp/sticky_result >& /dev/null || \
|
time sudo grep '^-rws' /tmp/sticky_result >& /dev/null || \
|
||||||
(echo Could not find sticky bit set on target image sudo binary. Are you using buildkit? && \
|
(echo Could not find sticky bit set on target image sudo binary. Are you using buildkit? && \
|
||||||
sudo cat /tmp/sticky_result && exit 1)
|
sudo cat /tmp/sticky_result && exit 1)
|
||||||
|
else
|
||||||
|
# Set SOURCE_IMAGE_TAG and TARGET_IMAGE_TAG for tagging purposes
|
||||||
|
export SOURCE_IMAGE_TAG="${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG_FIRST}-${DISTRO}"
|
||||||
|
export TARGET_IMAGE_TAG="${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}"
|
||||||
|
# Don't repackage image-builder, just tag it.
|
||||||
|
sudo -E make tag
|
||||||
|
endif
|
||||||
ifeq ($(PUSH_IMAGE), true)
|
ifeq ($(PUSH_IMAGE), true)
|
||||||
sudo -E DOCKER_BUILDKIT=1 docker push $(IMAGE)
|
sudo -E make push
|
||||||
endif
|
endif
|
||||||
|
|
||||||
cut_image: krm_base_image
|
cut_image: krm_base_image
|
||||||
set -ex
|
set -ex
|
||||||
|
IMAGE_NAME=image-builder
|
||||||
ifneq ($(PROXY), )
|
ifneq ($(PROXY), )
|
||||||
sudo -E ./tools/docker_proxy.sh $(PROXY) $(NO_PROXY)
|
sudo -E ./tools/docker_proxy.sh $(PROXY) $(NO_PROXY)
|
||||||
export http_proxy=$(PROXY)
|
export http_proxy=$(PROXY)
|
||||||
@ -127,16 +129,18 @@ else
|
|||||||
# Trailing / allows proper function with symlinks
|
# Trailing / allows proper function with symlinks
|
||||||
iterDirs="$$(find $(QCOW_BUNDLE)/ -maxdepth 1 -mindepth 1 -type d -exec basename {} \;)"
|
iterDirs="$$(find $(QCOW_BUNDLE)/ -maxdepth 1 -mindepth 1 -type d -exec basename {} \;)"
|
||||||
if [[ -z $$iterDirs ]]; then
|
if [[ -z $$iterDirs ]]; then
|
||||||
echo "Could not find any qcow images defined for bundle - exiting."
|
echo "Could not find any qcow images defined for bundle - exiting."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
for subdir in $$iterDirs; do
|
for subdir in $$iterDirs; do
|
||||||
# QCOW configs
|
# QCOW configs
|
||||||
export osconfig_params="$(QCOW_BUNDLE)/$$subdir/osconfig-vars.yaml"
|
export osconfig_params="$(QCOW_BUNDLE)/$$subdir/osconfig-vars.yaml"
|
||||||
export qcow_params="$(QCOW_BUNDLE)/$$subdir/qcow-vars.yaml"
|
export qcow_params="$(QCOW_BUNDLE)/$$subdir/qcow-vars.yaml"
|
||||||
# Image name
|
# Image name
|
||||||
export img_name=$$subdir.qcow2
|
export img_name=$$subdir.qcow2
|
||||||
sudo -E tools/cut_image.sh $(IMAGE_TYPE) $(QCOW_BUNDLE) $(IMAGE) $(BOOT_TIMEOUT) "$(PROXY)" "$(NO_PROXY)"
|
echo "Image: $(IMAGE)"
|
||||||
|
echo "SOURCE_IMAGE_TAG: $(SOURCE_IMAGE_TAG)"
|
||||||
|
sudo -E tools/cut_image.sh $(IMAGE_TYPE) $(QCOW_BUNDLE) $(IMAGE) $(BOOT_TIMEOUT) "$(PROXY)" "$(NO_PROXY)"
|
||||||
# keep profile info
|
# keep profile info
|
||||||
[ -e $(QCOW_BUNDLE)/profile_entrypoint.json ] && cat $(QCOW_BUNDLE)/profile_entrypoint.json && mv $(QCOW_BUNDLE)/profile_entrypoint.json $(QCOW_BUNDLE)/profile_qcow_$$subdir.json
|
[ -e $(QCOW_BUNDLE)/profile_entrypoint.json ] && cat $(QCOW_BUNDLE)/profile_entrypoint.json && mv $(QCOW_BUNDLE)/profile_entrypoint.json $(QCOW_BUNDLE)/profile_qcow_$$subdir.json
|
||||||
done
|
done
|
||||||
@ -145,6 +149,7 @@ endif
|
|||||||
generate_iso:
|
generate_iso:
|
||||||
set -ex
|
set -ex
|
||||||
export IMAGE_TYPE=iso
|
export IMAGE_TYPE=iso
|
||||||
|
export IMAGE_NAME=image-builder
|
||||||
sudo -E make cut_image
|
sudo -E make cut_image
|
||||||
|
|
||||||
package_qcow:
|
package_qcow:
|
||||||
@ -162,23 +167,63 @@ endif
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
for bundledir in $$bundleDirs; do
|
for bundledir in $$bundleDirs; do
|
||||||
export QCOW_BUNDLE="$(WORKDIR)/$$bundledir"
|
# if IMAGE_TAG contains latest then docker_build else its a tag
|
||||||
sudo -E make cut_image
|
ifneq (,$(findstring latest, $(IMAGE_TAG)))
|
||||||
sudo -E DOCKER_BUILDKIT=1 docker -D -l debug build --tag $(DOCKER_REGISTRY)/$(IMAGE_PREFIX)/$$bundledir:$(IMAGE_TAG)-$(DISTRO) -f Dockerfile-qcow.$(DISTRO) $(WORKDIR)/$$bundledir \
|
# Set vars for docker_build and push
|
||||||
--label $(LABEL) \
|
export QCOW_BUNDLE="$(WORKDIR)/$$bundledir"
|
||||||
--label "org.opencontainers.image.revision=$(COMMIT)" \
|
export IMAGE_NAME=image-builder
|
||||||
--label "org.opencontainers.image.created=\
|
sudo -E make cut_image
|
||||||
$(shell date --rfc-3339=seconds --utc)" \
|
export DOCKERFILE="Dockerfile-qcow.$(DISTRO)"
|
||||||
--label "org.opencontainers.image.title=$(DOCKER_REGISTRY)/$(IMAGE_PREFIX)/$$bundledir:$(IMAGE_TAG)-$(DISTRO)" \
|
export DOCKERFILE_FOLDER="$(WORKDIR)/$$bundledir"
|
||||||
--build-arg KRM_BASE_IMAGE=$(KRM_BASE_IMAGE)
|
export IMAGE_NAME=$$bundledir
|
||||||
|
export SOURCE_IMAGE_TAG=${DOCKER_REGISTRY}/${IMAGE_PREFIX}/$$bundledir:${IMAGE_TAG}-${DISTRO}
|
||||||
|
sudo -E make docker_build
|
||||||
|
else
|
||||||
|
# Set SOURCE_IMAGE_TAG & TARGET_IMAGE_TAG for tagging purposes
|
||||||
|
export SOURCE_IMAGE_TAG=${DOCKER_REGISTRY}/${IMAGE_PREFIX}/$$bundledir:${IMAGE_TAG_FIRST}-${DISTRO}
|
||||||
|
export TARGET_IMAGE_TAG="${DOCKER_REGISTRY}/${IMAGE_PREFIX}/$$bundledir:${IMAGE_TAG}-${DISTRO}"
|
||||||
|
# Don't repackage qcow, just tag it.
|
||||||
|
sudo -E make tag
|
||||||
|
endif
|
||||||
ifeq ($(PUSH_IMAGE), true)
|
ifeq ($(PUSH_IMAGE), true)
|
||||||
sudo -E DOCKER_BUILDKIT=1 docker push $(DOCKER_REGISTRY)/$(IMAGE_PREFIX)/$$bundledir:$(IMAGE_TAG)-$(DISTRO)
|
sudo -E make push
|
||||||
endif
|
endif
|
||||||
done
|
done
|
||||||
|
|
||||||
krm_base_image:
|
krm_base_image:
|
||||||
sudo -E docker build krm-function -t $(KRM_BASE_IMAGE)
|
sudo -E docker build krm-function -t $(KRM_BASE_IMAGE)
|
||||||
|
|
||||||
|
docker_build:
|
||||||
|
set -ex
|
||||||
|
ifneq ($(PROXY), )
|
||||||
|
sudo -E DOCKER_BUILDKIT=1 docker -D -l debug build --tag $(SOURCE_IMAGE_TAG) -f $(DOCKERFILE) $(DOCKERFILE_FOLDER) \
|
||||||
|
--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 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) \
|
||||||
|
--build-arg KRM_BASE_IMAGE=$(KRM_BASE_IMAGE)
|
||||||
|
else
|
||||||
|
sudo -E DOCKER_BUILDKIT=1 docker -D -l debug build --tag $(SOURCE_IMAGE_TAG) -f $(DOCKERFILE) $(DOCKERFILE_FOLDER) \
|
||||||
|
--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)"
|
||||||
|
endif
|
||||||
|
|
||||||
|
tag:
|
||||||
|
set -ex
|
||||||
|
sudo -E DOCKER_BUILDKIT=1 docker tag $(SOURCE_IMAGE_TAG) $(TARGET_IMAGE_TAG)
|
||||||
|
|
||||||
|
push:
|
||||||
|
set -ex
|
||||||
|
sudo -E DOCKER_BUILDKIT=1 docker push $(SOURCE_IMAGE_TAG) $(TARGET_IMAGE_TAG)
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
true
|
true
|
||||||
|
|
||||||
|
@ -229,4 +229,3 @@ if [[ $perform_boot_test = "true" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -38,7 +38,8 @@
|
|||||||
when: pre_build_role is defined
|
when: pre_build_role is defined
|
||||||
- name: Publish images
|
- name: Publish images
|
||||||
block:
|
block:
|
||||||
- command: make images clean
|
- name: Publish Images with Latest and Commit Tags
|
||||||
|
command: make images
|
||||||
args:
|
args:
|
||||||
chdir: "{{ makefile_chdir }}"
|
chdir: "{{ makefile_chdir }}"
|
||||||
environment:
|
environment:
|
||||||
@ -47,7 +48,8 @@
|
|||||||
DOCKER_REGISTRY: "{{ docker_registry }}"
|
DOCKER_REGISTRY: "{{ docker_registry }}"
|
||||||
GCP_SDK: "{{ gcp_sdk }}"
|
GCP_SDK: "{{ gcp_sdk }}"
|
||||||
IMAGE_PREFIX: "{{ image_prefix | default('airshipit') }}"
|
IMAGE_PREFIX: "{{ image_prefix | default('airshipit') }}"
|
||||||
IMAGE_TAG: "{{ image_tag | default('latest') }}"
|
IMAGE_TAG_FIRST: "{{ image_tag | first | default('latest') }}"
|
||||||
|
IMAGE_TAG: "{{ item }}"
|
||||||
LABEL: "{{ image_label | default('org.airshipit.build=community') }}"
|
LABEL: "{{ image_label | default('org.airshipit.build=community') }}"
|
||||||
NO_PROXY: "{{ proxy.noproxy }}"
|
NO_PROXY: "{{ proxy.noproxy }}"
|
||||||
PUSH_IMAGE: "false"
|
PUSH_IMAGE: "false"
|
||||||
@ -56,4 +58,5 @@
|
|||||||
USE_PROXY: "{{ proxy.enabled | lower }}"
|
USE_PROXY: "{{ proxy.enabled | lower }}"
|
||||||
WORKDIR: "{{ image_work_dir | default('manifests') }}"
|
WORKDIR: "{{ image_work_dir | default('manifests') }}"
|
||||||
PROFILE: "{{ image_profile_dir | default('') }}"
|
PROFILE: "{{ image_profile_dir | default('') }}"
|
||||||
|
loop: "{{ image_tag|flatten(levels=1) }}"
|
||||||
become: True
|
become: True
|
||||||
|
@ -43,8 +43,8 @@
|
|||||||
username: "{{ image_builder_quay_creds.username }}"
|
username: "{{ image_builder_quay_creds.username }}"
|
||||||
password: "{{ image_builder_quay_creds.password }}"
|
password: "{{ image_builder_quay_creds.password }}"
|
||||||
registry_url: "{{ docker_registry }}"
|
registry_url: "{{ docker_registry }}"
|
||||||
- name: Push Images with Latest and Commit Tags
|
- name: Publish Images with Latest and Commit Tags
|
||||||
command: make images clean
|
command: make images
|
||||||
args:
|
args:
|
||||||
chdir: "{{ makefile_chdir }}"
|
chdir: "{{ makefile_chdir }}"
|
||||||
environment:
|
environment:
|
||||||
@ -53,7 +53,8 @@
|
|||||||
DOCKER_REGISTRY: "{{ docker_registry }}"
|
DOCKER_REGISTRY: "{{ docker_registry }}"
|
||||||
GCP_SDK: "{{ gcp_sdk }}"
|
GCP_SDK: "{{ gcp_sdk }}"
|
||||||
IMAGE_PREFIX: "{{ image_prefix | default('airshipit') }}"
|
IMAGE_PREFIX: "{{ image_prefix | default('airshipit') }}"
|
||||||
IMAGE_TAG: "{{ image_tag | default('latest') }}"
|
IMAGE_TAG_FIRST: "{{ image_tag | first | default('latest') }}"
|
||||||
|
IMAGE_TAG: "{{ item }}"
|
||||||
LABEL: "{{ image_label | default('org.airshipit.build=community') }}"
|
LABEL: "{{ image_label | default('org.airshipit.build=community') }}"
|
||||||
NO_PROXY: "{{ proxy.noproxy }}"
|
NO_PROXY: "{{ proxy.noproxy }}"
|
||||||
PUSH_IMAGE: "true"
|
PUSH_IMAGE: "true"
|
||||||
@ -62,4 +63,5 @@
|
|||||||
USE_PROXY: "{{ proxy.enabled | lower }}"
|
USE_PROXY: "{{ proxy.enabled | lower }}"
|
||||||
WORKDIR: "{{ image_work_dir | default('manifests') }}"
|
WORKDIR: "{{ image_work_dir | default('manifests') }}"
|
||||||
PROFILE: "{{ image_profile_dir | default('') }}"
|
PROFILE: "{{ image_profile_dir | default('') }}"
|
||||||
|
loop: "{{ image_tag|flatten(levels=1) }}"
|
||||||
become: True
|
become: True
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
secret: airship_image_builder_airshipit_github_key
|
secret: airship_image_builder_airshipit_github_key
|
||||||
pass-to-parent: true
|
pass-to-parent: true
|
||||||
|
|
||||||
# Run the default build job 1.18
|
# Run the build job 1.18
|
||||||
- job:
|
- job:
|
||||||
name: airship-image-builder-build-k8s-1.18
|
name: airship-image-builder-build-k8s-1.18
|
||||||
nodeset: airship-image-builder-single-node
|
nodeset: airship-image-builder-single-node
|
||||||
@ -20,7 +20,9 @@
|
|||||||
post-run: playbooks/airship-image-builder-collect-logs.yaml
|
post-run: playbooks/airship-image-builder-collect-logs.yaml
|
||||||
vars:
|
vars:
|
||||||
image_profile_dir: k8s-1.18
|
image_profile_dir: k8s-1.18
|
||||||
|
image_tag:
|
||||||
|
- "k8s-1.18-latest"
|
||||||
|
- "k8s-1.18-FAKE-SHA-TEST"
|
||||||
# Run the build job 1.19
|
# Run the build job 1.19
|
||||||
- job:
|
- job:
|
||||||
name: airship-image-builder-build-k8s-1.19
|
name: airship-image-builder-build-k8s-1.19
|
||||||
@ -32,6 +34,9 @@
|
|||||||
post-run: playbooks/airship-image-builder-collect-logs.yaml
|
post-run: playbooks/airship-image-builder-collect-logs.yaml
|
||||||
vars:
|
vars:
|
||||||
image_profile_dir: k8s-1.19
|
image_profile_dir: k8s-1.19
|
||||||
|
image_tag:
|
||||||
|
- "k8s-1.19-latest"
|
||||||
|
- "k8s-1.19-FAKE-SHA-TEST"
|
||||||
|
|
||||||
# Run the build job 1.21
|
# Run the build job 1.21
|
||||||
- job:
|
- job:
|
||||||
@ -44,8 +49,11 @@
|
|||||||
post-run: playbooks/airship-image-builder-collect-logs.yaml
|
post-run: playbooks/airship-image-builder-collect-logs.yaml
|
||||||
vars:
|
vars:
|
||||||
image_profile_dir: k8s-1.21
|
image_profile_dir: k8s-1.21
|
||||||
|
image_tag:
|
||||||
|
- "k8s-1.21-latest"
|
||||||
|
- "k8s-1.21-FAKE-SHA-TEST"
|
||||||
|
|
||||||
# Tag default job with 1.18
|
# Publish Job 1.18
|
||||||
- job:
|
- job:
|
||||||
name: airship-image-builder-publish-k8s-1.18
|
name: airship-image-builder-publish-k8s-1.18
|
||||||
parent: airship-image-builder-build-k8s-1.18
|
parent: airship-image-builder-build-k8s-1.18
|
||||||
@ -58,9 +66,11 @@
|
|||||||
- name: image_builder_quay_creds
|
- name: image_builder_quay_creds
|
||||||
secret: image_builder_quay_creds
|
secret: image_builder_quay_creds
|
||||||
vars:
|
vars:
|
||||||
image_tag: "k8s-1.18-latest"
|
image_tag:
|
||||||
|
- "k8s-1.18-latest"
|
||||||
|
- "k8s-1.18-{{ zuul.newrev }}"
|
||||||
|
|
||||||
# Tag the 1.19 job with 1.19
|
# Publish Job 1.19
|
||||||
- job:
|
- job:
|
||||||
name: airship-image-builder-publish-k8s-1.19
|
name: airship-image-builder-publish-k8s-1.19
|
||||||
parent: airship-image-builder-build-k8s-1.19
|
parent: airship-image-builder-build-k8s-1.19
|
||||||
@ -73,9 +83,11 @@
|
|||||||
- name: image_builder_quay_creds
|
- name: image_builder_quay_creds
|
||||||
secret: image_builder_quay_creds
|
secret: image_builder_quay_creds
|
||||||
vars:
|
vars:
|
||||||
image_tag: "k8s-1.19-latest"
|
image_tag:
|
||||||
|
- "k8s-1.19-latest"
|
||||||
|
- "k8s-1.19-{{ zuul.newrev }}"
|
||||||
|
|
||||||
# Tag the 1.21 job with 1.21
|
# Publish Job 1.21
|
||||||
- job:
|
- job:
|
||||||
name: airship-image-builder-publish-k8s-1.21
|
name: airship-image-builder-publish-k8s-1.21
|
||||||
parent: airship-image-builder-build-k8s-1.21
|
parent: airship-image-builder-build-k8s-1.21
|
||||||
@ -88,31 +100,12 @@
|
|||||||
- name: image_builder_quay_creds
|
- name: image_builder_quay_creds
|
||||||
secret: image_builder_quay_creds
|
secret: image_builder_quay_creds
|
||||||
vars:
|
vars:
|
||||||
image_tag: "k8s-1.21-latest"
|
image_tag:
|
||||||
|
- "k8s-1.21-latest"
|
||||||
# Tag the 1.18 job with zuul rev tag
|
- "k8s-1.21-{{ zuul.newrev }}"
|
||||||
- job:
|
|
||||||
name: airship-image-builder-publish-commit-k8s-1.18
|
|
||||||
parent: airship-image-builder-publish-k8s-1.18
|
|
||||||
vars:
|
|
||||||
image_tag: "k8s-1.18-{{ zuul.newrev }}"
|
|
||||||
|
|
||||||
# Tag the 1.19 job with zuul rev tag
|
|
||||||
- job:
|
|
||||||
name: airship-image-builder-publish-commit-k8s-1.19
|
|
||||||
parent: airship-image-builder-publish-k8s-1.19
|
|
||||||
vars:
|
|
||||||
image_tag: "k8s-1.19-{{ zuul.newrev }}"
|
|
||||||
|
|
||||||
- nodeset:
|
- nodeset:
|
||||||
name: airship-image-builder-single-node
|
name: airship-image-builder-single-node
|
||||||
nodes:
|
nodes:
|
||||||
- name: primary
|
- name: primary
|
||||||
label: ubuntu-bionic-32GB
|
label: ubuntu-bionic-32GB
|
||||||
|
|
||||||
# Tag the 1.21 job with zuul rev tag
|
|
||||||
- job:
|
|
||||||
name: airship-image-builder-publish-commit-k8s-1.21
|
|
||||||
parent: airship-image-builder-publish-k8s-1.21
|
|
||||||
vars:
|
|
||||||
image_tag: "k8s-1.21-{{ zuul.newrev }}"
|
|
@ -12,7 +12,7 @@
|
|||||||
image_config_dir: manifests
|
image_config_dir: manifests
|
||||||
image_prefix: airshipit
|
image_prefix: airshipit
|
||||||
image_label: org.airshipit.build=community
|
image_label: org.airshipit.build=community
|
||||||
image_tag: latest
|
image_tag: [latest]
|
||||||
check:
|
check:
|
||||||
jobs:
|
jobs:
|
||||||
- airship-image-builder-build-k8s-1.18
|
- airship-image-builder-build-k8s-1.18
|
||||||
@ -23,16 +23,12 @@
|
|||||||
- airship-image-builder-build-k8s-1.18
|
- airship-image-builder-build-k8s-1.18
|
||||||
- airship-image-builder-build-k8s-1.19
|
- airship-image-builder-build-k8s-1.19
|
||||||
- airship-image-builder-build-k8s-1.21
|
- airship-image-builder-build-k8s-1.21
|
||||||
|
|
||||||
post:
|
post:
|
||||||
jobs:
|
jobs:
|
||||||
- airship-image-builder-upload-git-mirror
|
- airship-image-builder-upload-git-mirror
|
||||||
- airship-image-builder-publish-k8s-1.18
|
- airship-image-builder-publish-k8s-1.18
|
||||||
- airship-image-builder-publish-k8s-1.19
|
- airship-image-builder-publish-k8s-1.19
|
||||||
- airship-image-builder-publish-commit-k8s-1.18
|
|
||||||
- airship-image-builder-publish-commit-k8s-1.19
|
|
||||||
- airship-image-builder-publish-k8s-1.21
|
- airship-image-builder-publish-k8s-1.21
|
||||||
- airship-image-builder-publish-commit-k8s-1.21
|
|
||||||
tag:
|
tag:
|
||||||
jobs:
|
jobs:
|
||||||
- airship-image-builder-upload-git-mirror
|
- airship-image-builder-upload-git-mirror
|
Loading…
Reference in New Issue
Block a user