Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 35 additions & 2 deletions .zuul.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
---
# TODO: Remove the inlined job definition once
# infrawatch/feature-verification-tests#345 merges.
- job:
name: telemetry-container-image-content-provider-test
parent: cifmw-base-minimal
description: |
Build sg-core and mysqld-exporter container images from the
current change and serve them from a local registry for
dependent jobs.
required-projects:
- name: openstack-k8s-operators/ci-framework
override-checkout: main
- name: openstack-k8s-operators/sg-core
- name: openstack-k8s-operators/mysqld_exporter
run:
- ci/playbooks/container-image-content-provider.yml
vars:
container_images:
- src: "{{ ansible_user_dir }}/src/github.com/openstack-k8s-operators/sg-core"
name: sg-core
update_var: cifmw_update_containers_ceilometersgcoreImage
- src: "{{ ansible_user_dir }}/src/github.com/openstack-k8s-operators/mysqld_exporter"
name: mysqld-exporter
update_var: cifmw_update_containers_ceilometermysqldexporterImage

- project:
name: openstack-k8s-operators/sg-core
templates:
- stf-crc-jobs
github-check:
jobs:
- telemetry-container-image-content-provider-test
- telemetry-openstack-meta-content-provider-master:
override-checkout: main
- functional-tests-osp18:
override-checkout: master
dependencies:
- telemetry-openstack-meta-content-provider-master
- telemetry-container-image-content-provider-test
9 changes: 9 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
IMG ?= quay.io/openstack-k8s-operators/sg-core:latest

.PHONY: docker-build
docker-build: ## Build container image
podman build -t ${IMG} -f build/Dockerfile .

.PHONY: docker-push
docker-push: ## Push container image
podman push ${IMG}
28 changes: 28 additions & 0 deletions ci/playbooks/container-image-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
- name: "Get commit SHA for {{ container_image.name }}"
ansible.builtin.command:
cmd: git show-ref --head --hash head
chdir: "{{ container_image.src }}"
register: _container_sha

- name: "Set image reference for {{ container_image.name }}"
ansible.builtin.set_fact:
_container_image_url: "{{ cifmw_rp_registry_ip }}:5001/{{ container_image.name }}:{{ _container_sha.stdout | trim }}"

- name: "Build {{ container_image.name }}"
ansible.builtin.command:
cmd: >-
make docker-build
IMG={{ _container_image_url }}
chdir: "{{ container_image.src }}"

- name: "Push {{ container_image.name }}"
ansible.builtin.command:
cmd: >-
make docker-push
IMG={{ _container_image_url }}
chdir: "{{ container_image.src }}"

- name: "Record built image {{ container_image.name }}"
ansible.builtin.set_fact:
_built_images: "{{ _built_images | default([]) + [{'name': container_image.name, 'update_var': container_image.update_var, 'url': _container_image_url}] }}"
26 changes: 26 additions & 0 deletions ci/playbooks/container-image-content-provider.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
- name: Build and serve container images from review
hosts: "{{ cifmw_target_host | default('controller') }}"
gather_facts: true
tasks:
- name: Discover registry IP
ansible.builtin.set_fact:
cifmw_rp_registry_ip: "{{ ansible_host }}"

- name: Deploy local registry
ansible.builtin.include_role:
name: registry_deploy

- name: Build and push container images
ansible.builtin.include_tasks: container-image-build.yml
loop: "{{ container_images }}"
loop_control:
loop_var: container_image

- name: Return image URLs and pause for dependent jobs
zuul_return:
data: "{{ _return_data }}"
vars:
_image_overrides: "{{ dict(_built_images | default([]) | map(attribute='update_var') | zip(_built_images | default([]) | map(attribute='url'))) }}"
_registry: "{{ cifmw_rp_registry_ip }}:5001"
_return_data: "{{ {'zuul': {'pause': true}, 'cifmw_crc_additional_insecure_registries': [_registry], 'cifmw_crc_additional_allowed_registries': [_registry]} | combine(_image_overrides) }}"