v1.4.0
Change your operator’s finalizer names
The finalizer name format suggested by Kubernetes docs is <qualified-group>/<finalizer-name>
, while the format previously documented by Operator SDK docs was <finalizer-name>.<qualified-group>
. If your operator uses any finalizers with names matching the incorrect format, change them to match the official format. For example, finalizer.cache.example.com
should be changed to cache.example.com/finalizer
.
See #4472 for more details.
For Helm and Ansible projects, fix the helm-operator and ansible-operator URLs in the Makefile
- Helm projects:
Old:
https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/helm-operator-v1.3.0-$(ARCHOPER)-$(OSOPER)
New:https://github.com/operator-framework/operator-sdk/releases/download/v1.3.1/helm-operator_$(OS)_$(ARCH)
- Ansible projects:
Old:
https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/ansible-operator-v1.3.0-$(ARCHOPER)-$(OSOPER)
New:https://github.com/operator-framework/operator-sdk/releases/download/v1.3.1/ansible-operator_$(OS)_$(ARCH)
See #4407 for more details.
For Helm and Ansible projects, fix the helm-operator
, ansible-operator
, and kustomize
Makefile rules
These rules will download a local binary but not use it if a global binary is present. See the diff in this PR for how to fix this.
See #4412 for more details.
For Helm-based operators, add Liveness and Readiness probe
New projects built with the tool will have the probes configured by default. The endpoints /healthz
and /readyz
are available now in the image based provided.
You can update your pre-existing project to use them. For that update the Dockerfile to use the latest release base image, then add the following to the manager
container in config/manager/manager.yaml
:
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
See #4326 for more details.
For Ansible-based operators, add Liveness and Readiness probe
New projects built with the tool will have the probes configured by default. The endpoints /healthz
and /readyz
are available now in the image based provided.
You can update your pre-existing project to use them. For that update the Dockerfile to use the latest release base image, then add the following to the manager
container in config/manager/manager.yaml
:
livenessProbe:
httpGet:
path: /healthz
port: 6789
initialDelaySeconds: 15
periodSeconds: 20
readinessProbe:
httpGet:
path: /readyz
port: 6789
initialDelaySeconds: 5
periodSeconds: 10
See #4326 for more details.
(go/v2) Change go
PROJECT plugin object to manifests
and scorecard
objects
The manifests
and scorecard
plugins that create OLM and scorecard manifests, respectively, now have plugin objects that direct create
subcommands to create related files. While the old go
plugin configuration object is still supported, these new objects will be useful in the future as configuration options are added to their respective plugins:
Old:
version: 3-alpha
...
plugins:
go.sdk.operatorframework.io/v2-alpha: {}
New:
version: 3-alpha
...
plugins:
manifests.sdk.operatorframework.io/v2: {}
scorecard.sdk.operatorframework.io/v2: {}
See #4419 for more details.
(ansible/v1, helm/v1) Add manifests
and scorecard
plugin objects to your PROJECT
The manifests
and scorecard
plugins that create OLM and scorecard manifests, respectively, now have plugin objects that direct create
subcommands to create related files. While not necessary to add, these new plugin configuration objects in the PROJECT file will be useful in the future as configuration options are added to their respective plugins:
version: 3-alpha
...
plugins:
manifests.sdk.operatorframework.io/v2: {}
scorecard.sdk.operatorframework.io/v2: {}
See #4419 for more details.
Move positional directory argument .
in docker-build
make target
The directory argument .
in the docker-build
make target was moved to the last positional argument to align with podman
's expectations, making substitution cleaner.
Old:
docker-build:
docker build . -t ${IMG}
New:
docker-build:
docker build -t ${IMG} .
Alternatively, you could replace it programmatically
sed -i 's/docker build . -t ${IMG}/docker build -t ${IMG} ./' $(git grep -l 'docker.*build \. ')
See #4466 for more details.