* Add missing improvements from Operator SDK 1.34.1
These were not mentioned in the upgrade documentation for version 1.34.x (https://sdk.operatorframework.io/docs/upgrading-sdk-version/v1.34.0/), but I've found them by compating the release with the previous one (https://github.com/operator-framework/operator-sdk/compare/v1.33.0...v1.34.1).
* Upgrade to Operator SDK 1.36.0
Source of upgrade steps: https://sdk.operatorframework.io/docs/upgrading-sdk-version/v1.36.0/
Key differences:
- Go packages `k8s.io/*` are already at a version higher than the one in the upgrade.
- `ENVTEST_K8S_VERSION` is at a version higher than the one in the upgrade
- We didn't have the golangci-lint make command before, thus we only needed to add things.
* Upgrade to Operator SDK 1.38.0
Source of upgrade steps: https://sdk.operatorframework.io/docs/upgrading-sdk-version/v1.38.0/
* Upgrade to Operator SDK 1.39.0
Source of upgrade steps: https://sdk.operatorframework.io/docs/upgrading-sdk-version/v1.39.0/
* Upgrade to Operator SDK 1.40.0
Source of upgrade steps: https://sdk.operatorframework.io/docs/upgrading-sdk-version/v1.40.0/
I didn't do the "Add app.kubernetes.io/name label to your manifests" since it seems that we have it already, and it's customized.
* Address lint errors
* Update golangci-lint version used to support Go 1.24
* Improve workflows
- Make workflow targets more specific.
- Make build workflow only build (i.e. remove test part of it).
- Rearrange steps and improve naming for build workflow.
* Add back deleted test
Initially the test has been removed due to lint saying that it was duplicate code, but it falsely errored since the values are different.
* Improve code and add missing upgrade pieces
* Upgrade to Operator SDK 1.41.1
Source of upgrade steps: https://sdk.operatorframework.io/docs/upgrading-sdk-version/v1.41.0/
Upgrading to 1.41.1 from 1.40.0 doesn't have any migration steps.
Key elements:
- Upgrade to golangci-lint v2
- Made the manifests using the updated controller tools
* Address linter errors
golanci-lint v2 seems to be more robust than the previous one, which is beneficial. Thus, we address the linter errors thrown by v2 and improve our code even further.
* Add Makefile improvements
These were brought in by comparing the Makefile of a freshly created operator using the latest operator-sdk with ours.
* Add missing default kustomization for 1.40.0 upgrade
* Bring default kustomization to latest version
This is done by putting the file's content from a newly-generated operator.
* Switch metrics-bind-address default value back to 8080
This ensures that the upgrade is backwards-compatible.
* Add webhook-related scaffolding
This enables us to easily add support for webhooks by running `operator-sdk create webhook` whenever we want to add them.
* Fix typo
This does the following updates:
* Upgrade to Operator SDK v1.34.1. This fixes building multi-arch images from Makefile. Check this MR from operator-framework for details.
* Update Go dependencies. This addresses Dependabot alert ["Golang protojson.Unmarshal function infinite loop when unmarshaling certain forms of invalid JSON"](https://github.com/1Password/onepassword-operator/security/dependabot/13).
* Update versions of the GitHub Actions used in the pipelines.
* Update Kubernetes related tools (such as controller-tools version, and operator-sdk for ci pipelines)
By updating dependencies, the pipelines no longer fail due to a panic error when running `make test`.
- Migrate `CHANGELOG.md`, `.VERSION`, `LICENSE`, GitHub pipelines, release script, GitHub issue templates.
- Add in Makefile the commands to prepare release and make the release tag.