Commit Graph

1203 Commits

Author SHA1 Message Date
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
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
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
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
Vinayak Goyal
5a0756c5f4 Update etcd in kubeadm to run as non-root. 2021-06-16 17:30:46 -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
Vinayak Goyal
59b4b124df Update kubeadm control-plane to run as non-root. 2021-06-14 12:04:50 -07: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
Jack Francis
ff164f9013 feat: remove ephemeral-storage etcd requirement 2021-06-07 16:03:10 -07:00
caodonghui
812a04539c remove redundant code 2021-06-04 17:56:46 +08: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
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
pacoxu
a074ccfe36 remove --insecure-port in kubeadm 2021-05-19 11:48:07 +08: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
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
SataQiu
c66a7bc42c kubeadm: remove redundant CriticalAddonsOnly toleration from kube-proxy DaemonSet 2021-05-13 14:51:57 +08: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
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
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
Lubomir I. Ivanov
c2bddf3998 kubeadm: fix unit tests for v1beta1 removal 2021-04-20 03:47:27 +03: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
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
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
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
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
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
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
caodonghui
f7469a0a31 Delete duplicate logs 2021-02-19 09:19:11 +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
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
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
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