Commit Graph

44631 Commits

Author SHA1 Message Date
d-honeybadger
fb094dc44e cronjob_controllerv2: do not filter jobs to be reconciled by labels 2022-02-23 09:10:33 -05:00
kerthcet
4439fc3590 feat: graduate DefaultPodTopologySpread to GA
Co-authored-by: drfish <drfish.me@gmail.com>
Signed-off-by: kerthcet <kerthcet@gmail.com>
2022-02-23 19:45:27 +08:00
Kubernetes Prow Robot
296bf4f016 Merge pull request #108230 from sanposhiho/fake-extender-name
Support ExtenderName in FakeExtender
2022-02-22 21:36:18 -08:00
Kubernetes Prow Robot
eacbf87bfe Merge pull request #108156 from jsafrane/rename-selinuxsupport
Rename SupportsSELinux to SELinuxRelabel
2022-02-22 20:12:20 -08:00
sanposhiho
0b16a7fefa Support ExtenderName in FakeExtender 2022-02-23 12:14:39 +09:00
Kubernetes Prow Robot
5211a4b214 Merge pull request #103061 from SergeyKanzhelev/removeAlphaRuntimeClass
Remove RuntimeClass feature gate and stop serving older versions of RuntimeClass
2022-02-22 19:08:18 -08:00
Kubernetes Prow Robot
bb610d0816 Merge pull request #108280 from liggitt/secrets
Update secrets field API doc
2022-02-22 17:48:18 -08:00
Kubernetes Prow Robot
8f3636e8ac Merge pull request #108224 from danwinship/kube-proxy-logging
Only log full iptables-restore input at V(9)
2022-02-22 16:42:18 -08:00
Kubernetes Prow Robot
a2adaf75b7 Merge pull request #108205 from dkkb/fix/typo
Fix typo allcoated -> allocated
2022-02-22 14:35:03 -08:00
Jean-Francois Remy
e83184568d Add unit tests
- actual_state_of_world_test.go: test the new method GetVolumesToReportAttachedForNode
  for an existing node and a non-existing node
- node_status_updater_test.go: test UpdateNodeStatuses and UpdateNodeStatuses in nominal
  case with 2 nodes getting one volume each. Test UpdateNodeStatuses with the first call
  to node.patch failing but the following one succeeding
- add comment in node_status_updater.go
- fix log line in reconciler.go
- rename variable in actual_state_of_world.go
2022-02-22 12:21:58 -08:00
Jean-Francois Remy
f1717baaaa Fix nodes volumesAttached status not updated
The UpdateNodeStatuses code stops too early in case there is
an error when calling updateNodeStatus. It will return immediately
which means any remaining node won't have its update status put back
to true.

Looking at the call sites for UpdateNodeStatuses, it appears this is
not the only issue. If the lister call fails with anything but a Not Found
error, it's silently ignored which is wrong in the detach path.
Also the reconciler detach path calls UpdateNodeStatuses but the real intent
is to only update the node currently processed in the loop and not proceed
with the detach call if there is an error updating that specifi node volumesAttached
property. With the current implementation, it will not proceed if there is
an error updating another node (which is not completely bad but not ideal) and
worse it will proceed if there is a lister error on that node which means the
node volumesAttached property won't have been updated.

To fix those issues, introduce the following changes:
- [node_status_updater] introduce UpdateNodeStatusForNode which does what
  UpdateNodeStatuses does but only for the provided node
- [node_status_updater] if the node lister call fails for anything but a Not
  Found error, we will return an error, not ignore it
- [node_status_updater] if the update of a node volumesAttached properties fails
  we continue processing the other nodes
- [actual_state_of_world] introduce GetVolumesToReportAttachedForNode which
  does what GetVolumesToReportAttached but for the node whose name is provided
  it returns a bool which indicates if the node in question needs an update as
  well as the volumesAttached list. It is used by UpdateNodeStatusForNode
- [actual_state_of_world] use write lock in updateNodeStatusUpdateNeeded, we're
  modifying the map content
- [reconciler] use UpdateNodeStatusForNode in the detach loop
2022-02-22 12:20:53 -08:00
Sergey Kanzhelev
06ee2969ef do not serve node.k8s.io, version v1alpha1 2022-02-22 18:30:24 +00:00
Kubernetes Prow Robot
b917653296 Merge pull request #108263 from deads2k/more-resthandlers
migrate more rest handlers to select by resource enablement
2022-02-22 10:15:16 -08:00
Jordan Liggitt
6b09e232cd Update secrets field API doc 2022-02-22 13:12:03 -05:00
David Eads
0ec20f97d2 migrate more rest handlers to select by resource enablement 2022-02-22 12:07:43 -05:00
Kubernetes Prow Robot
108e8136e2 Merge pull request #107393 from danwinship/filter-endpoints
kube-proxy endpoint filtering unit test refactoring
2022-02-22 08:55:15 -08:00
czm
f31bf3ff12 improve test coverage 2022-02-22 23:04:44 +08:00
Dan Winship
9483c272f4 Log metadata about kube-proxy iptables-restore calls
For each iptables-restore call, log the number of services, endpoints,
filter chains, filter rules, NAT chains, and NAT rules in the update
at V(2), in addition to logging the actual rules if V(9).
2022-02-22 08:29:25 -05:00
Carlos Damázio
fd6a05396b refactor: adding state check after lb.service call 2022-02-21 15:07:20 -03:00
Kubernetes Prow Robot
267272efe0 Merge pull request #108251 from danwinship/iptables-tests-cleanup
iptables tests cleanup
2022-02-21 09:56:12 -08:00
Kubernetes Prow Robot
f50e076756 Merge pull request #107590 from ialidzhikov/golint/credentialprovider-plugin
Nit: Replace `errors.New(fmt.Sprintf(...))` with `fmt.Errorf(...)`
2022-02-21 06:34:14 -08:00
Dan Winship
d830ef6112 proxy/iptables: add HealthCheckNodePorts to unit tests that need them
To avoid spurious errors in the test output:

  E0114 08:43:27.453974 3718376 service.go:221] "Service has no healthcheck nodeport" service="ns1/svc1"
2022-02-21 09:16:23 -05:00
Dan Winship
d74df127e9 proxy/iptables: Fix up IPs and ports in unit tests
All of the tests used a localDetector that considered the pod IP range
to be 10.0.0.0/24, but lots of the tests used pod IPs in 10.180.0.0/16
or 10.0.1.0/24, meaning the generated iptables rules were somewhat
inconsistent. Fix this by expanding the localDetector's pod IP range
to 10.0.0.0/8. (Changing the pod IPs to all be in 10.0.0.0/24 instead
would be a much larger change since it would result in the SEP chain
names changing.)

Meanwhile, the different tests were also horribly inconsistent about
what values they used for other IPs, and some of them even used the
same IPs (or ports) for different things in the same test case. Fix
these all up and create a consistent set of IP assignments:

// Pod IPs:             10.0.0.0/8
// Service ClusterIPs:  172.30.0.0/16
// Node IPs:            192.168.0.0/24
// Local Node IP:       192.168.0.2
// Service ExternalIPs: 192.168.99.0/24
// LoadBalancer IPs:    1.2.3.4, 5.6.7.8, 9.10.11.12
// Non-cluster IPs:     203.0.113.0/24
// LB Source Range:     203.0.113.0/25
2022-02-21 09:16:22 -05:00
Dan Winship
37ada4b04f proxy/iptables: Don't create unused chains, and enable the unit test for that 2022-02-21 09:16:22 -05:00
Dan Winship
ef4324eaf5 proxy/iptables: refactor unit test code / fix error reporting
Only run assertIPTablesRuleJumps() on the expected output, not on the
actual output, since if there's a problem with the actual output, we'd
rather see it as the diff from the expected output.
2022-02-21 09:16:22 -05:00
Dan Winship
4af471f8be proxy/iptables: move GetChainLines unit tests to the right package
GetChainLines is a utiliptables method, so it should be part of the
unit tests there.
2022-02-21 09:16:22 -05:00
Dan Winship
f5ad58b57b Only log full iptables-restore input at V(9)
In large clusters, the iptables-restore input will be tens of
thousands of lines long, and logging it at V(5) essentially means that
"kube-proxy -v=5" cannot be used in such clusters to see _other_
things that get logged at V(5), because logs will get rolled over far
too quickly. So bump the full-rules logging output down to V(9).
2022-02-21 09:02:36 -05:00
Wojciech Tyczyński
3016b3d8f8 Change storage.Interface to utilize recurisve parameter 2022-02-21 12:52:05 +01:00
menglong.qi
a1269198ec fix: remove the redundant count variable 2022-02-21 00:32:21 +08:00
ialidzhikov
f3fcfef5a7 Replace errors.New(fmt.Sprintf(...)) with fmt.Errorf(...)
Signed-off-by: ialidzhikov <i.alidjikov@gmail.com>
2022-02-20 11:23:48 +02:00
Dan Winship
e7bae9df81 Count iptables lines as we write them 2022-02-19 11:56:14 -05:00
Abdullah Gharaibeh
8a1c70b48c Graduate PodAffinityNamespaceSelector to GA 2022-02-18 12:07:29 -05:00
Quan Tian
38966453ce Skip updating Endpoints and EndpointSlice if no relevant fields change
When comparing EndpointSubsets and Endpoints, we ignore the difference
in ResourceVersion of Pod to avoid unnecessary updates caused by Pod
updates that we don't care, e.g. annotation update.

Otherwise periodic Service resync would intensively update Endpoints or
EndpointSlice whose Pods have irrelevant change between two resyncs,
leading to delay in processing newly created Services. In a scale
cluster with thousands of such Endpoints, we observed 2 minutes of
delay when the resync happens.
2022-02-18 20:47:27 +08:00
Shiming Zhang
94e494d9d7 Promote kubelet graceful node shutdown based on pod priority to beta 2022-02-18 20:40:00 +08:00
andyzhangx
3867b3e1f8 increase Azure ACR credential provider timeout 2022-02-18 12:29:10 +00:00
Kubernetes Prow Robot
37a0b1a321 Merge pull request #108066 from marseel/dont_check_type_in_hostvolule_in_kubemark
Turn off volumehost type check in kubemark clusters
2022-02-18 00:38:24 -08:00
utkarsh348
eaee96efd3 Fixed race condition test manager shutdown 2022-02-18 11:20:02 +05:30
dkkb
e0582320c1 Fix typo allcoated -> allocated 2022-02-18 13:40:51 +08:00
Kubernetes Prow Robot
15fb945348 Merge pull request #105070 from andyzhangx/patch-3
feat: turn on CSIMigrationAzureFile by default on 1.24
2022-02-17 20:40:22 -08:00
Kubernetes Prow Robot
8a6439d2b1 Merge pull request #108129 from ahg-g/ahg-suspend
Graduate SuspendJob to GA
2022-02-17 19:36:23 -08:00
Kubernetes Prow Robot
5699e6d3ea Merge pull request #108198 from liggitt/endpointslice-topology-strategy-fix
Make EndpointSlice strategy move node name from topology map to field instead of discarding when updating via v1
2022-02-17 17:20:49 -08:00
Kubernetes Prow Robot
9750666edb Merge pull request #107697 from kevindelgado/nested-decoding
Nested decoders handle strict decoding errors
2022-02-17 17:20:33 -08:00
Kubernetes Prow Robot
2134e971a6 Merge pull request #107684 from aojea/nodePortsOnLocalhost
kube-proxy: only set route_localnet if required
2022-02-17 16:14:48 -08:00
Kubernetes Prow Robot
ab97735dbf Merge pull request #108169 from deads2k/fix-rest-handlers
convert rest storage to per-resource part 1 of...?
2022-02-17 15:01:14 -08:00
Rob Scott
ba64f9b045 Updating EndpointSlice strategy to retain node name in topology until
field is set

This fixes a bug where a partial EndpointSlice update could cause node
name information to be dropped from endpoints that were not updated.
2022-02-17 17:41:17 -05:00
Kevin Delgado
6ab711c3ca Nested decoders handle strict decoding errors
* Adds docs to the NestedObjectDecoder about handling strict decoding
errors.
* Updates all in-tree NestedObjectDecoder implementations and callers to
check for strict decoding errors before short-circuiting on error.
2022-02-17 22:05:30 +00:00
Antonio Ojea
8b5fa408e0 kube-proxy: only set route_localnet if required
kube-proxy sets the sysctl net.ipv4.conf.all.route_localnet=1
so NodePort services can be accessed on the loopback addresses in
IPv4, but this may present security issues.

Leverage the --nodeport-addresses flag to opt-out of this feature,
if the list is not empty and none of the IP ranges contains an IPv4
loopback address this sysctl is not set.

In addition, add a warning to inform users about this behavior.
2022-02-17 20:20:31 +01:00
Abdullah Gharaibeh
957f1892d3 fix typo 2022-02-17 12:53:27 -05:00
Madhav Jivrajani
f0ef426238 Update tests to have namespace set in req context
* This updates tests that make requests that call
  into admission.
* For apiextensions-apiserver, the namespace is set
  to metav1.NamespaceNone since the CRD created and
  worked with is a cluster scoped CRD.
* For most tests in register/storage, the namespace
  is set to NamespaceDefault or NamespaceNone based
  on if the resource is cluster scoped (namespaces)
  or namespace scoped (pvs).
* Endpoints tests now have a namespace specified in
  the expected object - NamespaceDefault or other
  based on the test.

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2022-02-17 00:13:34 -05:00
Kubernetes Prow Robot
e8d0009746 Merge pull request #108143 from tallclair/apparmor
Forbid empty AppArmor localhost profile
2022-02-16 12:46:44 -08:00