Skip to content

v0.8.0

Compare
Choose a tag to compare
@AlexNPavel AlexNPavel released this 17 May 21:25
· 2103 commits to master since this release
v0.8.0
78c4724

v0.8.0

Added

  • New option for operator-sdk build --image-builder, which can be used to specify which image builder to use. Adds support for buildah. (#1311)
  • Manager is now configured with a new DynamicRESTMapper, which accounts for the fact that the default RESTMapper, which only checks resource types at startup, can't handle the case of first creating a CRD and then an instance of that CRD. (#1329)
  • Unify CLI debug logging under a global --verbose flag (#1361)
  • Go module support by default for new Go operators and during Ansible and Helm operator migration. The dependency manager used for a new operator can be explicitly specified for new operators through the --dep-manager flag, available in operator-sdk new and operator-sdk migrate. dep is still available through --dep-manager=dep. (#1001)
  • New optional flag --custom-api-import for operator-sdk add controller to specify that the new controller reconciles a built-in or external Kubernetes API, and what import path and identifier it should have. (#1344)
  • Operator Scorecard plugin support (#1379). Documentation for the scorecard plugins API will be added in PR #1433.

Changed

  • When Helm operator projects are created, the SDK now generates RBAC rules in deploy/role.yaml based on the chart's default manifest. (#1188)
  • When debug level is 3 or higher, we will set the klog verbosity to that level. (#1322)
  • Relaxed requirements for groups in new project API's. Groups passed to operator-sdk add api's --api-version flag can now have no subdomains, ex core/v1. See (#1191) for discussion. (#1313)
  • Renamed --docker-build-args option to --image-build-args option for build subcommand, because this option can now be shared with other image build tools than docker when --image-builder option is specified. (#1311)
  • Reduces Helm release information in CR status to only the release name and manifest and moves it from status.conditions to a new top-level deployedRelease field. (#1309)
    • WARNING: Users with active CRs and releases who are upgrading their helm-based operator should upgrade to one based on v0.7.0 before upgrading further. Helm operators based on v0.8.0+ will not seamlessly transition release state to the persistent backend, and will instead uninstall and reinstall all managed releases.
  • Go operator CRDs are overwritten when being regenerated by operator-sdk generate openapi. Users can now rely on +kubebuilder annotations in their API code, which provide access to most OpenAPIv3 validation properties (the full set will be supported in the near future, see this PR) and other CRD fields. (#1278)
  • Use registry.access.redhat.com/ubi7/ubi-minimal:latest base image for the Go and Helm operators and scorecard proxy (#1376)
  • Allow "Owned CRDs Have Resources Listed" scorecard test to pass if the resources section exists

Deprecated

Removed

  • The SDK will no longer run defaulter-gen on running operator-sdk generate k8s. Defaulting for CRDs should be handled with mutating admission webhooks. (#1288)
  • The --version flag was removed. Users should use the operator-sdk version command. (#1444)
  • Breaking Change: The test cluster subcommand and the corresponding --enable-tests flag for the build subcommand have been removed (#1414)
  • Breaking Change: The --cluster-scoped flag for operator-sdk new has been removed so it won't scaffold a cluster-scoped operator. Read the operator scope documentation on the changes needed to run a cluster-scoped operator. (#1434)

Bug Fixes

  • In Helm-based operators, when a custom resource with a failing release is reverted back to a working state, the ReleaseFailed condition is now correctly removed. (#1321)
  • operator-sdk generate openapi no longer overwrites CRD values derived from +kubebuilder annotations in Go API code. See issues (#1212) and (#1323) for discussion. (#1278)
  • Running operator-sdk gen-csv on operators that do not have a CRDs directory, ex. deploy/crds, or do not have any owned CRDs, will not generate a "deploy/crds not found" error.

Note: See how to upgrade your project to the version v0.8+ by checking the Version Upgrade Guide