Releases: operator-framework/operator-sdk
Releases · operator-framework/operator-sdk
v1.24.0
v1.24.0
Changes
- Bumping java-operator-plugins to v0.6.0. (#6007)
Bug Fixes
- Support test selectors in scorecard-kuttl. This only works if you supply a test name in the config for the entrypoint in the scorecard test config.yaml
In thestages.tests
section add anentrypoint
, in this entrypoint you add the name of the test you want to associate with the selector.
If you have a kuttl test directory calledsmoke
your entrypoint should have- smoke
as an entry. That way scorecard can pass that into the image and kuttl will run the single test. (#6015) operator-sdk run bundle(-upgrade)
: fixed bug that made it so bundles weren't properly upgraded if the channel used in the bundle wasn't in the same channel as the bundle installed viaoperator-sdk run bundle
. Usingoperator-sdk run bundle
will now use a default channel instead of the one in the bundle. (#6042)operator-sdk run bundle(-upgrade)
: fixed bug causingoperator-sdk run bundle-upgrade
andoperator-sdk run bundle ... --index-image=...
to stall indefinitely. (#6040)- For Ansible & Helm-based operators, the generated
Makefile
does not handle convertingaarch64
toarm64
. This prevents it from downloading the appropriate binaries.
This change simply adds a call tosed
to convertaarch64
toarm64
. (#5480)
v1.23.0
v1.23.0
Additions
- (Alpha) New optional validator to help verify if a bundle matches criteria for multiple architecture support. More info: https://olm.operatorframework.io/docs/advanced-tasks/ship-operator-supporting-multiarch/. You can test it out by running
$ operator-sdk bundle validate ./bundle --select-optional name=multiarch
. (#5908) - Add an option,
WatchAnnotationsChanges
, to trigger reconciliations on annotation changes on watched resources. (#5611) - Add a plugin (deploy-image/v1-alpha) for Golang projects that scaffolds the code to deploy and manage an Operand(image). You can test it out by running
operator-sdk --group=example.com --version=v1alpha1 --kind=Memcached --image=memcached:1.6.15-alpine --image-container-command="memcached,-m=64,modern,-v" --image-container-port="11211" --run-as-user="1001" --plugins="deploy-image/v1-alpha"
More info. (#5965) - Add a plugin (grafana/v1-alpha) valid for all languages to help you generate Grafana dashboards. You can test it out by running
operator-sdk edit --plugins=grafana.kubebuilder.io/v1-alpha
More info. (#5965) - Add new golang plugin
go/v4-alpha
which adds support for Apple Silicon(darwin/arm64
). (#5965) - Test containers defined by
config.yaml
can now read the environment variableSCORECARD_STORAGE
to get a storage path defined in theconfig.yaml
. (#5829) - (deploy-image/v1alpha plugin) Add support to generate SDK bundle manifests. (#5997)
- (ansible/v1,helm/v1) Add support for Apple Silicon(
darwin/arm64
). Release Notes. (#5965)
Changes
- Upgrade kube rbac proxy image
gcr.io/kubebuilder/kube-rbac-proxy
fromv0.11.0
tov0.12.0
. More info. (#5903) - (go/v3) Update
controller-tools
from0.9.0
to0.9.2
. More info. (#5965) - (go/v3) Update
controller-runtime
fromv0.12.1
tov0.12.2
and Kubernetes dependencies fromv0.24.0
tov0.24.2
. More info. (#5965) - (go/v3,ansible/v1,helm/v1) Update
gcr.io/kubebuilder/kube-rbac-proxy
from0.12.0
to0.13.0
. More info. (#5965) - Breaking change: (ansible/v1,helm/v1) Upgraded
kustomize
version fromv3.8.7
tov4.5.5
. Release Notes. (#5965) - Update the supported OLM versions to 0.20.0, 0.21.2, 0.22.0. (#6000)
- Moved bundle name validation check to the good-practices validator. You can test it out by running
$ operator-sdk bundle validate ./bundle --select-optional name=good-practices
. (#5908)
Deprecations
- Legacy layout "Kubebuilder 2.x" provided via the go/v2 plugin is officially deprecated. Be aware that since
Apr 2021
, the default layout produced is done via thego/v3
. (More info) Check yourPROJECT
file to make sure that your project layout isgo.kubebuilder.io/v3
, if not please follow the migration guide to upgrade your project. (#5965) - Dropped support for installing
olm
version0.19.1
. (#6000)
Bug Fixes
- For Hybrid Helm (hybrid.helm/v1-alpha) language based operators: Bump Dockerfile Go version to 1.18. (#5772)
- Fix Makefile targets to not download binaries when they are found already. (#5965)
- Remove the option to call
kustomize/v1
plugin alone. If you are looking to use this project as a base for you to generate other plugins, please use Kubebuilder instead. (#5965) - Fix operator-sdk run bundle and upgrade bundle subCommands to allow them to work against Kubernetes versions < 1.19 and vendors like Openshift. (#5973)
- Fixed scorecard testOutput tightly coupling with scorecard storage mountPath. (#5714)
- Fix operator-sdk generate kustomize manifests to respect changes made by users in the config/manifests. (#5960)
- For
operator-sdk run bundle-upgrade
: fix a bug that causedInstallPlan
s occasionally not being approved when attempting to upgrade a bundle. (#5901) - For run bundle-upgrade, generate just the extra FBC of the bundle instead of rendering the entire index and appending bundle contents to it. (#5891)
- Honor
--skip-tls-verify
and--use-http
flags from run bundle(-upgrade). (#5921)
v1.22.2
v1.22.1
v1.22.1
Bug Fixes
- For Hybrid Helm (hybrid.helm/v1-alpha) language based operators: Bump Dockerfile Go version to 1.18. (#5772)
- For
operator-sdk run bundle-upgrade
: fix a bug that causedInstallPlan
s occasionally not being approved when attempting to upgrade a bundle. (#5924) - For run bundle-upgrade, generate just the extra FBC of the bundle instead of rendering the entire index and appending bundle contents to it. (#5917)
v1.22.0
v1.22.0
Additions
- For Go (go/v3) and Hybrid Helm (hybrid.helm/v1-alpha) language based operators: Add support for Go 1.18. (#5843)
- For
operator-sdk bundle validate
command and GoodPractices validator (--select-optional name=good-practices
): Add CRD description check validation More info. (#5843) - For
operator-sdk bundle validate
command and GoodPractices validator (--select-optional name=good-practices
): Add a new check to warn authors when permissions to create CRDs are found More info. (#5843) - For Quarkus (quarkus/v1-alpha) language based operator: add bundle generation More info. (#5843)
- For operator-sdk run bundle and bundle-upgrade subcommands: improve message from common scenario faced to add a new bundle More info. (#5843)
- For operator-sdk run bundle and bundle-upgrade subcommands: adds some extra text context to sql statement errors More info. (#5843)
- For Golang/Ansible/Helm/HybridHelm language-based operators (go/v3, ansible/v1, helm/v1, hybrid.helm/v1-alpha, add a new comment with the option
leaderElectionReleaseOnCancel
((More info)[https://github.com/kubernetes-sigs/kubebuilder/pull/2596]). (#5814)
Changes
- Breaking change: For Ansible-based language operators, upgrade
community.kubernetes
from1.2.1
to2.0.1
. IMPORTANT Thecommunity.kubernetes
collection is being renamed to kubernetes.core. As of version 2.0.0, the collection has been replaced by deprecated redirects for all content to kubernetes.core. If you are using FQCNs starting withcommunity.kubernetes
, please update them tokubernetes.core
. (#5846) - For Ansible-based language operators, upgrade
kubernetes.core
from2.2.0
to2.3.1
. IMPORTANT Thecommunity.kubernetes
collection is being renamed to kubernetes.core. As of version 2.0.0, the collection has been replaced by deprecated redirects for all content to kubernetes.core. If you are using FQCNs starting withcommunity.kubernetes
, please update them tokubernetes.core
. (#5846) - For Ansible-based language operators, upgrade
community.kubernetes
from1.2.1
to2.0.1
. IMPORTANT Thecommunity.kubernetes
collection is being renamed to kubernetes.core. As of version 2.0.0, the collection has been replaced by deprecated redirects for all content to kubernetes.core. If you are using FQCNs starting withcommunity.kubernetes
, please update them tokubernetes.core
. (#5846) - Scorecard details got generated for the bundle even if no details were present for the scorecard in the java plugin. This change will add scorecard changes on conditional basis. (#5800)
- Hide --skip-tls flag as it is deprecated. (#5830)
- For Go (go/v3) and Helm Hybrid (hybrid.helm/v1-alpha) language based operators: Upgrade Kubernetes dependencies from
1.23
to1.24
and controller-gen fromv0.8.0
tov0.9.0
. (#5843) - For Helm (helm/v1) and Hybrid Helm (hybrid.helm/v1-alpha) language based operators: Upgrade helm from
v3.6.2
tov3.9.0
. (#5843) - For Ansible (ansible/v1) and Helm (helm/v1) language based operators: change the default value for the manager.option LeaderElectionResourceLock from
comfigmaps
toconfigmapsleases
to allow a safe transition to use the leases option on the future. More info. (#5843) - For Quarkus (quarkus/v1-alpha) language based operator: upgrade dependency from
v0.0.3
tov0.5.1
More info. (#5843) - For Helm Hybrid (hybrid.helm/v1-alpha) language based operator: Upgrade dependency from
v0.0.10
tov0.0.11
. More info. (#5843) - For Go (go/v3, go/v2), Ansible (ansible/v1), Helm (helm/v1), and Helm Hybrid (hybrid.helm/v1-alpha) language based operators: Bump OPM version from
v1.19.1
tov1.23.0
. (#5843) - For Docker images: Bump Go from 1.17 to 1.18. (#5843)
- Docs: Update Go 1.17 references to Go 1.18. (#5843)
- For HybridHelm based-language (hybrid.helm/v1-alpha), update its version from v0.0.10 to v0.0.11-0.20220607145946-5b29693d1612. More info. (#5814)
- Add support for File-Based Catalog to the subcommands operator-sdk run bundle and run bundle-upgrade so that new indexes created by these subcommands are using the new format. Users are able to pass in an index catalog with FBC format via the flag option
--index-image
. (#5809)
Deprecations
- For Ansible/Helm based-operators (ansible/v1, helm/v1), deprecate the flag
crd-version
sincev1beta1
APIs is not longer offered from k8s 1.22 and this flag is deprecated for Golang. (#5815)
Bug Fixes
- Enable
run bundle
command to handle large File-Based Catalog index images by generating the extra FBC with the bundle contents and mounting a ConfigMap with that extra FBC, without regenerating the entire index. (#5868) - For
operator-sdk bundle validate
command and GoodPractices validator (--select-optional name=good-practices
): fix channel naming validation More info. (#5843) - For Golang-based language (go/v2), fix issue introduced by removing the GO111MODULE=on from Dockerfile. (More info)
IMPORTANT NOTE: If you are usinggo/v2
we highly recommend to upgrade your project to latestgo/v3
plugin (default operator-sdk scaffold). Please be aware thatgo/v2
is a plugin which was kept to ensure the backwards compatibility with old Kubebuilder layout produced using its CLI versions <3.0.0
. (More info) Therefore, we are unable to upgrade this plugin continuously and solve tech-debts as it is very likely that it would soon be deprecated by the Kubebuilder community. Note that projects built with this plugin do not produce CRDs for example using v1 APIs so that cannot work on Kubernetes cluster >=1.22
). Please, ensure that you follow our migration guide Migrating from pre-v1.0.0 to latest. (#5814)
v1.21.0
v1.21.0
Additions
- (declarative/v1): For Golang-based operators, copy the channels directory in the Dockerfile (More info). (#4863)
- (go/v3):For Golang-based operators, new README.md will begin to be scaffolded. (#4863)
Changes
- The validate package was inadvertantly exposed, it should be internal as all the other packages are in operator-sdk. The package was moved from
pkg/validate
tointernal/validate
. (#5726) - Changed the default reconcile period of Ansible-based operators to 10h instead of 1m. (#5781)
- Bump the helm-operator-plugins dependency version to v0.0.10. (#5772)
- (go/v3):For Golang-based operators, upgrade controller-runtime and Kubernetes deps. (#4863)
- (kustomize/v1):For Golang/Helm/Ansible-based operators, upgrade kube-rbac-proxy image from v0.8.0 to v0.11.0. (#4863)
- (config-gen alpha command): Updated the image
gcr.io/kubebuilder/kube-rbac-proxy
from v0.5.0 to v0.11.0. (#4863) - (config-gen alpha command): upgrade sigs.k8s.io/controller-tools from v0.7.0 to v0.8.0. (#4863)
- For Golang-based operators, change Makefile targets to replace go get with go install in order to remove deprecation and begin to be prepared to support go 1.18 in the future releases (IMPORTANT: Golang projects still not supporting versions >= 1.18. To know more about what needs to be done in order to support Golang 1.18, see here ). (#4863)
- Update the
operator-sdk run bundle
command to have a more detailed help output, stating the intent of the command and that index-images passed via the--index-image
flag should not already contain the bundle. (#5727)
Bug Fixes
- (go/v3): For Golang-based operators, fix suite test using global cfg (More info). (#4863)
- (go/v3): For Golang-based operators, ensure that the plugin can only be used with its go supported version >= 1.17 (IMPORTANT: Golang projects still not supporting versions >= 1.18. To know more about what needs to be done in order to support Golang 1.18, see here ). (#4863)
- (kustomize/v1): For Golang-based operators, fix the issue to scaffold the same Kind for different groups with multi-group support by using group name in crd/patches and rbac editor/viewer manifests (More info). (#4863)
- (kustomize/v1): For Golang-based operators, fix the issue to scaffold the same Kind for different groups with multi-group support by using group name in crd/patches and rbac editor/viewer manifests (More info). (#4863)
- (go/v3): For Golang-based operators, avoid adding duplicated code fragments (More info). (#4863)
v1.20.1
v1.20.0
v1.20.0
Additions
- New check to warning authors when the CRD description is empty was added to the Good Practices validator. You are able to check it by running
operator-sdk bundle validate ./bundle --select-optional name=good-practices
or$ operator-sdk bundle validate ./bundle --select-optional suite=operatorframework
(More info). (#5552) - For ansible-based operators, proxy server port can be changed with the new
proxy-port
flag, which still defaults to 8888. (#5669) - Previously we added this error to show the user that the Path component is part of proxy server. Now, kubectl made this fix that handles this case and there is no need to throw this error anymore. (#5648)
Changes
- Update the supported OLM versions to 0.18.3, 0.19.1, 0.20.0. (#5684)
Bug Fixes
- Fix: channel naming validator check and move it for the Good Practices validator. You are able to check it by running
operator-sdk bundle validate ./bundle --select-optional name=good-practices
or$ operator-sdk bundle validate ./bundle --select-optional suite=operatorframework
(More info). (#5552) - For ansible-based operators, this change fixes an issue that caused finalizers to fail to run if the watched resource (CR) is deleted during reconciliation. (#5678)
- The related image discovery feature currently only reads environment variables from the manager container. This was causing an error when the deployment labels or container name that was expected were not present. This fixes that by collecting related images from all containers across all deployments.
This change also enables users to use related images in other containers since related images from everywhere will be considered. (#5639)
v1.19.1
v1.19.1
Bug Fixes
- The related image discovery feature currently only reads environment variables from the manager container. This was causing an error when the deployment labels or container name that was expected were not present. This fixes that by collecting related images from all containers across all deployments.
This change also enables users to use related images in other containers since related images from everywhere will be considered. (#5656)
v1.19.0
v1.19.0
Additions
- Add official binary builds for
darwin/arm64
. (#5581) - User is not able to run the
operator-sdk run bundle
in local kind-registry as--skip-tls
flag is deprecated. OPM introduced new flags--skip-tls-verify and --use-http
. This fix will enable the newly introduced flags. (#5617) - For the helm/v1 plugin, parsed the "helm.sdk.operatorframework.io/reconcile-period" value from the custom resource annotations for helm operators. This value is then set to the 'ReconcilePeriod' field of the reconciler to reconcile the cluster in the specified intervals of time. (#5585)
- Added log so that URL verification errors when starting the ansible-operator are not silently swallowed. (#5595)
- Reverted removal of
--skip-tls
flag and mark the flag as deprecated. (#5633)
Changes
- scorecard will now printout test results, if any, even when there is a context timeout. This will allow underlying errors from a test to be shown helping users address the issues. (#5628)
Bug Fixes
- (java/v1alpha) bumped the java-operator-plugins dependency to v0.3.0. (#5588)
- Add the labels defined in the Manager (Operator Deployment) to the ClusterServiceVersions
DeploymentSpecs
to ensure that they will also be provided to the integration with OLM (CSV). (#5533)