Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evaluate Kubernetes 1.29 changes #460

Closed
Tracked by #429
maltesander opened this issue Nov 16, 2023 · 5 comments
Closed
Tracked by #429

Evaluate Kubernetes 1.29 changes #460

maltesander opened this issue Nov 16, 2023 · 5 comments
Assignees

Comments

@maltesander
Copy link
Member

I would like to know if there are any changes in Kubernetes 1.29 that the SDP could potentially make use of (e.g. sidecars), will require changes or will break things on our end.

This should be timeboxed and take up at most 4h of research and reading.
The result of this should be a comment on this issue or follow-up issues listing the high level points of things we could, should and should not do.

Must read:

@maltesander
Copy link
Member Author

I summarized the upcoming changes.
Except for the registry changes i do not think we have to do anything.

Registry k8s.gcr.io redirect to registry.k8s.io

See https://kubernetes.io/blog/2023/03/10/image-registry-redirect/ and https://kubernetes.io/blog/2023/08/31/legacy-package-repository-deprecation/
E.g. images like dns/k8s-dns-node-cache, ingress-nginx/controller are affected.

=> This may affect images we use in demo / integration tests or CSI sidecars

Introducing Kubernetes Community-Owned Package Repositories: pkgs.k8s.io

https://kubernetes.io/blog/2023/08/15/pkgs-k8s-io-introduction/

=> This may affect images we use in demo / integration tests

Deprecations and removals for Kubernetes v1.29

Full list https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#deprecation

Prestop lifecycle

A new sleep action for the PreStop lifecycle hook is added, allowing containers to pause for a specified duration before termination (kubernetes/kubernetes#119026).

=> Since we use this now for graceful shutdown in several products could be used instead of manual sleep.

Cron

Creation of new CronJob objects containing TZ or CRON_TZ in .spec.schedule, accidentally enabled in 1.22, is now disallowed. Use the .spec.timeZone field instead, supported in 1.25+ clusters in default configurations.

Removal of in-tree integrations with cloud providers

The feature gates DisableCloudProviders and DisableKubeletCloudCredentialProviders will both be set to true by default for Kubernetes v1.29. This change will require that users who are currently using in-tree cloud provider integrations (Azure, GCE, or vSphere) enable external cloud controller managers, or opt in to the legacy integration by setting the associated feature gates to false.

=> Admin tasks

Removal of the v1beta2 flow control API group

flowcontrol.apiserver.k8s.io/v1beta2 will no longer be served (https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-29). v1beta3 has been promoted to stable.

=> Afaik not used by us

Deprecation of the status.nodeInfo.kubeProxyVersion field for Node

This field is not accurate and is set by kubelet, which does not actually know the kube-proxy version, or even if kube-proxy is running.

=> Not used by us

@adwk67
Copy link
Member

adwk67 commented Nov 20, 2023

Regarding the registries: the three that we use have been copied to Nexus/OCI:

@siegfriedweber
Copy link
Member

Another highlight:

  • The SidecarContainers feature has graduated to beta and is enabled by default.
    ⇒ The logging side-car container can be simplified.

@lfrancke
Copy link
Member

lfrancke commented Dec 4, 2023

Thanks!
As we have a working implementation of the logging sidecar I'd suggest we wait until we don't support K8s versions without this feature anymore?
Or is there a benefit in supporting it earlier. For now we'd probably need feature/version detection making the code even more complicated.

@siegfriedweber
Copy link
Member

As we have a working implementation of the logging sidecar I'd suggest we wait until we don't support K8s versions without this feature anymore?

Yes, let's wait. The current approach works well. It is only a little bit complicated and will be much easier with native sidecar containers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

4 participants