Skip to content

Releases: operator-framework/operator-sdk

v1.3.1

04 Feb 21:06
v1.3.1
af8bc8d
Compare
Choose a tag to compare

v1.3.1

Bug Fixes

  • Project version now determines how package name is retrieved for a project. (#4443)
  • run bundle-upgrade now 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's owned.customresourcedefinitions, such that types in different packages and files will not overwrite each other. (#4480)
  • Bumped operator-framework/api to prevent operator-sdk bundle validate from 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

18 Dec 03:33
v1.3.0
1abf579
Compare
Choose a tag to compare

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_info metric to instrument commit and version information. (#4220)
  • In Helm-based operators, added the helm_operator_build_info metric to instrument commit and version information. (#4220)
  • Added the --package <name> flag to all generate subcommands. This flag is required by generate <bundle|packagemanifests> when run outside of a project. (#4074)
  • Added the run bundle-upgrade subcommand to automate testing upgrades of an operator from one version to another using OLM. (#4271)
  • (go/v2) Added the command òperator-sdk edit which 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-sdk binary dependencies to their k8s v1.19 equivalents. (#4294)
  • Updated helm-operator's Helm dependency to v3.4.1. (#4259)

Bug Fixes

  • Made the cleanup command's error handling more robust on deletion and "not found" events. (#4303)
  • Fixed the documented packagemanifests make recipe. (#4303)
  • generate kustomize manifests will now (re)generate a base ClusterServiceVersion manifest 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|packagemanifest commands 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 api when --resource=false (kubebuilder#1770). (#4215)

v1.2.0

09 Nov 22:11
215fc50
Compare
Choose a tag to compare

Additions

  • Enabled definition of custom categories encoded as JSON file(s) for the operatorhub validator. (#4109)

Changes

  • Improved ansible-operator and helm-operator help text. (#4187)
  • When generating bundles and package manifests, add all resources supported by OLM. (#4137)
  • olm and run subcommands will print aggregated resource errors when either OLM or an operator fail to install, respectively. (#3787)
  • Upgraded sigs.k8s.io/controller-runtime from v0.6.2 to v0.6.3. (#4062)

Bug Fixes

  • Set a generated CSV's .spec.webhookdefinitions[].{targetPort,containerPort} values from webhook Service ports. (#4178)
  • Excluded github.com/spf13/[email protected] to fix CVE-2018-1098. (#4199)
  • Added the kustomize make dependency to the bundle target scaffolded for Golang projects to install kustomize before running. (#4090)
  • Fixed an issue in operator-sdk cleanup that caused CatalogSource and OperatorGroup objects not to be cleaned up if a previous operator-sdk run command failed. (#4089)
  • Fixed an issue during CSV generation that caused incorrect paths to be used in specDescriptors and statusDescriptors. (#4166)
  • In Helm projects, fixed operator RBAC permissions to support the OwnerReferencesPermissionEnforcement admission plugin by adding a <resource>/finalizers rule in the operator's role. (#4105)
  • Removed redundant platform information from operator-sdk version output. (#4083)
  • Format version string passed to olm subcommands so releases download correctly. (#4181)
  • In Go, Ansible, and Helm operators, updated the metrics-reader ClusterRole to use rbac.authorization.k8s.io/v1 to be consistent with all other scaffolded RBAC resources. (#4136)
  • Modified olm-status-descriptors-test to only validate if the status-descriptors are present in CRD. (#4009)
  • Webhook container port specified in CSV defaults to 443 if not specified by the user. (#4109)
  • For Golang based operators with multigroup support, fixed envtest.Environment.CRDDirectoryPaths in scaffolded controllers/<group>/suite_test.go files. (#4062)

v1.1.0

15 Oct 20:17
v1.1.0
9d27e22
Compare
Choose a tag to compare

v1.1.0

Additions

  • For Ansible-based Operator, add .gitignore file. (#3806)
  • Added the --select-optional flag to bundle validate to pass a label selector that runs any matching optional validator on top of required validators, and --list-optional to 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=operatorhub or --select-optional=suite=operatorframework. (#3719)
  • Added the run bundle command. (#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 install that allows installing OLM version 0.15.1 without fetching the manifest from Github. (#3906)
  • Re-enabled s390x docker image builds. (#3855)

Changes

  • In ansible-operator and helm-operator run commands, print git commit when logging version information. (#3849)
  • For Ansible/Helm, fix multigroup message. (#3822)
  • For Helm-based Operators, cleanup the file .gitignore in 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's webhookDefinition[].deploymentName by 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 validate subcommand of operator-sdk. (#3795)
  • generate <bundle|packagemanifests> now generates a CSV base with only the AllNamespaces install mode supported by default, since projects are cluster-scoped by default. (#3746)
  • generate <bundle|packagemanifests> now defaults a CSV's spec.webhookDefinition[].admissionReviewVersions to []string{"v1beta1"}, as an empty or null value is invalid. (#3903)
  • generate <bundle|packagemanifests> now defaults a CSV's spec.webhookDefinition[].sideEffects to "None", as an empty or null value is invalid. (#3903)
  • The scaffolded manager deployment for Ansible-based Operators now has the ANSIBLE_GATHERING option set to explicit. Additionally, if the ANSIBLE_GATHERING environment variable is set to explicit when running a role directly, the --role-skip-facts argument will be passed to ansible-runner. (#3933)
  • Added kubernetes authentication clients to ansible-operator and helm-operator to enable authentication to gcp, azure, etc. kubernetes clusters. (#3974)
  • Fixed a bug with run packagemanifests that caused the underlying registry pod to fail to start. Changed the registry pod image from quay.io/openshift/origin-operator-registry:latest to quay.io/operator-framework/upstream-registry-builder:latest. (#3856)
  • When generating bundles and packagemanifests, remove metadata.namespace from namespaced resources when writing them into the manifests directory to avoid validation errors. (#3813)
  • Fixed a bug that caused the Helm operator not to set the InstallSuccessful and UpgradeSuccessful status 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>/finalizers rule in the operator's role. (#3779)
  • In Go projects, resolved an issue that caused failing tests by changing the Makefile's test target to automatically download and configure the necessary envtest binaries. (#3983)
  • Inform user to verify the presence of olm deployment manifests in github when olm install command gives a 404 http error. (#3907)
  • Prevent run packagemanifests from 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 packagemanifests where the registry server writes files in locations that require root. (#3867)
  • When scaffolding scorecard configurations, use release versions instead of latest in image tags. (#3845)

v1.0.1

18 Sep 17:42
v1.0.1
4169b31
Compare
Choose a tag to compare

v1.0.1

Bug Fixes

  • Fixed a bug with run packagemanifests that caused the underlying registry pod to fail to start. Changed the registry pod image from quay.io/openshift/origin-operator-registry:latest to quay.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 packagemanifests where the registry server writes files in locations that require root. (#3895)
  • Fixed debug logging in the bundle validate subcommand of operator-sdk. (#3899)
  • generate <bundle|packagemanifests> now generates a CSV base with only the AllNamespaces install mode supported by default, since projects are cluster-scoped by default. (#3899)
  • When generating bundles and packagemanifests, remove metadata.namespace from namespaced resources when writing them into the manifests directory to avoid validation errors. (#3899)
  • Fixed a bug that caused the Helm operator not to set the InstallSuccessful and UpgradeSuccessful status reasons when the status update fails during installation and upgrade. (#3899)
  • In Helm projects, fix operator permissions for Openshift deployments by adding a <resource>/finalizers rule in the operator's role. (#3899)
  • Prevent run packagemanifests from 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 latest in image tags. (#3899)
  • generate <bundle|packagemanifests> will populate a CSV's webhookDefinition[].deploymentName by 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

17 Sep 17:58
v0.19.4
Compare
Choose a tag to compare

v0.19.4

Changes

  • In ansible-operator and helm-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 packagemanifests that caused the underlying registry pod to fail to start. Changed the registry pod image from quay.io/openshift/origin-operator-registry:latest to quay.io/operator-framework/upstream-registry-builder:latest. (#3894)
  • Fix an issue in run packagemanifests where 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

02 Sep 18:43
v0.19.3
d529ba4
Compare
Choose a tag to compare

v0.19.3

Changes

  • Breaking change: Changed the go.operator-sdk.io plugin to only write a plugins PROJECT 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 validate subcommand of operator-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

11 Aug 01:15
v1.0.0
d7d5e0c
Compare
Choose a tag to compare

v1.0.0

Since v0.19

Additions

  • The Ansible and Helm operators have a version subcommand that prints the version information for the ansible-operator and helm-operator binaries. (#3596)
  • Added --ansible-args command-line flag that allows users to specify arbitrary CLI arguments for Ansible-based operators that are passed through ansible-runner. For example, passing --ansible-vault as an arbitrary argument allows user to store sensitive data in encrypted files. (#3374)
  • generate bundle and generate packagemanifests will write RBAC objects (Roles, RoleBindings, their Cluster equivalents, and ServiceAccounts) not bound to CSV deployment service accounts to the resulting manifests directory. (#3610)
  • The snakeCaseParameters option has been added to the watches.yaml for Ansible-based Operators. This allows the user to configure whether parameters in the resource spec are automatically converted from camelCase to snake_case. The default is true, so there is no behavior change for existing operators, but it can now be disabled. (#3245)
  • Added projectName key to the PROJECT config file (v3-alpha+). (#3438)
  • Added the --from-version flag to generate packagemanifests. (#3509)
  • The generate bundle command now adds scorecard bundle metadata to bundle.Dockerfile and annotations.yaml if --overwrite is set (the default in a project's Makefile) or both files do not exist. (#3474)
  • Added config/scorecard kustomize scaffolds to init. (#3490)

Changes

  • Breaking change: Changed the go.sdk.operatorframework.io plugin to only write a plugins PROJECT 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:manifestskustomizesamples to config/samples/kustomization.yaml that allows updates without overwriting the entire file. (#3645)
  • Breaking change: Added IMG argument to bundle make rule that accepts an operator image tag. This tag will be inserted into the manager's deployment manifest when make bundle IMG=<tag> is run. (#3634)
  • Breaking change: Updated operator-sdk cleanup command to be more generic. (#3644)
  • Breaking change: Default install mode for run packagemanifests changed from OwnNamespace to AllNamespaces. (#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 run subcommand to run the operator. (#3596)
  • The generate bundle subcommand no longer requires a default channel be set nor defaults to the first channel provided to --channels. (#3602)
  • The bundle validate subcommand no longer returns an error if a bundle does not have a default channel. (#3602)
  • Breaking change: The --update-crds flag has been renamed to --update-objects for the generate packagemanifests subcommand. (#3610)
  • Breaking change: Changed --operator-version flag to --version in run packagemanifests. (#3599)
  • Breaking change: Changed --operator-namespace flag to --namespace in run 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-addr flag to the Ansible and Helm-based operators to make it configurable, and changed the default port from :8383 to :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 EnqueueRequestForAnnotation handler from the SDK repository and referenced it from operator-lib instead. (#3506)
  • Breaking change: The Ansible operator implementation in pkg/ansible was moved to internal/ansible. (#3560)
  • Breaking change: The Helm operator implementation in pkg/helm was moved to internal/helm. (#3537)
  • Breaking change: The Ansible operator's --max-workers flag and WORKERS_<Kind>_<Group> environment variable have been renamed to --max-concurrent-reconciles and MAX_CONCURRENT_RECONCILES_<Kind>_<Group> respectively. (#3452)
  • Breaking change: The meta variable passed to Ansible playbooks and roles has been renamed to ansible_operator_meta. (#3562)
  • Breaking change: The scorecard configuration is now implemented as a componentconfig object and now includes a new top-level stages field, 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 scorecard command has been promoted to the standard scorecard command. (#3444)
  • Breaking change: Changed scorecard text and json output to use a v1alpha3.TestList instead of aggregating all test results under a single v1alpha3.Test and set exit status to 1 when a test fails. (#3427)
  • Ansible & Helm-based Operators switched to using the InstrumentedEnqueueRequestForObject from operator-lib instead of controller-runtime's EnqueueRequestForObject. (#3523)

Removals

  • Breaking change: Removed olm-namespace flag from operator-sdk olm install command. (#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-name from generate subcommands in favor of using project-name from the PROJECT config file (v3-alpha+). (#3530)
  • Breaking change: Removed --include-paths flag from run packagemanifests. (#3599)
  • Breaking change: Removed --olm-namespace flag from run 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...
Read more

v1.0.0-alpha.2

01 Aug 03:39
182f021
Compare
Choose a tag to compare
v1.0.0-alpha.2 Pre-release
Pre-release

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 version subcommand that prints the version information for the ansible-operator and helm-operator binaries. (#3596)
  • Added --ansible-args command-line flag that allows users to specify arbitrary CLI arguments for Ansible-based operators that are passed through ansible-runner. For example, passing --ansible-vault as an arbitrary argument allows user to store sensitive data in encrypted files. (#3374)
  • generate bundle and generate packagemanifests will 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 run subcommand to run the operator. (#3596)
  • The generate bundle subcommand no longer requires a default channel be set nor defaults to the first channel provided to --channels. (#3602)
  • The bundle validate subcommand no longer returns an error if a bundle does not have a default channel. (#3602)
  • Breaking change: The --update-crds flag has been renamed to --update-objects for the generate packagemanifests subcommand. (#3610)
  • Breaking change: Changed --operator-version flag to --version in run packagemanifests. (#3599)
  • Breaking change: Changed --operator-namespace flag to --namespace in run 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-name from generate subcommands in favor of using project-name from the PROJECT config file (v3-alpha+). (#3530)
  • Breaking change: Removed --include-paths flag from run packagemanifests. (#3599)
  • Breaking change: Removed --olm-namespace flag from run packagemanifests. (#3601)

Bug Fixes

  • Fixed incorrect (cluster) role name assignments in generated CSVs #3600. (#3610)

v0.19.2

30 Jul 01:32
v0.19.2
4282ce9
Compare
Choose a tag to compare

Changes

  • The generate bundle subcommand no longer requires a default channel be set nor defaults to the first channel provided to --channels. (#3605)
  • The bundle validate subcommand no longer returns an error if a bundle does not have a default channel. (#3605)