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

Support for Kubernetes v1.26 #7275

Merged
merged 17 commits into from
Jan 16, 2023
Merged

Support for Kubernetes v1.26 #7275

merged 17 commits into from
Jan 16, 2023

Commits on Jan 13, 2023

  1. Configuration menu
    Copy the full SHA
    f3bc1aa View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a394cc5 View commit details
    Browse the repository at this point in the history
  3. Maintain Kubernetes feature gates

    $ ./hack/compare-k8s-feature-gates.sh 1.25 1.26
    Feature gates added in 1.26 compared to 1.25:
    APISelfSubjectReview
    AggregatedDiscoveryEndpoint
    ConsistentHTTPGetHandlers
    CrossNamespaceVolumeDataSource
    DynamicResourceAllocation
    EventedPLEG
    LegacyServiceAccountTokenTracking
    MinimizeIPTablesRestore
    PDBUnhealthyPodEvictionPolicy
    PodSchedulingReadiness
    StatefulSetStartOrdinal
    TopologyManagerPolicyAlphaOptions
    TopologyManagerPolicyBetaOptions
    TopologyManagerPolicyOptions
    ValidatingAdmissionPolicy
    WindowsHostNetwork
    
    Feature gates removed in 1.26 compared to 1.25:
    CSIMigrationOpenStack
    CSRDuration
    DefaultPodTopologySpread
    DynamicKubeletConfig
    IndexedJob
    NonPreemptingPriority
    PodAffinityNamespaceSelector
    PodOverhead
    PreferNominatedNode
    ServiceLBNodePortControl
    ServiceLoadBalancerClass
    SuspendJob
    
    Feature gates locked to default in 1.26 compared to 1.25:
    CPUManager
    CSIMigrationvSphere
    DelegateFSGroupToCSIDriver
    DevicePlugins
    DryRun
    EndpointSliceTerminatingCondition
    JobTrackingWithFinalizers
    KubeletCredentialProviders
    MixedProtocolLBService
    ServerSideApply
    ServiceIPStaticSubrange
    ServiceInternalTrafficPolicy
    WindowsHostProcessContainers
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    232b514 View commit details
    Browse the repository at this point in the history
  4. Maintain kube-apiserver admission plugins

    $ ./hack/compare-k8s-admission-plugins.sh 1.25 1.26
    Admission plugins added in 1.26 compared to 1.25:
    ValidatingAdmissionPolicy
    
    Admission plugins removed in 1.26 compared to 1.25:
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    338c6f2 View commit details
    Browse the repository at this point in the history
  5. Maintain ServiceAccount names for the controllers part of `kube-con…

    …troller-manager`
    
    $ ./hack/compare-k8s-controllers.sh 1.25 1.26
    
    kube-controller-manager controllers added in 1.26 compared to 1.25:
    resource-claim-controller
    
    kube-controller-manager controllers removed in 1.26 compared to 1.25:
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    ff962d0 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a55300b View commit details
    Browse the repository at this point in the history
  7. Deprecate the podEvictionTimeout field in favor of newly introduced…

    … kube-apiserver fields
    
    The kube-controller-manager flag `--pod-eviction-timeout` is deprecated in favor of the kube-apiserver flags `--default-not-ready-toleration-seconds` and `--default-unreachable-toleration-seconds`. The `--pod-eviction-timeout` flag does not have effect when the taint besed eviction is enabled. The taint  based eviction is beta (enabled by default) since Kubernetes 1.13 and GA since Kubernetes 1.18. For more details, see kubernetes/kubernetes#74651.
    
    This commit allows configuring the kube-apiserver flags `--default-not-ready-toleration-seconds` and `--default-unreachable-toleration-seconds`. The `podEvictionTimeout` field is deprecated in favor of the newly introduced fields. gardener-apiserver no longer defaults the `podEvictionTimeout` field. gardener-apiserver also returns a warning when the `podEvictionTimeout` field is set.
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    7ffa5cd View commit details
    Browse the repository at this point in the history
  8. Adapt to the renaming of etcd_db_total_size_in_bytes metric to `api…

    …server_storage_db_total_size_in_bytes`
    
    The metric `etcd_db_total_size_in_bytes` is renamed to `apiserver_storage_db_total_size_in_bytes`. Ref kubernetes/kubernetes#113310.
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    0833292 View commit details
    Browse the repository at this point in the history
  9. Fix the Pod spec in simple-load-deployment.yaml.tpl

    Test runs of the integration test that uses this template prints the following warning about the issue in the template:
    ```
    {"level":"info","ts":"2022-12-28T19:36:29.043+0200","logger":"KubeAPIWarningLogger","msg":"unknown field \"spec.template.spec.containers[0].nodeName\""}
    ```
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    dd56ae7 View commit details
    Browse the repository at this point in the history
  10. Update docs/usage/shoot_credentials_rotation.md

    After the removal of support for Kubernetes < 1.20 Shoot clusters (ref #6987), the kubeconfig Secret no longer has the `token` field. Basic auth cannot be enabled for K8s 1.19+ clusters, hence the kubeconfig Secret cannot contain the `username`/`password` fields anymore.
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    afdc518 View commit details
    Browse the repository at this point in the history
  11. Default enableStaticTokenKubeconfig to false for Shoots with K8s ve…

    …rsion >= 1.26
    
    This commit also adapts most of the testmachinery integration tests to use the `shoots/adminkubeconfig` subresource instead of the static kubeconfig.
    The Shoot creation intergration is still using the static kubeconfig and it is downloading it to `$TM_KUBECONFIG_PATH/shoot.config`. This commit sets `enableStaticTokenKubeconfig=true` until we figure out which tests/components are using this downloaded kubeconfig.
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    ed565e3 View commit details
    Browse the repository at this point in the history
  12. Add constraint for K8s version < 1.26

    The constraint `ConstraintK8sLess126` is currently not used by gardener/gardener but it is introduced for usage from the extensions.
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    6450bc0 View commit details
    Browse the repository at this point in the history
  13. Address review comments

    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    3088761 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    d8932ad View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    c427eb8 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    dffb02d View commit details
    Browse the repository at this point in the history
  17. Revert the K8s versions used for e2e tests

    For the reasoning, see #7275 (comment)
    ialidzhikov committed Jan 13, 2023
    Configuration menu
    Copy the full SHA
    89e4f98 View commit details
    Browse the repository at this point in the history