Skip to content

Commit

Permalink
Shared github workflows and operator-sdk 1.31
Browse files Browse the repository at this point in the history
This PR switches the operator to use shared build workflows
for building operator, bundle, and catalog/index images.

Additionally operator-sdk is bumped to 1.31. (also includes
bump to OPM and controller-gen)

Jira: OSP-29146
Jira: OSP-26858
  • Loading branch information
dprince authored and stuggi committed Nov 7, 2023
1 parent 78668c2 commit 8c13416
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 213 deletions.
2 changes: 1 addition & 1 deletion .ci-operator.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
build_root_image:
name: tools
namespace: openstack-k8s-operators
tag: ci-build-root-golang-1.19-sdk-1.26
tag: ci-build-root-golang-1.19-sdk-1.31
13 changes: 0 additions & 13 deletions .github/create_bundle.sh

This file was deleted.

17 changes: 0 additions & 17 deletions .github/create_opm_index.sh

This file was deleted.

191 changes: 15 additions & 176 deletions .github/workflows/build-openstack-operator.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: OpenStack Operator image builder
name: openstack operator image builder

on:
push:
Expand All @@ -11,178 +11,17 @@ env:
latesttag: latest

jobs:

check-secrets:
runs-on: ubuntu-latest
steps:
- name: Check secrets are set
id: have-secrets
if: "${{ env.imagenamespace != '' }}"
run: echo "::set-output name=ok::true"
outputs:
have-secrets: ${{ steps.have-secrets.outputs.ok }}

build-openstack-operator:
name: Build openstack-operator image using buildah
runs-on: ubuntu-latest
needs: [check-secrets]
if: needs.check-secrets.outputs.have-secrets == 'true'

steps:
- uses: actions/checkout@v2

- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5

- name: Set latest tag for non main branch
if: "${{ steps.branch-name.outputs.current_branch != 'main' }}"
run: |
echo "latesttag=${{ steps.branch-name.outputs.current_branch }}-latest" >> $GITHUB_ENV
- name: Buildah Action
id: build-openstack-operator
uses: redhat-actions/buildah-build@v2
with:
image: openstack-operator
tags: ${{ env.latesttag }} ${{ github.sha }}
containerfiles: |
./Dockerfile
- name: Push openstack-operator To ${{ env.imageregistry }}
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-openstack-operator.outputs.image }}
tags: ${{ steps.build-openstack-operator.outputs.tags }}
registry: ${{ env.imageregistry }}/${{ env.imagenamespace }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}

build-openstack-operator-bundle:
needs: [ check-secrets, build-openstack-operator ]
name: openstack-operator-bundle
runs-on: ubuntu-latest
if: needs.check-secrets.outputs.have-secrets == 'true'

steps:
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.19.x

- name: Checkout openstack-operator repository
uses: actions/checkout@v2

- name: Install operator-sdk
uses: redhat-actions/openshift-tools-installer@v1
with:
source: github
operator-sdk: '1.26.0'

- name: Log in to Quay Registry
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.imageregistry }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}

- name: Log in to Red Hat Registry
uses: redhat-actions/podman-login@v1
with:
registry: registry.redhat.io
username: ${{ secrets.REDHATIO_USERNAME }}
password: ${{ secrets.REDHATIO_PASSWORD }}

- name: Create bundle image
run: |
pushd "${GITHUB_WORKSPACE}"/.github/
chmod +x "create_bundle.sh"
"./create_bundle.sh"
popd
env:
REGISTRY: ${{ env.imageregistry }}/${{ env.imagenamespace }}
GITHUB_SHA: ${{ github.sha }}
BASE_IMAGE: openstack-operator
IMAGENAMESPACE: ${{ secrets.IMAGENAMESPACE || secrets.QUAY_USERNAME }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5

- name: Set latest tag for non main branch
if: "${{ steps.branch-name.outputs.current_branch != 'main' }}"
run: |
echo "latesttag=${{ steps.branch-name.outputs.current_branch }}-latest" >> $GITHUB_ENV
- name: Build openstack-operator-bundle using buildah
id: build-openstack-operator-bundle
uses: redhat-actions/buildah-build@v2
with:
image: openstack-operator-bundle
tags: ${{ env.latesttag }} ${{ github.sha }}
containerfiles: |
./custom-bundle.Dockerfile.pinned
- name: Push openstack-operator-bundle To ${{ env.imageregistry }}
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-openstack-operator-bundle.outputs.image }}
tags: ${{ steps.build-openstack-operator-bundle.outputs.tags }}
registry: ${{ env.imageregistry }}/${{ env.imagenamespace }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}

build-openstack-operator-index:
needs: [ check-secrets, build-openstack-operator-bundle ]
name: openstack-operator-index
runs-on: ubuntu-latest
if: needs.check-secrets.outputs.have-secrets == 'true'

steps:
- name: Checkout openstack-operator repository
uses: actions/checkout@v2

- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5

- name: Set latest tag for non main branch
if: "${{ steps.branch-name.outputs.current_branch != 'main' }}"
run: |
echo "latesttag=${{ steps.branch-name.outputs.current_branch }}-latest" >> $GITHUB_ENV
- name: Install opm
uses: redhat-actions/openshift-tools-installer@v1
with:
source: github
opm: 'latest'

- name: Log in to Red Hat Registry
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.imageregistry }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}

- name: Create index image
run: |
pushd "${GITHUB_WORKSPACE}"/.github/
chmod +x "create_opm_index.sh"
"./create_opm_index.sh"
popd
env:
REGISTRY: ${{ env.imageregistry }}/${{ env.imagenamespace }}
GITHUB_SHA: ${{ github.sha }}
BUNDLE_IMAGE: openstack-operator-bundle
INDEX_IMAGE_TAG: ${{ env.latesttag }}
INDEX_IMAGE: openstack-operator-index

- name: Push openstack-operator-index To ${{ env.imageregistry }}
uses: redhat-actions/push-to-registry@v2
with:
image: openstack-operator-index
tags: ${{ env.latesttag }} ${{ github.sha }}
registry: ${{ env.imageregistry }}/${{ env.imagenamespace }}
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
call-build-workflow:
uses: openstack-k8s-operators/openstack-k8s-operators-ci/.github/workflows/reusable-build-operator.yaml@main
with:
operator_name: openstack
go_version: 1.19.x
operator_sdk_version: 1.31.0
bundle_dockerfile: ./custom-bundle.Dockerfile.pinned
catalog_extra_bundles_script: ./hack/pin-bundle-images.sh
secrets:
IMAGENAMESPACE: ${{ secrets.IMAGENAMESPACE }}
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}
REDHATIO_USERNAME: ${{ secrets.REDHATIO_USERNAME }}
REDHATIO_PASSWORD: ${{ secrets.REDHATIO_PASSWORD }}
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest

## Tool Versions
KUSTOMIZE_VERSION ?= v3.8.7
CONTROLLER_TOOLS_VERSION ?= v0.10.0
CONTROLLER_TOOLS_VERSION ?= v0.11.1

KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
.PHONY: kustomize
Expand Down Expand Up @@ -252,7 +252,7 @@ ifeq (,$(shell which opm 2>/dev/null))
set -e ;\
mkdir -p $(dir $(OPM)) ;\
OS=$(shell go env GOOS) && ARCH=$(shell go env GOARCH) && \
curl -sSLo $(OPM) https://github.com/operator-framework/operator-registry/releases/download/v1.23.0/$${OS}-$${ARCH}-opm ;\
curl -sSLo $(OPM) https://github.com/operator-framework/operator-registry/releases/download/v1.29.0/$${OS}-$${ARCH}-opm ;\
chmod +x $(OPM) ;\
}
else
Expand Down
2 changes: 1 addition & 1 deletion apis/bases/client.openstack.org_openstackclients.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
controller-gen.kubebuilder.io/version: v0.11.1
creationTimestamp: null
name: openstackclients.client.openstack.org
spec:
Expand Down
2 changes: 1 addition & 1 deletion apis/bases/core.openstack.org_openstackcontrolplanes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
controller-gen.kubebuilder.io/version: v0.11.1
creationTimestamp: null
name: openstackcontrolplanes.core.openstack.org
spec:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
controller-gen.kubebuilder.io/version: v0.11.1
creationTimestamp: null
name: openstackclients.client.openstack.org
spec:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
controller-gen.kubebuilder.io/version: v0.11.1
creationTimestamp: null
name: openstackcontrolplanes.core.openstack.org
spec:
Expand Down

0 comments on commit 8c13416

Please sign in to comment.