Releases: operator-framework/operator-sdk
v0.8.0
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 defaultRESTMapper
, 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 inoperator-sdk new
andoperator-sdk migrate
.dep
is still available through--dep-manager=dep
. (#1001) - New optional flag
--custom-api-import
foroperator-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, excore/v1
. See (#1191) for discussion. (#1313) - Renamed
--docker-build-args
option to--image-build-args
option forbuild
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-leveldeployedRelease
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 runningoperator-sdk generate k8s
. Defaulting for CRDs should be handled with mutating admission webhooks. (#1288) - The
--version
flag was removed. Users should use theoperator-sdk version
command. (#1444) - Breaking Change: The
test cluster
subcommand and the corresponding--enable-tests
flag for thebuild
subcommand have been removed (#1414) - Breaking Change: The
--cluster-scoped
flag foroperator-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
v0.7.1
v0.7.1
Bug Fixes
- Pin dependency versions in Ansible build and test framework Dockerfiles to fix broken build and test framework images. (#1348)
- 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)
Note: See how to upgrade your project to the version v0.7+ by checking the Version Upgrade Guide
v0.7.0
v0.7.0
Added
- New optional flag
--header-file
for commandsoperator-sdk generate k8s
andoperator-sdk add api
to supply a boilerplate header file for generated code. (#1239)
Changed
- Updated the helm-operator to store release state in kubernetes secrets in the same namespace of the custom resource that defines the release. (#1102)
- WARNING: Users with active CRs and releases who are upgrading their helm-based operator should not skip this version. Future versions will not seamlessly transition release state to the persistent backend, and will instead uninstall and reinstall all managed releases.
- Change
namespace-manifest
flag in scorecard subcommand tonamespaced-manifest
to match other subcommands - Subcommands of
operator-sdk generate
are now verbose by default. (#1271) operator-sdk olm-catalog gen-csv
parses Custom Resource manifests fromdeploy/crds
or a custom path specified incsv-config.yaml
, encodes them in a JSON array, and sets the CSV'smetadata.annotations.alm-examples
field to that JSON. (#1116)
Bug Fixes
- Fixed an issue that caused
operator-sdk new --type=helm
to fail for charts that have template files in nested template directories. (#1235) - Fix bug in the YAML scanner used by
operator-sdk test
andoperator-sdk scorecard
that could result in a panic if a manifest file started with---
(#1258)
Note: See how to upgrade your project to the version v0.7+ by checking the Version Upgrade Guide
v0.6.0
v0.6.0
Added
- New flags for
operator-sdk new --type=helm
, which can be used to populate the project with an existing chart. (#949) - Command
operator-sdk olm-catalog
flag--update-crds
optionally copies CRD's fromdeploy/crds
when creating a new CSV or updating an existing CSV, and--from-version
uses another versioned CSV manifest as a base for a new CSV version. (#1016) - New flag
--olm-deployed
to direct thescorecard
command to only use the CSV at--csv-path
for manifest data, except for those provided to--cr-manifest
. (#1044)
Changed
- Changed the Go, Helm, and Scorecard base images to
registry.access.redhat.com/ubi7-dev-preview/ubi-minimal:7.6
(#1142) - CSV manifest are now versioned according to the
operator-registry
manifest format. See issue #900 for more details. (#1016) - Unexported
CleanupNoT
function frompkg/test
, as it is only intended to be used internally (#1167)
Bug Fixes
- Fix issue where running
operator-sdk test local --up-local
would sometimes leave a running process in the background after exit (#1089)
Note: See how to upgrade your project to the version v0.6+ by checking the Version Upgrade Guide
v0.5.0
v0.5.0
Added
- Updated the Kubernetes dependencies to
1.13.1
(#1020) - Updated the controller-runtime version to
v0.1.10
. See the controller-runtimev0.1.10
release notes for new features and bug fixes. (#1020) - By default the controller-runtime metrics are exposed on port 8383. This is done as part of the scaffold in the main.go file, the port can be adjusted by modifying the
metricsPort
variable. #786 - A new command
operator-sdk olm-catalog
to be used as a parent for SDK subcommands generating code related to Operator Lifecycle Manager (OLM) Catalog integration, and subcommandoperator-sdk olm-catalog gen-csv
which generates a Cluster Service Version for an operator so the OLM can deploy the operator in a cluster. (#673) - Helm-based operators have leader election turned on by default. When upgrading, add environment variable
POD_NAME
to your operator's Deployment using the Kubernetes downward API. To see an example, runoperator-sdk new --type=helm ...
and see filedeploy/operator.yaml
. #1000 - A new command
operator-sdk generate openapi
which generates OpenAPIv3 validation specs in Go and in CRD manifests as YAML. (#869) - The
operator-sdk add api
command now generates OpenAPIv3 validation specs in Go for that API, and in all CRD manifests as YAML.
Changed
- In new Helm operator projects, the scaffolded CR
spec
field now contains the default values.yaml from the generated chart. (#967)
Note: See how to upgrade your project to the version v0.5+ by checking the Version Upgrade Guide
v0.4.1
v0.4.1
Bug Fixes
- Make
up local
subcommand respectKUBECONFIG
env var (#996) - Make
up local
subcommand use default namespace set in kubeconfig instead of hardcodeddefault
and also add ability to watch all namespaces for ansible and helm type operators (#996) - Added k8s_status modules back to generation (#972)
- Update checks for gvk registration to cover all cases for ansible (#973 & #1019)
- Update reconciler for ansible and helm to use the cache rather than the API client. (#1022 & #1048 & #1054)
- Update reconciler to will update the status everytime for ansible (#1066)
- Update ansible proxy to recover dependent watches when pod is killed (#1067)
- Update ansible proxy to handle watching cluster scoped dependent watches (#1031)
Note: See how to upgrade your project to the version v0.4+ by checking the Version Upgrade Guide
v0.4.0
v0.4.0
Added
- A new command
operator-sdk migrate
which adds a main.go source file and any associated source files for an operator that is not of the "go" type. (#887 and #897) - New commands
operator-sdk run ansible
andoperator-sdk run helm
which run the SDK as ansible and helm operator processes, respectively. These are intended to be used when running in a Pod inside a cluster. Developers wanting to run their operator locally should continue to useup local
. (#887 and #897) - Ansible operator proxy added the cache handler which allows the get requests to use the operators cache. #760
- Ansible operator proxy added ability to dynamically watch dependent resource that were created by ansible operator. #857
- Ansible-based operators have leader election turned on by default. When upgrading, add environment variable
POD_NAME
to your operator's Deployment using the Kubernetes downward API. To see an example, runoperator-sdk new --type=ansible ...
and see filedeploy/operator.yaml
.
Changed
- The official images for the Ansible and Helm operators have moved! Travis now builds, tags, and pushes operator base images during CI (#832).
Bug Fixes
- Fixes deadlocks during operator deployment rollouts, which were caused by operator pods requiring a leader election lock to become ready (#932)
Note: See how to upgrade your project to the version v0.4+ by checking the Version Upgrade Guide
v0.3.0
v0.3.0
Added
- Helm type operator generation support (#776)
Changed
- The SDK's Kubernetes Golang dependency versions/revisions have been updated from
v1.11.2
tov1.12.3
. (#807) - The controller-runtime version has been updated from
v0.1.4
tov0.1.8
. See thev0.1.8
release notes for details. - The SDK now generates the CRD with the status subresource enabled by default. See the client doc on how to update the status subresource. (#787)
Note: See how to upgrade your project to the version v0.3+ by checking the Version Upgrade Guide
v0.2.1
v0.2.1
Bug Fixes
- Pin controller-runtime version to v0.1.4 to fix dependency issues and pin ansible idna package to version 2.7 (#831)
Note: See how to upgrade your project to the version v0.2+ by checking the Version Upgrade Guide
v0.2.0
v0.2.0
Changed
- The SDK now uses logr as the default logger to unify the logging output with the controller-runtime logs. Users can still use a logger of their own choice. See the logging doc on how the SDK initializes and uses logr.
- Ansible Operator CR status better aligns with conventions. (#639)
Added
- A new command
operator-sdk print-deps
which prints Golang packages and versions expected by the current Operator SDK version. Supplying--as-file
prints packages and versions in Gopkg.toml format. (#772) - Add
up-local
flag totest local
subcommand (#781) - Add
no-setup
flag totest local
subcommand (#770) - Add
image
flag totest local
subcommand (#768) - Ansible Operator log output includes much more information for troubleshooting ansible errors. (#713)
- Ansible Operator periodic reconciliation can be disabled (#739)
Bug fixes
- Make operator-sdk command work with composed GOPATH (#676)
- Ansible Operator "--kubeconfig" command line option fixed (#705)
Note: See how to upgrade your project to the version v0.2+ by checking the Version Upgrade Guide