Envtest Refactor & Support for 1.20+ Clusters (#1486)
This adds support for newer Kubernetes clusters, particularly those that require the use of authentication & the secure port, as well as some refactors & deprecation.
By and large, these changes should be transparent for most users.
As a result of the removal of the insecure port in newer k8s versions, authentication & authorization are now on by default in envtest (and the secure port is used by default). The built-in REST config now returns an admin account, meaning perceived impact should be minimal in most cases -- if you're using the built-inEnvironment.Config, things should just work.
However, if you manually construct new REST configs from raw URLs, things will break. You'll need to migrate to using Environment.AddUser instead.
Additionally, a number of options on ControlPlane & APIServer around the secure & insecure ports are deprecated -- see the docs for more details.
A new tool has been introduced for setting up envtest binaries at sigs.k8s.io/controller-runtime/tools/setup-envtest. This replaces the existing hack/setup-envtest.sh script, so if you were depending on that, you should switch. See the docs for more information.
Kubernetes Dependencies
Now at v1.21.1.
:warning: Breaking Changes
Update Kubernetes v1.21 dependencies and use Go 1.16 (#1389)
moderate impact: if you're on an old Go version, it's time to upgrade :wink:
Envtest should modify CRDs appropriately when using webhooks (#1525)
minimal impact: one of the methods on WebhookInstallOptions had a signature change. Mostly internal, expected that this method is unlikely to be called directly.
Allow setting NewClientFunc w/o implementing an interface (#1473)
moderate impact: If you're constructing a custom client, this'll change how you do so, but should make it easier in the long run.
Support global controller options in component config (#1371)
minimal impact: adds new method to Manager interface, generally only implemented by CR)
Fix race in the delegating logger (#1361)
minimal impact: exposed piece of internals was changed)
Fakeclient: Handle Finalizers (#869)
moderate impact: Finalizers in the fakeclient now behave similiar to the kube api, i.E. an object with a finalizer will not actually be deleted upon Delete and Updating an object with a DeletionTimestamp to remove the finalizer will result in deletion
... (truncated)
Commits
484f82a Merge pull request #1561 from vincepri/update-deps-1212
0ba05d8 :seedling: Update dependencies to Kubernetes v1.21.2
719e576 Merge pull request #1555 from DirectXMan12/infra/maintainer-emeritus-main
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps sigs.k8s.io/controller-runtime from 0.4.0 to 0.9.1.
Release notes
Sourced from sigs.k8s.io/controller-runtime's releases.
... (truncated)
Commits
484f82a
Merge pull request #1561 from vincepri/update-deps-12120ba05d8
:seedling: Update dependencies to Kubernetes v1.21.2719e576
Merge pull request #1555 from DirectXMan12/infra/maintainer-emeritus-mainbf19298
Move directxman12 to approvers-emeritusfbf50b0
āØ Allow TLS minimum version to be configured (#1548)750cf33
Merge pull request #1481 from rashmigottipati/finalizer-librarya905949
Merge pull request #1552 from DirectXMan12/docs/flags-deprecation2c1b1dd
Mark all templated flag pieces as deprecatedabb406d
Merge pull request #1551 from DirectXMan12/docs/fix-clientbuilder-refda8716a
Remove reference to ClientBuilder in Cluster docsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)