Commit Graph

106720 Commits

Author SHA1 Message Date
Abu Kashem
f6a66bbe05
client-go: add unit test to verify order of calls 2022-02-22 18:10:48 -05: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
Kubernetes Prow Robot
44241bacca
Merge pull request #108239 from Abirdcfly/master
delete redundant characters in comment
2022-02-22 13:25:16 -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
Kubernetes Prow Robot
86945d7e74
Merge pull request #107431 from justaugustus/rel-mgr
OWNERS(releng): Reconcile existing Release Managers
2022-02-22 11:39:16 -08:00
Sergey Kanzhelev
06ee2969ef do not serve node.k8s.io, version v1alpha1 2022-02-22 18:30:24 +00:00
Sergey Kanzhelev
939e16cbf3 Remove RuntimeClass feature gate as it was GA-ed 2022-02-22 18:29:06 +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
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
Kubernetes Prow Robot
d5c26190ac
Merge pull request #108160 from adisky/fix-pull-node-e2e
[Fix pull-local-node-e2e] Install CNI and Enable containerd for kubekins docker
2022-02-22 04:35:47 -08:00
Aditi Sharma
98b19dc2e8 Add support to install cni and enable cri
to run pull-kubernetes-local-e2e on containerd
we need to install cni and enable cri for docker
installed in kubekins image
2022-02-22 09:22:19 +05:30
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
cf04a35e2a
Merge pull request #108211 from stevekuznetsov/skuznets/watcher-test-subtests
storage: etcd: misc Watch test cleanups
2022-02-21 07:46:26 -08:00
Kubernetes Prow Robot
bda996e6a7
Merge pull request #107105 from justaugustus/go118
golang: Update to go1.18rc1
2022-02-21 07:46:15 -08:00
Kubernetes Prow Robot
4924ef8a7c
Merge pull request #108110 from SubhasmitaSw/cloMonitorFix
Update our repository to incorporate project health best practices from clomonitor.io
2022-02-21 06:34:25 -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
Stephen Augustus
391d595bee
CHANGELOG/OWNERS: Add Release Managers as reviewers
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2022-02-21 08:48:07 -05:00
Stephen Augustus
946cc66220
test/{images,utils/image}/OWNERS: Alpha-sort reviewers/approvers
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2022-02-21 08:37:29 -05:00
Stephen Augustus
8ee5a237ae
{build,staging/publishing}/OWNERS: Reconcile Release Managers
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2022-02-21 08:37:29 -05:00
Stephen Augustus
3f69ffc116
OWNERS(releng): Add Veronica and Nabarun to top-level aliases
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2022-02-21 08:37:28 -05:00
Kubernetes Prow Robot
a4575202f4
Merge pull request #106948 from wojtek-t/simplify_storage_interface_2
Simplify storage interface
2022-02-21 05:30:14 -08:00
Wojciech Tyczyński
f3d56369f7 Unify merge GetToList and List storage methods to single GetList 2022-02-21 12:52:05 +01:00
Wojciech Tyczyński
3016b3d8f8 Change storage.Interface to utilize recurisve parameter 2022-02-21 12:52:05 +01:00
Abirdcfly
5da98dedb4 delete redundant characters in comment
Change-Id: Id49d6266f76d2e242880f25cfa2b591bcef1b5ff
2022-02-21 13:51:53 +08:00
Kubernetes Prow Robot
f0d5ea1e1d
Merge pull request #108219 from liggitt/api-compatibility-fuzzer
Improve API compatibility fixtures to reduce churn
2022-02-20 20:14:11 -08:00
Stephen Augustus
4b1bd548bb
generated: Run hack/lint-dependencies.sh and hack/update-vendor.sh
Also runs:
hack/pin-dependency.sh golang.org/x/mod \
  v0.6.0-dev.0.20220106191415-9b9b3d81d5e3

Signed-off-by: Stephen Augustus <foo@auggie.dev>
2022-02-20 21:26:23 -05:00
Stephen Augustus
e6e7a42480
[go1.18] Bump golang.org/x/... dependencies
hack/pin-dependency.sh golang.org/x/crypto master
hack/pin-dependency.sh golang.org/x/net master
hack/pin-dependency.sh golang.org/x/oauth2 master
hack/pin-dependency.sh golang.org/x/sync master
hack/pin-dependency.sh golang.org/x/sys master
hack/pin-dependency.sh golang.org/x/term master
hack/pin-dependency.sh golang.org/x/time master
hack/pin-dependency.sh golang.org/x/tools master

Signed-off-by: Stephen Augustus <foo@auggie.dev>
2022-02-20 21:22:02 -05:00
Stephen Augustus
93295000af
golang: Update to go1.18rc1
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2022-02-20 21:16:26 -05: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
Kubernetes Prow Robot
d5263feb03
Merge pull request #108136 from ahg-g/ahg-affinity
Graduate PodAffinityNamespaceSelector to GA
2022-02-19 08:26:10 -08:00
Jordan Liggitt
4144c9294f Regenerate HEAD compatibility fixtures 2022-02-19 10:31:53 -05:00
Jordan Liggitt
c0b7858946 Fill API compatibility data with identifying values rather than random data 2022-02-19 10:31:53 -05:00
Kubernetes Prow Robot
ffd6482eed
Merge pull request #106630 from howardjohn/protogen/full-package-name
go-to-protobuf: use full path for go_package
2022-02-18 10:20:23 -08:00
Subhasmita Swain
c199d69f7d update the repository to incorporate project health best practices from clomonitor.io 2022-02-18 18:11:35 +00:00
Abdullah Gharaibeh
8a1c70b48c Graduate PodAffinityNamespaceSelector to GA 2022-02-18 12:07:29 -05:00
Kubernetes Prow Robot
dacbe4fe2c
Merge pull request #108190 from stevekuznetsov/skuznets/storage-clearer-rv
storage: etcd: TestList: improve RV choices
2022-02-18 08:12:23 -08:00
Steve Kuznetsov
d2b42b6369
storage: etcd: TestList: improve RV choices
In this test, the current implementation uses a nebulous "RV 1" for some
queries. The intent of this absolute choice is to probe etcd at a
version before any writes ocurred for the test. The particular test
fixture for etcd that is used starts at revision 1, so 1 is used.

This choice is hard to understand the meaning of for readers, though,
and is not valid for any other etcd fixture used for the tests. In order
to improve readability of the test as well as to make it more resilient
to the underlying store, this change updates the test to read the
revision of the underlying storage before making any writes and using
that revision when querying the storage in the tests.

Signed-off-by: Steve Kuznetsov <skuznets@redhat.com>
2022-02-18 07:12:06 -08:00
Steve Kuznetsov
d17a19b39d
store: etcd: TestWatch: use cmp.Diff
Modernize the comparisons used in the watch tests to use `cmp.Diff()` for
readability.

Signed-off-by: Steve Kuznetsov <skuznets@redhat.com>
2022-02-18 06:52:13 -08:00
Steve Kuznetsov
9f7bb4264e
store: etcd: TestWatch: use sub-tests
This was the last test to not use sub-tests, so we can also remove the
indices that the expectation functions take as parameters now.

Signed-off-by: Steve Kuznetsov <skuznets@redhat.com>
2022-02-18 06:50:05 -08:00