The release process of a new version of KEDA OLM Operator involves the following:
Look at the last released KEDA version in the releases page: https://github.com/kedacore/keda/releases For example: currently it is 2.8.0
Copy contents of released KEDA yaml file to the resource/keda.yaml
file in this directory.
For example: https://github.com/kedacore/keda/releases/download/v2.8.0/keda-2.8.0.yaml
In keda
directory copy the directory of lastly released version (eg. 2.8.0
) and create a new one (eg. 2.9.0
)
cp -r keda/2.8.0 keda/2.9.0
Update all KEDA CRDs in the newly (eg. 2.9.0
) created directory, get the up-to-date version from the release file mentioned in step 1.
To update the keda.sh_kedacontrollers.yaml
CRD, perform the following steps:
make manifests
cp config/crd/bases/keda.sh_kedacontrollers.yaml keda/2.9.0/manifests/
Update ClusterServiceVersion file in the newly (eg. 2.9.0
) created directory:
- rename the file to respect the version.
mv keda/2.9.0/manifests/keda.v2.8.0.clusterserviceversion.yaml keda/2.9.0/manifests/keda.v2.9.0.clusterserviceversion.yaml
- add new CRDs (if there are any new introduced in KEDA or KEDA OLM Operator)
- update the description and fields in the existing CRDs (if needed), make sure to update it on all places
- update the version reference (eg. locate all occurencies of previous version)
- update the
replaces
field to point to the previous version (eg.2.8.0
) - update
createdAt
field with a new date - update other necessary fields
- bump Go version in go.mod and Dockerfile
- update
go.mod
file versions to matchkedacore/keda
repository versions (subsequently update go.sum) - update necessary dependent packages (based on previous bumps)
- validate the new bundle, eg:
operator-sdk bundle validate ./keda/2.9.0
- test that the bundle is deployable and functional on OpenShift instance and on a vanilla K8s cluster with OLM installed.
git checkout -b release290
git commit -s -a -m 'prepare release 2.9.0'
git push origin release290
Creating a new release in the releases page (https://github.com/kedacore/keda-olm-operator/releases) will trigger a GitHub workflow which will create a new image with the latest code and tagged with the next version (in this example 2.9.0).
Note: The GitHub Container Registry repo with all the different images can be seen here: https://github.com/kedacore/keda-olm-operator/pkgs/container/keda-olm-operator
Create pull request on https://github.com/k8s-operatorhub/community-operators:
- copy the newly created bundle directory from keda-olm-repo (eg.
keda/2.9.0
) tooperators/keda
directory in https://github.com/k8s-operatorhub/community-operators, you should see the previous version over there - send a pull request with this change