Commit Graph

4553 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
78bc18dcb0 Merge pull request #124715 from SataQiu/fix-kubeadm-20240507
kubeadm: remove deprecated UpgradeAddonsBeforeControlPlane featuregate
2024-05-07 13:29:24 -07:00
Kubernetes Prow Robot
72786649b6 Merge pull request #124652 from neolit123/1.31-add-cert-expiration-v1beta4
kubeadm: add support for custom cert validity period in v1beta4
2024-05-07 10:38:51 -07:00
SataQiu
6f94700886 kubeadm: remove deprecated UpgradeAddonsBeforeControlPlane featuregate 2024-05-07 09:24:10 +08:00
xin.li
d1dff562ad kubeam: increase ut coverage for addon/dns
Signed-off-by: xin.li <xin.li@daocloud.io>
2024-05-03 21:21:06 +08:00
SataQiu
1c82e03c2a kubeadm: remove unused CreateKubeConfigFileFunc type 2024-05-03 16:19:51 +08:00
Lubomir I. Ivanov
d105ddd350 kubeadm: update the IsPriviligedUser preflight check on Windows
Use GetCurrentProcessToken() instead of checking the groups of a user.

The Go stdlib way of fetching the groups of an user appears
to be failing on some Windows setups. Which could be a regression
in later Go versions, or simply the code does not work on certain
setups.
2024-05-02 20:23:02 +03:00
Lubomir I. Ivanov
74e1438d86 kubeadm: add support for custom cert validity period in v1beta4
Allow the user to pass custom cert validity period with
ClusterConfiguration.CertificateValidityPeriod and
CACertificateValidityPeriod.

The defaults remain 1 year for regular cert and 10 years for CA.
Show warnings if the provided values are more than the defaults.

Additional changes:
- In "certs show-expiration" use HumanDuration() to print
more detailed durations instead of ShortHumanDuration().
- Add a new kubeadm util GetStartTime() which can be used
to consistently get a UTC time for tasks like writing certs
and unit tests.
- Update unit tests to validate the new customizable NotAfter.
2024-05-01 19:01:49 +03:00
Kubernetes Prow Robot
29a4812f03 Merge pull request #124080 from claudiubelu/skip-windows-tests
Skip failing Windows tests
2024-05-01 07:48:12 -07:00
Kubernetes Prow Robot
bae83009d3 Merge pull request #124503 from neolit123/1.31-convert-create-job-preflight-to-warning
kubeadm: check for available nodes during 'CreateJob' preflight
2024-04-26 08:49:26 -07:00
Lubomir I. Ivanov
786ad3ca81 kubeadm: check for available nodes during 'CreateJob' preflight
Instead of erroring during the preflight check 'CreateJob'
from "upgrade" commands when there are no schedulable nodes,
show a warning.

This can happen in single node clusters.

Also increase the Job TTL after completion to 20 seconds
to make sure it's more than the timeout what waits
for the Job to complete.
2024-04-26 12:18:02 +03:00
Kubernetes Prow Robot
ba05a8deb3 Merge pull request #124419 from neolit123/1.31-deprecate-experimental-cert-rotation
kubeadm: mark the phase 'experimental-cert-rotation' as deprecated
2024-04-25 23:28:39 -07:00
SataQiu
328c5edaeb kubeadm: enable KubernetesReleaseVersion test 2024-04-26 11:30:51 +08:00
Claudiu Belu
2be8baeaef unittests: Skip failing Windows tests
Some of the unit tests are currently failing on Windows.

Skip them for now, and remove the skips later, once the underlying issues
have been resolved.
2024-04-25 14:24:16 +00:00
Kubernetes Prow Robot
17854f0e0a Merge pull request #124496 from carlory/output-alpha3
kubeadm: remove the deprecated output.kubeadm.k8s.io/v1alpha2
2024-04-24 21:02:51 -07:00
Kubernetes Prow Robot
646fbe6d0a Merge pull request #124480 from neolit123/1.31-fix-upgrade-component-config
kubeadm: fix bug of kubeletconfig not being downloaded on upgrade
2024-04-24 01:20:24 -07:00
Kubernetes Prow Robot
5291c11a0e Merge pull request #124468 from neolit123/1.31-improve-unit-test-performance-with-test-versions
kubeadm: improve performance of unit tests that need a k8s version
2024-04-24 01:20:17 -07:00
carlory
4f0ee034ec kubeadm: remove the deprecated output.kubeadm.k8s.io/v1alpha2 2024-04-24 15:01:20 +08:00
Lubomir I. Ivanov
eeac2dda70 kubeadm: use new etcd /livez and /readyz endpoints
etcd >= 3.5.11 includes new endpoints for liveness, startup
and readyness probes. Use them in 1.31.
2024-04-23 17:07:27 +03:00
Lubomir I. Ivanov
a04cc020f1 kubeadm: make sure we only track >= 3 etcd versions at at time
There is no point to track more than 3 etcd versions at a time
where each etcd versions maps to a k8s CP version.

It's 3 instead of 2 (k8s CP / kubeadm version skew size) because
there is a period of time where the 3rd version (newest) will
be WIP at k/k master - e.g. at the time of this commit it's 1.31.

Add a unit test to block on this.

Also fixate the min etcd version to 3.5.11.
2024-04-23 17:07:06 +03:00
Lubomir I. Ivanov
71e9712f6c kubeadm: fix bug of kubeletconfig not being downloaded on upgrade
During upgrade apply we had logic to download the kubelet and
kubeproxy configs from the cluster as part of the call to:
  FetchInitConfigurationFromCluster()

With the introduction of UpgradeConfiguration there was
some refactor in this area and the function no longer
had the argument skipComponentConfigs set to false.

It is set to 'true', an InitConfiguration is downloaded
but it would contain empty / defaulted component configs.

- Set the argument to 'false'
- Perform minor cleanup of STDOUT messages and comments.
that were missed in 1.30.
2024-04-23 16:21:52 +03:00
Kubernetes Prow Robot
695a984f56 Merge pull request #124027 from liangyuanpeng/etcd_update_3.5.13
etcd: update to v3.5.13
2024-04-23 06:00:02 -07:00
Lubomir I. Ivanov
6e17cc7f0e kubeadm: mark the phase 'experimental-cert-rotation' as deprecated
- Mark the phase 'init kubelet-finilize experimental-cert-rotation'
as deprecated and print a warning if its used directly. It should be
removed in 1.32.
- Add a replacement phase 'enable-client-cert-rotation'.

(!!) We should stop using the 'experimental' and 'alpha' names for
phases, clI flags and k8s object names as this complicates
the graduation and users will use the feature in production regardless.

Having a 'DEPRECATED' or 'EXPERIMENTAL' text in descriptions is
sufficient to indicate a status of a feature that should not be used
in production.
2024-04-23 13:54:51 +03:00
Lubomir I. Ivanov
59746fbf4f kubeadm: improve performance of unit tests that need a k8s version
The function KubernetesReleaseVersion is being called in
a number of locations during unit tests but by default it
uses a "fetch version from URL" approach.

- Update the function to return a placeholder version
during unit tests.
- Update unit tests for this function.
- Update strings / comments in other version_tests.go
locations.

The improvement is significant:

time go test k8s.io/kubernetes/cmd/kubeadm/app/... -count=1

before:
real    2m47.733s

after:
real    0m10.234s
2024-04-23 13:50:19 +03:00
carlory
3d55c21e90 kubeadm use output/v1alpha3 version to print objects 2024-04-23 13:47:48 +08:00
carlory
a23e278d15 Graduate the flag for structural output --experimental-output to just --output 2024-04-19 16:22:45 +08:00
Kubernetes Prow Robot
0e39ca84dc Merge pull request #124375 from neolit123/1.31-remove-experimental-from-rootfs
kubeadm: remove the EXPERIMENTAL description from --rootfs
2024-04-18 13:05:35 -07:00
Kubernetes Prow Robot
c4bce63d98 Merge pull request #124374 from neolit123/1.31-remove-experimental-description-of-download-certs
kubeadm: remove the EXPERIMENTAL tag of the download-certs phase
2024-04-18 08:49:39 -07:00
Kubernetes Prow Robot
6bb968c4d2 Merge pull request #124373 from neolit123/1.31-remove-deprecated-update-status-phase
kubeadm: remove the deprecated "update-status" phase of "join"
2024-04-18 07:48:23 -07:00
Kubernetes Prow Robot
64f76b603a Merge pull request #124186 from HirazawaUi/remove-unused-func
[kubeadm]: remove kubeadm unused function
2024-04-18 06:31:30 -07:00
Lubomir I. Ivanov
142e077bcb kubeadm: remove the EXPERIMENTAL description from --rootfs
The global kubeadm --rootfs flag is now considered
non-experimental.
2024-04-18 15:54:42 +03:00
Lubomir I. Ivanov
f309a0c7a6 kubeadm: remove the EXPERIMENTAL tag of the download-certs phase
The phase was tagged as EXPERIMENTAL 5+ years ago.
2024-04-18 15:46:34 +03:00
Lubomir I. Ivanov
917c8d67c5 kubeadm: remove the deprecated "update-status" phase of "join"
The phase has been deprecated and a NO-OP for 3+ years.
2024-04-18 15:40:08 +03:00
Kubernetes Prow Robot
e6efba3380 Merge pull request #124361 from neolit123/1.31-stop-mounting-etc-pki
kubeadm: don't mount /etc/pki for apiserver and KCM
2024-04-18 05:27:59 -07:00
Lubomir I. Ivanov
9c156218cc kubeadm: don't mount /etc/pki for apiserver and KCM
According to kubeadm repo ticket 1665, /etc/pki
can contain subdirectories with private keys on some distros.
Avoid mounting the entire /etc/pki and mount /etc/pki/ca-trust
and /etc/pki/tls/certs instead. These directories are mounted
as an extra locations which can be used to search
for additional system CAs.
2024-04-18 12:33:18 +03:00
Kubernetes Prow Robot
f3e7e008a4 Merge pull request #124038 from SataQiu/fix-kubeadm-20240325
kubeadm: stop storing the ResolverConfig in the global KubeletConfiguration and instead set it dynamically for each node
2024-04-18 02:11:29 -07:00
Kubernetes Prow Robot
ab91dd6905 Merge pull request #123842 from my-git9/upgrade-fds
kubeadm: increase ut converage for config/upgradeconfiguration
2024-04-18 01:04:12 -07:00
Kubernetes Prow Robot
56b39eab7c Merge pull request #119436 from claudiubelu/unittests-9
unittests: Fixes unit tests for Windows (part 9)
2024-04-17 22:51:32 -07:00
Lan Liang
1dc735fd70 etcd: update to v3.5.13
Signed-off-by: Lan Liang <gcslyp@gmail.com>
2024-04-13 09:37:25 +00:00
HirazawaUi
4a4a04fa74 remove kubeadm unused function 2024-04-04 23:36:00 +08:00
carlory
363fee59e4 fix panic with SIGSEGV in kubeadm certs check-expiration 2024-04-01 11:09:53 +08:00
Claudiu Belu
c2dfcf1e34 unittests: Fixes unit tests for Windows (part 9)
Currently, there are some unit tests that are failing on
Windows due to various reasons:

- time.Now() is not as precise on Windows, which means that
  2 consecutive calls may return the same timestamp.
- Different "File not found" error messages on Windows.
- The default Container Runtime URL scheme on Windows is npipe, not unix.
2024-03-26 13:42:50 +00:00
SataQiu
c1f2167803 kubeadm: stop storing the ResolverConfig in the global KubeletConfiguration and instead set it dynamically for each node 2024-03-25 18:26:46 +08:00
xin.li
a4fe397ebd kubeadm: increase ut converage for config/upgradeconfiguration
Signed-off-by: xin.li <xin.li@daocloud.io>
2024-03-11 13:27:24 +08:00
Kubernetes Prow Robot
9d39ce04fd Merge pull request #123595 from neolit123/1.30-add-timeouts-upgradeconfig
kubeadm: add timeouts to v1beta4.UpgradeConfiguration
2024-03-04 01:16:44 -08:00
Lior Lieberman
db115ca929 [kubeadam] do not set authorization-mode in api server when authorization-config is provided 2024-03-03 14:43:47 +00:00
Kubernetes Prow Robot
7c11cc9cfc Merge pull request #123578 from carlory/fix-kubeadm-494
kubeadm: print all the kubelets and nodes that need to be upgraded on "upgrade plan"
2024-03-03 01:46:03 -08:00
carlory
22adf221a1 print nodename 2024-03-03 11:03:29 +08:00
Lubomir I. Ivanov
99313bea88 kubeadm: remove constants for mirror pod timeout
StaticPodMirroringTimeout and StaticPodMirroringRetryInterval
are use for just an API call to get Pods(). The already existing
constants.KubernetesAPICallRetryInterval
and kubeadmapi.GetActiveTimeouts().KubernetesAPICall.Duration
can be used for that instead.
2024-03-01 13:04:08 +02:00
Lubomir I. Ivanov
ded6354a8f kubeadm: add Timeouts struct to v1beta4.UpgradeConfiguration
Follow the same process of adding the Timeouts struct
to UpgradeConfiguration similarly to how it was done for
other API Kinds.

In the Timeouts struct include one new timeout:
- UpgradeManifests
2024-03-01 13:04:08 +02:00
Kubernetes Prow Robot
d8122df1b7 Merge pull request #123555 from neolit123/1.30-fix-apiserver-authz-arg-defaulting
kubeadm: fix a bug in defaulting apiserver "authorizaion-mode"
2024-02-29 09:49:08 -08:00