Commit Graph

47612 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
86fec81606 Merge pull request #118995 from pohly/test-integration-race-detection-flowcontrol-II
flowcontrol: copy object before passing it to client-go Create to avoid data race
2023-06-30 08:18:43 -07:00
Kubernetes Prow Robot
52b1247b28 Merge pull request #118232 from luckymrwang/style
style: correct the sentence
2023-06-30 01:51:59 -07:00
Kubernetes Prow Robot
9af93df9b0 Merge pull request #117845 from ctripcloud/fix-hpa-plain-calc
fix HPA plain metric calculate
2023-06-30 01:51:47 -07:00
Patrick Ohly
a5df442be7 flowcontrol: copy object before passing it to client-go Create to avoid data race
This is similar to 5e1c6cd0d4, except that here generics are involved:
because client-go Create under the hood mutates its input value temporarily,
callers must make a copy if the object is read from some other goroutine.

The race as reported by "go test -race" for
test/integration/examples.TestAggregatedAPIServerRejectRedirectResponse is:

WARNING: DATA RACE
Read at 0x00c000556010 by goroutine 16128:
  reflect.Value.String()
      /usr/local/go/src/reflect/value.go:2565 +0x216
  encoding/json.stringEncoder()
      /usr/local/go/src/encoding/json/encode.go:645 +0x223
  encoding/json.structEncoder.encode()
      /usr/local/go/src/encoding/json/encode.go:759 +0x2ba
  encoding/json.structEncoder.encode-fm()
      <autogenerated>:1 +0xdb
  encoding/json.ptrEncoder.encode()
      /usr/local/go/src/encoding/json/encode.go:943 +0x382
  encoding/json.ptrEncoder.encode-fm()
      <autogenerated>:1 +0x90
  encoding/json.(*encodeState).reflectValue()
      /usr/local/go/src/encoding/json/encode.go:358 +0x88
  encoding/json.(*encodeState).marshal()
      /usr/local/go/src/encoding/json/encode.go:330 +0x224
  encoding/json.Marshal()
      /usr/local/go/src/encoding/json/encode.go:161 +0xf9
  k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format.ToJSON()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format/formatting.go:81 +0x44
  k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format.Stringer.String()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format/formatting.go:68 +0x5a4
  k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol/format.(*Stringer).String()
      <autogenerated>:1 +0x4b
  fmt.(*pp).handleMethods()
      /usr/local/go/src/fmt/print.go:673 +0x4db
  fmt.(*pp).printArg()
      /usr/local/go/src/fmt/print.go:756 +0xce4
  fmt.(*pp).doPrintf()
      /usr/local/go/src/fmt/print.go:1077 +0x599
  fmt.Fprintf()
      /usr/local/go/src/fmt/print.go:224 +0x7e
  k8s.io/kubernetes/vendor/k8s.io/klog/v2.(*loggingT).printfDepth()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/klog/v2/klog.go:733 +0x216
  k8s.io/kubernetes/vendor/k8s.io/klog/v2.(*loggingT).printf()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/klog/v2/klog.go:718 +0xcc
  k8s.io/kubernetes/vendor/k8s.io/klog/v2.Verbose.Infof()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/klog/v2/klog.go:1418 +0x64
  k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/util/flowcontrol.(*cfgMeal).digestFlowSchemasLocked()
...
Previous write at 0x00c000556010 by goroutine 15271:
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/apis/meta/v1.(*TypeMeta).SetGroupVersionKind()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go:121 +0x193
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime.WithVersionEncoder.Encode()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime/helper.go:239 +0x325
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime.(*WithVersionEncoder).Encode()
      <autogenerated>:1 +0xfb
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime.Encode()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime/codec.go:49 +0xb3
  k8s.io/kubernetes/vendor/k8s.io/client-go/rest.(*Request).Body()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/rest/request.go:470 +0x884
  k8s.io/kubernetes/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3.(*flowSchemas).Create()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/flowschema.go:118 +0x23c
  k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer.(*objectOps[...]).Create()
      <autogenerated>:1 +0x10f
  k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer.EnsureConfiguration[...]()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer/strategy.go:272 +0x1b5
  k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer.EnsureConfigurations[...]()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer/strategy.go:247 +0xf3
  k8s.io/kubernetes/pkg/registry/flowcontrol/rest.ensureMandatoryConfiguration()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/rest/storage_flowcontrol.go:230 +0x59e
  k8s.io/kubernetes/pkg/registry/flowcontrol/rest.ensure()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/rest/storage_flowcontrol.go:202 +0x1b2
  k8s.io/kubernetes/pkg/registry/flowcontrol/rest.(*bootstrapConfigurationEnsurer).ensureAPFBootstrapConfiguration.func1.1()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/registry/flowcontrol/rest/storage_flowcontrol.go:159 +0xe4
  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtectionWithContext()
      /home/prow/go/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:154 +0x7b
2023-06-30 09:55:25 +02:00
Kubernetes Prow Robot
02f09d6a61 Merge pull request #118842 from helayoty/sched-update-unit-tests
test: Use table-driven test for TestPerPodSchedulingMetrics
2023-06-29 18:23:46 -07:00
Kubernetes Prow Robot
c2b7d25ff8 Merge pull request #118691 from giuseppe/drop-check-for-volumes
apis: drop check for volumes with user namespaces
2023-06-29 16:23:56 -07:00
Kubernetes Prow Robot
68b9ccc511 Merge pull request #117554 from yanggangtony/clean-endpoint-controller
clean endpoint controller typo logs
2023-06-29 16:23:44 -07:00
Heba Elayoty
d548983dbb Use table-driven table for TestPerPodSchedulingMetrics
Signed-off-by: Heba Elayoty <hebaelayoty@gmail.com>
2023-06-29 14:51:55 -07:00
Shingo Omura
d53762ec3a remove unnecessary comment in pkg/scheduler/framework.QueueingHintFn
event is not passed to QueueingHintFn but it exists a comment about it.
event is unnecessary in QueueingHintFn because QueueingHintFn is used in
ClusterEventWithHint and ClusterEventWithHint already have ClusterEvent.

Signed-off-by: Shingo Omura <everpeace@gmail.com>
2023-06-29 21:22:20 +09:00
Kubernetes Prow Robot
3a9c639d5a Merge pull request #118312 from mengjiao-liu/improve-scheduler-cache-test
scheduler: add test name and remove redundant test tables to improve cache_test.go
2023-06-29 02:51:36 -07:00
Kubernetes Prow Robot
c3c731890c Merge pull request #117927 from kaisoz/add-FailedToRetrieveImagePullSecret-event
Log a warning if a ImagePullSecrets does not exist
2023-06-28 11:14:31 -07:00
Kubernetes Prow Robot
52457842d1 Merge pull request #117055 from cyclinder/csi_migration
remove CSI-migration gate
2023-06-28 04:28:31 -07:00
Kubernetes Prow Robot
ddbf3575a7 Merge pull request #116729 from AxeZhan/handlers_sync
[Scheduler] Make sure handlers have synced before scheduling
2023-06-28 01:26:31 -07:00
Kubernetes Prow Robot
74bd77a9df Merge pull request #118917 from kmala/daemonsetfix
increase the log level for the GetTargetNodeName error message
2023-06-28 00:08:32 -07:00
Kubernetes Prow Robot
960830bc66 Merge pull request #118102 from RomanBednar/retro-sc-assignment-ga
graduate RetroactiveDefaultStorageClass feature to GA in 1.28
2023-06-27 20:46:32 -07:00
yanggang
860aab842d fix a reference to the wrong variable name
Signed-off-by: yanggang <gang.yang@daocloud.io>
2023-06-28 06:12:44 +08:00
kannon92
bb8766daaf feature flags should be ordered alphabetically 2023-06-27 19:16:16 +00:00
Kubernetes Prow Robot
b3d94ae74f Merge pull request #118786 from pohly/dra-test-skip-prepare
dra: kubelet must skip NodePrepareResource if not used by any container
2023-06-27 09:58:32 -07:00
Aldo Culquicondor
a4519665fe Skip terminal Pods with a deletion timestamp from the Daemonset sync (#118716)
* Skip terminal Pods with a deletion timestamp from the Daemonset sync

Change-Id: I64a347a87c02ee2bd48be10e6fff380c8c81f742

* Review comments and fix integration test

Change-Id: I3eb5ec62bce8b4b150726a1e9b2b517c4e993713

* Include deleted terminal pods in history

Change-Id: I8b921157e6be1c809dd59f8035ec259ea4d96301
2023-06-27 08:56:33 -07:00
kidddddddddddddddddddddd
9c7166ff63 wait for eventhandlers to sync before run scheduler 2023-06-27 23:19:34 +08:00
Patrick Ohly
bde66bfb55 kubelet dra: restore skipping of unused resource claims
1aeec10efb removed iterating over containers in favor of iterating over pod
claims. This had the unintended consequence that NodePrepareResource gets
called unnecessarily when no container needs the claim. The more natural
behavior is to skip unused resources. This enables (theoretic, at this time)
use cases where some DRA driver relies on the controller part to influence
scheduling, but then doesn't use CDI with containers.
2023-06-27 16:02:31 +02:00
Patrick Ohly
874daa8b52 kubelet dra: fix checking of second pod which uses a claim
When a second pod wanted to use a claim, the obligatory sanity check whether
the pod is really allowed to use the claim ("reserved for") was skipped.
2023-06-27 16:01:11 +02:00
Maciej Szulik
af1c9e49c4 Update schedule logic to properly calculate missed schedules
Before this change we've assumed a constant time between schedule runs,
which is not true for cases like "30 6-16/4 * * 1-5".
The fix is to calculate the potential next run using the fixed schedule
as the baseline, and then go back one schedule back and allow the cron
library to calculate the correct time.

This approach saves us from iterating multiple times between last
schedule time and now, if the cronjob for any reason wasn't running for
significant amount of time.
2023-06-27 11:29:30 +02:00
Kubernetes Prow Robot
1d25ce8beb Merge pull request #118392 from testwill/emptydir
chore: io/ioutil deprecated
2023-06-26 20:04:31 -07:00
Keerthan Reddy Mala
0033f65808 increase the log level for the GetTargetNodeName error message 2023-06-26 17:31:50 -07:00
Dr. Stefan Schimanski
8083d0d22e pkg/controlplane/apiserver: remove temporary import restriction of cmd/kube-apiserver 2023-06-26 21:50:38 +02:00
Dr. Stefan Schimanski
764da8a01d FIXUP: cmd/kube-apiserver/app/options: split apart controlplane part 2023-06-26 21:50:38 +02:00
Dr. Stefan Schimanski
1b3779baa0 MOVE: cmd/kube-apiserver/app/options: split apart controlplane part 2023-06-26 21:50:37 +02:00
Kubernetes Prow Robot
d9714078f8 Merge pull request #118551 from sanposhiho/event-to-register
feature(scheduler): implement ClusterEventWithHint to filter out useless events
2023-06-26 06:41:45 -07:00
Davanum Srinivas
f7239e4095 Better back off delays and connection timeout to talk to containerd
Set up params similar to what we do in cadvisor:
e9068e3273/container/containerd/client.go (L59-L61)

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-06-25 16:25:28 -04:00
Kubernetes Prow Robot
ba6d2674ca Merge pull request #118722 from aojea/ip_leading_zeros
ipallocator bug if ips has leading zeros
2023-06-25 07:11:07 -07:00
Antonio Ojea
e4f93d8a82 ipallocator bug if ips has leading zeros
The ipallocator for the new IPAddress object use the golang big.Int
library for some math operations, like adding an offset to an IP
address.

We use the bytes array to convert between big.Int and IP addresses,
however, IP addresses are always represented as 4 or 16 bytes arrays.
Big int bytes representations just return the byte array until the
most representative number, this requires that we need to prepend
these extra bytes for IPs with leading zeros.

Change-Id: I9d539f582cae1f9f4e373b28c5b94d7a342f09c7
Signed-off-by: Antonio Ojea <aojea@google.com>
2023-06-25 13:14:46 +00:00
Kubernetes Prow Robot
e81c24dfb8 Merge pull request #118497 from mimowo/fix-kubelet-regression
Proceed with deletion of rejected pods after Kubelet restart
2023-06-23 14:05:07 -07:00
Kubernetes Prow Robot
a48bcc06fe Merge pull request #117064 from RomanBednar/multiple-defaults
storage class assignment should not ignore errors
2023-06-23 03:09:23 -07:00
Kubernetes Prow Robot
9325a57125 Merge pull request #118765 from mimowo/job-controller-unit-tests
Do not set jm.syncJobBatchPeriod=0 if not needed
2023-06-22 10:25:41 -07:00
Kensei Nakada
6f8d38406a feature(scheduler): implement ClusterEventWithHint to filter out useless events 2023-06-22 13:36:19 +00:00
Giuseppe Scrivano
531d38e323 features: rename UserNamespacesStatelessPodsSupport
now it is called UserNamespacesSupport since all kind of volumes are
supported.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-06-22 15:19:50 +02:00
Giuseppe Scrivano
556d713a4a apis: drop check for volumes with user namespaces
The second phase of user namespaces support was related to supporting
only stateless pods.  Since the changes were accepted for the KEP, now
the scope is extended to support stateful pods as well.  Remove the
check that blocks creating PODs with volumes when using user namespaces.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-06-22 15:15:42 +02:00
Michal Wozniak
8ed23558b4 Do not set jm.syncJobBatchPeriod=0 if not needed 2023-06-22 11:10:53 +02:00
Michal Wozniak
17013d3960 Review remarks to improve HandlePodCleanups in kubelet 2023-06-22 10:55:39 +02:00
Michal Wozniak
e3ee9b9adc Fix the deletion of rejected pods 2023-06-22 09:18:34 +02:00
Kubernetes Prow Robot
3e28404008 Merge pull request #118485 from MikeSpreitzer/generic-apf-strategy
Use generics to simplify pkg/registry/flowcontrol/ensurer
2023-06-21 23:57:40 -07:00
Mike Spreitzer
92a35f5bca Usse generics to simplify pkg/registry/flowcontrol/ensurer
Signed-off-by: Mike Spreitzer <mspreitz@us.ibm.com>
2023-06-22 00:56:54 -04:00
Kubernetes Prow Robot
d0accc3f02 Merge pull request #118049 from helayoty/sched-queue-gated-timestamp
Unset gated podinfo InitialAttemptTimestamp in addToActiveQ
2023-06-21 17:49:39 -07:00
Kubernetes Prow Robot
a19153ded9 Merge pull request #118403 from skitt/ioutil-sig-storage
storage: stop using deprecated io/ioutil
2023-06-21 16:49:41 -07:00
Heba Elayoty
902c711fb4 Unset gated pod info timestamp in addToActiveQ
Signed-off-by: Heba Elayoty <hebaelayoty@gmail.com>
2023-06-21 14:16:08 -07:00
Kubernetes Prow Robot
28296ba59e Merge pull request #113994 from mengjiao-liu/contextual-logging-controller-certificates
certificate controller: use contextual logging
2023-06-21 09:03:42 -07:00
Roman Bednar
1bd3f072fa stop ignoring storage class selection errors
The GetDefaultClass() was fixed in scope of this issue:
https://github.com/kubernetes/kubernetes/issues/110514

Before this change assignDefaultStorageClass() was ignoring errors from
this function since it could mean there are multiple defaults - assign
could safely continue and do nothing.

This is no longer true because we always choose one from multiple
defaults - any errors returned from GetDefaultClass() are real errors
and should not be ignored.
2023-06-21 13:09:05 +02:00
Kubernetes Prow Robot
9e0569f2ed Merge pull request #118779 from dims/add-a-connection-backoff-to-talk-to-cri-impls
Add a connection backoff to talk to CRI impls
2023-06-20 20:04:21 -07:00
Davanum Srinivas
c98e72841b Add a connection backoff to talk to CRI impls
We can add backoff for connection like we do in cadvisor:
https://github.com/google/cadvisor/blob/master/container/containerd/client.go#L76-L80

for now, don't tune it, just use the default:
https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-06-20 21:32:50 -04:00