Commit Graph

472 Commits

Author SHA1 Message Date
k8s-ci-robot
474e27f914 Merge pull request #70495 from rosti/writable-to-readonly-volumes
kubeadm: Writable to ReadOnly in HostPathMount
2018-11-03 01:43:02 -07:00
k8s-ci-robot
5e76248e23 Merge pull request #70512 from neolit123/phase-wait-control-plane
kubeadm: graduate wait-control-plane phase
2018-11-02 16:44:20 -07:00
Rostislav M. Georgiev
6c9e347e31 kubeadm: Writable to ReadOnly in HostPathMount
Writable was added to HostPathMount in v1alpha1 in order to control if an extra
volume is mounted in read only or writable mode.
Usually, in Kubernetes, this option is referred to as ReadOnly, instead of
Writable and is defaulted to `false`. However, at the time, all extra volumes
to pods were defaulted to read-only. Therefore, to avoid changes to existing
v1alpha1 configs, this option had to be added with reversed meaning.

Hence, it's called `writable`.

Now, with the migration towards v1beta1, we can safely change this to ReadOnly
and get it in sync with the reset of Kubernetes.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2018-11-02 18:02:06 +02:00
k8s-ci-robot
b83a947ee9 Merge pull request #70371 from rosti/control-plane-substructs
kubeadm: Control plane config moved to substructs
2018-11-02 08:38:47 -07:00
Lubomir I. Ivanov
cbb448113d kubeadm: graduate wait-control-plane phase 2018-11-02 15:47:23 +02:00
k8s-ci-robot
7f32ad0287 Merge pull request #70529 from SataQiu/fix-2018110101
Fix the expression of some comments
2018-11-02 05:29:05 -07:00
Rostislav M. Georgiev
d14c27a347 kubeadm: Control plane config moved to substructs
In v1alpha3's, control plane component config options were nested directly into
the ClusterConfiguration structure. This is cluttering the config structure and
makes it hard to maintain. Therefore the control plane config options must be
separated into different substructures in order to graduate the format to beta.

This change does the following:

- Introduces a new structure called ControlPlaneComponent, that contains fields
  common to all control plane component types. These are currently extra args
  and extra volumes.

- Introduce a new structure called APIServer that contains
  ControlPlaneComponent and APIServerCertSANs field (from ClusterConfiguration)

- Replace all API Server, Scheduler and Controller Manager options in
  ClusterConfiguration with APIServer, ControllerManager and Scheduler fields
  of APIServer and ControlPlaneComponent types.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2018-11-02 11:38:56 +02:00
jiaxuanzhou
f253171dfe simplify logic for func BuildArgumentListFromMap 2018-11-01 23:15:48 +08:00
SataQiu
d32526fba4 improve the expression of some comments 2018-11-01 17:44:37 +08:00
yuexiao-wang
4f0c2ecf09 move certs/pkiutil to generic kubeadm utils
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
2018-11-01 15:05:19 +08:00
Yago Nobre
cc670e29a1 Fix typos on cmd/kubeadm/app/cmd 2018-10-31 16:32:02 -03:00
Rostislav M. Georgiev
a3e7d7e038 kubeadm: APIServerEndpoints -> APIServerEndpoint
In the past the discovery configuration expected, that we can support multiple
API server endpoints. In practice, we always end up with a single API server
endpoint, because, even in HA setups, we use a load balancer scheme for API
servers.
Therefore, to reduce complexity and improve readability of the config, the
multiple API server endpoints support is removed from the bootstrap token
discovery join method and configuration.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2018-10-30 16:10:28 +02:00
yuexiao-wang
c0a9b4d04d add BUILD
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
2018-10-30 16:23:52 +08:00
yuexiao-wang
cc303c8774 [kubeadm/app/]switch to github.com/pkg/errors
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
2018-10-30 16:23:24 +08:00
fabriziopandini
fbd6d2d68a autogenerated 2018-10-27 18:04:44 +02:00
fabriziopandini
d30492ee8f kubeadm graduate kubelet-start phase 2018-10-27 18:04:33 +02:00
yuexiao-wang
f15410692e [kubeadm/app/util]switch to github.com/pkg/errors
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
2018-10-26 15:17:21 +08:00
k8s-ci-robot
46ec13cf7d Merge pull request #70027 from bart0sh/PR0031-kubeadm-sort-volumes
kubeadm: sort pod Volumes and VolumeMounts
2018-10-22 22:46:42 -07:00
k8s-ci-robot
2dc9acc23b Merge pull request #69922 from xichengliudui/fix181017
Delete repeated words and fix misspellings
2018-10-20 01:47:53 -07:00
k8s-ci-robot
b47510c1bb Merge pull request #69886 from bart0sh/PR0030-kubeadm-fix-1054-upgrade-same-version
kubeadm: skip upgrade if manifest is not changed
2018-10-19 14:52:46 -07:00
Ed Bartosh
ebb0af9e8f kubeadm: sort pod Volumes and VolumeMounts
Order of Volumes and VolumeMounts in the pod objects created by
kubeadm is undefined as they're represended as maps in the
controlPlaneHostPathMounts struct.

This influences 'kubeadm upgrade' logic in a way that even when
manifest of the component is not changed kubeadm tries to upgrade
it because most of the time current and new pods are not equal
due to the different order of Volumes and VolumeMounts.

For example 'kubeadm apply diff' almost always shows difference
in Volumes and VolumeMounts because of this:
     volumeMounts:
+    - mountPath: /etc/kubernetes/pki
+      name: k8s-certs
+      readOnly: true
     - mountPath: /etc/ssl/certs
       name: ca-certs
+      readOnly: true
+    - mountPath: /etc/pki
+      name: etc-pki
+      readOnly: true
+    - mountPath: /usr/share/ca-certificates
+      name: usr-share-ca-certificates
       readOnly: true
     - mountPath: /etc/ca-certificates
       name: etc-ca-certificates
       readOnly: true
-    - mountPath: /etc/pki
-      name: etc-pki
-      readOnly: true
-    - mountPath: /etc/kubernetes/pki
-      name: k8s-certs
-      readOnly: true
-    - mountPath: /usr/share/ca-certificates
-      name: usr-share-ca-certificates
-      readOnly: true

Sorting Volumes and VolumeMounts should fix this issue and help
to avoid unnecessary upgrades.
2018-10-19 18:22:47 +03:00
Ed Bartosh
ad0179897d kubeadm: skip upgrade if manifest is not changed
When doing upgrades kubeadm generates new manifest and
waits until kubelet restarts correspondent pod.

However, kubelet won't restart pod if there are no changes
in the manifest. That makes kubeadm stuck waiting for
restarted pod.

Skipping upgrade if new component manifest is the same as
current manifest should solve this.

Fixes: kubernetes/kubeadm#1054
2018-10-17 11:07:51 +03:00
k8s-ci-robot
1e4ad048fa Merge pull request #67763 from rosti/join-discovery-split
kubeadm: Split discovery from JoinConfiguration
2018-10-16 19:25:47 -07:00
Rostislav M. Georgiev
576b8d3f4f kubeadm: Split discovery from JoinConfiguration
This change splits out discovery fields from JoinConfiguration by performing
the following changes:

- Introduce a BootstrapTokenDiscovery structure, that houses configuration
  options needed for bootstrap token based discovery.

- Introduce a FileDiscovery structure, that houses configuration options
  (currently only a single option) needed for KubeConfig based discovery.

- Introduce a Discovery structure, that houses common options (such as
  discovery timeout and TLS bootstrap token) as well as pointer to an instance
  of either BootstrapTokenDiscovery or FileDiscovery structures.

- Replace the old discovery related JoinConfiguration members with a single
  Discovery member.

This change is required in order to cleanup the code of unnecessary logic and
make the serialized JoinConfiguration more structured (and therefore, more
intuitive).

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2018-10-16 15:25:32 +03:00
xichengliudui
0dba66a2a1 Delete repeated words and fix misspellings
Delete repeated words and fix misspellings
2018-10-16 01:05:05 -04:00
k8s-ci-robot
2f8b585d9c Merge pull request #69330 from vaikas-google/json-patch
Add support for JSON patch in fake client
2018-10-15 15:04:32 -07:00
k8s-ci-robot
8f620950e2 Merge pull request #69614 from mitar/patch-1
Adding more kernel config paths
2018-10-11 03:36:22 -07:00
Ville Aikas
a363b15385 Add support for JSON patch in fake client 2018-10-11 08:13:50 +00:00
k8s-ci-robot
77742ea94c Merge pull request #69301 from neolit123/kubeadm-version-stable
kubeadm: handle stable-1 as the default version
2018-10-10 12:01:18 -07:00
Mitar
3f8ef7c6f8 Adding more kernel config paths 2018-10-10 00:37:14 -07:00
RA489
8729cade98 util/config` packages; filenames and methods should be updated to use new names 2018-10-08 14:12:17 +05:30
Christoph Blecker
97b2992dc1 Update gofmt for go1.11 2018-10-05 12:59:38 -07:00
Rostislav M. Georgiev
f0d82fb5f4 kubeadm: Allow mixing Init and Join Configurations
This change allows mixing InitConfiguration/ClusterConfiguration with
JoinConfiguration in a single YAML file, by performing the following changes:

- Replace the explicit error in `DetectUnsupportedVersion` with a warning.
- Modify `NodeConfigFileAndDefaultsToInternalConfig` to use only
  `JoinConfiguration`.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2018-10-05 10:46:23 +03:00
Lubomir I. Ivanov
505413581e kubeadm: handle stable-1 as the default version
The default version in kubeadm is now `stable-1`. This will
pull a version from the `stable-1.txt` endpoint which might
end up being newer than the version of the client by a magnitude
of MINOR or even a MAJOR release.

To be able to prevent this scenario add the new helper function:
validateStableVersion()

This function determines if the remote version is newer than the
local client version and if that's the case it returns `stable-X.xx`
that conforms with the version of the client. If not it returns
the remote version.
2018-10-05 00:02:57 +03:00
fabriziopandini
b4092acdb6 autogenerated 2018-10-04 13:20:20 +02:00
fabriziopandini
9aec633c40 Fix tests 2018-10-04 13:20:11 +02:00
fabriziopandini
488ac6825b Automated bump from v1alpha3 references to v1beta1 2018-10-04 12:03:38 +02:00
Yu Liao
fc21115c3f Moved staging/src/k8s.io/client-go/tools/bootstrap to staging/src/k8s.io/cluster-bootstrap 2018-10-02 09:46:13 -07:00
RA489
824ed161d5 Rename the constant that refers to the kubeadm-config ConfigMap 2018-10-01 15:50:04 +05:30
k8s-ci-robot
587914c29d Merge pull request #69055 from fabriziopandini/kubeadm-remove-v1alpha2
Kubeadm remove v1alpha2 api
2018-09-27 12:21:26 -07:00
k8s-ci-robot
3fe21e5433 Merge pull request #68922 from BenTheElder/version-staging
move pkg/util/version to staging
2018-09-26 22:59:42 -07:00
k8s-ci-robot
e9fe3f77e9 Merge pull request #68890 from andrewrynhard/dnspolicy
kubeadm: Create control plane with ClusterFirstWithHostNet dns policy
2018-09-26 20:37:57 -07:00
fabriziopandini
bb8eec4934 removal of v1alpha2 2018-09-26 17:39:18 +02:00
k8s-ci-robot
8c1fe2e1df Merge pull request #68455 from Klaven/kubeadm_883
kubeadm 883 Updated logging to be consistent.
2018-09-26 02:27:47 -07:00
Benjamin Elder
8b56eb8588 hack/update-gofmt.sh 2018-09-24 12:21:29 -07:00
Benjamin Elder
f828c6f662 hack/update-bazel.sh 2018-09-24 12:03:24 -07:00
Benjamin Elder
088cf3c37b find & replace version import 2018-09-24 12:03:24 -07:00
Lubomir I. Ivanov
209045ddd5 kubeadm: fix broken Docker 17.xx validation
A previous commit updated 17.xx -> 18.xx without considering
that some systems still use 17.xx.

Add handling for 17.0[3,6,9] as validated versions.
Also re-format the error message because the version is not validated
per maximum basis, but rather based on existing validation.
2018-09-21 01:00:53 +03:00
Andrew Rynhard
8f6ec989e0 Create control plane with ClusterFirstWithHostNet dns policy 2018-09-20 09:51:59 -07:00
k8s-ci-robot
9d8c9cc9fe Merge pull request #68495 from yuansisi/fix-20180910
Upgrade kubeadm's version of docker support
2018-09-18 06:09:59 -07:00