Commit Graph

11970 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
8ba29970e6 Merge pull request #122529 from neolit123/1.30-v1beta4-timeouts
kubeadm: add a Timeouts struct to v1beta4
2024-01-15 19:33:58 +01:00
Kubernetes Prow Robot
789e029364 Merge pull request #122735 from avorima/fix-kubeadm-regression-2992
kubeadm: fix a regression in "kubeadm init" where --kubeconfig is ignored
2024-01-15 18:21:04 +01:00
Tim Hockin
8b8f0a70cd Make verify-fieldname-docs actually error
Sadly, cmd/fieldnamedocscheck did not exit non-zero when it needed to.

Fix the one thing it flagged.
Add it to verify-quick
2024-01-14 10:32:08 -08:00
Lubomir I. Ivanov
5f876b9d0a kubeadm: switch from ExponentialBackoff() to PollUntilContextTimeout()
Switch to PollUntilContextTimeout() everywhere to allow
usage of the exposed timeouts in the kubeadm API. Exponential backoff
options are more difficult to expose in this regard and a bit too
detailed for the common user - i.e. have "steps", "factor" and so on.
2024-01-14 15:07:56 +02:00
Lubomir I. Ivanov
caf5311413 kubeadm: start using the Timeouts struct values
Propagate usage of the Timeout struct values.
Apply sanitazation to timeout constants in contants.go.
2024-01-14 15:07:56 +02:00
Lubomir I. Ivanov
374e41cf66 kubeadm: replace deprecated wait.Poll() and wait.PollImmediate()
Replace the usage of the deprecated wait.Poll() and
wait.PollImmediate() functions with wait.PollUntilContextTimeout().
Since we don't have piping of context around kubeadm,
use context.Background() everywhere.

Some wait.Poll() functions were converted to "immediate" as there
is no point for them to not be. This is done for consistency.

Replace the only instance of wait.JitterUntil with
wait.PollUntilContextTimeout. JitterUntil is not deprecated
but this is also done for consistency.
2024-01-14 15:07:55 +02:00
Mario Valderrama
dcdfd71450 Fix kubeadm init regression
Don't create admin rolebindings when --kubeconfig is set to a
non-default value.

Fixes: https://github.com/kubernetes/kubeadm/issues/2992

Signed-off-by: Mario Valderrama <mario.valderrama@ionos.com>
2024-01-12 16:58:40 +01:00
Kubernetes Prow Robot
331e5561ab Merge pull request #122642 from my-git9/componentconfigs-ut-q
kubeadm: increase ut coverage app/componentconfigs
2024-01-10 02:47:06 +01:00
xin.li
1a69fd4cb0 kubeadm: increase ut coverage app/componentconfigs
Signed-off-by: xin.li <xin.li@daocloud.io>
2024-01-09 21:52:11 +08:00
Lars Ekman
50b3ffc71f kube-proxy: LoadBalancerSourceRanges as *net.IPNet 2024-01-09 09:17:56 +01:00
Lars Ekman
564b80b1e1 kube-proxy: don't use invalid cidrs in unit test
CIDRs like 192.168.200.3/24 and fd00:20::1/64 replaced with
192.168.200.0/24 and fd00:20::/64
2024-01-09 09:17:31 +01:00
Ziqi Zhao
6b5e973e5f Migrate cmd/kube-proxy to contextual logging (#122197)
* cmd/kube-proxy support contextual logging

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* use ktesting.NewTestContext(t) in unit test

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* use ktesting.NewTestContext(t) in unit test

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* remove unnecessary blank line & add cmd/kube-proxy to contextual section in logcheck.conf

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* add more contextual logging

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

* new lint yaml

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>

---------

Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
2024-01-08 17:30:18 +01:00
Kubernetes Prow Robot
18608cc56b Merge pull request #122619 from neolit123/1.30-v1beta4-control-reset-unmount
kubeadm: skip unmount on missing /var/lib/kubelet
2024-01-08 08:47:41 +01:00
Lubomir I. Ivanov
073cfdfac9 kubeadm: skip unmount on missing /var/lib/kubelet
If the user deletes the /var/lib/kubelet manually, "reset" will throw
an error that the dir is missing. Instead of handling this error,
print it as a warning and skip unmount of directories inside it.

This allows "reset" to continue to be reentrant and can be called
even even if "init/join" are not called yet and some of the
k8s directories on a node do not exist.

Continue to error on individual unmount errors.

Remove the function absoluteKubeletRunDirectory() and
call filepath.EvalSymlinks() directly.
2024-01-08 08:40:32 +02:00
Lubomir I. Ivanov
d9e48705ff kubeadm: make the active timeouts structure accessible from anywhere
Currently, timeouts are only accessible if a kubeadm runtime.Object{}
like InitConfiguration is passed around.

Any time a config is loaded or defaulted, store the Timeouts
structure in a thread-safe way in the main kubeadm API package
with SetActiveTimeouts(). Optionally, a deep-copy can be
performed before calling SetActiveTimeouts(). Make this struct
accessible with GetActiveTimeouts(). Ensure these functions
are thread safe.

On init() make sure the struct is defaulted, so that unit
tests can work with these values.
2024-01-05 14:41:16 +02:00
Lubomir I. Ivanov
ea0fa41445 kubeadm: implement mutators for "config migrate"
When upconverting from v1beta3 to v1beta4, it appears there is no
easy way to migrate some of the timeout values such as:
  ClusterConfiguration.APIServer.TimeoutForControlPlane
to a new location:
  InitConfiguration.Timeouts.<some-timeout-field>

Yes, the internal InitConfiguratio does embed a ClusterConfiguration,
but during conversion the ClusterConfiguration is converted from an
empty source.

K8s' API machinery has ways to register custom conversion functions,
such as v1beta3.ClusterConfiguration -> internal.InitConfiguration,
but these must be triggered explicitly with a decoder.
The overall migration of fields seems very awkward.

There might be hacks around that, such as storing intermediate state,
while trying to make the fuzzer rountrip happy, but instead
mutation functions can be implemented for the internal types when
calling kubeadm's migrate code. This seems much cleaner.
2024-01-05 14:41:16 +02:00
Lubomir I. Ivanov
492c0619dc kubeadm: add a Timeouts struct to v1beta4
The struct is included in InitConfiguration, JoinConfiguration
and ResetConfiguration.

Add conversion and update defaulters and fuzzers.
Include a timeoututils.go that contains a function
to default the internal Timeouts struct.
2024-01-05 14:41:16 +02:00
Kubernetes Prow Robot
0598cec06a Merge pull request #122530 from neolit123/1.30-v1beta4-control-reset-unmount
kubeadm: more verbose unmount logic on "reset"
2024-01-05 13:22:58 +01:00
Lubomir I. Ivanov
2f5121671f kubeadm: add ResetConfiguration.UnmountFlags
Add new a v1beta4.ResetConfiguration.UnmountFlags field that
can be used to pass in Linux unmount2() flags such as MNT_FORCE.
Default value continues to be 0 - i.e. no flags.
2024-01-05 12:58:44 +02:00
Kubernetes Prow Robot
c0dc42073d Merge pull request #122373 from danwinship/linux-proxy
Properly build-tag the Linux kube-proxy backend code
2024-01-04 18:00:34 +01:00
Lubomir I. Ivanov
d6bfd7daeb kubeadm: throw errors on unmount instead of warnings
Instead of warnings when syscall.Unmount() causes errors,
store all the errors in an aggregate. Abort the reset operation if
at least one unmount error was encountered.
2024-01-04 18:30:40 +02:00
carlory
55e1646fa4 removed the deprecated azureFile in-tree storage plugin 2024-01-04 14:41:33 +08:00
Kubernetes Prow Robot
6cf77098aa Merge pull request #122545 from my-git9/cert-fake-fix
kubeadm: fix flaky test TestRunRenewCommands
2024-01-01 17:42:13 +01:00
xin.li
a2f397a4b8 kubeadm: increase ut coverage fo phases/kubeconfig
Signed-off-by: xin.li <xin.li@daocloud.io>
2024-01-01 20:54:33 +08:00
xin.li
97db0caf6b kubeadm: fix flaky test TestRunRenewCommands
Signed-off-by: xin.li <xin.li@daocloud.io>
2024-01-01 20:47:03 +08:00
Kubernetes Prow Robot
735804dc81 Merge pull request #122477 from SataQiu/fix-20231225
kubeadm: print supported shell types in error message for 'kubeadm completion'
2023-12-25 17:21:58 +01:00
Kubernetes Prow Robot
a56093db9f Merge pull request #121958 from neolit123/1.30-remove-kubelet-and-func
kubeadm: drop concurrency when waiting for kubelet /healthz
2023-12-25 15:52:25 +01:00
SataQiu
41a508f538 kubeadm: print supported shell types in error message for 'kubeadm completion' 2023-12-25 17:28:34 +08:00
Kubernetes Prow Robot
b9e0714722 Merge pull request #122356 from my-git9/ut-etcd-32
kubeadm: increase ut coverage for util/etcd
2023-12-25 06:25:07 +01:00
xin.li
430fd83454 kubeadm: increase ut coverage for util/etcd
Signed-off-by: xin.li <xin.li@daocloud.io>
2023-12-25 11:14:05 +08:00
Kubernetes Prow Robot
0d530551bc Merge pull request #122393 from mzaian/etcd-3511
etcd: Update to version 3.5.11
2023-12-21 06:41:55 +01:00
Kubernetes Prow Robot
c6f4ff6df8 Merge pull request #122385 from SataQiu/fix-global-flag-20231219
kubeadm: hide unwanted global klog flags
2023-12-21 05:30:53 +01:00
Mohamed Omar Zaian
c8a2d5684d etcd: Update to version 3.5.11 2023-12-20 11:18:35 +01:00
Lubomir I. Ivanov
32fbb23f3b kubeadm: remove usage of the TryRunCommand() function
The function TryRunCommand() uses an exponential backoff,
which is good, but it's inconsistent and only used in a couple
of places.

Remove its usage in the token.go#UpdateOrCreateTokens()
and switch to using the standard function used in other places -
PollUntilContextTimeout().

Remove wait.go#TryRunCommand(), as there are no other usages.
2023-12-20 08:51:00 +02:00
Lubomir I. Ivanov
557118897d kubeadm: drop concurrency when waiting for kubelet /healthz
The function wait.go#WaitForKubeletAndFunc() has been used in
a number of places in kubeadm. It starts a go routine to wait for
the kubelet /healthz and in parallel starts another go routine
to wait for an custom function.

This logic is problematic. If kubeadm is waiting for the kubelet
in parallel with something that requires the kubelet, the right
solution would be to first wait for the kubelet in serial and only
then proceed with the other action. The parallelism here particularly
during "init" required a unwanted "initial timeout" of 40s, before
the kubelet waiting even starts. In most cases, this makes the kubelet
waiter to not even start, while the main point of waiting becomes
the "other action".

- Remove the function WaitForKubeletAndFunc() from the Waiter interface.
- Rename the function WaitForHealthyKubelet() to just WaitForKubelet()
to be consistent with the naming WaitForAPI().
- Update WaitForKubelet() to not use TryRunCommand() and instead
use PollUntilContextTimeout().
- Remove the "initial timeout" of 40s in WaitForKubelet().
- Make both WaitForKubelet() and WaitForAPI() use similar error
handling and output.
- Update all usage of WaitForKubelet() to be a serial call before
any other action, such as another wait* call.
- Make the default wait timeout for the kubelet
/healthz to be 1 minute (kubeadmconstants.DefaultKubeletTimeout).
- Apply updates to all implementations of the Waiter interface.
2023-12-20 08:51:00 +02:00
Kubernetes Prow Robot
27c127403c Merge pull request #122265 from SataQiu/kubeadm-etcd-1.30
kubeadm: add supported etcd version for v1.30
2023-12-20 06:19:30 +01:00
Kubernetes Prow Robot
4111bef430 Merge pull request #122386 from kerthcet/cleanup/add-test
Add more testcases when setting up scheduler
2023-12-20 04:11:16 +01:00
SataQiu
64da434523 kubeadm: hide unwanted global klog flags 2023-12-19 18:49:01 +08:00
kerthcet
b6eac505fb Add testcase setup scheduler
Signed-off-by: kerthcet <kerthcet@gmail.com>
2023-12-19 17:53:24 +08:00
SataQiu
2edb334993 kubeadm: hide unwanted global klog flags 2023-12-19 16:32:30 +08:00
Dan Winship
c1ce1e00ee Properly build-tag the Linux kube-proxy backend code
This had to be able to build on OS X before to make verify-typecheck
pass, but now that that's fixed we can tag the code properly as being
linux-only.
2023-12-18 20:20:51 -05:00
James Blair
b6c1f8ef08 Fix etcd repository path to prevent redirects.
Signed-off-by: James Blair <mail@jamesblair.net>
2023-12-16 19:50:02 +13:00
Kubernetes Prow Robot
1a1941eebb Merge pull request #122079 from carlory/kubeadm-upgrade-health
refactor healthCheck's CreateJob with TTLSecondsAfterFinished
2023-12-15 08:15:04 +01:00
carlory
c62155a770 refactor healthCheck's CreateJob with TTLSecondsAfterFinished
Co-authored-by: Shida Qiu <shidaqiu2018@gmail.com>
2023-12-15 11:32:30 +08:00
Kubernetes Prow Robot
6383b50ed9 Merge pull request #122213 from chendave/plan_control_node
kubeadm: update the help msg for `kubeadm upgrade plan`
2023-12-14 07:26:36 +01:00
Kubernetes Prow Robot
36d95c33b1 Merge pull request #122181 from SataQiu/clean-certs-20231205
kubeadm: cleanup unused CreateCSR and associated functions
2023-12-14 07:26:27 +01:00
Kubernetes Prow Robot
6e7f503e1a Merge pull request #122144 from Jerry-yz/master
kubeadm: update func CreateJoinControlPlaneKubeConfigFiles variable name
2023-12-14 06:18:52 +01:00
Kubernetes Prow Robot
e4c8005fdf Merge pull request #122128 from my-git9/configut
kubeadm: increase ut coverage of util/config
2023-12-14 06:18:07 +01:00
Kubernetes Prow Robot
d96dc5361f Merge pull request #122061 from neolit123/1.30-fix-upgrade-plan-message-about-cm
kubeadm: remove outdated notes during upgrade
2023-12-14 05:10:28 +01:00
Kubernetes Prow Robot
040c59bb9d Merge pull request #122013 from sanposhiho/patch-10
Fix: modify a flag doc of pod-max-in-unschedulable-pods-duration
2023-12-14 05:09:34 +01:00