Commit Graph

302 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
7f1d09f439
Merge pull request #89593 from neolit123/1.19-skip-kube-proxy-on-upgrade
kubeadm: skip kube-proxy/dns upgrades on missing ConfigMaps
2020-04-15 11:36:00 -07:00
Lubomir I. Ivanov
d4de1a571a kubeadm: skip kube-proxy and DNS upgrades on missing ConfigMaps
If the kube-proxy/dns ConfigMap are missing, show warnings and assume
that these addons were skipped during "kubeadm init",
and that their redeployment on upgrade is not desired.

TODO: remove this once "kubeadm upgrade apply" phases are supported:
https://github.com/kubernetes/kubeadm/issues/1318
2020-04-08 22:58:42 +03:00
Rostislav M. Georgiev
c8b7e5739c kubeadm: Use image tag as version of stacked etcd
kubeadm uses image tags (such as `v3.4.3-0`) to specify the version of
etcd. However, the upgrade code in kubeadm uses the etcd client API to
fetch the currently deployed version. The result contains only the etcd
version without the additional information (such as image revision) that
is normally found in the tag. As a result it would refuse an upgrade
where the etcd versions match and the only difference is the image
revision number (`v3.4.3-0` to `v3.4.3-1`).

To fix the above issue, the following changes are done:
- Replace the existing etcd version querying code, that uses the etcd
  client library, with code that returns the etcd image tag from the
  local static pod manifest file.
- If an etcd `imageTag` is specified in the ClusterConfiguration during
  upgrade, use that tag instead. This is done regardless if the tag was
  specified in the configuration stored in the cluster or with a new
  configuration supplied by the `--config` command line parameter.
  If no custom tag is specified, kubeadm will select one depending on
  the desired Kubernetes version.
- `kubeadm upgrade plan` no longer prints upgrade information about
  external etcd. It's the user's responsibility to manage it in that
  case.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2020-03-30 16:28:45 +03: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
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
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
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
SataQiu
2e23f84745 kubeadm: fallback to a known etcd version if an unknown k8s version is passed 2020-02-24 10:46:39 +08:00
SataQiu
8067dd8470 kubeadm: fix the bug that 'kubeadm upgrade' hangs in single node cluster 2020-02-23 18:57:32 +08:00
Mike Danese
25651408ae generated: run refactor 2020-02-08 12:30:21 -05:00
Mike Danese
3aa59f7f30 generated: run refactor 2020-02-07 18:16:47 -08:00
SataQiu
72559ec693 kubeadm upgrades always persist the etcd backup for stacked 2020-01-06 12:34:28 +08:00
tanjunchen
b1e03256d7 alias kubeadmutil for k8s.io/kubernetes/cmd/kubeadm/app/util 2019-12-27 17:57:04 +08:00
Kubernetes Prow Robot
55f81314cc
Merge pull request #85032 from jfbai/move-fmt-out-of-api
refactor: move unwanted console output out of versiongetter API
2019-12-09 08:38:02 -08:00
Jianfei Bai
dfb6c3424f move unwanted console output out of versiongetter. 2019-12-08 10:26:27 +08:00
Kubernetes Prow Robot
674695c544
Merge pull request #85639 from rosti/kubeadm-cc-kind-to-group
kubeadm: Group centric component configs
2019-12-03 17:01:23 -08:00
Babatunde Olu-Isa
af231b09e4 remove Kubeadm-env file overwrite from apply and node command 2019-12-01 15:28:59 -06:00
Rostislav M. Georgiev
b881f19c8b kubeadm: Group centric component configs
kubeadm's current implementation of component config support is "kind" centric.
This has its downsides. Namely:
- Kind names and numbers can change between config versions.
  Newer kinds can be ignored. Therefore, detection of a version change is
  considerably harder.
- A component config can have only one kind that is managed by kubeadm.
Thus a more appropriate way to identify component configs is required.

Probably the best solution identified so far is a config group.
A group name is unlikely to change between versions, while the kind names and
structure can.
Tracking component configs by group name allows us to:
- Spot more easily config version changes and manage alternate versions.
- Support more than one kind in a config group/version.
- Abstract component configs by hiding their exact structure.

Hence, this change rips off the old kind based support for component configs
and replaces it with a group name based one. This also has the following
extra benefits:
- More tests were added.
- kubeadm now errors out if an unsupported version of a known component group
  is used.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-11-26 13:55:28 +02:00
Lubomir I. Ivanov
906d3159b1 kubeadm: add a upgrade health check that deploys a Job
- Add a new preflight check for upgrade that runs the pause container
with -v in a Job.
- Wait for the Job to complete and return an error after N seconds.
- Manually clean the Job because we don't have the TTL controller
enabled in kubeadm yet (it's still alpha).
2019-11-22 18:04:40 +02:00
Kubernetes Prow Robot
ab1b374dd9
Merge pull request #84523 from rajansandeep/skipmigration
Retain CoreDNS corefile when migration fails in kubeadm
2019-11-08 09:00:29 -08:00
Sandeep Rajan
16191db353 skip deployment update if migration fails 2019-11-06 10:55:54 -05:00
hwdef
eae3e3ce8c cmd/kubeadm/app: fix staticcheck warning 2019-11-01 10:39:56 +08:00
Sandeep Rajan
7074f28dd2 retain corefile when migration fails 2019-10-29 12:11:59 -04:00
Wenjia Zhang
660b17d0ae Pin dependencies and update vendors 2019-10-24 14:09:24 -07:00
Wenjia Zhang
9ead9373f3 Resolve uncompatibility from update: etcd CAFile -> TrustedCAFIle 2019-10-24 14:09:24 -07:00
Wenjia Zhang
3b274fad2a Replace github.com/coreos/etcd by go.etcd.io/etcd 2019-10-24 14:09:24 -07:00
fabriziopandini
2ab2fc8cae make test pass 2019-10-02 12:10:58 +02:00
Han Kang
866ea74326 remove pkg/version and some of redundant copies of it
Change-Id: Ia58367c1b1274bfb49c8a4784051463abaf795de
2019-09-16 16:24:35 -07:00
Kubernetes Prow Robot
fa3dfa82b0
Merge pull request #82414 from SataQiu/kubeadm-20190906
kubeadm: code clean up about kustomize
2019-09-11 15:27:53 -07:00
Kubernetes Prow Robot
7e060eec79
Merge pull request #81908 from tedyu/etcd-cluster-avail
Remove Client#ClusterAvailable from interface
2019-09-10 17:42:46 -07:00
SataQiu
c53f2f306a kubeadm: code clean up 2019-09-06 18:40:44 +08:00
Ted Yu
2167321adb Remove Client#ClusterAvailable from interface 2019-08-29 07:40:34 -07:00
Ted Yu
8efa1c2a8f Correct func name WithBuildMetadata 2019-08-26 21:10:56 -07:00
fabriziopandini
885f81dc51 fix upgrade checks 2019-08-23 15:12:29 +02:00
Kubernetes Prow Robot
d54c5163e0
Merge pull request #81458 from fabriziopandini/kubeadm-kustomize-ux
kubeadm: kustomize-ux
2019-08-22 05:46:32 -07:00
Kubernetes Prow Robot
e1c2c677f1
Merge pull request #78033 from rajansandeep/corednsmigration
Add the ability to migrate CoreDNS configmap in kubeadm
2019-08-20 20:39:16 -07:00
Sandeep Rajan
6bb9eeeb1c move the corefile backup into a single configmap with a corefile-backup data key 2019-08-20 13:20:18 -04:00
Ted Yu
4f9d20e0f9 Remove boolean waitForComponentRestart which is always true in upgradeComponent 2019-08-17 18:50:55 -07:00
Sandeep Rajan
6821d21260 add the ability to migrate coredns configmap 2019-08-15 10:09:32 -04:00
fabriziopandini
a92e7975d2 kubeadm-kustomize-ux 2019-08-15 09:14:31 +02:00
fabriziopandini
5eca049557 placeholders for follow-up PR on kustomize UX 2019-08-12 14:17:19 +02:00
alan
cd2ecefb80 kubeadm: fix name of CA spell error 2019-08-06 12:01:28 +08:00
Kubernetes Prow Robot
f5c9d38a3f
Merge pull request #80833 from neolit123/1.16-update-version
kubeadm: update the version constants for 1.16
2019-08-01 11:52:44 -07:00
Lubomir I. Ivanov
e379164bc7 kubeadm: apply a number of _test fixes
- common_test.go: use constants.CurrentKubernetesVersion
- diff_test.go: write temporary files instead of using testdata.
this allows us to not have to bump kubernetesVersions in the
testdata files (now removed)
- policy_test.go: apply fixes to tests that were previously passing,
but a bump in constants.go breaks them. these tests now work
for any version.
2019-08-01 05:57:24 +03:00
Xianglin Gao
1b6ec47a04 do not return error, when the ds is not found
Signed-off-by: Xianglin Gao <xianglin.gxl@alibaba-inc.com>
2019-08-01 09:12:14 +08:00
David Xia
fabfd950b1
cleanup: fix some log and error capitalizations
Part of https://github.com/kubernetes/kubernetes/issues/15863
2019-07-20 18:26:16 -04:00
SataQiu
298909e20e kubeadm: use local copy of kubectl's version package 2019-07-16 09:51:10 +08:00
Yassine TIJANI
309ea4e802 consolidate coreDNS version to ease dependency bump
Signed-off-by: Yassine TIJANI <ytijani@vmware.com>
2019-07-03 16:02:13 +02:00