Commit Graph

2661 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
eda5a296a8 Merge pull request #77513 from ereslibre/upload-cluster-configuration-after-upgrade
kubeadm: upload the `ClusterConfiguration` during the upgrade
2019-05-08 17:15:13 -07:00
Kubernetes Prow Robot
09c4e10333 Merge pull request #74021 from andrewsykim/move-features-component-base
Move feature gate package from k8s.io/apiserver to k8s.io/component-base
2019-05-08 13:06:34 -07:00
Daniel (Shijun) Qian
5268f69405 fix duplicated imports of k8s code (#77484)
* fix duplicated imports of api/core/v1

* fix duplicated imports of client-go/kubernetes

* fix duplicated imports of rest code

* change import name to more reasonable
2019-05-08 10:12:47 -07:00
Andrew Kim
c919139245 update import of generic featuregate code from k8s.io/apiserver/pkg/util/feature -> k8s.io/component-base/featuregate 2019-05-08 10:01:50 -04:00
Kubernetes Prow Robot
f9c9ecdbb6 Merge pull request #77180 from fabriziopandini/renew-embedded-certs
kubeadm: renew certificates embedded in kubeconfig files
2019-05-06 15:30:06 -07:00
Rafael Fernández López
b6f4bb349b kubeadm: upload the ClusterConfiguration during the upgrade
During the upgrade process, `kubeadm` will take the current
`ClusterConfiguration`, update the `KubernetesVersion` to the latest
version, and call to `UploadConfiguration`.

This change makes sure that when the mutation happens, not only the
`ClusterStatus` is mutated, but the `ClusterConfiguration` object
inside the `kubeadm-config` ConfigMap as well; it will contain the
new `KubernetesVersion`.
2019-05-06 18:21:55 +02:00
fabriziopandini
3076644f0b autogenerated 2019-05-06 16:48:35 +02:00
fabriziopandini
cf7f8acae2 renew-embedded-certs 2019-05-06 16:48:24 +02:00
Kubernetes Prow Robot
0a83ed51b4 Merge pull request #77345 from rosti/omitempty-v1beta2
kubeadm: Fix omitempty in v1beta2
2019-05-04 12:13:37 -07:00
Kubernetes Prow Robot
f29138c372 Merge pull request #77012 from rosti/certkey-v1beta2
kubeadm: Add certificateKey field to v1beta2 config
2019-05-03 15:11:39 -07:00
Kubernetes Prow Robot
7defecbc2c Merge pull request #76327 from neolit123/kubeproxy-node-selector
kubeadm: disable the kube-proxy DaemonSet on non-Linux nodes
2019-05-03 04:08:18 -07:00
Rostislav M. Georgiev
81e3adc53b kubeadm: Fix omitempty in v1beta2
There are a couple of problems with regards to the `omitempty` in v1beta1:

- It is not applied to certain fields. This makes emitting YAML configuration
  files in v1beta1 config format verbose by both kubeadm and third party Go
  lang tools. Certain fields, that were never given an explicit value would
  show up in the marshalled YAML document. This can cause confusion and even
  misconfiguration.

- It can be used in inappropriate places. In this case it's used for fields,
  that need to be always serialized. The only one such field at the moment is
  `NodeRegistrationOptions.Taints`. If the `Taints` field is nil, then it's
  defaulted to a slice containing a single control plane node taint. If it's
  an empty slice, no taints are applied, thus, the cluster behaves differently.
  With that in mind, a Go program, that uses v1beta1 with `omitempty` on the
  `Taints` field has no way to specify an explicit empty slice of taints, as
  this would get lost after marshalling to YAML.

To fix these issues the following is done in this change:

- A whole bunch of additional omitemptys are placed at many fields in v1beta2.
- `omitempty` is removed from `NodeRegistrationOptions.Taints`
- A test, that verifies the ability to specify empty slice value for `Taints`
  is included.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-05-03 12:59:41 +03:00
Rostislav M. Georgiev
1826e445fe kubeadm: Add certificateKey field to v1beta2 config
This change introduces config fields to the v1beta2 format, that allow
certificate key to be specified in the config file. This certificate key is a
hex encoded AES key, that is used to encrypt certificates and keys, needed for
secondary control plane nodes to join. The same key is used for the decryption
during control plane join.
It is important to note, that this key is never uploaded to the cluster. It can
only be specified on either command line or the config file.
The new fields can be used like so:

---
apiVersion: kubeadm.k8s.io/v1beta2
kind: InitConfiguration
certificateKey: "yourSecretHere"
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: JoinConfiguration
controlPlane:
  certificateKey: "yourSecretHere"
---

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-05-02 11:47:07 +03:00
Dmitry Rozhkov
a6d7920f44 kubeadm: do unit testing of actual public function
Even though CreateServiceAccountKeyAndPublicKeyFiles() function is
an interface function it's not unittested. Instead it wraps a couple
of internal functions which are used only inside CreateServiceAccountKeyAndPublicKeyFiles()
and those internal functions are tested.

Rewrite the function to do only what it's intended to do and add unit
tests for it.
2019-05-02 10:23:51 +03:00
Àbéjídé Àyodélé
a2b0cb62a1 Clean up kubeadm.
These are based on recommendation from
[staticcheck](http://staticcheck.io/).

- Remove unused struct fields
- Remove unused function
- Remove unused variables
- Remove unused constants.
- Miscellaneous cleanups
2019-05-01 22:16:06 +00:00
Kubernetes Prow Robot
a6558c6f10 Merge pull request #77257 from stgleb/remove_todo
Remove todo and change comment
2019-04-30 05:47:37 -07:00
stgleb
758d89c256 Remove todo and change comment 2019-04-30 13:34:25 +03:00
Kubernetes Prow Robot
b5d9aa58e3 Merge pull request #77218 from neolit123/chroot-fix-flakes
kubeadm: remove flaky unit tests for chroot
2019-04-29 14:36:26 -07:00
Kubernetes Prow Robot
ad645fbb13 Merge pull request #77191 from stgleb/fix_log
Change misleading log message
2019-04-29 14:36:13 -07:00
Kubernetes Prow Robot
35b278447c Merge pull request #76920 from sempr/master
MOD: support wildcard DNS for apiserver certSANs
2019-04-29 14:36:01 -07:00
Lubomir I. Ivanov
96e907348a kubeadm: remove flaky unit tests for chroot
This unit test contains some hacks are causing the bazel-test
e2e job to flake very often. Instead of maintaining this
unit test remove it completely. It has little benefits
WRT testing app/util/chroot*.go.
2019-04-29 20:49:09 +03:00
Dmitry Rozhkov
358659ef4d kubeadm: remove duplicated token.parsePEMCerts()
The function parsePEMCerts() duplicates ParseCertsPEM() from
the "k8s.io/client-go/util/cert" package.
2019-04-29 14:32:38 +03:00
stgleb
7bf9acd303 Change misleading log message
Secret instead of configmap for
upload certs phase
2019-04-29 03:06:11 +03:00
Kubernetes Prow Robot
c88b7cdd58 Merge pull request #76862 from fabriziopandini/fix-upgrade-certs-renew
kubeadm: fix certs renewal during upgrade
2019-04-27 12:30:20 -07:00
Chen Zhiwei
79c436f48f use new method to detect cgroup driver 2019-04-27 08:39:18 +00:00
fabriziopandini
137137cbaa fix-upgrade-certs-renew 2019-04-27 09:58:17 +02:00
Kubernetes Prow Robot
3148eb750d Merge pull request #76390 from rojkov/ecdsa-v2
kubeadm: add support for ECDSA keys
2019-04-26 19:56:23 -07:00
Kubernetes Prow Robot
332d62a94a Merge pull request #76710 from rosti/introduce-v1beta2
kubeadm: Introduce v1beta2 config
2019-04-26 10:38:27 -07:00
Kubernetes Prow Robot
59a86822cb Merge pull request #77051 from chenzhiwei/bump-docker-version
Bump minimum docker version to 1.13.1 in kubeadm
2019-04-26 07:10:29 -07:00
Sempr
81e896e16f MOD: minor comment update for error message 2019-04-26 09:13:11 +08:00
Rostislav M. Georgiev
9e1ac76c1a kubeadm: Introduce v1beta2 config
Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-04-25 17:10:04 +03:00
Chen Zhiwei
d4aaacfc18 Bump minimum docker version to 1.13.1 in kubeadm 2019-04-25 13:57:50 +00:00
fabriziopandini
d41c77f4d4 add-v1.15-etcd-version 2019-04-25 15:19:21 +02:00
Kubernetes Prow Robot
85015461b7 Merge pull request #76578 from SataQiu/fix-kubeadm-issue-1493
[kubeadm] fix kubelet config bug for kubeadm init phase
2019-04-25 04:34:46 -07:00
Dmitry Rozhkov
d125f3bddc kubeadm: add support for ECDSA keys
kubeadm still generates RSA keys when deploying a node, but also
accepts ECDSA keys if they already exist pregenerated in the
directory specified in --cert-dir.
2019-04-25 12:52:42 +03:00
SataQiu
5b74f3d8ad fix kubelet config bug for kubeadm init phase 2019-04-24 22:05:10 +08:00
Kubernetes Prow Robot
3ba70b9b5e Merge pull request #76923 from SataQiu/fix-kubeadm-20190423
Fix validation message: apiServerEndpoints -> apiServerEndpoint
2019-04-24 04:04:00 -07:00
Kubernetes Prow Robot
36ccff1b27 Merge pull request #76821 from ereslibre/kubeadm-config-retry-on-conflict
kubeadm: improve resiliency when conflicts arise when updating the kubeadm-config configmap
2019-04-23 15:50:01 -07:00
Kubernetes Prow Robot
44f254d55e Merge pull request #76922 from xichengliudui/small-bug
Fix two minor bugs in kubeadm
2019-04-23 07:53:35 -07:00
Kubernetes Prow Robot
0f617a3825 Merge pull request #76500 from rojkov/issue-1399
kubeadm: check all available CA certs against pinned certs
2019-04-23 07:52:21 -07:00
Rafael Fernández López
bc8bafd825 kubeadm: improve resiliency when conflicts arise when updating the kubeadm-config ConfigMap
Add the functionality to support `CreateOrMutateConfigMap` and `MutateConfigMap`.

* `CreateOrMutateConfigMap` will try to create a given ConfigMap object; if this ConfigMap
  already exists, a new version of the resource will be retrieved from the server and a
  mutator callback will be called on it. Then, an `Update` of the mutated object will be
  performed. If there's a conflict during this `Update` operation, retry until no conflict
  happens. On every retry the object is refreshed from the server to the latest version.

* `MutateConfigMap` will try to get the latest version of the ConfigMap from the server,
  call the mutator callback and then try to `Update` the mutated object. If there's a
  conflict during this `Update` operation, retry until no conflict happens. On every retry
  the object is refreshed from the server to the latest version.

Add unit tests for `MutateConfigMap`

* One test checks that in case of no conflicts, the update of the
  given ConfigMap happens without any issues.

* Another test mimics 5 consecutive CONFLICT responses when updating
  the given ConfigMap, whereas the sixth try it will work.
2019-04-23 15:40:37 +02:00
Kubernetes Prow Robot
888b81b638 Merge pull request #76238 from Dieken/30s-ttl-for-coredns
change default 5s ttl to 30s for coredns to be same with kube-dns/dnsmasq
2019-04-23 06:20:09 -07:00
SataQiu
cd8fae5370 fix validation message: apiServerEndpoints -> apiServerEndpoint 2019-04-23 11:47:57 +08:00
Sempr
0c7d8722bf MOD: support Wildcard DNS for apiserver certSANs 2019-04-23 10:47:45 +08:00
Kubernetes Prow Robot
f9a3a22e35 Merge pull request #76769 from rojkov/kubeadm-drop-NewCACertAndKey
kubeadm: drop duplicate function NewCACertAndKey
2019-04-22 03:21:43 -07:00
Kubernetes Prow Robot
c0c1e148e3 Merge pull request #76859 from SataQiu/fix-kubeadm-20190420
kubeadm: use 'errors.Errorf' instead of 'fmt.Errorf'
2019-04-20 14:21:44 -07:00
Kubernetes Prow Robot
c262f9c7d9 Merge pull request #76865 from fabriziopandini/fix-certs-renewal
kubeadm: fix kubeadm alpha cert renew error in case of external CA
2019-04-20 11:45:45 -07:00
fabriziopandini
dc8331e385 fix-certs-renewal 2019-04-20 17:08:10 +02:00
aaa
a5b88f69e9 Fix two minor bugs in kubeadm 2019-04-20 06:42:36 -04:00
aaa
81c30cbeb0 kubeadm cleanup: master -> control-plane
update pul request
2019-04-20 06:15:19 -04:00