Commit Graph

3222 Commits

Author SHA1 Message Date
Lubomir I. Ivanov
a18502615e kubeadm-init: allow overriding the dry-run temp directory
Allow overriding the dry-run temporary directory with
an env. variable (KUBEADM_INIT_DRYRUN_DIR).

Use the same variable in test/cmd/init_test.go.
This allows running integration tests as non-root.
2020-04-09 01:20:24 +03:00
Lubomir I. Ivanov
04933f3a94 cmd/kubeadm/test/cmd: refactor _test.go files
Make getKubeadmPath() fetch the KUBEADM_PATH env. variable.
Panic if it's missing. Don't handle the "--kubeadm-path"
flag. Remove the same flag from the BUILD bazel test rule.

Don't handle "--kubeadm-cmd-skip" usage of this flag is missing
from the code base.

Remove usage of "kubeadmCmdSkip" as the flag "--kubeadm-cmd-skip"
is never passed.
2020-04-09 00:47:16 +03:00
Kubernetes Prow Robot
cabf5d1cdc Merge pull request #89350 from SataQiu/fix-kube-proxy-20200323
kube-proxy: treat failure to bind to a port as fatal
2020-04-06 17:47:20 -07:00
Kubernetes Prow Robot
b984f59fa3 Merge pull request #89735 from rosti/kubeadm-fix-bootstrap-wait
kubeadm join: Properly wait for TLS bootstrapping
2020-04-06 11:19:48 -07:00
Kubernetes Prow Robot
4f90253b58 Merge pull request #89596 from neolit123/1.19-fix-misleading-warning-on-jcp
kubeadm: remove misleading warning on kubeadm join
2020-04-03 04:27:45 -07:00
Rostislav M. Georgiev
d2c4426e97 kubeadm join: Wait longer for TLS bootstrapping
The TLS bootstrapping timeout is increased to 5 minutes with a retry
once every 5 seconds. Failing fast if the kubelet is not healthy is also
preserved.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2020-04-02 16:44:39 +03:00
SataQiu
871b90ba23 kube-proxy: add '--bind-address-hard-fail' flag to treat failure to bind to a port as fatal
Signed-off-by: SataQiu <1527062125@qq.com>
2020-04-02 13:13:10 +08:00
Kubernetes Prow Robot
9cbb46e39f Merge pull request #89602 from kvaps/fix-rejoin
Kubeadm: fix Ready condition check
2020-03-28 00:11:52 -07:00
kvaps
68dcc17155 Kubeadm: fix Ready condition check 2020-03-27 23:55:18 +01:00
Lubomir I. Ivanov
63b3bd1826 kubeadm: fix unit test requiring admin.conf and root 2020-03-28 00:43:39 +02:00
Lubomir I. Ivanov
e56b4c3172 kubeadm: remove misleading warning on kubeadm join
If the user does not provide --config or --control-plane
but provides some other flags such as --certificate-key
kubeadm is supposed to print a warning.

The logic around printing the warning is bogus. Implement
proper checks of when to print the warning.
2020-03-27 23:09:59 +02:00
Kubernetes Prow Robot
c1fc466cdd Merge pull request #88854 from bart0sh/PR0088-kubeadm-redesign-printAvailableUpgrades
kubeadm: redesign printAvailableUpgrades function
2020-03-27 05:14:23 -07:00
Kubernetes Prow Robot
903f1e63f9 Merge pull request #89537 from neolit123/1.19-kubeadm-add-get-node-rbac
kubeadm: add missing RBAC for getting nodes on "upgrade apply"
2020-03-26 20:06:23 -07:00
Lubomir I. Ivanov
6f99791021 kubeadm: add missing RBAC for getting nodes on "upgrade apply"
b117a928 added a new check during "join" whether a Node with
the same name exists in the cluster.

When upgrading from 1.17 to 1.18 make sure the required RBAC
by this check is added. Otherwise "kubeadm join" will complain that
it lacks permissions to GET a Node.
2020-03-26 22:02:55 +02:00
Rostislav M. Georgiev
fbfd44f337 kubeadm: Fix panic in isCoreDNSVersionSupported
A narrow assumption of what is contained in the `imageID` fields for the
CoreDNS pods causes a panic upon upgrade.
Fix this by using a proper regex to match a trailing SHA256 image digest
in `imageID` or return an error if it cannot find it.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2020-03-26 20:26:32 +02:00
Kubernetes Prow Robot
295b53f7b4 Merge pull request #89214 from jingyih/update_etcd_server_3p4p4
Update default etcd server to 3.4.4 in k8s v1.19
2020-03-26 01:14:24 -07:00
Ed Bartosh
0eac66d647 kubeadm: refactor printAvailableUpgrades
Split printAvailableUpgrades into 2 functions:

- genUpgradePlan that handles business logic
- printUpgradePlan that outputs upgrade plan
2020-03-24 12:47:52 +02:00
Ed Bartosh
e5d6536ade add UpgradePlan to the kubeadm.output API group 2020-03-24 12:47:42 +02:00
jingyih
f9e0e4c6b4 Update default etcd server to 3.4.4 2020-03-18 00:27:46 -07:00
Kubernetes Prow Robot
d45fa525e7 Merge pull request #88945 from sandyleo26/kubeadm-check-windows-wrap-error-properly
fix: #2056 check_windows wrap error properly
2020-03-17 19:28:29 -07:00
Kubernetes Prow Robot
be2f9e74bf Merge pull request #88811 from rajansandeep/invalidmigrationfail
Ensure CoreDNS running when Corefile migration doesn't support current version
2020-03-17 19:27:18 -07:00
Sandeep Rajan
fcd229e4bd ensure coredns running when migration fails
add an additional check for coredns image sha

add a check to see if migration is required
2020-03-11 11:32:32 -04:00
Sha Liu
12750ac64f kubeadm: wrap error properly in check_windows.go 2020-03-09 22:29:15 +11:00
Jordan Liggitt
b7c2faf26c client-go dynamic client: add context to callers 2020-03-06 10:56:23 -05:00
Mike Danese
76f8594378 more artisanal fixes
Most of these could have been refactored automatically but it wouldn't
have been uglier. The unsophisticated tooling left lots of unnecessary
struct -> pointer -> struct transitions.
2020-03-05 14:59:47 -08:00
Mike Danese
c58e69ec79 automated refactor 2020-03-05 14:59:46 -08:00
Lubomir I. Ivanov
8943e443e8 kubeadm: deprecate the flag --use-api for cert renewal
The KCM is moving to means of only singing apiserver (kubelet) client
and kubelet serving certificates. See:
  https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/20190607-certificates-api.md#signers
Up until now the experimental kubeadm functionality '--use-api'
under "kubeadm alpha certs renew" was using the KCM to sign *any*
certficate as long as the KCM has the root CA cert/key.

Post discussions with the kubeadm maintainers, it was decided that
this functionality should be removed from kubeadm due to the
requirement to have external signers for renewing the common
control-plane certificates that kubeadm manages.
2020-03-05 03:37:00 +02:00
Kubernetes Prow Robot
5c5faed39b Merge pull request #88287 from gab-satchi/master
Windows specific kubelet flags in kubeadm-flags.env
2020-03-04 13:18:52 -08:00
Gab Satch
9fabafdbb1 Windows specific kubelet flags in kubeadm-flags.env
- Uses correct pause image for Windows
- Omits systemd specific flags
- Common build flags function to be used by Linux and Windows
- Uses user configured image repository for Windows pause image
2020-03-04 11:05:53 -05:00
Sandeep Rajan
da8453af6e fix unsupported bug 2020-02-27 10:39:47 -05:00
Kubernetes Prow Robot
e61a878e6d Merge pull request #88482 from rajansandeep/fixunsupported
[kubeadm]: Fix the CoreDNS preflight check for unsupported plugins
2020-02-26 19:39:33 -08:00
Sandeep Rajan
ca5d394f6a fix the coredns preflight check for unsupported plugins 2020-02-26 15:08:05 -05:00
Kubernetes Prow Robot
95504c32fe Merge pull request #86260 from rajansandeep/corednsto1.6.6-kubeadm
[kubeadm]: Bump CoreDNS version to 1.6.7
2020-02-24 23:10:49 -08:00
Kubernetes Prow Robot
59870dad01 Merge pull request #87748 from satyasm/kep-local-cidr
Refactor handling of local traffic detection.
2020-02-24 19:06:48 -08:00
Kubernetes Prow Robot
b68f869f43 Merge pull request #88434 from SataQiu/fix-kubeadm-20200223
kubeadm: fix the bug that 'kubeadm upgrade' hangs in single node cluster
2020-02-24 13:11:59 -08:00
Sandeep Rajan
a980cb7ead update coredns to 1.6.7 2020-02-24 15:00:55 -05:00
Kubernetes Prow Robot
4e79344501 Merge pull request #88467 from neolit123/1.18-print-volume-verbosity
kubeadm: modify how component volumes are printed
2020-02-24 11:03:15 -08:00
Kubernetes Prow Robot
116e27fc19 Merge pull request #86953 from rojkov/ecdsa
kubeadm: allow creating a cluster with ECDSA keys
2020-02-24 11:02:50 -08:00
Lubomir I. Ivanov
1b710a4c56 kubeadm: modify how component volumes are printed
After the shift for init phases, GetStaticPodSpecs() from
app/phases/controlplane/manifests.go gets called on each control-plane
component sub-phase. This ends up calling the Printf from
AddExtraHostPathMounts() in app/phases/controlplane/volumes.go
multiple times printing the same volumes for different components.

- Remove the Printf call from AddExtraHostPathMounts().
- Print all volumes for a component in CreateStaticPodFiles() using klog
V(2).

Perhaps in the future a bigger refactor is needed here were a
single control-plane component spec can be requested instead of a
map[string]v1.Pod.
2020-02-24 16:41:03 +02:00
Kubernetes Prow Robot
20e3288277 Merge pull request #88373 from SataQiu/fix-kubeadm-20200220
kubeadm: fallback to a known etcd version if an unknown k8s version is passed
2020-02-24 05:14:47 -08:00
Dmitry Rozhkov
109f5db5a3 kubeadm: allow creating a cluster with ECDSA keys
The selected key type is defined by kubeadm's --feature-gates option:
if it contains PublicKeysECDSA=true then ECDSA keys will be generated
and used.

By default RSA keys are used still.

Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
2020-02-24 11:20:07 +02:00
SataQiu
2e23f84745 kubeadm: fallback to a known etcd version if an unknown k8s version is passed 2020-02-24 10:46:39 +08:00
Kubernetes Prow Robot
b513f359a0 Merge pull request #88429 from taesunny/master
Fix: cmd/kubeadm Typos in some error messages, comments
2020-02-23 11:14:47 -08:00
SataQiu
8067dd8470 kubeadm: fix the bug that 'kubeadm upgrade' hangs in single node cluster 2020-02-23 18:57:32 +08:00
Kubernetes Prow Robot
31b8c0d23d Merge pull request #87656 from ereslibre/do-not-depend-on-cluster-status
kubeadm: deprecate the `ClusterStatus` dependency
2020-02-22 22:30:47 -08:00
Kubernetes Prow Robot
b893aa707e Merge pull request #88052 from neolit123/1.18-renew-use-ca-in-kubeconfig
kubeadm: update embedded CA in kubeconfig files on renewal
2020-02-22 20:50:47 -08:00
Taesun Lee
d10e3da92d Fix typos in some error messages, comments
- cmd/kubeadm
- RemoveContnainers -> RemoveContainers
- iterface -> interface
- stategicMergeSlice -> strategicMergeSlice
2020-02-23 00:44:47 +09:00
Satyadeep Musuvathy
8c6956e5bb Refactor handling of local traffic detection. 2020-02-21 17:57:34 -08:00
Kubernetes Prow Robot
58fcca211f Merge pull request #88359 from taesunny/master
Fix: Typos in apiclient util.
2020-02-20 19:50:46 -08:00
Rafael Fernández López
3e59a0651f kubeadm: optimize the upgrade path from ClusterStatus to annotations
When doing the very first upgrade from a cluster that contains the
source of truth in the ClusterStatus struct, the new kubeadm logic
will try to retrieve this information from annotations.

This changeset adds to both etcd and apiserver endpoint retrieval the
special case in which they won't retry if we are in such cases. The
logic will retry if we find any unknown error, but will not retry in
the following cases:

- etcd annotations do not contain etcd endpoints, but the overall list
  of etcd pods is greater than 0. This means that we listed at least
  one etcd pod, but they are missing the annotation.

- API server annotation is not found on the api server pod for a given
  node name, but no errors aside from that one were found. This means
  that the API server pod is present, but is missing the annotation.

In both cases there is no point in retrying, and so, this speeds up the
upgrade path when coming from a previous existing cluster.
2020-02-20 12:19:05 +01:00