Commit Graph

12247 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
7225dc6c3a Merge pull request #123271 from neolit123/1.30-retry-all-api-calls
kubeadm: apply retries to all API calls in idempotency.go
2024-02-19 01:49:42 -08:00
Lubomir I. Ivanov
c29450eb00 kubeadm: apply retries to all API calls in idempotency.go
The idempotency.go (perhaps not so accurately named) contains
API calls that kubeadm does against an API server using client-go.

Some users seem to have unstable setups where for unknown reasons
the API server can be unavailable or refuse to respond as expected.

Use PollUntilContextTimeout in all exported functions to ensure
such API calls are all retry-able.

NOTE: The context passed to PollUntilContextTimeout is not propagated
in the polled function. Instead the poll function creates it's own
context 'ctx := context.Background()', this is to avoid
breaking expectations on the side of the callers, that expect
a certain type of error and not "context timeout" errors.

Additional changes:
- Make all context.TODO() -> context.Background()
- Update all unit tests and make sure during testing the retry
interval and timeout are short. Test coverage of idempotency.go
is at ~97%.
- Remove the TestMutateConfigMapWithConflict test. It does not
contribute much, because conflict handling is done at the API,
server side, not on the side of kubeadm. This simulating this is not
needed.
2024-02-18 13:14:32 +02:00
Maksym Pavlenko
d9e2487d0c Add PodLogsPath to kubelet config
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2024-02-16 09:55:59 -08:00
Lubomir I. Ivanov
7db7222592 kubeadm: introduce the WaitForAllControlPlaneComponents feature gate
WaitForAllControlPlaneComponents is a new feature gate
that can be used to tell kubeadm to wait for all control plane
components and not only kube-apiserver.

- Add the Waiter function WaitForControlPlaneComponents
that waits for all CP components in parallel. Uses the regular
healthz endpoint for checks of status 200.
- Add a new experimental phase to kubeadm join called "wait-control-plane".
A similar phase exists for kubeadm init.
2024-02-16 17:33:38 +02:00
Kubernetes Prow Robot
684a9975fe Merge pull request #122919 from alexzielenski/apiserver/policy/mutating-initial
Refactor AdmissionPolicy for code sharing with mutating
2024-02-14 14:52:26 -08:00
Jordan Liggitt
4ae2b3f75f Revert "kubeadm: increase ut coverage for app/util"
This reverts commit 36904475db.
2024-02-12 20:13:30 -05:00
Alexander Zielenski
8b14116509 refactor: move vap into parent policy folder
also renames to remove stutter

comment
2024-02-12 10:58:24 -08:00
xin.li
36904475db kubeadm: increase ut coverage for app/util
Signed-off-by: xin.li <xin.li@daocloud.io>
2024-02-09 16:24:54 +08:00
Kubernetes Prow Robot
e7d84c9f08 Merge pull request #123171 from vrutkovs/kubeadm-issue3014
kubeadm: use current-context when validating kubelet kubeconfig
2024-02-07 09:04:06 -08:00
bzsuni
658e3308f3 etcd: Update to version 3.5.12
Signed-off-by: bzsuni <bingzhe.sun@daocloud.io>
2024-02-07 21:16:08 +08:00
Vadim Rutkovsky
fc610f0941 kubeadm: use current-context when validating kubelet kubeconfig
During initialization `kubeadm init` creates kubelet.conf with
specified name and during finalize phase validates that
this kubeconfig is not corrupted by checking for presence of specific
authinfo

However:
* kubelet doesn't require a specific name for this context
* in external CA mode this kubeconfig can be created outside of
  `kubeadm init`

This change updates kubeadm finalize stage to avoid overly strict
context check.
2024-02-07 14:14:13 +01:00
Kubernetes Prow Robot
920333b5fb Merge pull request #123134 from danwinship/kep-3705-to-ga
KEP-3705 CloudDualStackNodeIPs to GA
2024-02-05 23:25:55 -08:00
Kubernetes Prow Robot
dd301d0f23 Merge pull request #123118 from my-git9/idempotency-ut
kubeadm: increase ut coverage for apiclient/idempotency
2024-02-05 14:08:26 -08:00
Dan Winship
4ddf69a835 Remove checks of the CloudDualStackNodeIPs feature gate 2024-02-05 11:35:11 -05:00
Kubernetes Prow Robot
8cbe59308c Merge pull request #122786 from HirazawaUi/remove-kubeadm-useless-code
kubeadm: remove code to be removed in 1.30
2024-02-05 07:21:29 -08:00
xin.li
deec79ad8d kubeadm: increase ut coverage for apiclient/idempotency
Signed-off-by: xin.li <xin.li@daocloud.io>
2024-02-05 23:02:48 +08:00
Kubernetes Prow Robot
4a4f5dbc07 Merge pull request #123093 from SataQiu/revert-115575-fix-20230207
Revert "kubeadm: fix a bug where the uploaded kubelet configuration in kube-system/kubelet-config ConfigMap does not respect user patch"
2024-02-02 12:47:32 -08:00
Kubernetes Prow Robot
42941cb88a Merge pull request #122635 from carlory/KEP-2799
Promote LegacyServiceAccountTokenCleanUp to GA
2024-02-02 12:47:23 -08:00
Kubernetes Prow Robot
173cf18920 Merge pull request #123077 from neolit123/1.30-fix-upgrade-node-root-fs
kubeadm: better checks if the node is CP during "upgrade node"
2024-02-02 08:40:11 -08:00
Lubomir I. Ivanov
774d666d1c kubeadm: better checks if the node is CP during "upgrade node"
Currently --rootfs does not work with "upgrade node" for CP nodes
because the only check of CP nodes is performed in newNodeOptions()
which runs before the root kubeadm command is run, thus the chroot()
path coming from --rootfs is not applied yet.

To work around that call the "isControlPlaneNode" check when
constructing the command data on command runtime.
2024-02-02 15:00:20 +02:00
Shida Qiu
f47c2a1ba6 Revert "kubeadm: fix a bug where the uploaded kubelet configuration in kube-system/kubelet-config ConfigMap does not respect user patch" 2024-02-02 20:34:30 +08:00
Kubernetes Prow Robot
2372837838 Merge pull request #123054 from neolit123/1.30-v1beta4-encryption-enhance
kubeadm: enhance encryption algorithm support in v1beta4
2024-02-02 01:11:09 -08:00
Kubernetes Prow Robot
ba9dd6ba4b Merge pull request #122967 from burgerdev/fix-kubeadm-DeployedDNSAddon
kubeadm: support digests in DeployedDNSAddon()
2024-02-01 20:50:14 -08:00
Kubernetes Prow Robot
d2904845cd Merge pull request #123061 from tallclair/nodelabels
Stop claiming --node-labels is alpha
2024-02-01 13:30:05 -08:00
Markus Rudy
065066d1ab kubeadm: support digests in DeployedDNSAddon()
kubeadm upgrade checks the migration path for the existing CoreDNS
deployment pre-flight. Migration paths are defined for CoreDNS
versions, which are derived from the image tag used in the existing
deployment.

The kubeadm ClusterConfiguration.DNS.ImageMeta supports suffixing the
tag with a digest, but at upgrade time does not derive the version
correctly from an image with digest suffix, because DeployedDNSAddon
does not deal with digests correctly. This commit makes DeployedDNSAddon
digest-aware.

Signed-off-by: Markus Rudy <mr@edgeless.systems>
2024-02-01 10:04:15 +01:00
Tim Allclair
8bf03e83d3 Stop claiming --node-labels is alpha 2024-01-31 14:04:44 -08:00
Lubomir I. Ivanov
2cab79710d kubeadm: enhance encryption algorithm support in v1beta4
Previous v1beta4 work added support for
ClusterConfiguration.EncryptionAlgorithm, however the possible
values were limited to just "RSA" (2048 key size) and "ECDSA" (P256).

Allow more arbitrary algorithm types, that can also include key size
or curve type encoded in the name:
"RSA-2048" (default), "RSA-3072", "RSA-4096" or "ECDSA-P256".

Update the deprecation notice of the PublicKeysECDSA FeatureGate
as ideally it should be removed only after v1beta3 is removed.
2024-01-31 23:49:21 +02:00
Kubernetes Prow Robot
65e77e7775 Merge pull request #123011 from dims/add-deprecation-notice-for-cloud-allocator-in-node-ipam-controller
Add DEPRECATION for CloudAllocator in node-ipam-controller
2024-01-29 16:23:47 -08:00
Kubernetes Prow Robot
918f7c28af Merge pull request #122875 from my-git9/readwriterut
kubeadm: increase ut coverage certs/renewal/readwriter
2024-01-29 06:49:35 -08:00
xin.li
d7c1a61e04 kubeadm: increase ut coverage certs/renewal/readwriter
Signed-off-by: xin.li <xin.li@daocloud.io>
2024-01-29 19:52:59 +08:00
Paco Xu
8bc63027d9 remove extra space in log 2024-01-29 16:34:44 +08:00
Davanum Srinivas
6cc9927487 Add DEPRECATION for CloudAllocator in node-ipam-controller
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-01-28 16:01:14 -08:00
Kubernetes Prow Robot
27ad20db35 Merge pull request #123005 from danwinship/minor-proxy-cleanup
Minor proxy cleanup
2024-01-28 08:44:38 -08:00
Dan Winship
da05076868 Reorganize a bit of winkernel proxier setup
Rather than doing winkernel-specific parsing of generic config data in
cmd/kube-proxy, do it in pkg/proxy/winkernel.
2024-01-28 09:30:51 -05:00
Dan Winship
33bd5fb3c4 Remove unused param to winkernel proxier
The winkernel code was originally based on the iptables code but never
made use of some parts of it. (e.g., it logs a warning if you didn't
set `--cluster-cidr`, even though it doesn't actually use
`--cluster-cidr` if you do set it.)
2024-01-28 09:30:51 -05:00
Kubernetes Prow Robot
7abf6770fd Merge pull request #122147 from pohly/kubelet-context-support
kubelet: enhance context support
2024-01-27 05:16:17 -08:00
Kubernetes Prow Robot
c4feb19195 Merge pull request #122878 from liggitt/typecheck-kube-proxy-darwin
Re-allow building kube-proxy on all platforms
2024-01-26 16:32:12 +01:00
Kubernetes Prow Robot
7340ce932b Merge pull request #122978 from SataQiu/fix-20240126
kubeadm: fix the error check bug in certlist test
2024-01-26 10:10:00 +01:00
Kubernetes Prow Robot
e327eb3295 Merge pull request #122901 from pacoxu/fix-kubeadm-existing-crb-2
kubeadm: don't fail post upgrade for already existing error
2024-01-26 04:25:40 +01:00
SataQiu
5ab9f3d15f kubeadm: fix the err check bug in certlist test 2024-01-26 11:01:03 +08:00
Dan Winship
536364266c Sort messy kube-proxy imports 2024-01-25 18:41:55 -05:00
Kubernetes Prow Robot
c156f4c4b4 Merge pull request #122616 from neolit123/1.30-v1beta4-image-pull-serial
kubeadm: add support for parallel image pulls in v1beta4
2024-01-25 16:01:38 +01:00
HirazawaUi
6e5e1d0317 Remove useless org mutate code 2024-01-25 21:49:14 +08:00
Paco Xu
ec1516b45d kubeadm: don't fail post upgrade in EnsureAdminClusterRoleBindingImpl if the error is crb already exists 2024-01-25 18:15:29 +08:00
Kubernetes Prow Robot
55f9657e07 Merge pull request #122692 from aroradaman/reject-packets-to-invalid-port
proxy/nftables: reject packets destined for invalid ports of service ips
2024-01-24 23:17:34 +01:00
Davanum Srinivas
65d67101e7 Drop vsphere cloud provider
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-01-23 19:57:01 -05:00
Kubernetes Prow Robot
7bb00356f0 Merge pull request #122857 from nilo19/chore/cleanup-azure
chore: Cleanup in-tree credential provider azure and cloud provider a…
2024-01-23 21:31:11 +01:00
Kubernetes Prow Robot
0f817dcd65 Merge pull request #122584 from xigang/resource_reserved
kubelet: cleanup system-reserved and kube-reserved flag usage
2024-01-23 18:10:27 +01:00
Jordan Liggitt
d2c1a23a8a Add stub methods for kube-proxy on non-linux/windows 2024-01-22 20:45:26 -08:00
Claudiu Belu
b8df7e7684 unittests: Fixes unit tests for Windows (part 10)
Currently, there are some unit tests that are failing on
Windows due to various reasons:

- Different "File not found" error messages on Windows.
- Files need to be closed on Windows before removing them.
- The default RootHnsEndpointName (root-hnsendpoint-name) flag value is 'cbr0'
- On Windows, Unix Domain sockets are not checked in the same way in golang, which is why
  hostutils_windows.go checks for it differently. GetFileType will return an error in this
  case. We need to check for it, and see if it's actually a Unix Domain Socket.
2024-01-22 13:43:42 +00:00