Commit Graph

1062 Commits

Author SHA1 Message Date
Octopusjust
db0bfd8727 Update version_test.go
run ./hack/verify-gofmt.sh
2022-07-18 14:15:06 +08:00
ZhangYu
ba80421254 Add testcases for cmd/kubeadm/app/util/net.go and version.go 2022-07-16 09:23:48 +08:00
Abirdcfly
00b9ead02c cleanup: remove duplicate import
Signed-off-by: Abirdcfly <fp544037857@gmail.com>
2022-07-14 11:25:19 +08:00
SataQiu
723cadf750 kubeadm: respect user specified image repository when using Kubernetes ci version 2022-07-09 16:24:51 +08:00
runzhliu
37f66cb9d8 improve the comments 2022-07-05 01:59:11 +00:00
Kubernetes Prow Robot
fa16bf8e12 Merge pull request #110791 from SataQiu/fix-kubeadm-20220626
kubeadm: fix the bug that configurable KubernetesVersion not respected during kubeadm join
2022-06-30 21:53:34 -07:00
Kubernetes Prow Robot
3eb7b7a48f Merge pull request #110874 from chendave/fix_debug
kubeadm: Force to disable debug mode for `crictl`
2022-06-30 10:42:20 -07:00
Dave Chen
c5b22b535b kubeadm: Force to disable debug mode for crictl
Signed-off-by: Dave Chen <dave.chen@arm.com>
2022-06-30 15:08:45 +08:00
SataQiu
5b2d6ca5df kubeadm: fix the bug that configurable KubernetesVersion not respected during kubeadm join 2022-06-30 14:47:33 +08:00
SataQiu
3889a6cac8 kubeadm: support retry mechanism for removing container in reset phase 2022-06-29 17:54:56 +08:00
tallaxes
4a542609aa Support more auth strategies in kubeadm join with discovery file (#110553)
* Add support for client-go credential plugins

* Add support for authprovider authentication

* Add support for TokenFile authentication
2022-06-14 08:03:45 -07:00
Kubernetes Prow Robot
4407a02aef Merge pull request #110560 from lunhuijie/fixTestpki
Incomplete coverage of test scenarios and optimize bad code
2022-06-14 04:53:32 -07:00
10284789刁浩
696d537239 Incomplete coverage of test scenarios and bad code 2022-06-14 07:48:43 +00:00
Paco Xu
31922c7794 kubeadm: use staticpod known tags for upgrade/init phases 2022-06-09 14:21:48 +08:00
Paco Xu
29aca9692c overwrite known targets in patch manager cache in case it changes 2022-06-08 16:10:41 +08:00
Kubernetes Prow Robot
cd4b8ed070 Merge pull request #110405 from neolit123/1.25-kubelet-config-patches
kubeadm: add support for patching a "kubeletconfiguration" target
2022-06-07 07:05:07 -07:00
Lubomir I. Ivanov
c3c9fb8608 kubeadm: add unit tests for patching a "kubeletconfiguration" target 2022-06-06 20:37:26 +03:00
Lubomir I. Ivanov
9f6df1d489 kubeadm: graduate the UnversionedKubeletConfig FG to GA
- lock the FG to true by default
- cleanup wrappers and logic related to versioned vs unversioned
naming of API objects (CMs and RBAC)
- update unit tests
2022-06-01 17:17:07 +03:00
Davanum Srinivas
50bea1dad8 Move from k8s.gcr.io to registry.k8s.io
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-05-31 10:16:53 -04:00
Kubernetes Prow Robot
3308ce1caf Merge pull request #110137 from neolit123/1.25-update-master-label-taint
kubeadm: cleanup OldControlPlaneTaint from unit tests
2022-05-19 22:05:13 -07:00
Lubomir I. Ivanov
9c68116461 kubeadm: cleanup OldControlPlaneTaint from unit tests
The OldControlPlaneTaint taint (master) can be replaced
with the new ControlPlaneTaint (control-plane) taint.

Adapt unit tests in markcontrolplane_test.go
and cluster_test.go.
2022-05-19 22:00:39 +03:00
Manish Kumar
58cc7e7d43 Parse ENV vars to crictl command 2022-05-19 21:53:50 +05:30
Kubernetes Prow Robot
84c8afeba3 Merge pull request #110095 from neolit123/1.25-update-master-label-taint
kubeadm: cleanup the "master" taint on CP nodes during upgrade
2022-05-18 00:52:54 -07:00
Kubernetes Prow Robot
9169f16841 Merge pull request #108447 from pacoxu/kubeadm-json-upgrade-plan
`Kubeadm upgrade plan` support json/yaml output
2022-05-17 16:46:31 -07:00
Lubomir I. Ivanov
ddd046f3dd kubeadm: cleanup the "master" taint on CP nodes during upgrade
- iniconfiguration.go: stop applying the "master" taint
for new clusters; update related unit tests in _test.go
- apply.go: Remove logic related to cleanup of the "master" label
during upgrade
- apply.go: Add cleanup of the "master" taint on CP nodes
during upgrade
- controlplane_nodes_test.go: remove test for old "master" taint
on nodes (this needs backport to 1.24, because we have a kubeadm
1.25 vs kubernetes test suite 1.24 e2e test)
2022-05-17 19:21:49 +03:00
Davanum Srinivas
f7ad09c447 Switch to pause 3.7
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2022-03-29 15:36:38 -04:00
Paco Xu
22fb3be96d cleanup: kubeadm upgrade plan supports json/yaml output
Co-authored-by: Lubomir I. Ivanov <neolit123@gmail.com>
2022-03-25 16:15:43 +08:00
Patrick Ohly
edffc700a4 enhance and fix log calls
Some of these changes are cosmetic (repeatedly calling klog.V instead of
reusing the result), others address real issues:

- Logging a message only above a certain verbosity threshold without
  recording that verbosity level (if klog.V().Enabled() { klog.Info... }):
  this matters when using a logging backend which records the verbosity
  level.

- Passing a format string with parameters to a logging function that
  doesn't do string formatting.

All of these locations where found by the enhanced logcheck tool from
https://github.com/kubernetes/klog/pull/297.

In some cases it reports false positives, but those can be suppressed with
source code comments.
2022-03-24 11:13:50 +01:00
Sascha Grunert
6b63231b7e kubeadm: reuse found crictl path for exec
We now re-use the crictl tool path within the `ContainerRuntime` when
exec'ing into it. This allows introducing a convenience function to
create the crictl command and re-use it where necessary.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2022-03-22 14:03:57 +01:00
Paco Xu
93daef6e77 feature(kubeadm): add support of json/yaml format for upgrade plan
- cherry-pick 83941 and rebase
2022-03-03 17:23:03 +08:00
XuzhengChang
7824316e89 Print getStaticPodSingleHash err message 2022-03-02 09:34:12 +08:00
Kubernetes Prow Robot
0cfb5ccd6a Merge pull request #107725 from neolit123/1.24-kubeadm-improve-strict-validation
kubeadm: improve the strict unmarshaling of component config
2022-02-17 15:01:02 -08:00
Lubomir I. Ivanov
ee5c927f06 kubeadm: improve strict validation for configuration
- Modify VerifyUnmarshalStrict to use serializer/json instead
of sigs.k8s.io/yaml. In strict mode, the serializers
in serializer/json use the new sigs.k8s.io/json library
that also catches case sensitive errors for field names -
e.g. foo vs Foo. Include test case for that in strict/testdata.
- Move the hardcoded schemes to check to the side of the
caller - i.e. accept a slice of runtime.Scheme.
- Move the klog warnings outside of VerifyUnmarshalStrict
and make them the responsibility of the caller.
- Call VerifyUnmarshalStrict when downloading the configuration
from kubeadm-config or the kube-proxy or kubelet-config CMs.
This validation is useful if the user has manually patched the CMs.
2022-02-17 19:37:41 +02:00
Kubernetes Prow Robot
1fa888529e Merge pull request #107533 from neolit123/1.24-update-master-label-taint
kubeadm: apply "master" label/taint migration for 1.24
2022-02-15 21:44:36 -08:00
SataQiu
2c5aef9036 kubeadm: fix the bug that 'kubeadm init --dry-run --upload-certs' command failed with 'secret not found' error 2022-02-09 12:58:02 +08:00
SataQiu
dcf959c782 kubeadm: fix the bug that 'kubeadm certs generate-csr' command does not remove duplicated SANs 2022-02-07 17:12:38 +08:00
ahrtr
972dc46a1f replace deprecated io/ioutil with os and io for cmd 2022-02-01 13:59:41 +08:00
Kubernetes Prow Robot
8a25964153 Merge pull request #107317 from neolit123/1.24-change-kubeadm-cr-auto-detection
kubeadm: adapt CRI detection and defaults after the dockershim removal
2022-01-17 11:00:50 -08:00
Lubomir I. Ivanov
370031cada kubeadm: apply the new "control-plane" taint on CP nodes
- Apply "control-plane" taint during init/join by adding the
taint in SetNodeRegistrationDynamicDefaults(). The old
taint "master" is still applied.
- Clarify API docs (v1beta2 and v1beta3) for nodeRegistration.Taint
to not mention "master" taint and be more generic. Remove
example for taints that includes the word "master".
- Update unit tests.
2022-01-13 17:46:05 +02:00
Lubomir I. Ivanov
a3d5e55982 kubeadm: only apply the new "control-plane" label during init/join
- Update the markcontrolplane phase used by init and join to
only label the nodes with the new control plane label.
- Cleanup TODOs about the old label.
- Remove outdated comment about selfhosting in staticpod/utils.go.
Selfhosting has not been supported in kubeadm for a while
and the comment also mentions the "master" label.
- Update unit tests.
2022-01-13 17:45:54 +02:00
Lubomir I. Ivanov
f3f1332223 kubeadm: update the CRI socket detection logic
- Throw an error if there is more than one known socket on the host.
- Remove the special handling for docker+containerd.
- Remove the local instances of constants for endpoints for
Windows / Unix and use the defaultKnownCRISockets variable
which is populated from OS specific constants.
- Update error message in detectCRISocketImpl to have more
details.
- Make detectCRISocketImpl accept a list of "known" sockets
- Update unit tests for detectCRISocketImpl and make them
use generic paths such as "unix:///foo/bar.sock".
2022-01-12 17:15:45 +02:00
Lubomir I. Ivanov
ea2c948799 kubeadm: change the default CRI socket to containerd
Change the default container runtime CRI socket endpoint to the
one of containerd. Previously it was the one for Docker

- Rename constants.DefaultDockerCRISocket to DefaultCRISocket
- Make the constants files include the endpoints for all supported
container runtimes for Unix/Windows.
- Update unit tests related to docker runtime testing.
- In kubelet/flags.go hardcode the legacy docker socket as a check
to allow kubeadm 1.24 to run against kubelet 1.23 if the user
explicitly sets the criSocket field to "npipe:////./pipe/dockershim"
on Windows or "unix:///var/run/dockershim.sock" on Linux.
2022-01-12 17:15:45 +02:00
SataQiu
218b4dea9f kubeadm: print warnings to stderr 2022-01-11 23:08:59 +08:00
Lubomir I. Ivanov
936e12c930 kubeadm: do not special case Docker as a container runtime
crictl already works with the current state of dockershim.
Using the docker CLI is not required and the DockerRuntime
can be removed from kubeadm. This means that crictl
can connect at the dockershim (or cri-dockerd) socket and
be used to list containers, pull images, remove containers, and
all actions that the kubelet can otherwise perform with the socket.

Ensure that crictl is now required for all supported container runtimes
in checks.go. In the help text in waitcontrolplane.go show only
the crictl example.

Remove the check for the docker service from checks.go.
Remove the DockerValidor check from checks.go.
These two checks were special casing Docker as CR and compensating
for the lack of the same checks in dockershim. With the
extraction of dockershim to cri-dockerd, ideally cri-dockerd
should perform the required checks whether it can support
a given Docker config / version running on a host.
2022-01-05 21:27:24 +02:00
SataQiu
83ef08336b kubeadm: remove the restriction that the ca.crt can only contain one certificate 2022-01-05 15:08:29 +08:00
Kubernetes Prow Robot
c7d57a01b7 Merge pull request #107295 from neolit123/1.24-kubeadm-add-scheme-to-cri-sockets
kubeadm: ensure CRI endpoints are managed with URL schemes
2022-01-03 23:02:59 -08:00
Lubomir I. Ivanov
207556e057 kubeadm: make "upgrade node" include URL scheme in socket paths
The CRI socket that kubeadm writes as an annotation
on a particular Node object can include an endpoint that
does not have an URL scheme. This is undesired as long term
the kubelet can stop allowing endpoints without URL scheme.

For control plane nodes "kubeadm upgrade apply" takes
the locally defaulted / populated NodeRegistration and refreshes
the CRI socket in PerformPostUpgradeTasks. But for secondary
nodes "kubeadm upgrade node" does not.

Adapt "upgrade node" to fetch the NodeRegistration for this node
and fix the CRI socket missing URL scheme if needed in the Node
annotation.
2022-01-03 23:13:31 +02:00
pacoxu
7594f0ef90 kubeadm: detect runtime socket as URL format
- Update defaults for v1beta2 and 3 to have URL scheme
- Raname DefaultUrlScheme to DefaultContainerRuntimeURLScheme
- Prepend a missing URL scheme to user sockets and warn them
that this might not be supported in the future
- Update socket validation to exclude IsAbs() testing
(This is broken on Windows). Assume the path is not empty and has
URL scheme at this point (validation happens after defaulting).
- Use net.Dial to open Unix sockets
- Update all related unit tests

Signed-off-by: pacoxu <paco.xu@daocloud.io>
Signed-off-by: Lubomir I. Ivanov <lubomirivanov@vmware.com>
2022-01-03 21:15:03 +02:00
Monokaix
eab74f15a5 Remove unused arg of kubeadm/WaitForKubeletAndFunc 2021-12-25 09:12:00 +08:00
Kubernetes Prow Robot
be5b9b4f8d Merge pull request #107013 from pacoxu/kubeadm-v1beta2-depre
kubeadm: mark v1beta2 as deprecated
2021-12-14 19:48:18 -08:00