Upgrade to Kubernetes 1.34 with controller-runtime v0.22.4#497
Upgrade to Kubernetes 1.34 with controller-runtime v0.22.4#497dgkanatsios merged 6 commits intomainfrom
Conversation
…4, kind v0.30.0, fix API breaking changes Co-authored-by: dgkanatsios <8256138+dgkanatsios@users.noreply.github.com>
…ng context Co-authored-by: dgkanatsios <8256138+dgkanatsios@users.noreply.github.com>
|
@copilot the "check if install files are modified" step is failing, can you fix it? |
Co-authored-by: dgkanatsios <8256138+dgkanatsios@users.noreply.github.com>
The install files were out of date because they weren't regenerated after the CRDs were updated by controller-gen v0.19.0. Fixed in 52caa24 by running Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot end to end tests are failing with "Error from server (Invalid): error when creating "STDIN": CustomResourceDefinition.apiextensions.k8s.io "gameserverbuilds.mps.playfab.com" is invalid: metadata.annotations: Too long: may not be more than 262144 bytes Why? This wasn't happening before |
Co-authored-by: dgkanatsios <8256138+dgkanatsios@users.noreply.github.com>
controller-gen v0.19.0 generates larger CRD schemas (~414 KB each for GameServer and GameServerBuild). When Fixed in df6df74 by switching all |
|
@copilot do we absolutely need the "--force-conflicts" flag? |
No, it's not absolutely needed for fresh installs. However, it's needed when upgrading from a previous thundernetes version that used client-side That said, if you'd prefer to remove it, I can — users upgrading would just need to add it manually or delete and recreate the CRDs. Let me know your preference. |
|
@copilot I'd rather you remove the field and set an explicit comment on the docs/comments/anywhere that any users upgrading the CRDs would need to also include this flag. |
…ing from client-side apply Co-authored-by: dgkanatsios <8256138+dgkanatsios@users.noreply.github.com>
Removed |
Upgrades all Kubernetes-related dependencies and tooling to support Kubernetes 1.34.
Dependency upgrades
k8s.io/*: v0.26.1 → v0.34.1sigs.k8s.io/controller-runtime: v0.14.6 → v0.22.4sigs.k8s.io/controller-tools(controller-gen): v0.14.0 → v0.19.0kindest/node:v1.34.2Breaking API migrations (controller-runtime v0.14 → v0.22)
webhook.Validatorremoved; migrated towebhook.CustomValidatorwithWithValidator()builder pattern. Methods now receive the object as a parameter and return(admission.Warnings, error):MetricsBindAddress→Metrics: metricsserver.Options{...},Port→WebhookServer: webhook.NewServer(webhook.Options{...})WatchesRawSource(source.Channel(ch, handler))instead ofWatches(&source.Channel{Source: ch}, handler)cluster.DefaultNewClientremoved; replaced withclient.New(config, client.Options{Cache: &client.CacheOptions{Reader: ca}})Named("allocation-api-server")toAllocationApiServercontroller to satisfy new uniqueness requirementWithStatusSubresourcefor status subresource patch operations in testsadmissionv1beta1→admissionv1in test scheme registrationSwitch to server-side apply for large CRDs
controller-gen v0.19.0 generates larger CRD schemas (~414 KB each for GameServer and GameServerBuild), which exceed the 262144 byte (256 KB) Kubernetes annotation limit for
kubectl.kubernetes.io/last-applied-configurationused by client-sidekubectl apply. Switched allkubectl applycommands tokubectl apply --server-sidein the operator Makefile (install,deploy,deploye2etargets),e2e/run.sh, and all documentation references. Server-side apply usesmanagedFieldsinstead of annotations and does not have this size limit.Test environment fix
Removed the
testEnv.Stop()timeout workaround (controller-runtime#1571) by properly using a cancellable context for the manager and cancelling it inAfterSuitebefore teardown — matching the pattern already used inwebhook_suite_test.go.💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.