Commit Graph

46488 Commits

Author SHA1 Message Date
Sarvesh Rangnekar
a8f120b76c Fix the delete flow for ClusterCIDR objects
Fixes the deletion of ClusterCIDR object, when a Node is associated(has
Pod CIDRs allocated from this ClusterCIDR) with it. Currently the
ClusterCIDR finalizer is never cleaned up as there is no reconciliation
happening after the associated Node has been deleted. This commit fixes
the issue by adding workitems from all events to a worker queue and
reconcile until the delete is successful.
2023-01-30 19:35:41 +00:00
Chris Henzie
dbc7d8ded0 feat: support preemption for pods using ReadWriteOncePod PVCs
PVCs using the ReadWriteOncePod access mode can only be referenced by a
single pod. When a pod is scheduled that uses a ReadWriteOncePod PVC,
return "Unschedulable" if the PVC is already in-use in the cluster.

To support preemption, the "VolumeRestrictions" scheduler plugin
computes cycle state during the PreFilter phase. This cycle state
contains the number of references to the ReadWriteOncePod PVCs used by
the pod-to-be-scheduled.

During scheduler simulation (AddPod and RemovePod), we add and remove
reference counts from the cycle state if they use any of these
ReadWriteOncePod PVCs.

In the Filter phase, the scheduler checks if there are any PVC reference
conflicts, and returns "Unschedulable" if there is a conflict.

This is a required feature for the ReadWriteOncePod beta. See for more context:
https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode#beta
2023-01-30 10:59:22 -08:00
Kubernetes Prow Robot
ad2a9f2f33 Merge pull request #113863 from msau42/owners
update sig-storage owners
2023-01-30 10:10:50 -08:00
Kubernetes Prow Robot
5681b0da14 Merge pull request #115338 from danwinship/nodeutil.gethostname
Move GetHostname() from k/k/pkg/util/node to k/component-helpers/node/util
2023-01-30 09:07:20 -08:00
Kubernetes Prow Robot
d0584179f4 Merge pull request #114367 from liggitt/kubelet-csr-init
Check for initial kubelet certificates more frequently
2023-01-30 09:07:05 -08:00
Hemant Kumar
c9fc35c496 reword the warning that gets printed on external expansion 2023-01-30 11:37:30 -05:00
Kubernetes Prow Robot
c829397f7a Merge pull request #115354 from pohly/dra-reserved-for-list-type
dynamic resource allocation: avoid apiserver complaint about list content
2023-01-30 06:24:50 -08:00
Kubernetes Prow Robot
7b243cef1a Merge pull request #115368 from tzneal/correct-comment
update comment to match implementation
2023-01-29 17:21:16 -08:00
Kubernetes Prow Robot
232c0de57a Merge pull request #115101 from HirazawaUi/delte-pkg-kubelet-unused-functions
delete unused functions in pkg/kubelet directory
2023-01-29 17:21:08 -08:00
Kubernetes Prow Robot
7f0d1722f5 Merge pull request #115378 from aojea/aojea_allocator
add aojea as approver for networking APIs: services/allocators, netwo…
2023-01-29 16:14:49 -08:00
Kubernetes Prow Robot
5bb7326c36 Merge pull request #114418 from xuzhenglun/master
Reserve Nodeport Ranges For Dynamic And Static Port Allocation
2023-01-29 14:02:35 -08:00
mantuliu
8ca97dcde1 Add test for pkg/kubelet/sysctl/allowlist_test.go 2023-01-29 22:48:27 +08:00
BinacsLee
b3af95cb8a cleanup: simplify pickOneNodeForPreemption in preemption 2023-01-29 19:55:43 +08:00
Antonio Ojea
0461c48078 add aojea as approver for networking APIs: services/allocators, networking group, ...
Change-Id: Ia6542b21339f4a92a9c13c2b628038abe737d0f9
2023-01-29 00:10:06 +00:00
Paco Xu
894d4b4aaf fsquota: only generate pod uuid is nil 2023-01-28 14:09:31 +08:00
Dan Winship
f994ae2521 Move GetHostname() from k/k/pkg/util/node to k/component-helpers/node/util
In fact, this actually uses pkg/util/node's GetHostname() but takes
the unit tests from cmd/kubeadm/app/util's private fork of that
function since they were more extensive. (Of course the fact that
kubeadm had a private fork of this function is a strong argument for
moving it to component-helpers.)
2023-01-27 18:24:38 -05:00
Todd Neal
69f04a2fc1 update comment to match implementation 2023-01-27 13:59:40 -06:00
ravisantoshgudimetla
3da2acc0de Generated: PDB health policy 2023-01-27 23:53:43 +05:30
ravisantoshgudimetla
167ff49647 Promote pdb health policy to beta 2023-01-27 23:52:21 +05:30
Fabio Bertinatto
b382148915 Trim out suffix added to backing file path of loopback device
When a block device, say /dev/sdc, is unexpectedly disconnected from a node,
the corresponding backing file path found at /sys/block/loop*/backing_file gets
a "(deleted)" suffix. This patch trims that suffix out, allowing the Kubelet to
unmount the volume correctly.
2023-01-27 10:53:00 -03:00
Kubernetes Prow Robot
4d9e8f7695 Merge pull request #115304 from gnufied/fix-version-skew-for-older-expansion-controller
Use expansion without recovery if allocatedResource/resizeStatus unset
2023-01-27 02:36:25 -08:00
Patrick Ohly
508cd60760 dynamic resource allocation: avoid apiserver complaint about list content
This fixes the following warning (error?) in the apiserver:

E0126 18:10:38.665239   16370 fieldmanager.go:210] "[SHOULD NOT HAPPEN] failed to update managedFields" err="failed to convert new object (test/claim-84; resource.k8s.io/v1alpha1, Kind=ResourceClaim) to smd typed: .status.reservedFor: element 0: associative list without keys has an element that's a map type" VersionKind="/, Kind=" namespace="test" name="claim-84"

The root cause is the same as in e50e8a0c91:
nothing in Kubernetes outright complains about a list of items where the item
type is comparable in Go, but not a simple type. This nonetheless isn't
supposed to be done in the API and can causes problems elsewhere.

For the ReservedFor field, everything seems to work okay except for the
warning. However, it's better to follow conventions and use a map. This is
possible in this case because UID is guaranteed to be a unique key.

Validation is now stricter than before, which is a good thing: previously,
two entries with the same UID were allowed as long as some other field was
different, which wasn't a situation that should have been allowed.
2023-01-27 11:33:05 +01:00
Kubernetes Prow Robot
12240c2a5c Merge pull request #115247 from Volatus/refactor-node-storage-tests
Refactor: cleanup node/storage tests
2023-01-26 17:42:32 -08:00
Kubernetes Prow Robot
6f22d1f1ab Merge pull request #115321 from rphillips/fixes/linger_grpc_probes
Kubelet GRPC probes: improve network resources utilization
2023-01-26 15:56:24 -08:00
Kubernetes Prow Robot
e6170c3883 Merge pull request #114992 from TheOneTheOnlyJJ/skip-failing-unittests-2
Skip failing Windows unit tests (volume)
2023-01-26 14:04:25 -08:00
Ismayil Mirzali
6d484dc037 Refactor: cleanup node/storage tests
Removes some repetitive patterns and simplifies the existing test code.
2023-01-26 23:03:02 +02:00
Hemant Kumar
f052ea3ec3 Set node_stage whenever available 2023-01-26 15:27:20 -05:00
Kubernetes Prow Robot
97ab147537 Merge pull request #115179 from sunnylovestiramisu/fixPanic
Fix nil pointer error in nodevolumelimits csi logging
2023-01-26 12:06:38 -08:00
Hemant Kumar
1e57dae5ec Ignore error when we can't find plugin capable of expanding the volume intre 2023-01-26 14:39:05 -05:00
Hemant Kumar
402fe4ec9b use expansion without recovery if allocatedResource is not unset 2023-01-26 14:25:00 -05:00
Kubernetes Prow Robot
0e6f4d3a35 Merge pull request #115271 from kevindelgado/field-validation-conformance
Field validation e2e tests and GA graduation
2023-01-26 09:34:26 -08:00
Kevin Delgado
b149b93189 update codegen 2023-01-26 14:31:40 +00:00
Kubernetes Prow Robot
3d6c7efc23 Merge pull request #115322 from aojea/hotfix
Fix panic on ClusterIP allocation for /28 subnets
2023-01-26 00:38:26 -08:00
xuzhenglun
d48dd100bf add kube_apiserver_nodeport_allocator_* to improve observability of ServiceNodePortStaticSubrange 2023-01-26 14:44:16 +08:00
xuzhenglun
c18c6e1b87 allocate nodeport with offset 2023-01-26 14:44:04 +08:00
Kubernetes Prow Robot
538c6c044f Merge pull request #115329 from aojea/disable_probe
skip scale test for probes
2023-01-25 22:02:33 -08:00
Kubernetes Prow Robot
083e0d2be1 Merge pull request #114991 from TheOneTheOnlyJJ/skip-failing-unittests
Skip failing Windows unit tests
2023-01-25 22:02:25 -08:00
Antonio Ojea
3fb4edb257 skip scale test for probes
Change-Id: I215e2cf9211348aadcc0d262da01953d6523794a
2023-01-26 00:02:30 +00:00
Sergey Kanzhelev
15b63c380e use a proper regex looking for the restartCount 2023-01-25 23:55:27 +00:00
Antonio Ojea
ea99593fa1 Fix panic on ClusterIP allocation for /28 subnets
The ClusterIP allocator tries to reserve on part of the ServiceCIDR
to allocate static IPs to the Services.

The heuristic of the allocator to obtain the offset was taking into
account the whole range size, not the IPs available in the range, the
subnet address and the broadcast address for IPv4 are not available.

This caused that for CIDRs with 16 hosts, /28 for IPv4 and /124 for
IPv6, the offset calculated was higher than the max number of available
addresses on the allocator, causing this to panic.

Change-Id: I6c6f527b0a600b3612be37769e405b8fb3dd33a8
2023-01-25 20:32:40 +00:00
Ryan Phillips
12b8944702 kubelet: use custom dialer for grpc probes 2023-01-25 13:28:03 -06:00
Sunny Song
5e2f12e943 Fix nil pointer error in nodevolumelimits csi logging 2023-01-25 09:37:46 -08:00
Kevin Delgado
3b6c4d307f Graduate field validation to GA 2023-01-24 17:48:57 +00:00
Kubernetes Prow Robot
a12dd4189e Merge pull request #115102 from saschagrunert/cri-unavailable
Check for all errors in CRI connection validation
2023-01-24 02:24:17 -08:00
Jurj Andrei George
8f6fa99b49 Skip failing Windows unit tests (volume)
As discussed during the SIG Testing meeting on January 10, 2023, failing
Windows unit tests are now skipped.
These changes should be reverted when the unit tests wil get fixed.
Mentioned SIG Testing meeting:
https://docs.google.com/document/d/1z8MQpr_jTwhmjLMUaqQyBk1EYG_Y_3D4y4YdMJ7V1Kk/edit#heading=h.qwblxf2uhgoo
2023-01-24 11:02:44 +02:00
Kubernetes Prow Robot
674eb36f92 Merge pull request #115249 from thockin/codegen-13-proto-go-packages
Set go_package in all proto files
2023-01-23 12:14:07 -08:00
kannon92
96541d3e51 increasing coverage from 75% to 95% for strategy.go for batch/job 2023-01-23 18:53:46 +00:00
Tim Hockin
60ffa47f4f Set proto go_package: kubelet example_plugin_apis
This creates some diff to the *.pb.go files to note that
in the "options".

You can dump the gzipped blob with the following program (thanks
StackOverflow!):

```go
package main

import (
	"bytes"
	"compress/gzip"
	"encoding/json"
	"fmt"
	"os"

	"io/ioutil"

	proto "github.com/golang/protobuf/proto"
	dpb "github.com/golang/protobuf/protoc-gen-go/descriptor"
)

func main() {
	m := map[string][]byte{
		"before": blobv1,
		"after": blobv2,
	}
	arg := os.Args[1]
	dump(m[arg])
}

func dump(bytes []byte) {
	fd, err := decodeFileDesc(bytes)
	if err != nil {
		panic(err)
	}
	b, err := json.MarshalIndent(fd, "", "  ")
	if err != nil {
		panic(err)
	}
	fmt.Println(string(b))
}

// decompress does gzip decompression.
func decompress(b []byte) ([]byte, error) {
	r, err := gzip.NewReader(bytes.NewReader(b))
	if err != nil {
		return nil, fmt.Errorf("bad gzipped descriptor: %v", err)
	}
	out, err := ioutil.ReadAll(r)
	if err != nil {
		return nil, fmt.Errorf("bad gzipped descriptor: %v", err)
	}
	return out, nil
}

func decodeFileDesc(enc []byte) (*dpb.FileDescriptorProto, error) {
	raw, err := decompress(enc)
	if err != nil {
		return nil, fmt.Errorf("failed to decompress enc: %v", err)
	}

	fd := new(dpb.FileDescriptorProto)
	if err := proto.Unmarshal(raw, fd); err != nil {
		return nil, fmt.Errorf("bad descriptor: %v", err)
	}
	return fd, nil
}
```
2023-01-23 09:31:18 -08:00
Patrick Ohly
bc6c7fa912 logging: fix names of keys
The stricter checking with the upcoming logcheck v0.4.1 pointed out these names
which don't comply with our recommendations in
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments.
2023-01-23 14:24:29 +01:00
Kubernetes Prow Robot
724497cda4 Merge pull request #114094 from Nanfei-Chen/master
Modifies receiver names for struct FakeProxier to make them the same.
2023-01-22 16:30:09 -08:00