Add publish jobs for AIAP
Change-Id: I23ea662d4354cdb8ee11d82aeeedf4a5282963db
This commit is contained in:
parent
0c36a47ee3
commit
f9411f40f7
17
playbooks/airship-aiap-build-images.yaml
Normal file
17
playbooks/airship-aiap-build-images.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
- hosts: all
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- docker-install
|
||||||
|
- aiap-build-images
|
17
playbooks/airship-aiap-publish-images.yaml
Normal file
17
playbooks/airship-aiap-publish-images.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
- hosts: all
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- docker-install
|
||||||
|
- aiap-publish-images
|
19
roles/aiap-build-images/tasks/main.yaml
Normal file
19
roles/aiap-build-images/tasks/main.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
- name: Build airship-in-a-pod Images
|
||||||
|
make:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}/tools/airship-in-a-pod"
|
||||||
|
target: images
|
||||||
|
params:
|
||||||
|
DOCKER_REGISTRY: "{{ image_repo }}"
|
||||||
|
DOCKER_IMAGE_TAG: "{{ zuul.change }}"
|
41
roles/aiap-publish-images/tasks/main.yaml
Normal file
41
roles/aiap-publish-images/tasks/main.yaml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
- name: Install python3-docker and python3-requests Modules
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- python3-docker
|
||||||
|
- python3-requests
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: List Docker Images
|
||||||
|
shell: docker image ls
|
||||||
|
|
||||||
|
- name: Push Images
|
||||||
|
block:
|
||||||
|
- name: Login to Image Registry
|
||||||
|
docker_login:
|
||||||
|
username: "{{ airshipctl_image_repo_credentials.username }}"
|
||||||
|
password: "{{ airshipctl_image_repo_credentials.password }}"
|
||||||
|
registry_url: "{{ image_repo }}"
|
||||||
|
|
||||||
|
- name: Push Image with Tags
|
||||||
|
make:
|
||||||
|
chdir: "{{ zuul.project.src_dir }}/tools/airship-in-a-pod"
|
||||||
|
target: images
|
||||||
|
params:
|
||||||
|
DOCKER_REGISTRY: "{{ image_repo }}"
|
||||||
|
DOCKER_IMAGE_TAG: "{{ item }}"
|
||||||
|
PUBLISH: "true"
|
||||||
|
loop:
|
||||||
|
- "latest"
|
||||||
|
- "{{ zuul.newrev }}"
|
@ -1,10 +1,10 @@
|
|||||||
IMAGE_REGISTRY ?= quay.io/airshipit
|
DOCKER_REGISTRY ?= quay.io
|
||||||
IMAGES := infra-builder artifact-setup runner
|
DOCKER_IMAGE_PREFIX ?= airshipit
|
||||||
IMAGE_TAG ?= latest
|
DOCKER_IMAGE_TAG ?= latest
|
||||||
|
IMAGES ?= infra-builder artifact-setup runner
|
||||||
|
PUBLISH ?= false
|
||||||
|
|
||||||
PUSH_IMAGES ?= false
|
.PHONY: help base libvirt $(IMAGES) images test
|
||||||
|
|
||||||
.PHONY: help base libvirt $(IMAGES) build test
|
|
||||||
|
|
||||||
SHELL:=/bin/bash
|
SHELL:=/bin/bash
|
||||||
.ONESHELL:
|
.ONESHELL:
|
||||||
@ -12,34 +12,34 @@ SHELL:=/bin/bash
|
|||||||
help: ## This help.
|
help: ## This help.
|
||||||
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
|
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
|
||||||
|
|
||||||
build: base
|
images: base
|
||||||
build: libvirt
|
images: libvirt
|
||||||
build: $(IMAGES) ## Build the containers.
|
images: $(IMAGES) ## Build the containers.
|
||||||
|
|
||||||
base:
|
base:
|
||||||
docker build --tag $(IMAGE_REGISTRY)/aiap-base:$(IMAGE_TAG) --build-arg BASE_IMAGE=ubuntu:20.04 ./base
|
docker build --tag $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/aiap-base:$(DOCKER_IMAGE_TAG) --build-arg BASE_IMAGE=ubuntu:20.04 ./base
|
||||||
ifeq (true, $(PUSH_IMAGES))
|
ifeq (true, $(PUBLISH))
|
||||||
docker push $(IMAGE_REGISTRY)/aiap-base:$(IMAGE_TAG)
|
docker push $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/aiap-base:$(DOCKER_IMAGE_TAG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libvirt:
|
libvirt:
|
||||||
docker build --tag $(IMAGE_REGISTRY)/libvirt:$(IMAGE_TAG) ./libvirt
|
docker build --tag $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/libvirt:$(DOCKER_IMAGE_TAG) ./libvirt
|
||||||
ifeq (true, $(PUSH_IMAGES))
|
ifeq (true, $(PUBLISH))
|
||||||
docker push $(IMAGE_REGISTRY)/libvirt:$(IMAGE_TAG)
|
docker push $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/libvirt:$(DOCKER_IMAGE_TAG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(IMAGES):
|
$(IMAGES):
|
||||||
docker build --tag $(IMAGE_REGISTRY)/aiap-$@:$(IMAGE_TAG) ./$@
|
docker build --tag $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/aiap-$@:$(DOCKER_IMAGE_TAG) ./$@
|
||||||
ifeq (true, $(PUSH_IMAGES))
|
ifeq (true, $(PUBLISH))
|
||||||
docker push $(IMAGE_REGISTRY)/aiap-$@:$(IMAGE_TAG)
|
docker push $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/aiap-$@:$(DOCKER_IMAGE_TAG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
test: test-airshipctl test-treasuremap
|
test: test-airshipctl test-treasuremap
|
||||||
|
|
||||||
test-airshipctl: build
|
test-airshipctl: images
|
||||||
kubectl delete pod airship-in-a-pod || true
|
kubectl delete pod airship-in-a-pod || true
|
||||||
kustomize build ./examples/airshipctl | kubectl apply -f -
|
kustomize build ./examples/airshipctl | kubectl apply -f -
|
||||||
|
|
||||||
test-treasuremap: build
|
test-treasuremap: images
|
||||||
kubectl delete pod airship-in-a-pod || true
|
kubectl delete pod airship-in-a-pod || true
|
||||||
kustomize build ./examples/airshipctl | kubectl apply -f -
|
kustomize build ./examples/airshipctl | kubectl apply -f -
|
||||||
|
@ -59,6 +59,13 @@
|
|||||||
- ^.*\.md$
|
- ^.*\.md$
|
||||||
- ^\.github/.*$
|
- ^\.github/.*$
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: airship-aiap-build-image
|
||||||
|
nodeset: airship-airshipctl-single-node
|
||||||
|
run: playbooks/airship-aiap-build-images.yaml
|
||||||
|
files:
|
||||||
|
- ^tools/airship-in-a-pod/.*$
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: airship-airshipctl-validate-site-docs
|
name: airship-airshipctl-validate-site-docs
|
||||||
timeout: 6600
|
timeout: 6600
|
||||||
@ -239,3 +246,15 @@
|
|||||||
pass-to-parent: true
|
pass-to-parent: true
|
||||||
vars:
|
vars:
|
||||||
image: quay.io/airshipit/airshipctl
|
image: quay.io/airshipit/airshipctl
|
||||||
|
- job:
|
||||||
|
name: airship-aiap-publish-image
|
||||||
|
nodeset: airship-airshipctl-single-node
|
||||||
|
run: playbooks/airship-aiap-publish-images.yaml
|
||||||
|
files:
|
||||||
|
- ^tools/airship-in-a-pod/.*$
|
||||||
|
secrets:
|
||||||
|
- name: airshipctl_image_repo_credentials
|
||||||
|
secret: airshipctl_image_repo_credentials
|
||||||
|
pass-to-parent: true
|
||||||
|
vars:
|
||||||
|
image: quay.io/airshipit/airshipctl
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
- airship-airshipctl-validate-site-docs
|
- airship-airshipctl-validate-site-docs
|
||||||
# - airship-airshipctl-functional-existing-k8s TODO: Enable this when functional tests exist, and a cluster is up
|
# - airship-airshipctl-functional-existing-k8s TODO: Enable this when functional tests exist, and a cluster is up
|
||||||
- airship-airshipctl-gate-script-runner-docker
|
- airship-airshipctl-gate-script-runner-docker
|
||||||
|
- airship-aiap-build-image
|
||||||
experimental:
|
experimental:
|
||||||
jobs:
|
jobs:
|
||||||
- airship-airshipctl-docker-kubebench-conformance
|
- airship-airshipctl-docker-kubebench-conformance
|
||||||
@ -53,11 +54,13 @@
|
|||||||
- airship-airshipctl-build-image
|
- airship-airshipctl-build-image
|
||||||
- airship-airshipctl-validate-site-docs
|
- airship-airshipctl-validate-site-docs
|
||||||
- airship-airshipctl-gate-script-runner
|
- airship-airshipctl-gate-script-runner
|
||||||
|
- airship-aiap-build-image
|
||||||
|
|
||||||
# - airship-airshipctl-functional-existing-k8s TODO: Enable this when functional tests exist, and a cluster is up
|
# - airship-airshipctl-functional-existing-k8s TODO: Enable this when functional tests exist, and a cluster is up
|
||||||
post:
|
post:
|
||||||
jobs:
|
jobs:
|
||||||
- airship-airshipctl-publish-image
|
- airship-airshipctl-publish-image
|
||||||
|
- airship-aiap-publish-image
|
||||||
- airship-airshipctl-upload-git-mirror
|
- airship-airshipctl-upload-git-mirror
|
||||||
promote:
|
promote:
|
||||||
jobs:
|
jobs:
|
||||||
|
Loading…
Reference in New Issue
Block a user