Releases: operator-framework/operator-sdk
Releases · operator-framework/operator-sdk
v1.4.0
v1.4.0
Additions
- For Helm-based operators, added Liveness and Readiness probe by default using
healthz.Ping. (#4326) - For Ansible-based operators, added Liveness and Readiness probe by default using
healthz.Ping. (#4326) - For Ansible/Helm-based operators, added new flag
--health-probe-bind-addressto set the health probe address. (#4326) - (ansible/v1, helm/v1) Added plugin objects for the
manifestsandscorecardphase 2 plugins. (#4419) - For Ansible-based and Helm-based operators, as well as for the Operator SDK and the (custom) scorecard tests, the Docker base images are pinned to improve the reproducibility of builds using Docker. (#4417)
Changes
- Changed the suggested finalizer format to
<qualified-group>/<finalizer-name>. (#4472) - Upgraded the
kudobuilder/kuttlbase image version in thescorecard-test-kuttlimage to v0.8.0. (#4391) - (go/v2) Changed
goPROJECT plugin object tomanifestsandscorecardobjects (.sdk.operatorframework.iosuffix). (#4419) - (ansible/v1, helm/v1) Post-fixed positional directory argument
.indocker-buildmake target to align withpodman. (#4466) - For Ansible-based operators, the Python version has been updated to a newer version, from 3.6 to 3.8 to take advantage of performance improvements, language additions, security updates and generally better availability for local development. (#4413)
Deprecations
- For Ansible-based operators, the
/pingendpoint is deprecated. Use/healthzinstead. (#4326)
Bug Fixes
- Project version now determines how package name is retrieved for a project. (#4431)
run bundle-upgradenow handles error gracefully when a previous operator version doesn't exist. (#4451)run bundleandrun bundle-upgradenow validate the value passed to the hidden flag--modebefore running a bundle. (#4462)- For Go-based projects,
generate <bundle|packagemanifests>subcommands now consider package and type names when parsing Go API types files to generate a CSV'sowned.customresourcedefinitions, such that types in different packages and files will not overwrite each other. (#4445) - Bumped operator-framework/api to prevent
operator-sdk bundle validatefrom exiting non-0 when validation emits only warnings. (#4458) - Fixed panic when "operator-sdk bundle validate" fails. (#4386)
- Update containerd dependency to correctly handle running the Operator SDK CLI on Apple Silicon. (#4359)
- Fixed invalid object names generated for long package names passed to
run packagemanifests&run bundle. (#4471) - Corrected the download URL for helm-operator and ansible-operator in their respective project types. (#4407)
- Fixed the order of helm-operator, ansible-operator, and kustomize binary checks in the Makefile. (#4407)
- Fixed a bug that caused the Helm operator to remove the finalizer without doing a helm uninstall. (#3431)
- For Helm-based operators, do not add owner references to resources that contain the Helm annotation: 'helm.sh/resource-policy: keep'. (#4389)
v1.3.1
v1.3.1
Bug Fixes
- Project version now determines how package name is retrieved for a project. (#4443)
run bundle-upgradenow handles error gracefully when a previous operator version doesn't exist. (#4451)- For Go-based projects,
generate <bundle|packagemanifests>subcommands now consider package and type names when parsing Go API types files to generate a CSV'sowned.customresourcedefinitions, such that types in different packages and files will not overwrite each other. (#4480) - Bumped operator-framework/api to prevent
operator-sdk bundle validatefrom exiting non-0 when validation emits only warnings. (#4458) - Fixed panic when "operator-sdk bundle validate" fails. (#4386)
- Fixed invalid object names generated for long package names passed to
run packagemanifests&run bundle. (#4476) - Corrected the download URL for helm-operator and ansible-operator in their respective project types. (#4412)
- Fixed the order of helm-operator, ansible-operator, and kustomize binary checks in the Makefile. (#4412)
- Fixed a bug that caused the Helm operator to remove the finalizer without doing a helm uninstall. (#4457)
v1.3.0
This is a big release, namely that a new go CLI plugin go/v3 has been introduced and is now the default when operator-sdk init is run. All projects initialized with previous operator-sdk versions (which use go/v2) are still and will continue to be supported until v2.0.0. Some of the biggest updates that come with this new plugin:
- Kubernetes v1.19 support
- v1 CRD and webhook configuration support by default (v1beta1 is still supported)
- Liveness and readiness probes by default
- An option to use controller-runtime's component config to configure your operator
Additionally, the new run bundle-upgrade lets you test bundled operator upgrades in-cluster and is available to all project types. Enjoy!
Additions
- Added OLM bindata for the 0.17.0 release version. (#4242)
- Added
order=<int>marker fields to CSV markers. (#4254) - In Ansible-based operators, added the
ansible_operator_build_infometric to instrument commit and version information. (#4220) - In Helm-based operators, added the
helm_operator_build_infometric to instrument commit and version information. (#4220) - Added the
--package <name>flag to allgeneratesubcommands. This flag is required bygenerate <bundle|packagemanifests>when run outside of a project. (#4074) - Added the
run bundle-upgradesubcommand to automate testing upgrades of an operator from one version to another using OLM. (#4271) - (go/v2) Added the command
òperator-sdk editwhich allows users edit the project layout to support multi-group. (#4156)
Changes
- (go/v2) Bumped controller-runtime from v0.6.3 to v0.6.4. (#4282)
- Go CLI plugin go/v3 is now the default. (#4307)
- Bumped
operator-sdkbinary dependencies to their k8s v1.19 equivalents. (#4294) - Updated helm-operator's Helm dependency to v3.4.1. (#4259)
Bug Fixes
- Made the
cleanupcommand's error handling more robust on deletion and "not found" events. (#4303) - Fixed the documented
packagemanifestsmake recipe. (#4303) generate kustomize manifestswill now (re)generate a baseClusterServiceVersionmanifest with a valid name. (#4276)- (ansible/v1) Pinned all top level Python requirements. This fixes a bug that erroneously installed Ansible 2.10.z instead of Ansible 2.9.z. (#4321)
- Refactored the
generate bundle|packagemanifestcommands to generate bundles/package manifest data outside of projects. (#4074) - (go/v2) Removed unused import for defaulting webhooks scaffolded by
create webhook(kubebuilder#1718). (#4156) - (go/v2) Allow owner to not be specified in generated licenses (kubebuilder#1749). (#4156)
- (go/v2) Fixed controller imports scaffolded by
create apiwhen--resource=false(kubebuilder#1770). (#4215)
v1.2.0
Additions
- Enabled definition of custom categories encoded as JSON file(s) for the
operatorhubvalidator. (#4109)
Changes
- Improved
ansible-operatorandhelm-operatorhelp text. (#4187) - When generating bundles and package manifests, add all resources supported by OLM. (#4137)
olmandrunsubcommands will print aggregated resource errors when either OLM or an operator fail to install, respectively. (#3787)- Upgraded
sigs.k8s.io/controller-runtimefromv0.6.2tov0.6.3. (#4062)
Bug Fixes
- Set a generated CSV's
.spec.webhookdefinitions[].{targetPort,containerPort}values from webhookServiceports. (#4178) - Excluded
github.com/spf13/[email protected]to fix CVE-2018-1098. (#4199) - Added the
kustomizemake dependency to thebundletarget scaffolded for Golang projects to installkustomizebefore running. (#4090) - Fixed an issue in
operator-sdk cleanupthat causedCatalogSourceandOperatorGroupobjects not to be cleaned up if a previousoperator-sdk runcommand failed. (#4089) - Fixed an issue during CSV generation that caused incorrect paths to be used in
specDescriptorsandstatusDescriptors. (#4166) - In Helm projects, fixed operator RBAC permissions to support the OwnerReferencesPermissionEnforcement admission plugin by adding a
<resource>/finalizersrule in the operator's role. (#4105) - Removed redundant platform information from
operator-sdk versionoutput. (#4083) - Format version string passed to
olmsubcommands so releases download correctly. (#4181) - In Go, Ansible, and Helm operators, updated the
metrics-readerClusterRole to userbac.authorization.k8s.io/v1to be consistent with all other scaffolded RBAC resources. (#4136) - Modified
olm-status-descriptors-testto only validate if the status-descriptors are present in CRD. (#4009) - Webhook container port specified in CSV defaults to
443if not specified by the user. (#4109) - For Golang based operators with multigroup support, fixed
envtest.Environment.CRDDirectoryPathsin scaffoldedcontrollers/<group>/suite_test.gofiles. (#4062)
v1.1.0
v1.1.0
Additions
- For Ansible-based Operator, add
.gitignorefile. (#3806) - Added the
--select-optionalflag tobundle validateto pass a label selector that runs any matching optional validator on top of required validators, and--list-optionalto display optional validators, their selectors, and a short explanation of what each does. (#3719) - Added the OperatorHub.io optional validator to
bundle validate, which can be run by setting--select-optional=name=operatorhubor--select-optional=suite=operatorframework. (#3719) - Added the
run bundlecommand. (#3988) - Added new base image assets containing the Operator-SDK CLI at quay.io/repository/operator-framework/operator-sdk. (#3902)
- Removed stale unix sockets. This allows for smoother initialization during the start-up of an Ansible operator, as each operator will clean up its sockets during termination. (#3721)
- Added feature to the command
operator-sdk olm installthat allows installing OLM version 0.15.1 without fetching the manifest from Github. (#3906) - Re-enabled s390x docker image builds. (#3855)
Changes
- In
ansible-operatorandhelm-operatorrun commands, print git commit when logging version information. (#3849) - For Ansible/Helm, fix multigroup message. (#3822)
- For Helm-based Operators, cleanup the file
.gitignorein order to not have invalid instructions for the type. (#3810) - Updated scorecard-test-kuttl image to kuttl v0.6.1. (#3659)
- Updated scorecard-test-kuttl image to kuttl v0.5.2. (#3659)
- Updated scorecard-test-kuttl image to use latest kuttl. (#3711)
- Updated the Makefile to build multiarch versions of the scorecard-test-kuttl and custom-scorecard-tests images to match the scorecard-test image. (#3821)
Bug Fixes
generate <bundle|packagemanifests>will populate a CSV'swebhookDefinition[].deploymentNameby selecting an input Deployment via its PodTemplate labels using a webhook Service's label selectors, defaulting to "<service.metadata.name>-service" if none is selected. (#3761)- Resolves an issue with default channel bundle validation. The default channel label is not required. (#3953)
- Fixed debug logging in the
bundle validatesubcommand ofoperator-sdk. (#3795) generate <bundle|packagemanifests>now generates a CSV base with only theAllNamespacesinstall mode supported by default, since projects are cluster-scoped by default. (#3746)generate <bundle|packagemanifests>now defaults a CSV'sspec.webhookDefinition[].admissionReviewVersionsto []string{"v1beta1"}, as an empty or null value is invalid. (#3903)generate <bundle|packagemanifests>now defaults a CSV'sspec.webhookDefinition[].sideEffectsto "None", as an empty or null value is invalid. (#3903)- The scaffolded manager deployment for Ansible-based Operators now has the
ANSIBLE_GATHERINGoption set toexplicit. Additionally, if theANSIBLE_GATHERINGenvironment variable is set to explicit when running a role directly, the--role-skip-factsargument will be passed toansible-runner. (#3933) - Added kubernetes authentication clients to
ansible-operatorandhelm-operatorto enable authentication to gcp, azure, etc. kubernetes clusters. (#3974) - Fixed a bug with
run packagemanifeststhat caused the underlying registry pod to fail to start. Changed the registry pod image fromquay.io/openshift/origin-operator-registry:latesttoquay.io/operator-framework/upstream-registry-builder:latest. (#3856) - When generating bundles and packagemanifests, remove
metadata.namespacefrom namespaced resources when writing them into themanifestsdirectory to avoid validation errors. (#3813) - Fixed a bug that caused the Helm operator not to set the
InstallSuccessfulandUpgradeSuccessfulstatus reasons when the status update fails during installation and upgrade. (#3735) - Bumped helm and k8s dependencies to v3.3.4 and v1.18.8 to fix this upstream bug. (#3936)
- In Anisble projects, fix operator permissions for Openshift deployments by adding a
<resource>/finalizersrule in the operator's role. (#3779) - In Go projects, resolved an issue that caused failing tests by changing the Makefile's
testtarget to automatically download and configure the necessaryenvtestbinaries. (#3983) - Inform user to verify the presence of olm deployment manifests in github when
olm installcommand gives a 404 http error. (#3907) - Prevent
run packagemanifestsfrom creating an OperatorGroup if one already exists in a namespace, and use that OperatorGroup if its target namespaces exactly match those passed in--install-mode. See #3681. (#3689) - Resolved an issue that caused bundle validation to unnecessarily restrict CSV names to a specific format. Now, only DNS-1123 subdomain validity is verified. (#3887)
- Stop reconciling tasks when the event raised is a rescue in Ansible-based Operators. More info: Bugzilla 1856714. (#3650)
- Fix an issue in
run packagemanifestswhere the registry server writes files in locations that require root. (#3867) - When scaffolding scorecard configurations, use release versions instead of
latestin image tags. (#3845)
v1.0.1
v1.0.1
Bug Fixes
- Fixed a bug with
run packagemanifeststhat caused the underlying registry pod to fail to start. Changed the registry pod image fromquay.io/openshift/origin-operator-registry:latesttoquay.io/operator-framework/upstream-registry-builder:latest. (#3895) - Resolved an issue that caused bundle validation to unnecessarily restrict CSV names to a specific format. Now, only DNS-1123 subdomain validity is verified. (#3888)
- Fix an issue in
run packagemanifestswhere the registry server writes files in locations that require root. (#3895) - Fixed debug logging in the
bundle validatesubcommand ofoperator-sdk. (#3899) generate <bundle|packagemanifests>now generates a CSV base with only theAllNamespacesinstall mode supported by default, since projects are cluster-scoped by default. (#3899)- When generating bundles and packagemanifests, remove
metadata.namespacefrom namespaced resources when writing them into themanifestsdirectory to avoid validation errors. (#3899) - Fixed a bug that caused the Helm operator not to set the
InstallSuccessfulandUpgradeSuccessfulstatus reasons when the status update fails during installation and upgrade. (#3899) - In Helm projects, fix operator permissions for Openshift deployments by adding a
<resource>/finalizersrule in the operator's role. (#3899) - Prevent
run packagemanifestsfrom creating an OperatorGroup if one already exists in a namespace, and use that OperatorGroup if its target namespaces exactly match those passed in--install-mode. See #3681. (#3899) - Stop reconciling tasks when the event raised is a rescue in Ansible-based Operators. More info: Bugzilla 1856714. (#3650)
- When scaffolding scorecard configurations, use release versions instead of
latestin image tags. (#3899) generate <bundle|packagemanifests>will populate a CSV'swebhookDefinition[].deploymentNameby selecting an input Deployment via its PodTemplate labels using a webhook Service's label selectors, defaulting to "<service.metadata.name>-service" if none is selected. (#3904)
v0.19.4
v0.19.4
Changes
- In
ansible-operatorandhelm-operator, print git commit when logging version information. (#3850)
Bug Fixes
- Resolved an issue that caused bundle validation to unnecessarily restrict CSV names to a specific format. Now, only DNS-1123 subdomain validity is verified. (#3886)
- Fixed a bug with
run packagemanifeststhat caused the underlying registry pod to fail to start. Changed the registry pod image fromquay.io/openshift/origin-operator-registry:latesttoquay.io/operator-framework/upstream-registry-builder:latest. (#3894) - Fix an issue in
run packagemanifestswhere the registry server writes files in locations that require root. (#3894) - Fix the migration guide link in the deprecation message of
operator-sdk. (#3876)
v0.19.3
v0.19.3
Changes
- Breaking change: Changed the
go.operator-sdk.ioplugin to only write apluginsPROJECT field and run the OLM integration plugin if the project version is "3-alpha" or above. (#3716) - Fix CVE-2020-14040 by upgrading to golang.org/x/text v0.3.3. (#3459)
Bug Fixes
- Fixed debug logging in the
bundle validatesubcommand ofoperator-sdk. (#3812) - Fixed incorrect (cluster) role name assignments in generated CSVs #3600. (#3714)
- Fixed issue that caused scorecard to fail loading local bundle due to a bug search method for the bundle metadata directory. (#3829)
- Stop reconciling tasks when the event raised is a rescue in Ansible-based Operators. More info: Bugzilla 1856714. (#3727)
v1.0.0
v1.0.0
Since v0.19
Additions
- The Ansible and Helm operators have a
versionsubcommand that prints the version information for theansible-operatorandhelm-operatorbinaries. (#3596) - Added
--ansible-argscommand-line flag that allows users to specify arbitrary CLI arguments for Ansible-based operators that are passed through ansible-runner. For example, passing--ansible-vaultas an arbitrary argument allows user to store sensitive data in encrypted files. (#3374) generate bundleandgenerate packagemanifestswill write RBAC objects (Roles, RoleBindings, their Cluster equivalents, and ServiceAccounts) not bound to CSV deployment service accounts to the resulting manifests directory. (#3610)- The
snakeCaseParametersoption has been added to thewatches.yamlfor Ansible-based Operators. This allows the user to configure whether parameters in the resource spec are automatically converted fromcamelCasetosnake_case. The default istrue, so there is no behavior change for existing operators, but it can now be disabled. (#3245) - Added
projectNamekey to the PROJECT config file (v3-alpha+). (#3438) - Added the
--from-versionflag togenerate packagemanifests. (#3509) - The
generate bundlecommand now adds scorecard bundle metadata tobundle.Dockerfileandannotations.yamlif--overwriteis set (the default in a project'sMakefile) or both files do not exist. (#3474) - Added
config/scorecardkustomize scaffolds toinit. (#3490)
Changes
- Breaking change: Changed the
go.sdk.operatorframework.ioplugin to only write apluginsPROJECT field and run the OLM integration and scorecard plugins if the project version is "3-alpha" or above. (#3697) - Breaking change: Added a scaffold marker
+kubebuilder:scaffold:manifestskustomizesamplestoconfig/samples/kustomization.yamlthat allows updates without overwriting the entire file. (#3645) - Breaking change: Added
IMGargument tobundlemake rule that accepts an operator image tag. This tag will be inserted into the manager's deployment manifest whenmake bundle IMG=<tag>is run. (#3634) - Breaking change: Updated
operator-sdk cleanupcommand to be more generic. (#3644) - Breaking change: Default install mode for
run packagemanifestschanged fromOwnNamespacetoAllNamespaces. (#3663) - Breaking change: The Ansible and Helm operators now use controller-runtime's zap package to define logging flags. (#3596)
- Breaking change: The Ansible and Helm operators now use a
runsubcommand to run the operator. (#3596) - The
generate bundlesubcommand no longer requires a default channel be set nor defaults to the first channel provided to--channels. (#3602) - The
bundle validatesubcommand no longer returns an error if a bundle does not have a default channel. (#3602) - Breaking change: The
--update-crdsflag has been renamed to--update-objectsfor thegenerate packagemanifestssubcommand. (#3610) - Breaking change: Changed
--operator-versionflag to--versioninrun packagemanifests. (#3599) - Breaking change: Changed
--operator-namespaceflag to--namespaceinrun packagemanifests. (#3601) - Use structured logging in Ansible and Helm operator base images when printing version information. (#3564)
- The Ansible and Helm-based operators now use the controller-runtime's lease-based leader election instead of SDK's leader-for-life mechanism. (#3457) & (#3446)
- Breaking change: Added
--metrics-addrflag to the Ansible and Helm-based operators to make it configurable, and changed the default port from:8383to:8080. (#3489) & (#3440) - Breaking change: Changed domain suffix used for plugins and CR annotations to consistently use
.sdk.operatorframework.io. (#3527) - Breaking change: Removed the implementation for
EnqueueRequestForAnnotationhandler from the SDK repository and referenced it from operator-lib instead. (#3506) - Breaking change: The Ansible operator implementation in
pkg/ansiblewas moved tointernal/ansible. (#3560) - Breaking change: The Helm operator implementation in
pkg/helmwas moved tointernal/helm. (#3537) - Breaking change: The Ansible operator's
--max-workersflag andWORKERS_<Kind>_<Group>environment variable have been renamed to--max-concurrent-reconcilesandMAX_CONCURRENT_RECONCILES_<Kind>_<Group>respectively. (#3452) - Breaking change: The
metavariable passed to Ansible playbooks and roles has been renamed toansible_operator_meta. (#3562) - Breaking change: The scorecard configuration is now implemented as a componentconfig object and now includes a new top-level
stagesfield, which allows users to define stages of tests and to enable parallelism within each stage. (#3490) & (#3434) - When a namespace is not provided on the command line, the scorecard command now looks for a namespace in the kubeconfig. If a namespace can not be found in the kubeconfig file, then 'default' is used. (#3478)
- Use on-disk bundle metadata in scorecard (either unpacked from an image or directly if a directory is passed) as the source of truth for bundle metadata, and not image labels which are informative only. (#3450)
- Breaking change: The
alpha scorecardcommand has been promoted to the standard scorecard command. (#3444) - Breaking change: Changed scorecard text and json output to use a
v1alpha3.TestListinstead of aggregating all test results under a singlev1alpha3.Testand set exit status to 1 when a test fails. (#3427) - Ansible & Helm-based Operators switched to using the
InstrumentedEnqueueRequestForObjectfrom operator-lib instead of controller-runtime'sEnqueueRequestForObject. (#3523)
Removals
- Breaking change: Removed
olm-namespaceflag fromoperator-sdk olm installcommand. (#3670) - Breaking change: Docker images for s390x architecture are removed due to issues with s390x machines failing to be scheduled and run in Travis CI. (#3710)
- Breaking change: Moved scorecard API v1alpha3 to the api repo under
pkg/apis/scorecard/v1alpha3. All future scorecard APIs will be released in this repo. (#3622) - Breaking change: Removed package
version. (#3617) - Breaking change: Removed
--operator-namefromgeneratesubcommands in favor of usingproject-namefrom the PROJECT config file (v3-alpha+). (#3530) - Breaking change: Removed
--include-pathsflag fromrun packagemanifests. (#3599) - Breaking change: Removed
--olm-namespaceflag fromrun packagemanifests. (#3601) - Breaking change: Removed support for the legacy layout. Operator SDK has a new CLI and project layout that is aligned with Kubebuilder. ([#3327](https://github.com/operator-framework/oper...
v1.0.0-alpha.2
v1.0.0-alpha.2
For documentation on this release, please visit https://master.sdk.operatorframework.io.
This site tracks the master branch, so documentation updates based on feedback from this alpha release will automatically be reflected until v1.0.0 is released.
Additions
- The Ansible and Helm operators have a
versionsubcommand that prints the version information for theansible-operatorandhelm-operatorbinaries. (#3596) - Added
--ansible-argscommand-line flag that allows users to specify arbitrary CLI arguments for Ansible-based operators that are passed through ansible-runner. For example, passing--ansible-vaultas an arbitrary argument allows user to store sensitive data in encrypted files. (#3374) generate bundleandgenerate packagemanifestswill write RBAC objects (Roles, RoleBindings, their Cluster equivalents, and ServiceAccounts) not bound to CSV deployment service accounts to the resulting manifests directory. (#3610)
Changes
- Breaking change: The Ansible and Helm operators now use controller-runtime's zap package to define logging flags. (#3596)
- Breaking change: The Ansible and Helm operators now use a
runsubcommand to run the operator. (#3596) - The
generate bundlesubcommand no longer requires a default channel be set nor defaults to the first channel provided to--channels. (#3602) - The
bundle validatesubcommand no longer returns an error if a bundle does not have a default channel. (#3602) - Breaking change: The
--update-crdsflag has been renamed to--update-objectsfor thegenerate packagemanifestssubcommand. (#3610) - Breaking change: Changed
--operator-versionflag to--versioninrun packagemanifests. (#3599) - Breaking change: Changed
--operator-namespaceflag to--namespaceinrun packagemanifests. (#3601)
Removals
- Breaking change: Moved scorecard API v1alpha3 to the api repo under
pkg/apis/scorecard/v1alpha3. All future scorecard APIs will be released in this repo. (#3622) - Breaking change: Removed package
version. (#3617) - Breaking change: Removed
--operator-namefromgeneratesubcommands in favor of usingproject-namefrom the PROJECT config file (v3-alpha+). (#3530) - Breaking change: Removed
--include-pathsflag fromrun packagemanifests. (#3599) - Breaking change: Removed
--olm-namespaceflag fromrun packagemanifests. (#3601)