Releases: operator-framework/operator-sdk
Releases · operator-framework/operator-sdk
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)
v1.18.1
v1.18.0
v1.18.0
Additions
- Add bundle size validator check for the command
operator-sdk bundle validate
check if the bundle is not bigger than ~4MB and warning the authors if the bundle size is closer to this amount. More info. (#5552) - Add warning check for properties defined in the CSV for the command
operator-sdk bundle validate
warning when found properties annotations in the CSV recommending define these properties inmetadata/properties.yaml
instead. More info. (#5552) - Add support to check for the manifests using the APIs which will be removed in 1.25 and 1.26 Kubernetes versions in the bundle manifests via the commands
operator-sdk bundle validate ./bundle --select-optional name=alpha-deprecated-apis
and consequently tooperator-sdk bundle validate ./bundle --select-optional suite=operatorframework
. Note that is unlike these APIs be present on the bundle. More info. (#5552) - Adds support to bundle operators using image digests instead of tags. (#5567)
Changes
- (java/v1alpha) bumping the java-operator-plugins dependency to v0.2.0.
Bug Fixes
v1.17.0
v1.17.0
Additions
- Now operator-sdk bundle validate also ensures that the
alm-examples
annotation has a valid JSON (More info) Introduction done by upgrading operator-framework/api from the commit54878ea280f7c7402549dae568916dfb330b9262
to the releasev0.11.1
. (#5495) - Added the
hybrid.helm.sdk.operatorframework.io/v1-alpha
plugin, which scaffolds a hybrid helm based operator. For more details on the plugin, please refer https://github.com/operator-framework/helm-operator-plugins/blob/main/docs/tutorial.md. This plugin is alpha and subject to breaking changes. (#5504) - Add resource requests and limits to kube-rbac-proxy. (#5505)
Changes
v1.16.0
v1.16.0
Additions
- For Ansible-based operators, add default resource limits for the manager. (#5274)
- Add annotation to specify the default container. More info here. (#5330)
- Add PHONY targets to Makefile. (#5330)
- Add
# TODO(user): Configure the resources accordingly based on the project requirements.
into the fileconfig/manager/manager.yaml
to make this requirement clear for users. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/. (#5330) - For Golang-based projects, added
ignore-not-found
flag to theuninstall
andundeploy
Makefile targets. This change allowsmake undeploy
andmake install
to continue if Kustomize encounters a missing resource. You can invoke this feature by callingmake undeploy ignore-not-found=true
. (#5330) - Add new optional validator Good Practices. You are able to test your bundle against good practices defined under operator framework solutions by running:
$ operator-sdk bundle validate ./bundle --select-optional name=good-practices OR $ operator-sdk bundle validate ./bundle --select-optional suite=operatorframework
(#5448)
- Add the deprecated APIs optional checker,
alpha-deprecated-apis
, to theoperatorframework
suite. (#5407)
Changes
- Upgrade OPM version that is used by default to 1.19.1 in the generated Makefile so
make catalog-build
also works on OSX. (#5099) - For Ansible-based operators, bumped the
operator_sdk.util
ansible module to 0.3.1. (#5462) - For a more consistent user experience, ensure that all areas that require to be changed are marked by
TODO(user)
. (#5330) - For Helm-based Operators, adopted the same default resource limit values used to scaffold Golang-based projects. (#5330)
- For Golang-based Operators, increase the values used in the default scaffold to define the resource limits usage and make clear the need to optimize its values based on the Operator requirements. (#5330)
Deprecations
- Deprecation of the Optional(stage: alpha) Community Operator bundle validation. Its checks were moved to the external validator. (#5414)
Bug Fixes
- Optional
OperatorHub.io
validator called byoperator-sdk bundle validate ./bundle --select-optional name=operatorhub
now includes a previously missing categoryModernization & Migration
. (#5375) - Improves the validate bundle spec error message to provide a better explanation when invalid service accounts are found. (#5375)
- Improve scaffolding to filter existing multiline code fragments. More info kubernetes-sigs/kubebuilder#2343. (#5330)