Releases: operator-framework/operator-sdk
Releases · operator-framework/operator-sdk
v1.3.1
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'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 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
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 allgenerate
subcommands. This flag is required bygenerate <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 baseClusterServiceVersion
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
Additions
- Enabled definition of custom categories encoded as JSON file(s) for the
operatorhub
validator. (#4109)
Changes
- Improved
ansible-operator
andhelm-operator
help text. (#4187) - When generating bundles and package manifests, add all resources supported by OLM. (#4137)
olm
andrun
subcommands will print aggregated resource errors when either OLM or an operator fail to install, respectively. (#3787)- Upgraded
sigs.k8s.io/controller-runtime
fromv0.6.2
tov0.6.3
. (#4062)
Bug Fixes
- Set a generated CSV's
.spec.webhookdefinitions[].{targetPort,containerPort}
values from webhookService
ports. (#4178) - Excluded
github.com/spf13/[email protected]
to fix CVE-2018-1098. (#4199) - Added the
kustomize
make dependency to thebundle
target scaffolded for Golang projects to installkustomize
before running. (#4090) - Fixed an issue in
operator-sdk cleanup
that causedCatalogSource
andOperatorGroup
objects not to be cleaned up if a previousoperator-sdk run
command failed. (#4089) - Fixed an issue during CSV generation that caused incorrect paths to be used in
specDescriptors
andstatusDescriptors
. (#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 userbac.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 scaffoldedcontrollers/<group>/suite_test.go
files. (#4062)
v1.1.0
v1.1.0
Additions
- For Ansible-based Operator, add
.gitignore
file. (#3806) - Added the
--select-optional
flag tobundle 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
andhelm-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'swebhookDefinition[].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 ofoperator-sdk
. (#3795) generate <bundle|packagemanifests>
now generates a CSV base with only theAllNamespaces
install mode supported by default, since projects are cluster-scoped by default. (#3746)generate <bundle|packagemanifests>
now defaults a CSV'sspec.webhookDefinition[].admissionReviewVersions
to []string{"v1beta1"}, as an empty or null value is invalid. (#3903)generate <bundle|packagemanifests>
now defaults a CSV'sspec.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 toexplicit
. Additionally, if theANSIBLE_GATHERING
environment variable is set to explicit when running a role directly, the--role-skip-facts
argument will be passed toansible-runner
. (#3933) - Added kubernetes authentication clients to
ansible-operator
andhelm-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 fromquay.io/openshift/origin-operator-registry:latest
toquay.io/operator-framework/upstream-registry-builder:latest
. (#3856) - When generating bundles and packagemanifests, remove
metadata.namespace
from namespaced resources when writing them into themanifests
directory to avoid validation errors. (#3813) - Fixed a bug that caused the Helm operator not to set the
InstallSuccessful
andUpgradeSuccessful
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 necessaryenvtest
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
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 fromquay.io/openshift/origin-operator-registry:latest
toquay.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 ofoperator-sdk
. (#3899) generate <bundle|packagemanifests>
now generates a CSV base with only theAllNamespaces
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 themanifests
directory to avoid validation errors. (#3899) - Fixed a bug that caused the Helm operator not to set the
InstallSuccessful
andUpgradeSuccessful
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'swebhookDefinition[].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
v0.19.4
Changes
- In
ansible-operator
andhelm-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 fromquay.io/openshift/origin-operator-registry:latest
toquay.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
v0.19.3
Changes
- Breaking change: Changed the
go.operator-sdk.io
plugin to only write aplugins
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 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
version
subcommand that prints the version information for theansible-operator
andhelm-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
andgenerate 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 thewatches.yaml
for Ansible-based Operators. This allows the user to configure whether parameters in the resource spec are automatically converted fromcamelCase
tosnake_case
. The default istrue
, 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 togenerate packagemanifests
. (#3509) - The
generate bundle
command now adds scorecard bundle metadata tobundle.Dockerfile
andannotations.yaml
if--overwrite
is set (the default in a project'sMakefile
) or both files do not exist. (#3474) - Added
config/scorecard
kustomize scaffolds toinit
. (#3490)
Changes
- Breaking change: Changed the
go.sdk.operatorframework.io
plugin to only write aplugins
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
toconfig/samples/kustomization.yaml
that allows updates without overwriting the entire file. (#3645) - Breaking change: Added
IMG
argument tobundle
make 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 cleanup
command to be more generic. (#3644) - Breaking change: Default install mode for
run packagemanifests
changed fromOwnNamespace
toAllNamespaces
. (#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 thegenerate packagemanifests
subcommand. (#3610) - Breaking change: Changed
--operator-version
flag to--version
inrun packagemanifests
. (#3599) - Breaking change: Changed
--operator-namespace
flag to--namespace
inrun 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 tointernal/ansible
. (#3560) - Breaking change: The Helm operator implementation in
pkg/helm
was moved tointernal/helm
. (#3537) - Breaking change: The Ansible operator's
--max-workers
flag andWORKERS_<Kind>_<Group>
environment variable have been renamed to--max-concurrent-reconciles
andMAX_CONCURRENT_RECONCILES_<Kind>_<Group>
respectively. (#3452) - Breaking change: The
meta
variable 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
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 singlev1alpha3.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'sEnqueueRequestForObject
. (#3523)
Removals
- Breaking change: Removed
olm-namespace
flag fromoperator-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
fromgenerate
subcommands in favor of usingproject-name
from the PROJECT config file (v3-alpha+). (#3530) - Breaking change: Removed
--include-paths
flag fromrun packagemanifests
. (#3599) - Breaking change: Removed
--olm-namespace
flag 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
version
subcommand that prints the version information for theansible-operator
andhelm-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
andgenerate 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 thegenerate packagemanifests
subcommand. (#3610) - Breaking change: Changed
--operator-version
flag to--version
inrun packagemanifests
. (#3599) - Breaking change: Changed
--operator-namespace
flag to--namespace
inrun 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
fromgenerate
subcommands in favor of usingproject-name
from the PROJECT config file (v3-alpha+). (#3530) - Breaking change: Removed
--include-paths
flag fromrun packagemanifests
. (#3599) - Breaking change: Removed
--olm-namespace
flag fromrun packagemanifests
. (#3601)