Commit Graph

4072 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
1c127d3682
Merge pull request #105706 from uthark/oatamanenko/upgrade-etcd-3.5.1
Upgrade etcd to 3.5.1
2021-11-15 10:04:59 -08:00
navist2020
bc4bbd88b2 kubeadm/certs/renew:remove deprecated flags csrOnly and csrPath 2021-11-12 17:44:35 +08:00
Kubernetes Prow Robot
35f9bcabf1
Merge pull request #105992 from hwdef/fix-kubeadm-2419
kubeadm: add mutation for Linux paths in KubeletConfiguration on Windows
2021-11-11 19:48:29 -08:00
hwdef
b985e094b0 kubeadm: fix absolute paths do not work properly in config files in windows 2021-11-12 10:42:46 +08:00
Lubomir I. Ivanov
e1571bf665 kubeadm: fix typo in KubeProxyClusterRoleBindingName constant
kubeam:node-proxier -> kubeadm:node-proxier
This causes e2e test failures:
"[area-kubeadm] proxy addon kube-proxy ServiceAccount should
be bound to the system:node-proxier cluster role"

in:
- kubeadm-kinder-latest
- kubeadm-kinder-latest-on-...
- other tests
2021-11-10 21:19:30 +02:00
Etienne Champetier
356d9e0626 kubeadm: fix inverted warning message
Before this commit when setting bindAddress to 1.2.3.4 the warning was:
The recommended value for "bindAddress" in "KubeProxyConfiguration" is: 1.2.3.4; the provided value is: 0.0.0.0

Signed-off-by: Etienne Champetier <e.champetier@ateme.com>
2021-11-09 20:54:57 -05:00
Kubernetes Prow Robot
e759c32129
Merge pull request #106243 from calvin0327/fix-kubeadm-init-constant
fix some kubeadm init phase constants
2021-11-09 11:28:24 -08:00
Kubernetes Prow Robot
5848dbaa80
Merge pull request #105741 from neolit123/1.23-kubeadm-kubelet-config-map-change
kubeadm: introduce the UnversionedKubeletConfigMap feature gate
2021-11-09 11:27:48 -08:00
calvin
c5c9429d0e fix some kubeadm init phase constants 2021-11-09 10:30:01 +08:00
Lubomir I. Ivanov
68118d7319 kubeadm: remove unused / legacy function DownloadConfig
The function has been marked as deprecated for a long time
and has been unused in the code base.

Remove it.
2021-11-08 17:31:29 +02:00
Lubomir I. Ivanov
a6587f4ffb kubeadm: add the UnversionedKubeletConfigMap feature gate
Add the UnversionedKubeletConfigMap feature gate that can
be used to control legacy vs new behavior for naming the
default configmap used to store the KubeletConfiguration.

Update related unit tests.
2021-11-08 17:31:29 +02:00
Kubernetes Prow Robot
73f4064fff
Merge pull request #105295 from neolit123/1.23-add-output-v1alpha2
kubeadm: add a new output/v1alpha2 API; deprecate output/v1alpha1
2021-11-08 06:01:11 -08:00
Kubernetes Prow Robot
4ce435cc95
Merge pull request #105251 from calvin0327/issue-upgrade-coredns
Update corefile-migration to v1.0.14 and update coredns to 1.8.6
2021-11-05 14:48:39 -07:00
Kubernetes Prow Robot
6d30c96d4a
Merge pull request #106042 from chendave/aggregate
kubeadm: aggregate all the errors when the shared certs are validated
2021-11-04 10:06:15 -07:00
Dave Chen
c85fb0e6ac Aggregate all the errors when the shared certs are validated
Instead of the individual error and return, it's better to aggregate all
the errors so that we can fix them all at once.

Take the chance to fix some comments, since kubeadm are not checking that
the certs are equal across controlplane.

Signed-off-by: Dave Chen <dave.chen@arm.com>
2021-11-04 10:12:00 +08:00
Lubomir I. Ivanov
d3e1f87fca kubeadm: remove TODO about moving SchemeBuilder to k8s.io/api
This TODO is no longer in scope, thus remove it from
all register.go files under /app/apis.
2021-11-03 19:11:43 +02:00
Lubomir I. Ivanov
f73894359d kubeadm: update converters after the output/v1alpha2 addition
The addition of output/v1alpha2 made the converter-gen require
an explicit converter for:
kubeadm/v1beta2.BootstrapToken -> bootstraptoken/v1.BootstrapToken.

Add this converter under kubeadm/v1beta.
Use the converter in output/v1alpha1.
2021-11-03 19:11:43 +02:00
Tim Hockin
11a25bfeb6
De-share the Handler struct in core API (#105979)
* De-share the Handler struct in core API

An upcoming PR adds a handler that only applies on one of these paths.
Having fields that don't work seems bad.

This never should have been shared.  Lifecycle hooks are like a "write"
while probes are more like a "read". HTTPGet and TCPSocket don't really
make sense as lifecycle hooks (but I can't take that back). When we add
gRPC, it is EXPLICITLY a health check (defined by gRPC) not an arbitrary
RPC - so a probe makes sense but a hook does not.

In the future I can also see adding lifecycle hooks that don't make
sense as probes.  E.g. 'sleep' is a common lifecycle request. The only
option is `exec`, which requires having a sleep binary in your image.

* Run update scripts
2021-10-29 13:15:11 -07:00
Lubomir I. Ivanov
b9171aee20 kubeadm: remove the reset/update-cluster-status phase
The phase has been deprecated and a NO-OP since 1.22.
Remove the phase related code.
2021-10-25 22:47:15 +03:00
Kubernetes Prow Robot
9251115fa1
Merge pull request #105807 from jonyhy96/fix-magic-number
kubeadm: make constant of the magic-number in bootstraptoken util
2021-10-22 04:46:37 -07:00
haoyun
9b5f28053c feat: make a const of magic-number
Signed-off-by: haoyun <yun.hao@daocloud.io>
Co-authored-by: Lubomir I. Ivanov <neolit123@gmail.com>
2021-10-22 09:53:07 +08:00
Oleg Atamanenko
965f10f539 Upgrade etcd to 3.5.1 2021-10-18 23:09:27 -07:00
haoyun
a600e31c55 test: add test for PatchNode when error happend
Signed-off-by: haoyun <yun.hao@daocloud.io>
2021-10-19 11:01:01 +08:00
Kubernetes Prow Robot
9804a83d8f
Merge pull request #105343 from jonyhy96/fix-patch-node-once
kubeadm: fix some retry logic in PatchNodeOnce
2021-10-17 09:49:49 -07:00
haoyun
bd8f26c2d7 fix: patchNode retry logic
Signed-off-by: haoyun <yun.hao@daocloud.io>
2021-10-17 12:36:36 +08:00
navist2020
cc2802d9bb validate flag cfgPath to make sure it is not empty 2021-10-14 11:05:06 +08:00
calvin0327
941c78f411 Update corefile-migration to v1.0.14 and update coredns to 1.8.6 2021-10-12 11:03:52 +08:00
Lubomir I. Ivanov
73d528dce9 kubeadm: make output/BootstrapToken use bootstraptoken/v1 2021-09-28 16:37:41 +03:00
Lubomir I. Ivanov
47af311ea4 kubeadm: mark output/v1alpha1 as deprecated 2021-09-28 16:37:40 +03:00
Lubomir I. Ivanov
473e781ccb kubeadm: set output/v1alpha2 as the priority version 2021-09-28 16:37:40 +03:00
Lubomir I. Ivanov
b92966aeac kubeadm: use output/v1alpha2 in kubeadm commands
Use the new API for "config images list" and
"token list".
2021-09-28 16:37:40 +03:00
Lubomir I. Ivanov
2d4fcedbcf kubeadm: add a new output/v1alpha2 API
The API is a copy of output/v1alpha1 with a minor difference
where output/v1alpha2.BootstrapToken embeds
bootstraptoken/v1.BootstrapToken instead of
kubeadm/v1beta2.BootstrapToken.

Embedding the later is an undesired binding between the "kubeadm"
and "output" groups, preventing the eventual deprecation and removal
of the kubeadm.v1beta2 API.

This new output API version, unlike v1alpha1, does not include
defaulting which is not needed.
2021-09-28 16:37:26 +03:00
Kubernetes Prow Robot
bf000e8770
Merge pull request #104770 from pacoxu/dual-stack-ga-kubeadm
cleanup: DualStack GA for kubeadm
2021-09-28 03:42:42 -07:00
Paco Xu
751ad37a05 kubeadm: cleanup remove some empty feature gate for dual-stack 2021-09-28 15:34:26 +08:00
Khaled Henidak (Kal)
a53e2eaeab
move IPv6DualStack feature to stable. (#104691)
* kube-proxy

* endpoints controller

* app: kube-controller-manager

* app: cloud-controller-manager

* kubelet

* app: api-server

* node utils + registry/strategy

* api: validation (comment removal)

* api:pod strategy (util pkg)

* api: docs

* core: integration testing

* kubeadm: change feature gate to GA

* service registry and rest stack

* move feature to GA

* generated
2021-09-24 16:30:22 -07:00
Kubernetes Prow Robot
91f820eee4
Merge pull request #104854 from pacoxu/kubeadm-swap-check
kubeadm: move swap on check error to warning since NodeSwap is beta
2021-09-17 04:57:13 -07:00
Kubernetes Prow Robot
8975906dfc
Merge pull request #104942 from SataQiu/kubeadm-20210912
kubeadm: do not check if the /etc/kubernetes/manifests folder is empty on joining worker nodes during preflight
2021-09-15 11:16:11 -07:00
Paco Xu
0b8433a3f5 kubeadm: remove --port from kube-scheduler manifest 2021-09-15 12:58:35 +08:00
Kubernetes Prow Robot
fa2657b8b2
Merge pull request #104624 from Haleygo/support-null-resolvConf-in-configFile
When resolvConf is "" in kubelet configuration, pod will be created with wrong dns policy
2021-09-14 14:18:59 -07:00
SataQiu
d57e442c62 kubeadm: do not check if the /etc/kubernetes/manifests folder is empty on joining worker nodes during preflight
Signed-off-by: SataQiu <shidaqiu2018@gmail.com>
2021-09-14 20:26:04 +08:00
Haleygo
46454ea9dc support null resolvConf in Kubelet Configuration 2021-09-14 16:12:52 +08:00
Paco Xu
1385bd3a06 kubeadm: fix ut failures of dualstack GA 2021-09-14 13:16:40 +08:00
Kubernetes Prow Robot
c79f7c1add
Merge pull request #104711 from claudiubelu/update-pause-3.6
update pause image references to use 3.6
2021-09-13 19:09:08 -07:00
Paco Xu
d57bad5fa9 Update cmd/kubeadm/app/preflight/checks.go
Co-authored-by: Lubomir I. Ivanov <neolit123@gmail.com>
2021-09-14 09:33:12 +08:00
Paco Xu
7007b417e5 kubeadm: move swap on check error to warning since NodeSwap is beta in 1.23 2021-09-14 09:33:12 +08:00
RA489
2a96e22c0a remove the --csr* flags from "kubeadm certs renew" 2021-09-13 14:50:33 +05:30
Paco Xu
a0cc3f1c9a cleanup: DualStack GA for kubeadm 2021-09-04 22:38:14 +08:00
Claudiu Belu
18936d4785 updates pause image references
The pause:3.6 image has been published.

Also updates older / incorrect references.
2021-08-29 21:50:05 -07:00
la3mmchen
57f2af2834 FIX: just add a missing word in output 2021-08-25 21:53:49 +02:00
Stephen Augustus
481cf6fbe7
generated: Run hack/update-gofmt.sh
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2021-08-24 15:47:49 -04:00
Antonio Ojea
0cd75e8fec run hack/update-netparse-cve.sh 2021-08-20 10:42:09 +02:00
XinYang
72fd01095d
re-order imports for kubeadm
Signed-off-by: XinYang <xinydev@gmail.com>
2021-08-17 22:40:46 +08:00
Lubomir I. Ivanov
096c3e8f2d kubeadm: further improve the dynamic version population
Panicing if not running in a test and if the component-base/version
variables are empty is not ideal. At some point sections
of kubeadm could be exposed as a library and if these sections
import the constants package, they would panic on the library
users unless they set the version information in component-base
with ldflags.

Instead:
- If the component-base version is empty, return a placeholder version
that should indicate to users that build kubeadm that something is not
right (e.g. they did not use 'make'). During library usage or unit
tests this version should not be relevant.
- Update unit tests to use hardcoded versions instead of the versions
from the constants package. Using the constants package for testing
is good but during unit tests these versions are already placeholders
since unit tests do not populate the actual component-base versions
(e.g. 1.23).
2021-08-12 19:54:06 +03:00
Kubernetes Prow Robot
746fea56ae
Merge pull request #104065 from pacoxu/kubeadm-patches
kubeadm: disallow the mixture of --config and --patches & remove deprecated --experimental-patches
2021-08-11 08:06:58 -07:00
Benjamin Elder
e6cb526f6b set umask on linux and darwin when testing kubeadm copycerts 2021-08-10 22:42:35 -07:00
Kubernetes Prow Robot
40c9066054
Merge pull request #103027 from Haleygo/feature/add-kubeadm-join-dryrun
kubeadm: support kubeadm join --dry-run
2021-08-10 13:02:39 -07:00
Haleygo
95e000fd65 support kubeadm join dry-run 2021-08-10 23:43:54 +08:00
Kubernetes Prow Robot
e96652ea74
Merge pull request #104015 from neolit123/1.23-use-dynamic-versions
kubeadm: dynamically populate the current/minimum k8s versions
2021-08-09 21:59:17 -07:00
Lubomir I. Ivanov
e3538edc22 kubeadm: update unit tests to support dynamic version updates
Tests under /app and /test would fail if the current/minimum k8s version
is dynamically populated from the version in the kubeadm binary.
Adapt the tests to support that.
2021-08-09 19:42:08 +03:00
Lubomir I. Ivanov
207ffa7bdc kubeadm: dynamically populate the current/minimum k8s versions
Kubeadm requires manual version updates of its current supported k8s
control plane version and minimally supported k8s control plane and
kubelet versions every release cycle.

To avoid that, in constants.go:
- Add the helper function getSkewedKubernetesVersion() that can be
used to retrieve a MAJOR.(MINOR+n).0 version of k8s. It currently
uses the kubeadm version populated in "component-base/version" during
the kubeadm build process.
- Use the function to set existing version constants (variables).

Update util/config/common.go#NormalizeKubernetesVersion() to
tolerate the case where a k8s version in the ClusterConfiguration
is too old for the kubeadm binary to use during code freeze.

Include unit tests for the new utilities.
2021-08-09 19:42:08 +03:00
Kubernetes Prow Robot
5eeaafd2b4
Merge pull request #104157 from knight42/remove-port-from-kubeadm-manifest
refactor(kubeadm): remove the flag --port from KCM manifest
2021-08-05 16:37:10 -07:00
Kubernetes Prow Robot
de4e500673
Merge pull request #104134 from ihgann/topic/ganni/optimize-kubeadm-etcd-member-add-2
kubeadm: reduce the backoff time of AddMember for etcd
2021-08-05 16:37:03 -07:00
Kubernetes Prow Robot
8df554bafd
Merge pull request #103801 from gkarthiks/master
Remove purell package usage from kubeadm
2021-08-05 14:09:56 -07:00
Ian Gann
c8431f42d9 kubeadm: Reduce the backoff time of AddMember for etcd
This change optimizes the kubeadm/etcd `AddMember` client-side function
by stopping early in the backoff loop when a peer conflict is found
(indicating the member has already been added to the etcd cluster). In
this situation, the function will stop early and relay a call to
`ListMembers` to fetch the current list of members to return. With this
optimization, front-loading a `ListMembers` call is no longer necessary,
as this functionally returns the equivalent response.

This helps reduce the amount of time taken in situational cases where an
initial client request to add a member is accepted by the server, but
fails client-side.

This situation is possible situationally, such as if network latency
causes the request to timeout after it was sent and accepted by the
cluster. In this situation, the following loop would occur and fail with
an `ErrPeerURLExist` response, and would be stuck until the backoff
timeout was met (roughly ~2min30sec currently).

Testing Done:

* Manual testing with an etcd cluster. Initial "AddMember` call was
  successful, and the etcd manifest file was identical to prior version
  of these files. Subsequent calls to add the same member succeeded
  immediately (retaining idempotency), and the resulting manifest file
  remains identical to previous version as well. The difference, this
  time, is the call finished ~2min25sec faster in an identical test in
  the environment tested with.
2021-08-05 13:11:42 -07:00
Jian Zeng
c486b229d2 refactor(kubeadm): remove the flag --port from KCM manifest
Signed-off-by: Jian Zeng <zengjian.zj@bytedance.com>
2021-08-05 19:51:02 +08:00
Kubernetes Prow Robot
90ac41bd77
Merge pull request #103813 from SataQiu/update-kubeadm-ci-bucket
kubeadm: update references to legacy artifacts locations
2021-08-05 01:44:27 -07:00
paco
b7ea7a7766 kubeadm: disallow the mixture of --config and --patches 2021-08-02 10:20:31 +08:00
paco
375ef778c4 kubeadm: remove deprecated --experimental-patches 2021-08-02 10:10:20 +08:00
Kevin Delgado
ca90849724 add kube-openapi/pkg/schemaconv to kubeadm import-restrictions 2021-07-28 01:06:15 +00:00
SataQiu
5be47eaf27 kubeadm: update references to legacy artifacts locations 2021-07-21 12:13:05 +08:00
gkarthiks
019e8f71b6 refactor: normalizing URL string locally and move out from purell package
The purell package at github.com/PuerkitoBio/purell is no longer maintained and in k/k repo under kubeadm package its been used for normalizing the URL. This commit removes the dependency on this package and creates a local function for normalizing the URL within the preflight package under cmd/kubeadm.

Signed-off-by: gkarthiks <github.gkarthiks@gmail.com>

chore: add new line at end of the file

Signed-off-by: gkarthiks <github.gkarthiks@gmail.com>

fix: remove unused mod from vendor modules file

Signed-off-by: gkarthiks <github.gkarthiks@gmail.com>
2021-07-20 21:56:08 +05:30
Lubomir I. Ivanov
6cf3e36c37 kubeadm: statically default the "from cluster" InitConfiguration
During operations such as "upgrade", kubeadm fetches the
ClusterConfiguration object from the kubeadm ConfigMap.
However, due to requiring node specifics it wraps it in an
InitConfiguration object. The function responsible for that is:
  app/util/config#FetchInitConfigurationFromCluster().

A problem with this function (and sub-calls) is that it ignores
the static defaults applied from versioned types
(e.g. v1beta3/defaults.go) and only applies dynamic defaults for:
- API endpoints
- node registration
- etc...

The introduction of Init|JoinConfiguration.ImagePullPolicy now
has static defaulting of the NodeRegistration object with a default
policy of "PullIfNotPresent". Respect this defaulting by constructing
a defaulted internal InitConfiguration from
FetchInitConfigurationFromCluster() and only then apply the dynamic
defaults over it.

This fixes a bug where "kubeadm upgrade ..." fails when pulling images
due to an empty ("") ImagePullPolicy. We could assume that empty
string means default policy on runtime in:
cmd/kubeadm/app/preflight/checks.go#ImagePullCheck()

but that might actually not be the user intent during "init" and "join",
due to e.g. a typo. Similarly, we don't allow empty tokens
on runtime and error out.
2021-07-08 02:52:11 +03:00
Kubernetes Prow Robot
ac554af79b
Merge pull request #103142 from serathius/etcd-3.5.0
Upgrade etcd to 3.5.0
2021-07-07 12:40:22 -07:00
Kubernetes Prow Robot
656d00e894
Merge pull request #103496 from neolit123/1.22-add-defaulting-v1beta3-imagepull
kubeadm: statically default ImagePullPolicy in v1beta3
2021-07-06 22:11:48 -07:00
Lubomir I. Ivanov
f01d251e38 kubeadm: statically default ImagePullPolicy in v1beta3
Instead of dynamically defaulting NodeRegistration.ImagePullPolicy,
which is common when doing defaulting depending on host state - e.g.
hostname, statically default it in v1beta3/defaults.go.

- Remove defaulting in checks.go
- Add one more unit test in checks_test.go
- Adapt v1beta2 conversion and fuzzer / round tripping tests

This also results in the default being visible when calling:
"kubeadm config print ...".
2021-07-05 21:48:06 +03:00
Lubomir I. Ivanov
94414bea47 kubeadm: fix godoc formatting for v1beta3
Fix indentation of entries in the changelog and the migration steps.
2021-07-05 20:52:18 +03:00
Kubernetes Prow Robot
120f6325a7
Merge pull request #103471 from pacoxu/patch-1
kubeadm: fix nil pointer in  Cfg() feature gate checking
2021-07-04 23:06:53 -07:00
Paco Xu
772344aef2
kubeadm: fix nil pointer in Cfg() feature gate checking 2021-07-05 09:59:57 +08:00
XinYang
c2a8cd359f
re-order the imports in kubeadm
Signed-off-by: XinYang <xinydev@gmail.com>

Update cmd/kubeadm/app/cmd/join.go

Co-authored-by: Lubomir I. Ivanov <neolit123@gmail.com>
2021-07-04 16:41:27 +08:00
Kubernetes Prow Robot
5fe522c237
Merge pull request #101988 from vinayakankugoyal/kubeadm
Remove users and groups created as part of rootless control-plane in kubeadm.
2021-07-02 23:42:17 -07:00
Vinayak Goyal
1ae9b8f04d Update kernel components to run as non-root in kubeadm. 2021-07-02 17:37:55 -07:00
Kubernetes Prow Robot
1345a802de
Merge pull request #103187 from Haleygo/fix-dry-run-when-using-externalCA
Kubeadm init --dry-run should work when using an external ca
2021-07-02 07:58:25 -07:00
Haleygo
6d6d200c3a dry-run can work when using an external ca 2021-07-02 18:53:51 +08:00
Lubomir I. Ivanov
622f69bf8d kubeadm: update v1beta3's godoc changelog 2021-07-02 00:12:25 +03:00
Lubomir I. Ivanov
11d444b00e kubeadm: remove versioned copies of the bootstrap token API and utils
Given bootstraptoken/v1 is now a separate GV, there is no need
to duplicate the API and utilities inside v1beta3 and the internal
version.

v1beta2 must continue to use its internal copy due, since output/v1alpha1
embeds the v1beta2.BootstrapToken object. See issue 2427 in k/kubeadm.
2021-07-02 00:11:49 +03:00
Lubomir I. Ivanov
14fa296bb3 kubeadm: use the bootstraptoken/v1 API across the code base
- Make v1beta3 use bootstraptoken/v1 instead of local copies
- Make the internal API use bootstraptoken/v1
- Update validation, /cmd, /util and other packages
- Update v1beta2 conversion
2021-07-02 00:11:49 +03:00
Lubomir I. Ivanov
5b7bda90c0 kubeadm: introduce apis/bootstraptoken/v1
Package bootstraptoken contains an API and utilities wrapping the
"bootstrap.kubernetes.io/token" Secret type to ease its usage in kubeadm.

The API is released as v1, since these utilities have been part of a
GA workflow for 10+ releases.

The "bootstrap.kubernetes.io/token" Secret type is also GA.
2021-07-02 00:11:49 +03:00
Kubernetes Prow Robot
3f4c39bbd7
Merge pull request #103063 from neolit123/1.22-add-patches-to-v1beta3
kubeadm: add support for patches in v1beta3; deprecate --experimental-patches
2021-07-01 02:25:54 -07:00
Vinayak Goyal
1c39cf2365 Fix incorrect user and group for kube-scheduler when it is running as non-root. 2021-06-30 11:28:15 -07:00
Lubomir I. Ivanov
5c00024c70 kubeadm: fix wrong check for keys/certs during "download-certs"
During "join" of new control plane machines, kubeadm would
download shared certificates and keys from the cluster stored
in a Secret. Based on the contents of an entry in the Secret,
it would use helper functions from client-go to either write
it as public key, cert (mode 644) or as a private key (mode 600).

The existing logic is always writing both keys and certs with mode 600.
Allow detecting public readable data properly and writing some files
with mode 644.

First check the data with ParsePrivateKeyPEM(); if this passes
there must be at least one private key and the file should be written
with mode 600 as private. If that fails, validate if the data contains
public keys with ParsePublicKeysPEM() and write the file as public
(mode 644).

As a result of this new logic, and given the current set of managed
kubeadm files, .key files will end up with 600, while .crt and .pub
files will end up with 644.
2021-06-29 23:42:04 +03:00
wangyysde
39a373b162 correct example command of kubeadm help
Signed-off-by: wangyysde <net_use@bzhy.com>
2021-06-28 16:12:52 +08:00
navist2020
538e7777c3 kubeadm:remove deprecated flags CSROnly and CSRDir 2021-06-24 18:28:43 +08:00
Marek Siarkowicz
ebe550bd48 Upgrade etcd to 3.5.0 2021-06-24 09:15:17 +02:00
Lubomir I. Ivanov
70a524659a kubeadm: add {Init|Join}Configuration.Patches.Directory to v1beta3
Add {Init|Join}Configuration.Patches, which is a structure that
contains patch related options. Currently it only has the "Directory"
field which is the same option as the existing --experimental-patches
flag.

The flags --[experimental-]patches value override this value
if both a flag and config is passed during "init" or "join".
2021-06-23 22:24:10 +03:00
Lubomir I. Ivanov
a4402122b4 kubeadm: add the --patches flag and deprecate --experimental-patches
The feature of "patches" in kubeadm has been in Alpha for a few
releases. It has not received major bug reports from users.
Deprecate the --experimental-patches flag and add --patches.

Both flags are allowed to be mixed with --config.
2021-06-23 22:22:41 +03:00
Lubomir I. Ivanov
3b36e6bcea kubeadm: fix image pull policy integration
If the user has not specified a pull policy we must assume a default of
v1.PullIfNotPresent.

Add some extra verbose output to help users monitor what policy is
used and what images are skipped / pulled.

Use "fallthrough" and case handle "v1.PullAlways".

Update unit test.
2021-06-23 00:52:35 +03:00
Kubernetes Prow Robot
c864f2357d
Merge pull request #102901 from wangyysde/add-support-imagePullPolicy-fix524
kubeadm: add support of imagePullPolicy to kubeadm
2021-06-22 07:43:59 -07:00
Kubernetes Prow Robot
e78e692f33
Merge pull request #101449 from CaoDonghui123/fix5
kubeadm: allow passing the flag --log-file if --config is passed
2021-06-21 20:43:57 -07:00
caodonghui
25f479c2ac fix'--log-file only works if --logtostderr=false' 2021-06-22 09:32:26 +08:00
Kubernetes Prow Robot
cfa0130b9f
Merge pull request #102466 from pacoxu/dns-1.8.4
kubeadm: update coredns to 1.8.4
2021-06-21 18:14:10 -07:00
wangyysde
459fe7d08a add support of imagePullPolicy to kubeadm
Signed-off-by: wangyysde <net_use@bzhy.com>
2021-06-22 07:13:25 +08:00
navist2020
1f9d448283 Use errors.Errorf instead of errors.Wrapf when the err is nil 2021-06-21 16:17:32 +08:00
Kubernetes Prow Robot
ab7d8b5b5b
Merge pull request #102871 from rainrambler/patch-1
kubeadm: use defer to unlock mutex in certs.go
2021-06-18 09:52:30 -07:00
Kubernetes Prow Robot
f1d9db4381
Merge pull request #102940 from gy95/sche
when new manager failed should return err
2021-06-17 14:08:17 -07:00
Kubernetes Prow Robot
b41c8a2d49
Merge pull request #102862 from vinayakankugoyal/roochless2
Update etcd in kubeadm to run as non-root.
2021-06-17 13:00:05 -07:00
navist2020
1a4b0ee09b remove excess error handling 2021-06-17 17:34:57 +08:00
gy95
c789898f79 when new manager failed should return err 2021-06-17 16:02:31 +08:00
Vinayak Goyal
5a0756c5f4 Update etcd in kubeadm to run as non-root. 2021-06-16 17:30:46 -07:00
Kubernetes Prow Robot
3c1db414da
Merge pull request #102546 from lunhuijie/refactorCheckTest
refactor cmd/kubeadm/app/preflight/checks_test.go
2021-06-16 09:44:12 -07:00
刁浩 10284789
84112d3690 refactor cmd/kubeadm/app/preflight/checks_test.go()
Signed-off-by: 刁浩 10284789 <diao.hao@zte.com.cn>
2021-06-16 01:46:27 +00:00
Kubernetes Prow Robot
3a47ddccdf
Merge pull request #100488 from liggitt/protobuf
update etcd, grpc, protobuf dependencies
2021-06-15 14:49:42 -07:00
Kubernetes Prow Robot
d186b43639
Merge pull request #102828 from MikeSpreitzer/fix-kubeadm-api-dox
Fix some typos and omissions in kubeadm APIs
2021-06-15 11:31:43 -07:00
Jordan Liggitt
2979c3325e Switch to go.etcd.io/etcd/client/v3 2021-06-15 09:53:06 -04:00
rainrambler
5ea3dd531c
Update certs.go
Use defer feature for unlock
2021-06-15 15:34:26 +08:00
Antonio Ojea
74feb07594 kubeadm: CoreDNS permissions for endpointslices
Signed-off-by: Antonio Ojea <antonio.ojea.garcia@gmail.com>
Co-authored-by: pacoxu <paco.xu@daocloud.io>
2021-06-15 13:03:48 +08:00
pacoxu
188193e1c0 kubeadm: upgrade coredns 1.8.4 and corefile-migration to v1.0.12
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2021-06-15 13:03:42 +08:00
Mike Spreitzer
a3e464490a Fix some typos and omissions in kubeadm APIs 2021-06-14 20:38:43 -04:00
Kubernetes Prow Robot
8a6a26714c
Merge pull request #102759 from vinayakankugoyal/roochless
Update kubeadm control-plane to run as non-root.
2021-06-14 15:52:01 -07:00
Vinayak Goyal
59b4b124df Update kubeadm control-plane to run as non-root. 2021-06-14 12:04:50 -07:00
Kubernetes Prow Robot
4aae71695a
Merge pull request #102366 from cndoit18/fix-time-format
fix(timezone): Change the time zone in the api data to UTC
2021-06-11 06:54:59 -07:00
Kubernetes Prow Robot
e52b7be7d7
Merge pull request #101600 from KofClubs/fix-cri-socket-kubeadm
kubeadm: disallow the mixture of --cri-socket and --config
2021-06-11 00:04:58 -07:00
Kubernetes Prow Robot
faa36554c5
Merge pull request #102770 from pacoxu/kubeadm-example
kubeadm: use a suggested example in v1beta2/3 docs
2021-06-10 08:23:47 -07:00
Kubernetes Prow Robot
f008ba0fed
Merge pull request #102062 from serathius/etcd-server
Update Etcd server image to 3.5.0-rc.0-0
2021-06-10 08:23:27 -07:00
pacoxu
654ec0866a kubeadm: use a suggested example in v1beta2/3 docs
Co-authored-by: SataQiu <shidaqiu2018@gmail.com>
2021-06-10 18:24:59 +08:00
Vinayak Goyal
e6bf19bcf6 Update CreateInitStaticPodManifestFiles, CreateStaticPodFiles and CreateLocalEtcdStaticPodManifestFile to take into account if the command was run as dry-run. 2021-06-09 15:01:42 -07:00
Marek Siarkowicz
12447bc803 Upgrade etcd server version to 3.5.0-rc.0 2021-06-09 17:00:05 +02:00
Kubernetes Prow Robot
7696a48612
Merge pull request #102560 from navist2020/todo/checkManifest
kubeadm:Run preflight checks for diff to check that the manifests already exist
2021-06-08 23:03:47 -07:00
Kubernetes Prow Robot
d849d9d057
Merge pull request #102697 from mlevesquedion/update-levee-analyzer-version
Update version of go-flow-levee for verify-govet-levee check.
2021-06-08 18:37:46 -07:00
navist2020
897f8012fd kubeadm:Run preflight checks for diff to check that the manifests already exist 2021-06-09 09:09:00 +08:00
Kubernetes Prow Robot
d5685397e1
Merge pull request #102673 from jackfrancis/kubeadm-etcd-ephemeral-storage
kubeadm: remove ephemeral-storage etcd requirement
2021-06-08 12:26:36 -07:00
Michaël Lévesque-Dion
a94aa0ea9a Update version of go-flow-levee for verify-govet-levee check. 2021-06-08 12:02:46 -04:00
Jack Francis
ff164f9013 feat: remove ephemeral-storage etcd requirement 2021-06-07 16:03:10 -07:00
Kubernetes Prow Robot
a8a379d91e
Merge pull request #102604 from vinayakankugoyal/kubeadm-files2
Add utils to set file/directory owners and permissions.
2021-06-07 13:40:56 -07:00
Vinayak Goyal
bb6151906f Add utils to set file/directory owners and permissions. 2021-06-07 11:31:38 -07:00
Kubernetes Prow Robot
3b71dac6ac
Merge pull request #102593 from CaoDonghui123/fix7
remove redundant code
2021-06-04 09:44:38 -07:00
caodonghui
812a04539c remove redundant code 2021-06-04 17:56:46 +08:00
cndoit18
51717256f9
fix(timezone): the timezone is standardized to UTC
Signed-off-by: cndoit18 <cndoit18@outlook.com>
2021-06-03 23:55:39 +08:00
Lubomir I. Ivanov
f6d015be7a kubeadm: add utilities to manage users and groups
In the Alpha stage of the feature in kubeadm to support
a rootless control plane, the allocation and assignment of
UID/GIDs to containers in the static pods will be automated.
This automation will require management of users and groups
in /etc/passwd and /etc/group.

The tools on Linux for user/group management are inconsistent
and non-standardized. It also requires us to include a number of
more dependencies in the DEB/RPMs, while complicating the UX for
non-package manager users.

The format of /etc/passwd and /etc/group is standardized.
Add code for managing (adding and deleting) a set of managed
users and groups in these files.
2021-06-03 03:48:45 +03:00
Kubernetes Prow Robot
7e2b5f3325
Merge pull request #102502 from ykakarap/kubeadm-coredns-path-change
kubeadm: use subpath for coredns only for default repository
2021-06-01 16:02:47 -07:00
Yuvaraj Kakaraparthi
97ba90cbfb use subpath for coredns only for default repository 2021-06-01 13:27:01 -07:00
Vinayak Goyal
39d45fccef Add user and group name constants for kubeadm rootless control-plane. 2021-06-01 09:52:33 -07:00
Kubernetes Prow Robot
d6b408f748
Merge pull request #99647 from neolit123/1.21-remove-cgroup-driver-detection
kubeadm: remove the cgroup driver detection for docker
2021-05-31 06:30:27 -07:00
Kubernetes Prow Robot
e7d8fb2e16
Merge pull request #101925 from neolit123/1.22-kubeadm-add-optional-fields
kubeadm: add "+optional" to fields with "omitempty" in v1beta3
2021-05-28 10:16:24 -07:00
Kubernetes Prow Robot
bf2ece7ada
Merge pull request #101923 from neolit123/1.22-kubeadm-add-skip-phases-v1beta3
kubeadm: add support for skipping phases in v1beta3
2021-05-28 09:14:24 -07:00
Lubomir I. Ivanov
24a1f9d817 kubeadm: use "SkipPhases" from configuration for "init" and "join"
During Runner data initialization, if the value for the flag
"--skip-phases" was empty set the {init|join}Runner.Options.SkipPhases
to the {Init|Join}Configuration.SkipPhases value.
2021-05-28 18:12:06 +03:00
Lubomir I. Ivanov
ac161866aa kubeadm: add SkipPhases in {Init|Join}Configuration for v1beta3
- Add the field SkipPhases in the public v1beta3 as a []string (omitempty)
- Add the field in the internal type
- Run generators
- Adapt v1beta2 converter for JoinConfiguration
2021-05-28 18:12:06 +03:00
Zhang Zhanpeng
5c2841c8cd Forbid the use of --config and --cri-socket at the same time
Signed-off-by: Zhang Zhanpeng <zhanpeng.zhang@daocloud.io>
2021-05-27 12:54:13 +08:00
navist2020
d98a83bb01 kubeadm:return error info normally 2021-05-26 14:50:53 +08:00
Lubomir I. Ivanov
8e5a982442 kubeadm: remove the cgroup driver detection code for Docker
Ideally this should be part of dockershim/CRI and not on the
side of kubeadm.

Remove the detection during:
- During preflight
- During kubelet config defaulting
2021-05-25 22:05:42 +03:00
Lubomir I. Ivanov
93f79103e5 kubeadm: add "+optional" to fields with "omitempty" in v1beta3
Add the "+optional" generator tag to all fields in v1beta3 structs
that have "omitempty" in JSON tags.
2021-05-25 20:05:43 +03:00
Sascha Grunert
b167fc24d7
Update pause image to v3.5
Update dependencies and the test images to use pause 3.5. We also
provide a changelog entry for the new container image version.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2021-05-25 09:04:46 +02:00
Kubernetes Prow Robot
31a0f49c7c
Merge pull request #102174 from SataQiu/kubeadm-add-datapolicy
kubeadm: add datapolicy tags for v1beta3 token/key fields
2021-05-21 08:41:11 -07:00
Kubernetes Prow Robot
64412d526e
Merge pull request #102133 from pacoxu/move-defaulting-kubeadm
kubeadm: move cgroupDriver defaulting to kubeconfig/kubelet.go Default()
2021-05-21 08:40:59 -07:00
pacoxu
2fdbfd8a27 kubeadm: move cgroupDriver defaulting to componentconfigs/kubelet.go#Default()
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2021-05-21 17:27:40 +08:00
SataQiu
7a3827e8e3 kubeadm: add datapolicy tags for v1beta3 token fields 2021-05-21 11:47:17 +08:00
Kubernetes Prow Robot
7705b300e2
Merge pull request #102158 from vinayakankugoyal/kubeadm-featuregate
Add a feature-gate to kubeadm to enable/disable rootless control-plane.
2021-05-20 14:16:36 -07:00
Kubernetes Prow Robot
3cd555e818
Merge pull request #102121 from pacoxu/remove-insecure-ports
kubeadm: remove --insecure-port flag from the kube-apiserver manifest
2021-05-19 19:47:16 -07:00
Vinayak Goyal
c426517ac0 Add a feature-gate to kubeadm to enable/disable Rootless control-plane. 2021-05-19 15:52:27 -07:00
Kubernetes Prow Robot
7f47a3aabb
Merge pull request #102108 from neolit123/1.22-kubeadm-remove-csr-flags
kubeadm: remove deprecated "--csr*" flags in "init phase certs"
2021-05-18 23:33:12 -07:00
pacoxu
a074ccfe36 remove --insecure-port in kubeadm 2021-05-19 11:48:07 +08:00
Kubernetes Prow Robot
04b7977ef6
Merge pull request #101915 from neolit123/1.22-remove-cluster-status
kubeadm: remove the ClusterStatus object from v1beta3
2021-05-18 17:28:51 -07:00
Kubernetes Prow Robot
22ec3b0edd
Merge pull request #102069 from neolit123/1.22-kubeadm-util-use-k8s.io-link
kubeadm: use git.k8s.io link in app/util/error.go
2021-05-18 13:17:17 -07:00
Lubomir I. Ivanov
92a57fc573 kubeadm: remove deprecated --csr* flags in "init phase certs"
- Remove the deprecated --csr* flags "init phase certs"
- Deprecate the same flags for "certs renew".

For both cases users should be using "certs generate-csr".
2021-05-18 22:35:06 +03:00
Kubernetes Prow Robot
c24f2f8225
Merge pull request #102093 from SataQiu/remove-image-pull-timeout
kubeadm: remove the deprecated flag '--image-pull-timeout' for 'kubeadm upgrade apply' command
2021-05-18 11:35:17 -07:00
SataQiu
15dcc83cec kubeadm: remove the deprecated flag '--image-pull-timeout' for 'kubeadm upgrade apply' command 2021-05-18 20:34:05 +08:00
Lubomir I. Ivanov
66d4e6e55d kubeadm: remove the deprecated "config view" command
The command "kubeadm config view" was deprecated in 1.19.
Remove it as scheduled in 1.22.

The replacement is to use kubectl:
kubectl get cm -n kube-system kubeadm-config -o=jsonpath="{.data.ClusterConfiguration}"
2021-05-17 21:10:43 +03:00
Lubomir I. Ivanov
1b4bf420b4 kubeadm: use git.k8s.io link in app/util/error.go
Adapt for the future transition of kubernetes/community to
have "main" as its development branch.

Use:
https://git.k8s.io/community/...
2021-05-17 19:54:08 +03:00
Lubomir I. Ivanov
8b9d0dceb1 kubeadm: remove the ClusterStatus object from v1beta3
- Remove the object form v1beta3 and internal type
- Deprecate a couple of phases that were specifically designed / named to
modify the ClusterStatus object
- Adapt logic around annotation vs ClusterStatus retrieval
- Update unit tests
- Run generators
2021-05-17 19:27:36 +03:00
Kubernetes Prow Robot
a45aeb626c
Merge pull request #101918 from neolit123/1.22-add-more-static-rsa-keys
kubeadm: add more *rsa.key files in util/pkiutil/testing/testdata
2021-05-15 17:05:59 -07:00
Kubernetes Prow Robot
3f43b1ed84
Merge pull request #101547 from neolit123/1.22-remove-dns-type
kubeadm: remove ClusterConfiguration.DNS.Type from v1beta3
2021-05-15 00:27:58 -07:00
kcx2366425574
ad101cb650 remove unused params
Signed-off-by: kcx2366425574 <kuangcx@inspur.com>
Signed-off-by: kcx2366425574 <18279911430@163.com>
2021-05-14 11:31:30 +08:00
Kubernetes Prow Robot
9f0f14952c
Merge pull request #101966 from SataQiu/clean-kubeadm-20210513
kubeadm: remove redundant CriticalAddonsOnly toleration from kube-proxy DaemonSet
2021-05-13 19:52:04 -07:00
SataQiu
25d845c3b5 kubeadm: fix the bug that kubeadm only uses the first hash in caCertHashes to verify the root CA 2021-05-13 19:38:39 +08:00
SataQiu
c66a7bc42c kubeadm: remove redundant CriticalAddonsOnly toleration from kube-proxy DaemonSet 2021-05-13 14:51:57 +08:00
Jian Zeng
41c4cccc26
refactor(kubeadm): remove deprecated command alpha kubeconfig
Signed-off-by: Jian Zeng <zengjian.zj@bytedance.com>
2021-05-12 22:04:20 +08:00
Lubomir I. Ivanov
518fa1a412 kubeadm: add more *rsa.key files in util/pkiutil/testing/testdata
Running "go test ./cmd/kubeadm/app/..." results in these 3 files
being generated, since we have more callers to the functions
for generating unique private keys during pkiutil tests.

Add the files to ensure they are not generated locally all the time.
2021-05-11 22:58:38 +03:00
Lubomir I. Ivanov
0bdfe05cf2 kubeadm: remove ClusterConfiguration.DNS.Type from v1beta3
Kubeadm no longer supports kube-dns and CoreDNS is the only
supported DNS server. Remove ClusterConfiguration.DNS.Type
from v1beta3 that is used to set the DNS server type.
2021-05-11 01:31:01 +03:00
Kubernetes Prow Robot
347730b6b4
Merge pull request #101537 from neolit123/1.22-remove-hyperkube
kubeadm: remove deprecated hyperkube image support in v1beta3
2021-05-10 10:49:48 -07:00
Kubernetes Prow Robot
365ed5c4ad
Merge pull request #100234 from vinayakankugoyal/seccomp
runtime/default Seccomp Profile in kubeadm control-plane components.
2021-05-10 10:49:36 -07:00
Kubernetes Prow Robot
d8b5669924
Merge pull request #101774 from KofClubs/delete-redundant-kubeadmconstants-initconfiguration.go
kubeadm: Deleted redundant `kubeadmconstants` from `initconfiguration.go`
2021-05-10 09:45:21 -07:00
Kubernetes Prow Robot
3dd0597843
Merge pull request #101598 from neolit123/1.22-kubeadm-remove-clusterconfiguration-defaulting
kubeadm: simplify fuzzing of ClusterConfiguration
2021-05-08 01:23:17 -07:00
Zhang Zhanpeng
b3714fa55f Deleted k8s.io/kubernetes/cmd/kubeadm/app/constants from the imported packages
Signed-off-by: Zhang Zhanpeng <zhanpeng.zhang@daocloud.io>
2021-05-07 10:56:12 +08:00
Vinayak Goyal
9ae671a5d4 Add seccomp profile runtime default to add control-plane components. 2021-05-06 18:27:56 -07:00
Kubernetes Prow Robot
7d176851f2
Merge pull request #100612 from pacoxu/patch-8
kubeadm: upgrade etcd to 3.4.13-3
2021-05-05 07:11:27 -07:00
Lubomir I. Ivanov
8eca7298b1 kubeadm: simplify fuzzing of ClusterConfiguration
- Pin the ClusterConfiguration when fuzzing
the internal InitConfiguration that embeds it. Kubeadm includes
separate constructs for this embedding in the internal type
and this round trip is not viable.
- Remove the artificial calls to SetDefaults_ClusterConfiguration()
in v1beta{2|3}'s converters from public to internal InitConfiguration.
- Make sure the internal InitConfiguration.ClusterConfiguration is
defaulted in initconfiguration.go instead.
2021-04-29 03:34:03 +03:00
Lubomir I. Ivanov
81d5b18dfb kubeadm: remove deprecated hyperkube image support in v1beta3
The hyperkube image support was deprecated. Remove the field
ClusterConfiguration.UseHyperKubeImage from the new v1beta3 API.
2021-04-29 02:10:45 +03:00
maruiyan
8a2a304246 change marsheller to marchaler 2021-04-28 17:00:01 +08:00
wangyysde
d346f19308 Use kubeadmapiv1.SchemeGroupVersion.String() instead of kubeadm.k8s.io/v1beta3
Use kubeadmapiv1old instead of kubeadm.k8s.io/v1beta2

Signed-off-by: wangyysde <net_use@bzhy.com>
2021-04-26 18:12:50 +08:00
Kubernetes Prow Robot
89db31aade
Merge pull request #101129 from neolit123/1.22-kubeadm-v1beta3
kubeadm: add placeholder v1beta3; remove the deprecated v1beta1
2021-04-20 12:34:33 -07:00
Lubomir I. Ivanov
6b6ae146cd kubeadm: change API URL for "kubeadm config print"
There is a new API link for godoc. Also link to the anchor / list
of APIs instead of pinning to a specific version.
2021-04-20 03:47:27 +03:00
Lubomir I. Ivanov
4cba7dcc43 kubeadm: enable v1beta3 accross the code base
- scheme: switch to:
utilruntime.Must(scheme.SetVersionPriority(v1beta3.SchemeGroupVersion))
- change all imports in the code base from v1beta2 to v1beta3
- rename all import aliases for kubeadmapiv1beta2 to "kubeadmapiv".
this allows smaller diffs when changing the default public API.
2021-04-20 03:47:27 +03:00
Lubomir I. Ivanov
c2bddf3998 kubeadm: fix unit tests for v1beta1 removal 2021-04-20 03:47:27 +03:00
Lubomir I. Ivanov
02b455b565 kubeadm: add v1beta3 copied from v1beta2
Add a new versioned API v1beta3.
2021-04-20 03:47:27 +03:00
Hong Xu
fbdb065498 TestGetPatchSetsForPathMustBeDirectory: Ensure the error type is os.PathError
Ensure the tested error is an os.PathError instead of only non-nil.
2021-04-18 20:41:59 -07:00
Kubernetes Prow Robot
dd6ee99f62
Merge pull request #101110 from SataQiu/fix-kubeadm-20210414
kubeadm: fix inconsistent usage for --experimental-patches in join phases
2021-04-16 03:22:22 -07:00
pacoxu
9847579699 gcp/kubeadm: upgrade etcd to 3.4.13-3
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2021-04-15 11:19:41 +08:00
SataQiu
cf656d5cf7 kubeadm: enable '--experimental-patches' flag for 'kubeadm join phase control-plane-join all' command 2021-04-15 10:48:33 +08:00
Lubomir I. Ivanov
66f0ce244c kubeadm: remove the deprecated v1beta1 API 2021-04-15 00:12:41 +03:00
Niu Lechuan
520d49d2f9 kubeadm: Bump minimum supported versions and add etcd version for 1.22 and placeholder for 1.23
Signed-off-by: Niu Lechuan <lechuan.niu@daocloud.io>
2021-04-14 19:00:35 +08:00
Kubernetes Prow Robot
61641a0640
Merge pull request #100907 from SataQiu/kubeadm-20210408
kubeadm: add --validity-period flag for 'kubeadm kubeconfig user' command
2021-04-12 23:40:49 -07:00
Kubernetes Prow Robot
bc703278dd
Merge pull request #100350 from jr0d/jr/kubeadm-etcd-upgrade-with-metadata
kubeadm: support semver metadata imagetags for etcd during upgrades
2021-04-12 15:56:49 -07:00
Kubernetes Prow Robot
be7d3aeb97
Merge pull request #100935 from lojies/kubeadmcodecleanup
code cleanup for cmd/kubeadm
2021-04-12 13:18:15 -07:00
Kubernetes Prow Robot
7a3430edcd
Merge pull request #100536 from neolit123/1.21-remove-cgroup-driver-example-in-godoc
kubeadm: remove mentions of cgroup-driver from godocs
2021-04-11 19:41:59 -07:00
Kubernetes Prow Robot
cf2c817c5a
Merge pull request #100942 from wangyysde/remove-exclude-from-external-load-balancers
kubeadm:the node.kubernetes.io/exclude-from-external-load-balancers label removed on upgrade
2021-04-11 14:37:59 -07:00
Kubernetes Prow Robot
43af6783ae
Merge pull request #100865 from RA489/update_owner
kubeadm: Add RA489 as reviewer
2021-04-10 19:04:03 -07:00
wangyysde
c02e4b5229 remove LabelControlPlaneNodesWithExcludeFromLB function as the statement call it has be removed 2021-04-10 14:30:35 +08:00
SataQiu
dc154e412e kubeadm: add --validity-period flag for 'kubeadm kubeconfig user' command 2021-04-09 14:40:12 +08:00
wangyysde
2afdffb879 the node.kubernetes.io/exclude-from-external-load-balancers label on upgrade 2021-04-09 14:17:19 +08:00
Kubernetes Prow Robot
9ac9c29f36
Merge pull request #100422 from su225/27145-kubeadm-typo
kubeadm: fix typo in help text; ca.cert should be ca.crt
2021-04-08 22:08:57 -07:00
卢振兴10069964
a1452b9115 code cleanup for cmd/kubeadm 2021-04-09 09:44:06 +08:00
RA489
67d30f32f6 kubeadm: Add RA489 as reviewer 2021-04-06 21:45:39 +05:30
Lubomir I. Ivanov
80bca50feb kubeadm: remove mentions of cgroup-driver from godocs
The v1beta1/2 API doc.go files include an example
flag for the kubelet binary "cgroup-driver" under
"kubeletExtraArgs".

This flag is deprecated and should not be in the examples.
Add "v" instead which is one of the flags we know will
not be deprecated soon.
2021-03-24 18:14:35 +02:00
su225
eaa25983e1 fix typo - it should be ca.crt instead of ca.cert 2021-03-20 19:41:21 +05:30
Jared Rodriguez
c68db41a7a
address PR comments
- make convertImageTagMetadataToSemver private
- s/the\ the/the/
2021-03-18 11:07:33 -05:00
Jared Rodriguez
5f9a44e1e6
support semver_metadata imagetags 2021-03-17 14:55:09 -05:00
Antonio Ojea
dbc6226e7f kubeadm unit test initalize global variables 2021-03-13 10:59:07 +01:00
Lubomir I. Ivanov
3e95f9d491 kubeadm: add missing taint for upgrade health check
This is part of the "master" -> "control-plane" rename
that we missed. It's not critical for 1.21 as the
"control-plane" taint is still not added to CP nodes,
but it would be best to add the toleration preemptively
like the KEP planned.
2021-03-06 23:14:11 +02:00
Kubernetes Prow Robot
a6bfc7d7a9
Merge pull request #99646 from rajansandeep/remove-kube-dns
[kubeadm]: Remove the deprecated kube-dns as an option in kubeadm
2021-03-04 14:41:12 -08:00
Sandeep Rajan
62542bb1ec add validation to indicate kube-dns is no longer supported 2021-03-04 14:57:52 -05:00
Kubernetes Prow Robot
504b86ced7
Merge pull request #99471 from neolit123/1.21-default-systemd-cgroup-driver
kubeadm: set the kubelet cgroup driver to "systemd" during "init"
2021-03-04 11:00:38 -08:00
Sandeep Rajan
b8a1bd6a6c remove the deprecated kube-dns as an option in kubeadm 2021-03-04 12:12:54 -05:00
Kubernetes Prow Robot
15213128e1
Merge pull request #99687 from pacoxu/dual-stack/follow-up-1
cleanup: disable dual stack for some manifest UT
2021-03-04 00:29:23 -08:00
Kubernetes Prow Robot
0d8aae99f9
Merge pull request #98269 from neolit123/1.21-kubeadm-add-lb-label
kubeadm: exclude control plane nodes from external LBs
2021-03-04 00:27:59 -08:00
Kubernetes Prow Robot
b0ba6c0b76
Merge pull request #98984 from SataQiu/fix-kubeadm-20210211
kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false
2021-03-03 01:53:20 -08:00
pacoxu
496deb6df9 cleanup: disable dual stack for some manifest UT 2021-03-03 16:00:20 +08:00
Lubomir I. Ivanov
b6ff320507 kubeadm: set the kubelet cgroup driver to "systemd" during "init"
The kubeadm documentation instructs users to set the container
runtime driver to "systemd", since kubeadm manages a kubelet via
the systemd init system. The kubelet default however is "cgroupfs".
For new clusters set the driver to "systemd" unless the user
is explicit about it. The same defaulting would not happen
during "upgrade".
2021-03-02 18:39:39 +02:00
pacoxu
3c33ceab04 log a warning if ipv6 site-local addresses is using as it shouldn't be deprecated
Signed-off-by: pacoxu <paco.xu@daocloud.io>
Co-authored-by: Antonio Ojea <antonio.ojea.garcia@gmail.com>
Co-authored-by: Lubomir I. Ivanov <neolit123@gmail.com>
2021-03-02 21:51:28 +08:00
Kubernetes Prow Robot
33035a3fdf
Merge pull request #99586 from zgfh/update-kubeadm-upgrade-description
update kubeadm upgrade description
2021-03-01 18:19:41 -08:00
Alan Zhu
8ffdc674b2 update kubeadm upgrade description
Signed-off-by: Alan Zhu <zg.zhu@daocloud.io>
2021-03-01 20:42:57 +08:00
SataQiu
2ba178c92c kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false 2021-03-01 11:19:47 +08:00
Benjamin Elder
56e092e382 hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
Kubernetes Prow Robot
4880b996b5
Merge pull request #99433 from navist2020/fix/kubeadm/out_info
Replace yml with yaml
2021-02-28 09:50:39 -08:00
Kubernetes Prow Robot
1ddc4afcf8
Merge pull request #99294 from pacoxu/kubeadm/dual-stack
kubeadm: promote DualStack feature gate to Beta
2021-02-25 20:16:15 -08:00
Lubomir I. Ivanov
108d1dc56a kubeadm: pass pod-infra-container-image for all CRs
Pass the flag --pod-infra-container-image to the kubelet not only
for Docker but for all CRs.

This flag tells the kubelet to special case the image and not garbage
collect it.
2021-02-26 02:47:00 +02:00
navist2020
c5d8da019a Replace yml with yaml 2021-02-25 11:52:34 +08:00
xiaofei.sun
fd62f32125 Scheduler: remove pkg/apis/core/field_constants.go 2021-02-24 18:06:29 +08:00
Lubomir I. Ivanov
e8f2d888a3 kubeadm: include appovers under reviewers in OWNERS
Looks like there is a bit of an issue in the Bluderbuss (Prow plugin)
where it prefers to pick reviewers from a parent OWNERS files,
instead of using an approver from a current OWNERS file as
an additional reviewer.
2021-02-22 20:02:09 +02:00
pacoxu
829b0cde81 kubeadm: promote DualStack feature gate to Beta 2021-02-22 16:03:49 +08:00
Kubernetes Prow Robot
972ae2f2c2
Merge pull request #99187 from CaoDonghui123/fixKubeadm-1
Delete duplicate logs for kubeadm upgrade versions
2021-02-21 15:19:41 -08:00
pacoxu
2c89fa4a59 add hostname check in kubeadm join: warning log only
Co-authored-by: Lubomir I. Ivanov <neolit123@gmail.com>
2021-02-20 09:50:25 +08:00
caodonghui
f7469a0a31 Delete duplicate logs 2021-02-19 09:19:11 +08:00
Heng WU
ace6b47298
Update addons.go 2021-02-14 21:04:43 +08:00
Kubernetes Prow Robot
b2b8c1f18d
Merge pull request #98980 from syswu/missing_return_nil
catching errors for 'kubeadm join'
2021-02-11 21:32:47 -08:00
Heng WU
4b7f6d8750
Update joinconfiguration.go 2021-02-11 09:57:08 +08:00
Heng WU
0bb842637c
Update joinconfiguration.go 2021-02-11 09:08:11 +08:00
Kubernetes Prow Robot
fcb55645a9
Merge pull request #98547 from neolit123/1.21-update-kubeadm-owners
kubeadm: update OWNERS for 1.21
2021-02-09 00:45:16 -08:00
Kubernetes Prow Robot
2b7c61b1bb
Merge pull request #98205 from pacoxu/build/pauses
update pause image to 3.4.1 and also update the change log
2021-02-08 18:20:58 -08:00
Kubernetes Prow Robot
f266f60da9
Merge pull request #98839 from Mattias-/kubeadm-fix-config-print-placeholder
kubeadm: Fix placeholder in config print help text
2021-02-08 11:54:43 -08:00
Kubernetes Prow Robot
0867767d6e
Merge pull request #98882 from kvaps/flatten-adminconfig
kubeadm: flatten admin.conf for cluster-info generation
2021-02-08 09:26:28 -08:00
Andrei Kvapil
9de0b2bf46
kubeadm: flatten admin.conf for cluster-info 2021-02-08 17:22:01 +01:00
Mattias Appelgren
7e80d4d191 kubeadm: Fix placeholder in config print help text 2021-02-06 18:32:45 +01:00
hasheddan
8ae6a20485
kubeadm: drop explicit constant override in version test
The k8s release bucket constant is not longer overriden in network tests
because the fetcher is mocked rather than using httptest.NewServer. See
previous implementation in
https://github.com/kubernetes/kubernetes/pull/49119/files#diff-82f2b09991047d4a1884d53dedadd64a473d5c4dc75293514e71773ceedf08e2R128

Signed-off-by: hasheddan <georgedanielmangum@gmail.com>
2021-02-06 11:03:00 -06:00
hasheddan
1d164d0747
kubeadm: get k8s CI version markers from k8s infra bucket
Updates kubeadm version resolution to use kubernetes community infra
bucket to fetch appropriate k8s ci versions. The images are already
being pulled from the kubernetes community infra bucket meaning that a
mismatch can occur when the ci version is fetched from the google infra
bucket and the image is not yet present on k8s infra.

Follow-up to kubernetes/kubernetes#97087

Signed-off-by: hasheddan <georgedanielmangum@gmail.com>
2021-02-06 10:59:15 -06:00
pacoxu
f681edf58e kubeadm: improve error message about node subnet size validation
Co-authored-by: Antonio Ojea <antonio.ojea.garcia@gmail.com>
Co-authored-by: SataQiu <1527062125@qq.com>
Co-authored-by: driazati <david.riazati@gatech.edu>
Co-authored-by: Lubomir I. Ivanov <neolit123@gmail.com>
2021-02-05 23:29:26 +08:00
pacoxu
8946f26769 update pause to 3.4.1 for kubelet/kubeadm
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2021-02-05 21:33:01 +08:00
Sean McGinnis
874ceb0fdf
Improve wording in kubeadm upgrade plan
Originally raised as an issue with invalid versions to plan, but it has
been determined with air gapped environments and development versions it
is not possible to fully address that issue.

But one thing that was identified was that we can do a better job in how
we output the upgrade plan information. Kubeadm outputs the requested
version as "Latest stable version", though that may not actually be the
case. For this instance, we want to change this to "Target version" to
be a little more accurate.

Then in the component upgrade table that is emitted, the last column of
AVAILABLE isn't quite right either. Also changing this to TARGET to
reflect that this is the version we are targetting to upgrade to,
regardless of its availability.

There could be some improvements in checking available versions,
particularly in air gapped environments, to make sure we actually have
access to the requested version. But this at least clarifies some of the
output a bit.

Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2021-02-03 09:44:15 -06:00
Kubernetes Prow Robot
645c40fcf6
Merge pull request #98638 from neolit123/1.21-optimize-unit-tests-certs
kubeadm: introduce static defaults for unit tests
2021-02-02 03:20:29 -08:00
Lubomir I. Ivanov
f27555b890 kubeadm: optimize tests in pki_helpers_tests.go
Reduce the number of calls to algorithm.GenerateKey()
but try not to reduce coverage.
2021-02-02 04:25:06 +02:00
Lubomir I. Ivanov
afea70f9ae kubeadm: update OWNERS for 1.21 2021-02-01 20:14:00 +02:00
Lubomir I. Ivanov
6578e0f6c5 kubeadm: introduce static defaults for unit tests
Add DefaultedStaticInitConfiguration() which can be
used instead of DefaultedInitConfiguration() during unit tests.

The later can be slow since it performs dynamic defaulting.
2021-02-01 19:43:57 +02:00
Jordan Liggitt
8761972f68 Use private key fixtures for kubeadm unit tests 2021-02-01 10:06:10 -05:00
Lubomir I. Ivanov
01ea75e36d kubeadm: exclude control plane nodes from external LBs
Apply the label:
"node.kubernetes.io/exclude-from-external-load-balancers"

To control plane nodes to preserve backwards compatibility
with the legacy mode where "master" nodes were excluded from
LBs.
2021-01-26 20:42:58 +02:00
chymy
081d78f635 kubeadm: APIEndpointFromString verifies ip
Signed-off-by: chymy <chang.min1@zte.com.cn>
2021-01-19 18:36:55 +08:00
Kubernetes Prow Robot
7791bbe978
Merge pull request #98008 from RA489/min_support_ver
kubeadm: Update versions for 1.21
2021-01-15 14:50:04 -08:00
Kubernetes Prow Robot
e1c1fd9edf
Merge pull request #97880 from justinsb/spelling
Fix spelling typos: scheduable -> schedulable
2021-01-15 03:43:51 -08:00
RA489
fe91902d08 kubeadm: Update versions for 1.21 2021-01-15 16:36:34 +05:30
Kubernetes Prow Robot
4a595bd373
Merge pull request #97372 from ihgann/master
Fix bug in Member Exists Join for Kubeadm etcd join
2021-01-14 12:45:30 -08:00
Kubernetes Prow Robot
d067c2e95d
Merge pull request #97087 from SataQiu/change-ci-image-repo
kubeadm: change the default image repository for CI images from gcr.io/kubernetes-ci-images to gcr.io/k8s-staging-ci-images
2021-01-14 08:55:04 -08:00
RA489
546b0a704d kubeadm: Update versions for 1.21 2021-01-13 18:03:34 +05:30
Lubomir I. Ivanov
3b5e698cb2 kubeadm: trim leading "v" when running CoreDNS migration preflight
During upgrade the coredns migration library seems to require
that the input version doesn't have the "v" prefix".

Fixes a bug where the user cannot run commands such as
"kubeadm upgrade plan" if they have `v1.8.0` installed.

Assuming this is caused by the fact that previously the image didn't
have a "v" prefix.
2021-01-11 18:21:19 +02:00
Justin SB
8797738c02 Fix spelling typos: scheduable -> schedulable
Bulk fix of a common typo.
2021-01-09 12:59:33 -05:00
he.qingguo
6f1c8de85c Fix typo of BoostrapToken in kubeadmin-type.go]
Signed-off-by: he.qingguo <he.qingguo@zte.com.cn>
2021-01-09 16:16:29 +08:00
pacoxu
bd3a74fece use default unkown sock for kubeadm cmd if cri detect is not needed
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2021-01-05 22:30:42 +08:00
Kubernetes Prow Robot
17bb2fc050
Merge pull request #97706 from knight42/refactor/kubeadm-certs-to-stable
refactor(kubeadm): remove the "alpha certs" command
2021-01-05 04:50:10 -08:00
Kubernetes Prow Robot
42fe1d3405
Merge pull request #97620 from rajansandeep/patch-1
[kubeadm]: CoreDNS preflight: Parse correct version syntax
2021-01-05 04:49:58 -08:00
Kubernetes Prow Robot
242e07dc3c
Merge pull request #97290 from neolit123/1.21-kubeadm-improve-token-error-messages
kubeadm: improve the error messages when validating discovery CA hash
2021-01-04 22:55:59 -08:00
Jian Zeng
394fb5617f refactor(kubeadm): remove the "alpha certs" command 2021-01-05 11:18:36 +08:00
Sandeep Rajan
a9ba7b06f0 CoreDNS preflight: Remove "v" from version
Corrects the error: "CoreDNS will not be upgraded: cannot migrate up to 'v1.8.0' from '1.7.0'"
2021-01-04 20:26:03 -05:00
he.qingguo
5faa19ede8 Fix Spelling error about [workflow] for kubeadm
Signed-off-by: he.qingguo <he.qingguo@zte.com.cn>
2020-12-31 16:00:53 +08:00
Jian Zeng
57d563403b refactor(kubeadm): remove deprecated command "alpha selfhosting pivot" 2020-12-31 13:47:15 +08:00
Jian Zeng
5ae687ecc6 feat(kubeadm): graduate command "kubeconfig user" 2020-12-30 10:24:23 +08:00
Kubernetes Prow Robot
80be1d6c72
Merge pull request #96429 from rajansandeep/coredns180-kubeadm
[kubeadm]: Bump CoreDNS version to 1.8.0
2020-12-29 13:19:48 -08:00
Kubernetes Prow Robot
88a05df5ff
Merge pull request #97266 from robbiemcmichael/kubeadm-validate-cert-chains
kubeadm: support certificate chain validation
2020-12-24 11:32:26 -08:00
Robbie McMichael
9022f24aed kubeadm: tests for certificate chain validation 2020-12-24 23:49:04 +08:00
Robbie McMichael
de8821acd3 kubeadm: support certificate chain validation
Fixes an issue where some kubeadm phases fail if a certificate file
contains a certificate chain with one or more intermediate CA
certificates. The validation algorithm has been changed from requiring
that a certificate was signed directly by the root CA to requiring that
there is a valid certificate chain back to the root CA.
2020-12-24 23:41:10 +08:00
Kubernetes Prow Robot
9858bc2925
Merge pull request #97452 from 249043822/br-cleanup-kubctl111
remove unused funcs for kubeadm tests
2020-12-23 17:04:26 -08:00
Kubernetes Prow Robot
6d76ece4d6
Merge pull request #97413 from SataQiu/fix-kubeadm-join-command-20201221
kubeadm: clean redundant whitespace for join command template
2020-12-23 10:18:26 -08:00
KeZhang
0abed09a6a remove unused funcs for kubeadm tests 2020-12-22 19:37:30 +08:00
Abel Barrera Duran
52979da973 32bit > 4GB integer overflow edge case fix 2020-12-21 13:12:42 -05:00
SataQiu
3a2ffbf70a kubeadm: clean redundant whitespace for join command template 2020-12-21 11:27:22 +08:00
Ian Gann
dc70c79a00 Fix bug in Member Exists Join for Kubeadm etcd join
In kubeadm etcd join there is a a bug that exists where,
if a peer already exists in etcd, it attempts to mitigate
by continuing and generating the etcd manifest file. However,
this existing "member name" may actually be unset, causing
subsequent etcd consistency checks to fail.

This change checks if the member name is empty - if it is,
it sets the member name to the node name, and resumes.
2020-12-17 11:54:02 -08:00
Lubomir I. Ivanov
429b7e2272 kubeadm: improve the error messages when validating discovery CA hash
The error messages when the user feeds an invalid discovery token CA
hash are vague. Make sure to:
- Print the list of supported hash formats (currently only "sha256").
- Wrap the error from pubKeyPins.Allow() with a descriptive message.
2020-12-14 20:13:36 +02:00
Kubernetes Prow Robot
6fc51bc528
Merge pull request #97244 from pacoxu/fix/97234
etcd version for 1.19 is 3.4.13 for cve fixes
2020-12-14 02:17:29 -08:00
pacoxu
920dc25531 etcd version for 1.19 is 3.4.13 for cve fixes
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2020-12-11 23:37:38 +08:00
Kubernetes Prow Robot
03aba080a6
Merge pull request #96860 from pacoxu/fix/96833
fix kube-dns federations check in kubeadm upgrade dns check preflight
2020-12-08 20:04:07 -08:00
SataQiu
fa04c55ee6 kubeadm: change the default image repository for CI images from gcr.io/kubernetes-ci-images to gcr.io/k8s-staging-ci-images
Signed-off-by: SataQiu <1527062125@qq.com>
2020-12-06 14:59:12 +08:00
Sandeep Rajan
2eabd9d832 fix migration logic
modify addon test to cover the entire migration logic
2020-12-02 12:53:07 -05:00
Paco Xu
4525f3fef8 coredns dep.Severity is newdefault, not newDefault
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2020-11-27 18:17:02 +08:00
pacoxu
05f9e500ad fix kubeadm upgrade dns check preflight
Signed-off-by: pacoxu <paco.xu@daocloud.io>
2020-11-25 21:07:25 +08:00
Sandeep Rajan
40862c3b60 bump coredns to 1.8.0 2020-11-16 15:22:05 -05:00
Lubomir I. Ivanov
fb7ddf88e9 kubeadm: mark the "master" label/taint as deprecated
- Mark the "node-role.kubernetes.io/master" key for labels
and taints as deprecated.
- During "kubeadm init/join" apply the label
"node-role.kubernetes.io/control-plane" to new control-plane nodes,
next to the existing "node-role.kubernetes.io/master" label.
- During "kubeadm upgrade apply", find all Nodes with the "master"
label and also apply the "control-plane" label to them
(if they don't have it).
- During upgrade health-checks collect Nodes labeled both "master"
and "control-plane".
- Rename the constants.ControlPlane{Taint|Toleraton} to
constants.OldControlPlane{Taint|Toleraton} to manage the transition.
- Mark constants.OldControlPlane{{Taint|Toleraton} as deprecated.
- Use constants.OldControlPlane{{Taint|Toleraton} instead of
constants.ControlPlane{Taint|Toleraton} everywhere.
- Introduce constants.ControlPlane{Taint|Toleraton}.
- Add constants.ControlPlaneToleraton to the kube-dns / CoreDNS
Deployments to make them anticipate the introduction
of the "node-role.kubernetes.io/control-plane:NoSchedule"
taint (constants.ControlPlaneTaint) on kubeadm control-plane Nodes.
2020-11-10 22:10:13 +02:00
SataQiu
50d0a40155 kubeadm: fix the lint failure where return value is not checked
Signed-off-by: SataQiu <1527062125@qq.com>
2020-11-06 20:53:58 +08:00
Kubernetes Prow Robot
acc3910964
Merge pull request #95991 from serathius/datapolicy-kubeadm
Add datapolicy tags to cmd/kubeadm directory
2020-11-03 22:50:17 -08:00
Marek Siarkowicz
8644f3ff83 Add datapolicy tags to cmd/kubeadm directory 2020-10-30 18:32:17 +01:00
Shihang Zhang
ff641f6eb2 mv TokenRequest and TokenRequestProjection to GA 2020-10-29 20:47:01 -07:00
Kubernetes Prow Robot
254f3e26ab
Merge pull request #95786 from Sh4d1/add_missing_kubeadm_patch
fix: add missing patch flag for kubeadm init phase control-plane
2020-10-23 02:27:45 -07:00
Antonio Ojea
4e14d1b9a3 kubeadm: validate node-cidr-mask are correct 2020-10-22 17:31:10 +02:00
Antonio Ojea
7fc6b4157b kubeadm validate maximum service subnet size
Validate that the maximum service subnet size doesn't exceed the
limits.

Co-authored-by: Arvinderpal Wander <awander@gmail.com>
2020-10-22 17:30:59 +02:00
Antonio Ojea
8b52995d32 kubeadm: validate podSubnet against node-cidr-mask
the controller manager should validate the podSubnet against the node-mask
because if they are incorrect can cause the controller-manager to fail.

We don't need to calculate the node-cidr-masks, because those should
be provided by the user, if they are wrong we fail in validation.
2020-10-22 16:24:13 +02:00
Patrik Cyvoct
5fc4b4ea8f
fix: add missing patch flag for kubeadm init phase control-plane
Signed-off-by: Patrik Cyvoct <patrik@ptrk.io>
2020-10-22 10:46:50 +02:00
Lubomir I. Ivanov
bae6b93d5c kubeadm: add some output to the generate-csr command
Currently the "generate-csr" command does not have any output.
Pass an io.Writer (bound to os.Stdout from /cmd) to the functions
responsible for generating the kubeconfig / certs keys and CSRs.

If nil is passed these functions don't output anything.
2020-10-12 19:05:45 +03:00
SataQiu
646f4e2b62 make new command functions to keep private when they are not required to be public 2020-10-10 12:03:02 +08:00
James Sturtevant
78ca71857b
Update Windows Pause version to 1.4.0 2020-10-08 15:39:31 -07:00
Kubernetes Prow Robot
902ed94bba
Merge pull request #95134 from zgfh/add_note_for_kubeadm_cert_renew
kubeadm: add note for kubeadm cert renew
2020-09-29 06:27:26 -07:00
Kubernetes Prow Robot
604569482f
Merge pull request #94504 from neolit123/1.20-warning-cert-bounds-client-side
kubeadm: print warnings on invalid cert period instead of erroring out
2020-09-29 02:49:25 -07:00
Alan Zhu
b9067e5a0c add note for kubeadm cert renew 2020-09-29 09:05:40 +08:00
Lubomir I. Ivanov
477c41f36d kubeadm: deprecate self-hosting support
Deprecate the experimental command "alpha self-hosting" and its
sub-command "pivot" that can be used to create a self-hosting
control-plane from static Pods.
2020-09-28 22:24:24 +03:00
Kubernetes Prow Robot
db9f1e91d9
Merge pull request #94988 from neolit123/1.20-tollerate-missing-ca-key-on-join
kubeadm: warn but do not error out on missing CA keys on CP join
2020-09-28 06:36:48 -07:00
Kubernetes Prow Robot
770eb2c4a0
Merge pull request #94871 from neolit123/1.20-kubeadm-remove-experimental-kustomize
kubeadm: remove the --experimental-kustomize feature
2020-09-24 08:16:06 -07:00
Lubomir I. Ivanov
7c783fa374 kubeadm: make the CP join handling of kubeconfig similar to "init"
The kubeconfig phase of "kubeadm init" detects external CA mode
and skips the generation of kubeconfig files. The kubeconfig
handling during control-plane join executes
CreateJoinControlPlaneKubeConfigFiles() which requires the presence
of ca.key when preparing the spec of a kubeconfig file and prevents
usage of external CA mode.

Modify CreateJoinControlPlaneKubeConfigFiles() to skip generating
the kubeconfig files if external CA mode is detected.
2020-09-24 18:12:00 +03:00
Lubomir I. Ivanov
05b77fe99f kubeadm: warn but do not error out on missing CA keys on CP join
- Modify validateCACertAndKey() to print warnings for missing keys
instead of erroring out.
- Update unit tests.

This allows doing a CP node join in a case where the user has:
- copied shared certificates to the new CP node, but not copied
ca.key files, treating the cluster CAs as external
- signed other required certificates in advance
2020-09-24 18:11:59 +03:00
Kubernetes Prow Robot
3aa546923c
Merge pull request #94586 from BedivereZero/master
Stop container before remove for Docker
2020-09-23 10:14:25 -07:00
Kubernetes Prow Robot
7a2812ca60
Merge pull request #94938 from yagonobre/certs-graduate
Graduate kubeadm alpha certs command
2020-09-23 08:36:10 -07:00
Yago Nobre
2f19cf7cbc Graduate kubeadm alpha certs command 2020-09-23 10:13:45 -03:00
Kubernetes Prow Robot
86a9087896
Merge pull request #89962 from wangrzneu/master
make kubectl/kubeadm completion script support busybox
2020-09-22 12:21:23 -07:00
knight42
36eb74a803
refactor(kubeadm): make alpha kubeconfig user command accpet --config
Signed-off-by: knight42 <anonymousknight96@gmail.com>
2020-09-22 23:10:41 +08:00
Kubernetes Prow Robot
4304f4bdbd
Merge pull request #94869 from neolit123/1.20-remove-upgrade-node-kubelet-flag
kubeadm: remove the --kubelet-version flag for "upgrade node"
2020-09-21 12:55:52 -07:00
Kubernetes Prow Robot
f682c4f142
Merge pull request #94816 from neolit123/1.20-relax-kubeconfig-server-validation
kubeadm: relax the validation of kubeconfig server URLs
2020-09-21 10:04:33 -07:00
fabriziopandini
66b8847dbf Remove kubeadm audit package 2020-09-19 17:20:39 +02:00
Lubomir I. Ivanov
8ece27bf4b kubeadm: remove the --experimental-kustomize feature
The feature was replaced by --experimental-patches and deprecated in
1.19.
2020-09-18 03:49:53 +03:00
Lubomir I. Ivanov
71856675a4 kubeadm: remove the --kubelet-version flag for "upgrade node"
The flag was deprecated as it is problematic since it allows
overrides of the kubelet configuration that is downloaded
from the cluster during upgrade.

Kubeadm node upgrades already download the KubeletConfiguration
and store it in the internal ClusterConfiguration type. It is then
only a matter of writing that KubeletConfiguration to disk.
2020-09-18 01:03:38 +03:00
Kubernetes Prow Robot
218a2b078b
Merge pull request #94765 from zhanw15/patch-1
kubeadm init phase upload-certs: add flag --kubeconfig
2020-09-16 19:20:44 -07:00
Kubernetes Prow Robot
3ba141173c
Merge pull request #94668 from neolit123/1.20-kubeadm-remove-dkc
kubeadm: remove the "alpha kubelet config enable-dynamic" command
2020-09-16 14:05:21 -07:00
Lubomir I. Ivanov
edaef35eac kubeadm: relax the validation of kubeconfig server URLs
For external CA users that have prepared the kubeconfig files
for components, they might wish to provide a custom API server URL.
When performing validation on these kubeconfig files, instead of
erroring out on such custom URLs, show a klog Warning.

This allows flexibility around topology setup, where users
wish to make the kubeconfigs point to the ControlPlaneEndpoint instead
of the LocalAPIEndpoint.

Fix validation in ValidateKubeconfigsForExternalCA expecting
all kubeconfig files to use the CPE. The kube-scheduler and
kube-controller-manager now use LAE.
2020-09-16 01:52:09 +03:00
Kubernetes Prow Robot
5dd2676bf6
Merge pull request #94555 from SataQiu/fix-crisocket-warning-20200905
Fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR
2020-09-14 09:41:12 -07:00
Kubernetes Prow Robot
7ffc46924f
Merge pull request #94102 from neolit123/1.19-fix-etcd-700-perms
kubeadm: adjust the logic around etcd data directory creation
2020-09-14 09:40:59 -07:00
zhanwang
ae03350e30
kubeadm init phase upload-certs: add flag --kubeconfig 2020-09-14 17:48:20 +08:00
Michaël Lévesque-Dion
fbd62d55af avoid logging token in RunDeleteTokens 2020-09-11 13:28:52 -04:00
Lubomir I. Ivanov
daef96c3f2 kubeadm: remove stray "alpha phase" command
This command had a TODO to be removed once kubeadm init phases are
added. Remove the command as init phases are in place already.
2020-09-11 03:40:11 +03:00
Lubomir I. Ivanov
a5a29c54cc kubeadm: remove the "alpha kubelet config enable-dynamic" command
The command was deprecated in 1.19 and can be removed in 1.20.
2020-09-11 03:40:11 +03:00
SataQiu
c318973cec fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR 2020-09-10 14:05:36 +08:00
Akhilesh2412
1a0f69bca3 kubeadm: Update versions for 1.20
This PR specifies minimum control plane version,
kubelet version and current K8s version for v1.20.

Signed-off-by: Kommireddy Akhilesh <akhileshkommireddy2412@gmail.com>
2020-09-10 02:51:13 +05:30
Lubomir I. Ivanov
b5b9698fbf kubeadm: print warnings on invalid cert period instead of erroring out
Client side period validation of certificates should not be
fatal, as local clock skews are not so uncommon. The validation
should be left to the running servers.

- Remove this validation from TryLoadCertFromDisk().
- Add a new function ValidateCertPeriod(), that can be used for this
purpose on demand.
- In phases/certs add a new function CheckCertificatePeriodValidity()
that will print warnings if a certificate does not pass period
validation, and caches certificates that were already checked.
- Use the function in a number of places where certificates
are loaded from disk.
2020-09-09 20:53:13 +03:00
BedivereZero
437c166199 Stop container before remove for Docker 2020-09-08 15:42:03 +08:00
Jordan Liggitt
c0ba2364b5 Run slow kubeadm upgrade tests in parallel 2020-09-04 13:36:45 -04:00
Jordan Liggitt
24481db023 Ensure kubeadm tests have unique names 2020-09-04 13:36:29 -04:00
Jordan Liggitt
7e01e38334 Avoid mutating global variables in kubeadm certs phases 2020-09-04 13:36:10 -04:00
Kubernetes Prow Robot
3cdfdfccc9
Merge pull request #94506 from neolit123/1.20-coredns-remove-supported-version-check
kubeadm: remove the CoreDNS check for supported image digests
2020-09-04 07:37:41 -07:00
Kubernetes Prow Robot
0edbf2554a
Merge pull request #94479 from knight42/feat/kubeadm-etcd-pod-resource-requests
kubeadm: apply resource requests in the etcd pod spec
2020-09-04 06:25:41 -07:00
knight42
2ebd293780
feat(kubeadm): specify resource requests in etcd pod spec
Signed-off-by: knight42 <anonymousknight96@gmail.com>
2020-09-04 11:54:21 +08:00
Lubomir I. Ivanov
4bb75a462f kubeadm: remove the CoreDNS check for supported image digests
The isCoreDNSVersionSupported() check assumes that
there is a running kubelet, that manages the CoreDNS containers.

If the containers are being created it is not possible to fetch
their image digest. To workaround that, a poll can be used in
isCoreDNSVersionSupported() and wait for the CoreDNS Pods
are expected to be running. Depending on timing and CNI
yet to be installed this can cause problems related to
addon idempotency of "kubeadm init", because if the CoreDNS
Pods are waiting for another step they will never get running.

Remove the function isCoreDNSVersionSupported() and assume that
the version is always supported. Rely on the Corefile migration
library to error out if it must.
2020-09-04 05:27:04 +03:00
Kubernetes Prow Robot
be1d43a097
Merge pull request #93992 from prabhu43/kubeadm-kubeconfig-clustername
Make clustername configurable in generation of kubeconfig using kubeadm command
2020-09-03 11:13:41 -07:00
Lubomir I. Ivanov
ebf163684a kubeadm: adjust the logic around etcd data directory creation
- Ensure the directory is created with 0700 via a new function
called CreateDataDirectory().
- Call this function in the init phases instead of the manual call
to MkdirAll.
- Call this function when joining control-plane nodes with local etcd.

If the directory creation is left to the kubelet via the
static Pod hostPath mounts, it will end up with 0755
which is not desired.
2020-09-03 18:38:54 +03:00
Kubernetes Prow Robot
c19e050aee
Merge pull request #94299 from zouyee/pending
fix kubeadm update coredns with skip pending pod
2020-09-03 08:17:54 -07:00
Kubernetes Prow Robot
92ba3eb793
Merge pull request #93275 from xlgao-zju/check-mem
kubeadm: Add a preflight check that the control-plane node has at least 1700MB of RAM
2020-09-03 08:17:40 -07:00
Kubernetes Prow Robot
8e29d9563d
Merge pull request #94385 from loopever/fix-typo
fix typos in cmd/kubeadm
2020-09-03 03:41:55 -07:00
zounengren
fc0bda5a3c fix kubeadm update coredns with skip pending pod 2020-09-03 10:42:59 +08:00
Kubernetes Prow Robot
0b92e8b16d
Merge pull request #94421 from rosti/kubeadm-fix-upgrade-plan
kubeadm: Fix `upgrade plan` for air-gapped setups
2020-09-02 18:21:54 -07:00
Kubernetes Prow Robot
2c12a81cb7
Merge pull request #94398 from neolit123/1.20-pin-control-plane-to-local-endpoint
kubeadm: make the scheduler and KCM connect to the local API endpoint
2020-09-02 12:09:19 -07:00
Rostislav M. Georgiev
6e2a70eac7 kubeadm: Fix upgrade plan for air-gapped setups
A bug was discovered in the `enforceRequirements` func for `upgrade plan`.
If a command line argument that specifies the target Kubernetes version is
supplied, the returned `ClusterConfiguration` by `enforceRequirements` will
have its `KubernetesVersion` field set to the new version.
If no version was specified, the returned `KubernetesVersion` points to the
currently installed one.

This remained undetected for a couple of reasons
- It's only `upgrade plan` that allows for the version command line argument to
  be optional (in `upgrade plan` it's mandatory)
- Prior to 1.19, the implementation of `upgrade plan` did not make use of the
  `KubernetesVersion` returned by `enforceRequirements`.

`upgrade plan` supports this optional command line argument to enable
air-gapped setups (as not specifying a version on the command line will end up
looking for the latest version over the Interned).

Hence, the only option is to make `enforceRequirements` consistent in the
`upgrade plan` case and always return the currently installed version in the
`KubernetesVersion` field.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2020-09-02 12:52:02 +03:00
Kubernetes Prow Robot
27df218c72
Merge pull request #93702 from thtanaka/feature/fix-kubeadm-reset
kubeadm: reset don't unmount /var/lib/kubelet if it is mounted
2020-09-01 23:13:08 -07:00
Kubernetes Prow Robot
d5e2db896e
Merge pull request #94395 from rosti/kubeadm-ensure-etcd-upgrades
kubeadm: Ensure etcd manifests are regenerated upon upgrade
2020-09-01 18:44:38 -07:00
Kubernetes Prow Robot
b49724d5fc
Merge pull request #94287 from jingyih/update_etcd_server_3p4p13
Update default etcd server to 3.4.13
2020-09-01 15:35:20 -07:00
Lubomir I. Ivanov
d9441906c4 kubeadm: make the scheduler and KCM connect to local endpoint
Pinning the kube-controller-manager and kube-scheduler kubeconfig files
to point to the control-plane-endpoint can be problematic during
immutable upgrades if one of these components ends up contacting an N-1
kube-apiserver:
https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager
For example, the components can send a request for a non-existing API
version.

Instead of using the CPE for these components, use the LocalAPIEndpoint.
This guarantees that the components would talk to the local
kube-apiserver, which should be the same version, unless the user
explicitly patched manifests.
2020-09-01 19:38:28 +03:00
Rostislav M. Georgiev
3bef5d2e0b kubeadm: Ensure etcd manifests are regenerated upon upgrade
A check that verifies that kubeadm does not "upgrade" to an older release was
overly optimized by skipping upgrade if the new version is the same as the old
one. This somewhat makes sense, but that way changes in any of the etcd fields
in the ClusterConfiguration won't be applied if the etcd version is not
changed.

Hence, this simple change ensures that the upgrade is done even when no version
change takes place.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2020-09-01 15:47:33 +03:00
loopever
847e59186a fix typos in cmd/kubeadm 2020-09-01 10:09:45 +08:00
Hu Shuai
2be66feb49 Improve the prompt message when kubeadm init is successful
Signed-off-by: Hu Shuai <hus.fnst@cn.fujitsu.com>
2020-08-31 15:27:20 +08:00
jingyih
c96b93fbd4 Update default etcd server to 3.4.13 2020-08-28 21:19:24 +08:00
Kubernetes Prow Robot
a39f9dfde7
Merge pull request #93626 from vikkyomkar/issue-2237
[Cleanup] Removes usage of the k8s-master label (version marker)
2020-08-27 11:52:09 -07:00
Kubernetes Prow Robot
8297d5f195
Merge pull request #93483 from ZhiFeng1993/remove-false-positive-warning
Remove false positive warning in kubeadm cmd
2020-08-27 11:51:54 -07:00
Kubernetes Prow Robot
f542e86779
Merge pull request #93834 from loopever/master
fix typos in cmd/kubeadm and cmd/kube-scheduler
2020-08-27 10:38:06 -07:00
Kubernetes Prow Robot
be69ccc287
Merge pull request #94016 from mrueg/oyaml
kubeadm: Separate argument key/value in log msg
2020-08-27 04:49:16 -07:00
Prabhu Jayakumar
bdd0ccaddb
Allow to configure clustername in creation of kubeconfig using kubeadm command
Signed-off-by: Prabhu Jayakumar <j.prabhu91@gmail.com>
2020-08-20 22:59:23 +05:30
Manuel Rüger
f289a3d6a7 kubeadm: Separate argument key/value in log msg
Users might be more used to `-o yaml` instead of -oyaml and get
confused event if the command works.

Signed-off-by: Manuel Rüger <manuel@rueg.eu>
2020-08-14 23:49:07 +02:00
RobertKielty
737548a6b2 go fmt fix 2020-08-13 06:03:58 +01:00
RobertKielty
1eb1690a92 names unnamed testcases, adds name to t.Errorf msg 2020-08-12 00:22:38 +01:00
loopever
b645f3038e Fix some typo 2020-08-11 08:35:31 +08:00
ZhiFeng1993
b90228f52f Remove false positive warning in kubeadm cmd 2020-08-06 12:45:55 -07:00
Thomas Tanaka
2e2d0845cd kubeadm: reset don't unmount /var/lib/kubelet if it is mounted
Previous PR that fixes this
https://github.com/kubernetes/kubernetes/pull/71663

Signed-off-by: Thomas Tanaka <thomas.tanaka@gmail.com>
2020-08-05 13:15:56 -07:00
vikkyomkar
f505f10e94 removed k8s-master label 2020-08-01 15:52:18 +05:30
Xianglin Gao
c6975a7750 add test case for kubeadm memory check
Signed-off-by: Xianglin Gao <xianglin.gxl@alibaba-inc.com>
2020-07-24 10:57:22 +08:00
Xianglin Gao
e5bb66f899 Add a preflight check that the control-plane node has at least 2GB RAM
Signed-off-by: Xianglin Gao <xianglin.gxl@alibaba-inc.com>
2020-07-20 23:58:31 +08:00
Kubernetes Prow Robot
f9ad7db9a6
Merge pull request #92349 from jingyih/update_etcd_server_3p4p9
Update default etcd server to 3.4.9
2020-07-17 07:53:01 -07:00
Kubernetes Prow Robot
19f0a54d6b
Merge pull request #92183 from wallrj/2163-csr-only-external-ca-mode-2
kubeadm alpha certs generate-csr
2020-07-13 07:18:32 -07:00
Kubernetes Prow Robot
f41a20444a
Merge pull request #92881 from neolit123/1.19-deprecate-kubeadm-dkc
kubeadm: deprecate "kubeadm alpha kubelet config enable-dynamic"
2020-07-12 06:58:29 -07:00
Kubernetes Prow Robot
3727879ea5
Merge pull request #92651 from rajansandeep/kubeadm-coredns1.7.0
[Kubeadm]:Bump CoreDNS to v1.7.0
2020-07-10 15:40:51 -07:00
Kubernetes Prow Robot
82baa26905
Merge pull request #92753 from QianChenglong/fix/kubeadm-altnames
kubeadm: remove duplicate DNS names and IP addresses from generated certificates
2020-07-09 09:10:20 -07:00
Sandeep Rajan
04038fc791 update coredns version to 1.7.0 2020-07-09 11:01:45 -04:00
Richard Wall
81554ffdc0 kubeadm alpha certs generate-csr
* Creates private keys and CSR files for all the control-plane certificates
* Helps with External CA mode of kubeadm

Signed-off-by: Richard Wall <richard.wall@jetstack.io>
2020-07-09 06:16:22 +01:00
Richard Wall
57712220a1 Add new helper functions for creating keys, kubeconfig and CSR files
Signed-off-by: Richard Wall <richard.wall@jetstack.io>
2020-07-09 06:16:22 +01:00
Richard Wall
21153e7b6a Deprecate --csr-only and --csr-dir flags
Signed-off-by: Richard Wall <richard.wall@jetstack.io>
2020-07-08 22:14:00 +01:00
jingyih
e9bf1c3c90 Update default etcd server to 3.4.9 2020-07-08 14:16:40 +08:00
Kubernetes Prow Robot
bf94f27e76
Merge pull request #92716 from rajansandeep/removefederation
[kubeadm]: Remove kube-dns translation for federation
2020-07-07 19:55:06 -07:00
Lubomir I. Ivanov
5777e8740e kubeadm: deprecate "kubeadm alpha kubelet config enable-dynamic"
Deprecate the command and recommend users to follow the
official guide at the k8s.io website instead.
2020-07-07 22:15:43 +03:00
Rostislav M. Georgiev
d023f3d25d kubeadm: Cleanup and refactor the LoadJoinConfigurationFromFile test
Back in the v1alpha2 days the fuzzer test needed to be disabled. To ensure that
there were no config breaks and everything worked correctly extensive replacement
tests were put in place that functioned as unit tests for the kubeadm config utils
as well.

The fuzzer test has been reenabled for a long time now and there's no need for
these replacements. Hence, over time most of these were disabled, deleted and
refactored. The last remnants are part of the LoadJoinConfigurationFromFile test.

The test data for those old tests remains largely unused today, but it still receives
updates as it contains kubelet's and kube-proxy's component configs. Updates to these
configs are usually done because the maintainers of those need to add a new field.

Hence, to cleanup old code and reduce maintenance burden, the last test that depends
on this test data is finally refactored and cleaned up to represent a simple unit test
of `LoadJoinConfigurationFromFile`.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2020-07-03 20:00:49 +03:00
Rostislav M. Georgiev
930ca6ceb2 kubeadm: Refactor component config tests
Over the course of recent development of the `componentconfigs` package,
it became evident that most of the tests in this package cannot be implemented without
using a component config. As all of the currently supported component configs are
external to the kubeadm project (kubelet and kube-proxy), practically all of the tests
in this package are now dependent on external code.
This is not desirable, because other component's configs may change frequently and
without much of a notice. In particular many configs add new fields without bumping their
versions. In addition to that, some components may be deprecated in the future and many
tests may use their configs as a place holder of a component config just to test some
common functionality.
To top that, there are many tests that test the same common functionality several times
(for each different component config).

Thus a kubeadm managed replacement and a fake test environment are introduced.
The new test environment uses kubeadm's very own `ClusterConfiguration`.
ClusterConfiguration is normally not managed by the `componentconfigs` package.
It's only used, because of the following:
- It's a versioned API that is under the control of kubeadm maintainers. This enables us to test
  the componentconfigs package more thoroughly without having to have full and always up to date
  knowledge about the config of another component.
- Other components often introduce new fields in their configs without bumping up the config version.
  This, often times, requires that the PR that introduces such new fields to touch kubeadm test code.
  Doing so, requires more work on the part of developers and reviewers. When kubeadm moves out of k/k
  this would allow for more sporadic breaks in kubeadm tests as PRs that merge in k/k and introduce
  new fields won't be able to fix the tests in kubeadm.
- If we implement tests for all common functionality using the config of another component and it gets
  deprecated and/or we stop supporting it in production, we'll have to focus on a massive test refactoring
  or just continue importing this config just for test use.

Thus, to reduce maintenance costs without sacrificing test coverage, we introduce this mini-framework
and set of tests here which replace the normal component configs with a single one (`ClusterConfiguration`)
and test the component config independent logic of this package.

As a result of this, many of the older test cases are refactored and greatly simplified to reflect
on the new change as well. The old tests that are strictly tied to specific component configs
(like the defaulting tests) are left unchanged.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2020-07-03 20:00:45 +03:00
Kubernetes Prow Robot
af29f81af6
Merge pull request #92740 from SataQiu/deprecate-config-view-20200702
Mark 'kubeadm config view' command as deprecated
2020-07-03 05:04:02 -07:00
Kubernetes Prow Robot
046ac5100e
Merge pull request #92720 from neolit123/1.19-add-kcm-port
kubeadm: add --port=0 for kube-controller-manager and kube-scheduler
2020-07-03 05:03:25 -07:00
Kubernetes Prow Robot
a2aaae2dd5
Merge pull request #88124 from rosti/kubeadm-cc-upgrade-plan
kubeadm upgrade plan: print a component config state table
2020-07-03 05:02:47 -07:00
QianChenglong
883f318df4 Fix duplicate altnames in cert 2020-07-03 12:14:36 +08:00