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) (#3343) (#3547) (#3566) (#3343) (#3466) (#3531) (#3451) (#3414) (#3414) (#3414) (#3414) (#3385) (#3406)
- Breaking change: Moved
pkg/log/zap
tointernal/log/zap
, therefore it is no longer a public API. (#3525) - Breaking change: Removed
pkg/predicate
:ResourceFilterPredicate
. (#3532) - Breaking change: Refactored and moved
pkg/predicate.GenerationChangedPredicate
(see this operator-lib PR for details). (#3532) - Breaking change: Removed
test
subcommand and the test frameworkpkg/test
. (#3409) - Breaking change: Removed
pkg/k8sutils
and its helpers methodsGetWatchNamespace()
,GetOperatorNamespace()
,GetOperatorName()
,ResourceExists()
,GetPod()
,GetGVKsFromAddToScheme()
andSupportsOwnerReference()
. (#3475) - Breaking change: Removed
pkg/kube-metrics
and its associated helpersNewNamespacedMetricsStores()
,NewClusterScopedMetricsStores()
,ServeMetrics()
, andGenerateAndServeCRMetrics()
. (#3484) - Breaking change: Removed
pkg/leader
andpkg/status
. These are now part of operator-lib. (#3503) - Breaking change: Removed
pkg/metrics
and its helpersGenerateAndServeCRMetrics()
andGetNamespacesForMetrics()
. (#3484) - Breaking change: Removed
pkg/ready
and its helper utilsReady
,Set()
,Unset()
. (#3476) - Breaking change: Removed
pkg/tls
since that pkg is a leftover from an earlier effort to make certificate management easier, but was abandoned in favor of alternatives like cert-manager. (#3468)
Bug Fixes
- Fixed incorrect (cluster) role name assignments in generated CSVs #3600. (#3610)
- Fixed a bug that caused the Ansible operator not to set the environment variables
ANSIBLE_ROLES_PATH
andANSIBLE_COLLECTIONS_PATH
based on the flags--ansible-roles-path
and--ansible-collections-path
. (#3549) - Use group and kind instead of only kind when parsing manifests in the CSV generator to avoid marshaling them into the wrong Go types. (#3334)
- Fixed issue that caused scorecard to fail loading local bundle due to a bug search method for the bundle metadata directory. (#3408)
- Fixed CVE-2020-14040 by updating to
golang.org/x/text/0.3.3
. (#3458) - The
scorecard
subcommand now removes existing pods if the--wait-time
deadline is exceeded and--skip-cleanup=false
(the default). Fixes #3419. (#3526) - Fixed a bug in scorecard that caused tests to fail with permission errors when loading the bundle. (#3428)
Since v1.0.0-alpha.2
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)
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)
v1.0.0-alpha.2
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)
Bug Fixes
v1.0.0-alpha.1
Additions
- 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
- 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 support for the legacy layout. Operator SDK has a new CLI and project layout that is aligned with Kubebuilder. (#3327) (#3343) (#3547) (#3566) (#3343) (#3466) (#3531) (#3451) (#3414) (#3414) (#3414) (#3414) (#3385) (#3406)
- Breaking change: Moved
pkg/log/zap
tointernal/log/zap
, therefore it is no longer a public API. (#3525) - Breaking change: Removed
pkg/predicate
:ResourceFilterPredicate
. (#3532) - Breaking change: Refactored and moved
pkg/predicate.GenerationChangedPredicate
(see this operator-lib PR for details). (#3532) - Breaking change: Removed
test
subcommand and the test frameworkpkg/test
. (#3409) - Breaking change: Removed
pkg/k8sutils
and its helpers methodsGetWatchNamespace()
,GetOperatorNamespace()
,GetOperatorName()
,ResourceExists()
,GetPod()
,GetGVKsFromAddToScheme()
andSupportsOwnerReference()
. (#3475) - Breaking change: Removed
pkg/kube-metrics
and its associated helpersNewNamespacedMetricsStores()
,NewClusterScopedMetricsStores()
,ServeMetrics()
, andGenerateAndServeCRMetrics()
. (#3484) - Breaking change: Removed
pkg/leader
andpkg/status
. These are now part of operator-lib. (#3503) - Breaking change: Removed
pkg/metrics
and its helpersGenerateAndServeCRMetrics()
andGetNamespacesForMetrics()
. (#3484) - Breaking change: Removed
pkg/ready
and its helper utilsReady
,Set()
,Unset()
. (#3476) - Breaking change: Removed
pkg/tls
since that pkg is a leftover from an earlier effort to make certificate management easier, but was abandoned in favor of alternatives like cert-manager. (#3468)
Bug Fixes
- Fixed a bug that caused the Ansible operator not to set the environment variables
ANSIBLE_ROLES_PATH
andANSIBLE_COLLECTIONS_PATH
based on the flags--ansible-roles-path
and--ansible-collections-path
. (#3549) - Use group and kind instead of only kind when parsing manifests in the CSV generator to avoid marshaling them into the wrong Go types. (#3334)
- Fixed issue that caused scorecard to fail loading local bundle due to a bug search method for the bundle metadata directory. (#3408)
- Fixed CVE-2020-14040 by updating to
golang.org/x/text/0.3.3
. (#3458) - The
scorecard
subcommand now removes existing pods if the--wait-time
deadline is exceeded and--skip-cleanup=false
(the default). Fixes #3419. (#3526) - Fixed a bug in scorecard that caused tests to fail with permission errors when loading the bundle. (#3428)