v1.7.1

Add the manager config patch to config/default/kustomization.yaml

The scaffolded --config flag was not added to either ansible-/helm-operator binary when config file support was originally added, so does not currently work. The --config flag supports configuration of both binaries by file; this method of configuration only applies to the underlying controller manager, not the operator as a whole. To optionally configure the operator’s Deployment with a config file, make the following update to config/default/kustomization.yaml:

  1. # If you want your controller-manager to expose the /metrics # endpoint w/o any authn/z, please comment the following line.
  2. \- manager_auth_proxy_patch.yaml
  3. +# Mount the controller config file for loading manager configurations
  4. +# through a ComponentConfig type
  5. +- manager_config_patch.yaml

This feature is opt-in: flags can be used as-is or to override config file values.

See #4776 for more details.

Deprecate support for packagemanifests.

The operator-framework is removing support for the packagemanifests format in the near future. Hence, operator-sdk generate packagemanifests and operator-sdk run packagemanifests commands are deprecated. In order to migrate packagemanifests to bundles, operator-sdk pkgman-to-bundle command can be used. Run operator-sdk pkgman-to-bundle --help for more details.

See #4838 for more details.

(go/v3, ansible/v1, helm/v1) Move leases.coordination.k8s.io to its own proxy-role rule

Make the following changes to config/rbac/leader_election_role.yaml:

  1. rules:
  2. \- apiGroups:
  3. - ""
  4. - - coordination.k8s.io
  5. resources:
  6. - configmaps
  7. + verbs:
  8. +- get
  9. +- list
  10. +- watch
  11. +- create
  12. +- update
  13. +- patch
  14. +- delete
  15. +- apiGroups:
  16. +- coordination.k8s.io
  17. + resources:
  18. - leases
  19. verbs:
  20. - get

See #4835 for more details.

(go/v3) Set the Makefile’s SHELL variable to the system’s bash binary

Importing setup-envtest.sh needs bash, so your Makefile’s SHELL variable should be set to bash with error options:

  1. else GOBIN=$(shell go env GOBIN)
  2. endif
  3. +# Setting SHELL to bash allows bash commands to be executed by recipes.
  4. +# This is a requirement for 'setup-envtest.sh' in the test target.
  5. +# Options are set to exit when a recipe line exits non-zero or a piped command fails.
  6. +SHELL = /usr/bin/env bash -o pipefail
  7. +.SHELLFLAGS = -ec
  8. + all: build

See #4835 for more details.

Ensure that existing dependent resources have owner annotations

For Ansible-based operators, owner reference annotations on cluster-scoped dependent resources and dependent resources in other namespaces were not applied correctly. A workaround was to add these annotations manually, which is no longer required as this bug has been fixed.

See #4850 for more details.

(go/v3) Bump controller-runtime to v0.8.3 and kubernetes dependencies to v0.20.2

In your go.mod, change controller-runtime’s version to v0.8.3 and kubernetes dependencies to v0.20.2, then rebuild your project.

See #4863 for more details.

Last modified May 3, 2021: Release v1.7.1 (#4860) (c984b00c)