Commit Graph

130061 Commits

Author SHA1 Message Date
Adrian Moisey
32c45ecf10 Bump github.com/vishvananda/netlink to v1.3.1
hack/pin-dependency.sh github.com/vishvananda/netlink v1.3.1
hack/update-vendor.sh
2025-05-21 13:10:02 +02:00
Kubernetes Prow Robot
c40db09a0a Merge pull request #131741 from soltysh/deprecate_preferences
Deprecate kubeconfig's preference field in favor of kuberc
2025-05-20 08:11:18 -07:00
Kubernetes Prow Robot
889cd833a2 Merge pull request #131844 from pohly/dra-no-static-pods
DRA node: reject static pods which reference ResourceClaims
2025-05-20 07:07:24 -07:00
Kubernetes Prow Robot
444e2b4eb0 Merge pull request #131838 from dims/bump-google.golang.org/grpc-to-google-v1.72.1
Bump google.golang.org/grpc to google v1.72.1
2025-05-20 07:07:17 -07:00
Kubernetes Prow Robot
0afe2b839d Merge pull request #129983 from nickbp/master
feature(scheduler): Customizable pod selection and ordering in DefaultPreemption plugin
2025-05-20 05:09:15 -07:00
Maciej Szulik
8cf5e8db78 Deprecate kubeconfig's preference field in favor of kuberc
Signed-off-by: Maciej Szulik <soltysh@gmail.com>
2025-05-20 13:31:57 +02:00
Kubernetes Prow Robot
b20fca7484 Merge pull request #131855 from mortent/CleanupAllocatorTests
DRA: Clean up allocator tests
2025-05-20 02:49:15 -07:00
Kubernetes Prow Robot
4aa2652e5f Merge pull request #131628 from skitt/applyconfig-nil
applyconfig-gen: handle non-pointer types
2025-05-20 01:23:16 -07:00
Morten Torkildsen
5bb3f862a0 DRA: Clean up allocator tests 2025-05-20 01:46:55 +00:00
Kubernetes Prow Robot
d75a5811ef Merge pull request #131843 from pohly/resourcequota-scope-flake
ResourceQuota: partial fix "should verify ResourceQuota with terminating scopes through scope selectors" flake
2025-05-19 12:45:21 -07:00
Kubernetes Prow Robot
4e80b05087 Merge pull request #131704 from karlkfi/karl-watch-subtests
test: Use sub-tests in watch tests
2025-05-19 12:45:14 -07:00
Omer Aplatony
3530731974 Kubectl: check version skew (#127365)
Signed-off-by: Omer Aplatony <omerap12@gmail.com>
2025-05-19 10:19:14 -07:00
Patrick Ohly
3878f7e748 E2E ResourceQuota: ensure consistent ResourceQuote during scope selector test
When expectation is that something does *not* happen, the test has to check for
a certain time. Checking just once is not sufficient because it might not have
happened immediately.
2025-05-19 18:23:49 +02:00
Kubernetes Prow Robot
f2502b31b8 Merge pull request #131830 from dims/future-proof-csi-test-mocks
future-proof csi test mocks
2025-05-19 08:53:22 -07:00
Kubernetes Prow Robot
f80233f24b Merge pull request #131766 from serathius/flake-TestGetCacheBypass
Separate getList and watch errors to prevent TestGetCacheBypass flakes
2025-05-19 08:53:15 -07:00
Kubernetes Prow Robot
fc3e0cf60d Merge pull request #131841 from pohly/local-up-cluster-cloud-config-fix
hack/local-up-cluster.sh: remove kubelet --cloud-config
2025-05-19 07:09:15 -07:00
Patrick Ohly
4a353d07e4 E2E ResourceQuota: fix pod creation flake
As can be seen in the output of a test failure in the CI, the test waits for
"quota-not-terminating" to be updated, but then fails because creating the pod
exceeds the "quota-terminating" quota which has not been updated yet. As both
ResourceQuotas apply, it needs to wait for both of them to be updated.

    STEP: Deleting the pod - k8s.io/kubernetes/test/e2e/apimachinery/resource_quota.go:1597 @ 05/18/25 07:50:46.531
    STEP: Ensuring resource quota status released the pod usage - k8s.io/kubernetes/test/e2e/apimachinery/resource_quota.go:1601 @ 05/18/25 07:50:46.547
    I0518 07:50:46.551520 75078 resource_quota.go:2508] Got expected ResourceQuota:
    ...
              name: quota-not-terminating
              namespace: scope-selectors-1836
              resourceVersion: "15914"
              uid: db72668e-2fe0-4543-ada2-a3ff0ac77dd5
            spec:
              hard:
                limits.cpu: "2"
                limits.memory: 1Gi
                pods: "1"
                requests.cpu: "1"
                requests.memory: 500Mi
              scopeSelector:
                matchExpressions:
                - operator: Exists
                  scopeName: NotTerminating
            status:
              hard:
                limits.cpu: "2"
                limits.memory: 1Gi
                pods: "1"
                requests.cpu: "1"
                requests.memory: 500Mi
              used:
                limits.cpu: "0"
                limits.memory: "0"
                pods: "0"
                requests.cpu: "0"
                requests.memory: "0"
    STEP: Creating a terminating pod - k8s.io/kubernetes/test/e2e/apimachinery/resource_quota.go:1610 @ 05/18/25 07:50:46.551
    I0518 07:50:46.560944 75078 resource_quota.go:1612] Unexpected error:
        <*errors.StatusError | 0xc002dba500>:
        pods "terminating-pod" is forbidden: exceeded quota: quota-terminating, requested: pods=1, used: pods=1, limited: pods=1
        {
            ErrStatus:
                code: 403
                details:
                  kind: pods
                  name: terminating-pod
                message: 'pods "terminating-pod" is forbidden: exceeded quota: quota-terminating,
                  requested: pods=1, used: pods=1, limited: pods=1'
                metadata: {}
                reason: Forbidden
                status: Failure,
        }
    [FAILED] pods "terminating-pod" is forbidden: exceeded quota: quota-terminating, requested: pods=1, used: pods=1, limited: pods=1
2025-05-19 15:36:57 +02:00
Patrick Ohly
4b10ba9eef E2E ResourceQuota: dump last ResourceQuota
This is meant to help debug this flake:

   [It] [sig-api-machinery] ResourceQuota should verify ResourceQuota with terminating scopes through scope selectors.

   [FAILED] pods "test-pod" is forbidden: exceeded quota: quota-terminating, requested: pods=1, used: pods=1, limited: pods=1
   In [It] at: k8s.io/kubernetes/test/e2e/apimachinery/resource_quota.go:1572 @ 05/14/25 08:49:07.456

Dumping the ResourceQuota object each time the test progresses will
help with understanding the test and the actual behavior.
2025-05-19 15:36:57 +02:00
Kubernetes Prow Robot
82db38a23c Merge pull request #128748 from sanposhiho/attempt-incre
feat: introduce pInfo.UnschedulableCount to make the backoff calculation more appropriate
2025-05-19 01:21:15 -07:00
Patrick Ohly
d3afe8a87e hack/local-up-cluster.sh: remove kubelet --cloud-config
c0b2f341a7 removed that flag, which was already
deprecated earlier. When passing it now, kubelet fails to come up.
2025-05-19 09:20:54 +02:00
Davanum Srinivas
d043beb223 HealthChecker has a List method
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-05-18 12:52:13 -04:00
Davanum Srinivas
9b3830fba2 Bump google.golang.org/grpc v1.72.1
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-05-18 12:52:05 -04:00
Kubernetes Prow Robot
3196c99463 Merge pull request #131832 from bshephar/no-kubeadm-config-option
Remove --config option from suggest kubeadm command
2025-05-18 02:49:14 -07:00
Brendan Shephard
be5d8c767b Update cmd/kubeadm/app/cmd/upgrade/apply.go
Co-authored-by: Bing Hongtao <695097494plus@gmail.com>
2025-05-18 18:38:16 +10:00
Brendan Shephard
c0885e018a Fix --config option from suggested kubeadm command
This change fixes the --config option in the recommended kubeadm command
that is returned to users.

Fixes: https://github.com/kubernetes/kubeadm/issues/3201
Signed-off-by: Brendan Shephard <bshephar@bne-home.net>
2025-05-18 18:36:45 +10:00
Kubernetes Prow Robot
ce450746a4 Merge pull request #131760 from bart0sh/PR178-dra-test-re-registration
DRA: test plugin re-registration after failed GetInfo call
2025-05-17 22:15:13 -07:00
Davanum Srinivas
8f49fb5ce7 future-proof csi test mocks
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-05-17 20:42:08 -04:00
Kubernetes Prow Robot
2125fd6a94 Merge pull request #130161 from carlory/kep-2395-kubelet-cleanup
kubelet: clean up cloud provider code because cloud provider only supports empty or external and cloud is nil
2025-05-17 13:05:13 -07:00
Kubernetes Prow Robot
ed34574525 Merge pull request #129758 from gyutaeb/fix/kubemark-tr
Fix LC_CTYPE for kubemark start scripts
2025-05-17 08:59:13 -07:00
Kensei Nakada
adc4916dfe feat: introduce pInfo.UnschedulableCount to make the backoff calculation more appropriate 2025-05-17 12:39:58 +02:00
Kubernetes Prow Robot
6e6e6f6e53 Merge pull request #131820 from dims/drop-dependency-on-x/exp-package-in-mount_linux_test
Drop dependency on x/exp package in mount_linux_test.go
2025-05-16 18:27:15 -07:00
Kubernetes Prow Robot
b6bff1bd44 Merge pull request #131800 from BenTheElder/kubelet-testing
kubelet: don't import testing dependency in non-test code
2025-05-16 16:37:13 -07:00
Davanum Srinivas
5def7fadf3 Drop dependency on x/exp package in mount_linux_test.go
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-05-16 20:46:55 +00:00
Ed Bartosh
b9e2a16083 e2e_node: dra: test plugin registration retry
Adds a DRA e2e_node test to verify that the kubelet plugin manager
retries plugin registration when the GetInfo call fails, and
successfully registers the plugin once GetInfo succeeds.

This ensures correct recovery and registration behavior for
DRA plugins in failure scenarios.
2025-05-16 21:53:35 +03:00
Ed Bartosh
aef61622ae e2e: dra: implement ResetGRPCCalls 2025-05-16 21:53:35 +03:00
Ed Bartosh
e8be3e575b e2e: dra: simulate GetInfo failure 2025-05-16 21:53:30 +03:00
Kubernetes Prow Robot
79cc5ddaa6 Merge pull request #131816 from joshjms/build-etcd-image-v3.6.0
etcd: Build etcd image v3.6.0
2025-05-16 08:07:14 -07:00
Karl Isenberg
0e5eab042c test: Use sub-tests in watch tests
- Use sub-tests to avoid side-effects between test cases,
  cancel the context between cases, and make it easier to
  determine the failing case in the test logs.
- Use anonymous closures in benchmarks, instead of sub-tests,
  so the times still include all cases.
2025-05-16 08:04:07 -07:00
Kubernetes Prow Robot
808ffdab58 Merge pull request #131804 from pohly/e2e-resource-quota-failure
ResourceQuota E2E: more informative failure message
2025-05-16 06:59:14 -07:00
Kubernetes Prow Robot
a5e3df5e68 Merge pull request #131795 from aojea/kubectl_scheme
fix scheme import
2025-05-16 04:53:21 -07:00
Kubernetes Prow Robot
17161cb45d Merge pull request #131617 from bart0sh/PR180-claimInfo-check-claimUID
DRA: kubelet: check for duplicate claim names
2025-05-16 04:53:14 -07:00
joshjms
c369e3cd49 etcd: build etcd image v3.6.0
Signed-off-by: joshjms <joshjms1607@gmail.com>
2025-05-16 19:06:09 +08:00
Kubernetes Prow Robot
8f92419974 Merge pull request #131808 from mkumatag/patch-3
Bump the busybox image
2025-05-16 03:17:14 -07:00
Antonio Ojea
65a27eb97d restrict the use of scheme internally to client-go
Change-Id: Ic78c2d90f97d620cee29048bc3a40d6500d0fc1d
2025-05-16 08:48:39 +00:00
Manjunath Kumatagi
671d1a07a5 Bump the busybox image 2025-05-16 13:28:37 +05:30
Patrick Ohly
88b2360540 ResourceQuota E2E: more informative failure message
When the usage information in the ResourceQuota status doesn't get updated as
expected, the previous log output and failure message didn't explain why:

    ...
    I0515 23:29:57.361485 75251 resource_quota.go:2497] resource count/resourceclaims.resource.k8s.io, expected 0, actual 1
    I0515 23:29:59.363848 75251 resource_quota.go:2497] resource count/resourceclaims.resource.k8s.io, expected 0, actual 1
    I0515 23:30:01.357948 75251 resource_quota.go:2497] resource count/resourceclaims.resource.k8s.io, expected 0, actual 1
    I0515 23:30:03.345999 75251 resource_quota.go:544] Unexpected error:
        <*fmt.wrapError | 0xc0048578a0>:
        client rate limiter Wait returned an error: rate: Wait(n=1) would exceed context deadline
        {
            msg: "client rate limiter Wait returned an error: rate: Wait(n=1) would exceed context deadline",
            err: <*errors.errorString | 0xc004b028a0>{
                s: "rate: Wait(n=1) would exceed context deadline",
            },
        }
    [FAILED] client rate limiter Wait returned an error: rate: Wait(n=1) would exceed context deadline
    In [It] at: k8s.io/kubernetes/test/e2e/apimachinery/resource_quota.go:544 @ 05/13/25 08:59:21.152

The actual failure is also unpredictable, preventing proper clustering in the triage
tool. Depending on where the context is checked, it can also fail with:

    [FAILED] context deadline exceeded
    In [It] at: k8s.io/kubernetes/test/e2e/apimachinery/resource_quota.go:544 @ 05/14/25 00:08:34.258

After converting to a GomegaMatcher with gomega.Eventually, it fails like
this (manually truncated a bit and triggered by changing the expected value):

    [FAILED] Timed out after 300.001s.
    Expected:
        <*v1.ResourceQuota | 0xc0035c3e00>:
            metadata:
              creationTimestamp: "2025-05-09T20:00:28Z"
              managedFields:
              - apiVersion: v1
                fieldsType: FieldsV1
                fieldsV1:
                  f:spec:
                ...
                manager: e2e.test
                operation: Update
                time: "2025-05-09T20:00:28Z"
              - apiVersion: v1
                fieldsType: FieldsV1
                fieldsV1:
                  f:status:
                    f:hard:
                      .: {}
                      f:configmaps: {}
                      f:count/replicasets.apps: {}
                      f:count/resourceclaims.resource.k8s.io: {}
                      f:cpu: {}
                      f:ephemeral-storage: {}
                      f:gold.deviceclass.resource.k8s.io/devices: {}
                      f:gold.storageclass.storage.k8s.io/persistentvolumeclaims: {}
                      f:gold.storageclass.storage.k8s.io/requests.storage: {}
                      f:memory: {}
                      f:persistentvolumeclaims: {}
                      f:pods: {}
                      f:replicationcontrollers: {}
                      f:requests.example.com/dongle: {}
                      f:requests.storage: {}
                      f:resourcequotas: {}
                      f:secrets: {}
                      f:services: {}
                      f:services.loadbalancers: {}
                      f:services.nodeports: {}
                    f:used:
                      .: {}
                      f:configmaps: {}
                      f:count/replicasets.apps: {}
                      f:count/resourceclaims.resource.k8s.io: {}
                      f:cpu: {}
                      f:ephemeral-storage: {}
                      f:gold.deviceclass.resource.k8s.io/devices: {}
                      f:gold.storageclass.storage.k8s.io/persistentvolumeclaims: {}
                      f:gold.storageclass.storage.k8s.io/requests.storage: {}
                      f:memory: {}
                      f:persistentvolumeclaims: {}
                      f:pods: {}
                      f:replicationcontrollers: {}
                      f:requests.example.com/dongle: {}
                      f:requests.storage: {}
                      f:resourcequotas: {}
                      f:secrets: {}
                      f:services: {}
                      f:services.loadbalancers: {}
                      f:services.nodeports: {}
                manager: kube-controller-manager
                operation: Update
                subresource: status
                time: "2025-05-09T20:00:28Z"
                ...
            status:
              hard:
                configmaps: "10"
                count/replicasets.apps: "5"
                count/resourceclaims.resource.k8s.io: "1"
                cpu: "1"
                ephemeral-storage: 50Gi
                gold.deviceclass.resource.k8s.io/devices: "1"
                gold.storageclass.storage.k8s.io/persistentvolumeclaims: "10"
                gold.storageclass.storage.k8s.io/requests.storage: 10Gi
                memory: 500Mi
                persistentvolumeclaims: "10"
                pods: "5"
                replicationcontrollers: "10"
                requests.example.com/dongle: "3"
                requests.storage: 10Gi
                resourcequotas: "1"
                secrets: "10"
                services: "10"
                services.loadbalancers: "1"
                services.nodeports: "1"
              used:
                configmaps: "1"
                count/replicasets.apps: "0"
                count/resourceclaims.resource.k8s.io: "0"
                cpu: "0"
                ephemeral-storage: "0"
                gold.deviceclass.resource.k8s.io/devices: "0"
                gold.storageclass.storage.k8s.io/persistentvolumeclaims: "0"
                gold.storageclass.storage.k8s.io/requests.storage: "0"
                memory: "0"
                persistentvolumeclaims: "0"
                pods: "0"
                replicationcontrollers: "0"
                requests.example.com/dongle: "0"
                requests.storage: "0"
                resourcequotas: "1"
                secrets: "0"
                services: "0"
                services.loadbalancers: "0"
                services.nodeports: "0"
    to have the following .status.used entries:
        count/resourceclaims.resource.k8s.io: "1"
        gold.deviceclass.resource.k8s.io/devices: "0"
        resourcequotas: "0"
    In [It] at: k8s.io/kubernetes/test/e2e/apimachinery/resource_quota.go:523 @ 05/09/25 20:05:28.325

This is more useful because the failure is predictable and includes the managed
fields. Those are important in this case because both kube-apiserver
and kube-controller-manager update the status. One of them is not doing its
job.
2025-05-16 08:15:35 +02:00
Kubernetes Prow Robot
d4f73b797a Merge pull request #131778 from gavinkflam/131426-test-image-busybox-windows-curl
test: Fix cURL download of Windows busybox test image
2025-05-15 22:01:13 -07:00
Kubernetes Prow Robot
09ca440a45 Merge pull request #128419 from liggitt/etcd-3.6
etcd 3.6 client update
2025-05-15 19:23:13 -07:00
Jordan Liggitt
6b0ebedccc Set non-experimental WatchProgressNotifyInterval config field 2025-05-15 21:19:18 -04:00
Jordan Liggitt
079d4e52c2 Fix kubeadm etcd client interface 2025-05-15 21:19:18 -04:00