Commit Graph

2420 Commits

Author SHA1 Message Date
Daniel Lipovetsky
4fe0d2107d kubeadm: Make exec error message more informative 2019-01-29 16:38:35 -08:00
Kubernetes Prow Robot
bb9a12d6f8 Merge pull request #73487 from ereslibre/phases-cleanup
kubeadm: cleanup of phases arguments
2019-01-29 15:34:30 -08:00
Lubomir I. Ivanov
52e62a73d8 kubeadm: fix missing 'all' in 'init phase control-plane' 2019-01-30 00:24:48 +02:00
Kubernetes Prow Robot
b8b689aae0 Merge pull request #72111 from rosti/reduce-initcfg
kubeadm: Reduce the usage of InitConfiguration
2019-01-29 14:01:07 -08:00
Rafael Fernández López
1bd15658f8 kubeadm: cleanup of phases arguments
* Return `nil` instead of a pointer to an empty struct when possible,
  before the pointer was introduced the empty struct was required.

* Explicitly accept only one argument maximum for `kubeadm join` as in
  `kubeadm join <master>`.

* Accept no arguments for `kubeadm init`.

* Make phases leafs accept arguments, whereas intermediate phases
  automatically gets set that they accept no arguments.
2019-01-29 22:11:59 +01:00
Andrew Kim
84191eb99b replace pkg/util/file with k8s.io/utils/path 2019-01-29 15:20:13 -05:00
Kubernetes Prow Robot
c501d464af Merge pull request #73267 from rajansandeep/proxytoforward
Use forward plugin instead of proxy plugin in the default configuration of CoreDNS
2019-01-29 11:32:28 -08:00
Kubernetes Prow Robot
5262dba064 Merge pull request #73198 from mourya007/library
Re-Organize the pkutil library
2019-01-29 01:20:42 -08:00
Rostislav M. Georgiev
80e2a3cf07 kubeadm: reduce the usage of InitConfiguration
For historical reasons InitConfiguration is used almost everywhere in kubeadm
as a carrier of various configuration components such as ClusterConfiguration,
local API server endpoint, node registration settings, etc.

Since v1alpha2, InitConfiguration is meant to be used solely as a way to supply
the kubeadm init configuration from a config file. Its usage outside of this
context is caused by technical dept, it's clunky and requires hacks to fetch a
working InitConfiguration from the cluster (as it's not stored in the config
map in its entirety).

This change is a small step towards removing all unnecessary usages of
InitConfiguration. It reduces its usage by replacing it in some places with
some of the following:

- ClusterConfiguration only.
- APIEndpoint (as local API server endpoint).
- NodeRegistrationOptions only.
- Some combinations of the above types, or if single fields from them are used,
  only those field.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-01-28 12:21:01 +02:00
Lubomir I. Ivanov
1b0ba920fe kubeadm: fix a couple of problems related to initData/joinData
Fix a couple of problems related to data used by the phases runners
of `init` and `join`.

1) make `newInitData()` and `newJoinData()` return pointers.

Methods of the data objects returned by these functions should
be able to modify fields in the data objects - e.g.
`func (d initData) Client()`. This allows us to store a state and
not execute the same logic multiple times - e.g. obtaining a client.

A side effect of this change is that the `new...` functions must return
pointers, so that casting the data object in a phase, from
`workflow.RunData` to a locally defined interface, works.

2) Make it possible to pass arguments from a parent command
to a sub-phase with regards to data initialization.
2019-01-26 18:41:19 +02:00
mourya007
7c37e91a6d Re-Organize the pkutil library 2019-01-26 14:56:36 +05:30
Kubernetes Prow Robot
a5e424dc17 Merge pull request #72923 from saschagrunert/dedent-update
Update dedent to latest release
2019-01-25 18:32:23 -08:00
Kubernetes Prow Robot
5673506540 Merge pull request #73320 from liggitt/initializer-cleanup
Clean up initializer-related comments, test data
2019-01-25 15:28:18 -08:00
Kubernetes Prow Robot
d54716338a Merge pull request #73302 from rajansandeep/prometheusport
Add metrics port to CoreDNS service
2019-01-25 12:04:37 -08:00
Kubernetes Prow Robot
c6a6c65e32 Merge pull request #73316 from rosti/fix-kubeadm-reset
kubeadm: Fix auto CRI detection in kubeadm reset
2019-01-25 10:05:22 -08:00
Jordan Liggitt
89b0b0b84b Clean up initializer-related comments, test data 2019-01-25 12:37:45 -05:00
Kubernetes Prow Robot
ce52bf1265 Merge pull request #73093 from ereslibre/verify-certificate-sans
kubeadm: verify that present certificates contain at least the required SANs
2019-01-25 08:53:08 -08:00
Rostislav M. Georgiev
873accd513 kubeadm: Fix auto CRI detection in kubeadm reset
Reversed if statement is turns off CRI detection in kubeadm reset. Trivial fix.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-01-25 17:04:43 +02:00
Sandeep Rajan
e9220dd408 add prometheus port 2019-01-25 11:29:03 +05:30
Andrew Kim
0bc5508aca replace client-go/util/integer with k8s.io/utils/integer 2019-01-24 15:34:21 -05:00
Kubernetes Prow Robot
20a11ac5cc Merge pull request #73239 from mattkelly/bugfix/kubeadm-sa-cert-dir
Add back --cert-dir option for kubeadm init phase certs sa
2019-01-24 08:45:36 -08:00
Sandeep Rajan
c346ae1e49 Use forward plugin instead of proxy in the default configuration 2019-01-24 17:28:55 +05:30
Matt Kelly
35faaab570 Add back --cert-dir option for init phase certs sa 2019-01-23 19:37:08 -05:00
Akihito INOH
4a3b990bbe Change to [bootstrap-token] in kubeadm output
In output of "kubeadm init", there are two strings for meaning of
bootstrap token which are "bootstraptoken" and "bootstrap-token".
This changes `[bootstraptoken]` to `[bootstrap-token]`.
2019-01-24 08:40:58 +09:00
Kubernetes Prow Robot
baaaa15fdf Merge pull request #69940 from MarcPow/master
Bind coredns containers to  linux nodes to avoid Windows scheduling
2019-01-23 12:19:53 -08:00
Kubernetes Prow Robot
b66e332d3c Merge pull request #69366 from rosti/cri-auto-detect
kubeadm: Detect CRIs automatically
2019-01-23 09:49:17 -08:00
RA489
5b64a98689 Stop using API server's --insecure-port 2019-01-22 17:31:39 +05:30
Rostislav M. Georgiev
f97770b175 kubeadm: Detect CRIs automatically
In order to allow for a smoother UX with CRIs different than Docker, we have to
make the --cri-socket command line flag optional when just one CRI is
installed.

This change does that by doing the following:

- Introduce a new runtime function (DetectCRISocket) that will attempt to
  detect a CRI socket, or return an appropriate error.
- Default to using the above function if --cri-socket is not specified and
  CRISocket in NodeRegistrationOptions is empty.
- Stop static defaulting to DefaultCRISocket. And rename it to
  DefaultDockerCRISocket. Its use is now narrowed to "Docker or not"
  distinguishment and tests.
- Introduce AddCRISocketFlag function that adds --cri-socket flag to a flagSet.
  Use that in all commands, that support --cri-socket.
- Remove the deprecated --cri-socket-path flag from kubeadm config images pull
  and deprecate --cri-socket in kubeadm upgrade apply.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-01-21 16:12:04 +02:00
Kubernetes Prow Robot
3ec18a5aed Merge pull request #73029 from neolit123/join-phases
kubeadm: include a phase runner for `join`
2019-01-20 10:53:47 -08:00
Kubernetes Prow Robot
3fd7187b4c Merge pull request #73059 from SataQiu/fix-20190118
Print more error details about CertSANs validation
2019-01-20 08:21:10 -08:00
Lubomir I. Ivanov
9744d40f37 kubeadm: include a phase runner for join
- add a phase runner
- expose more joinData fields and getter methods
- add TODOs
2019-01-20 16:31:13 +02:00
Rafael Fernández López
6dc6ce78d9 kubeadm: adapt timeout for new etcd member to join 2019-01-20 12:39:53 +01:00
Kubernetes Prow Robot
f2b133d7b4 Merge pull request #72984 from ereslibre/wait-for-etcd-when-growing
kubeadm: wait for the etcd cluster to be available when growing it
2019-01-19 23:57:46 -08:00
SataQiu
7bf6ff2ec1 print more error details about CertSANs validation 2019-01-20 08:42:09 +08:00
Rafael Fernández López
f22f594d34 kubeadm: verify that present certificates contain at least the required SANs
This avoids ending in a wrong cluster state by assuming that the
present certificates will work. It is specially important when we
are growing etcd from 1 member to 2, in which case in case of failure
upon joining etcd will be unavailable.
2019-01-19 16:00:19 +01:00
Rafael Fernández López
b4cb3fd37c kubeadm: wait for the etcd cluster to be available when growing it
When the etcd cluster grows we need to explicitly wait for it to be
available. This ensures that we are not implicitly doing this in
following steps when they try to access the apiserver.
2019-01-18 12:04:39 +01:00
Sascha Grunert
ba7aaa911d Update dedent to latest release
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2019-01-17 08:30:07 +01:00
Kubernetes Prow Robot
6d479af411 Merge pull request #72870 from MalloZup/fix-join-ha
Kubeadm/HA: pull images during join for control-plane
2019-01-16 04:03:20 -08:00
Kubernetes Prow Robot
69cb938a6a Merge pull request #72909 from MalloZup/minor-print
Kubeadm: Use fmt.Println instead of fmt.Printf
2019-01-15 12:53:43 -08:00
Kubernetes Prow Robot
9c48ca4899 Merge pull request #72823 from dims/bump-version-of-docker-to-18.09
Bump Docker supported version to 18.09
2019-01-15 11:45:06 -08:00
dmaiocchi
86b6bbd1b9 Pre-pull images after preflight for HA setup.
If download fails continue with a warning only
2019-01-15 16:49:31 +01:00
dmaiocchi
a7225bc15c Kubeadm: Use fmt.Println instead of fmt.Printf 2019-01-15 09:22:24 +01:00
Dmitry Rozhkov
8c87ef51b8 kubeadm: reduce variables scope and hide private funcs
This is a minor cleanup which helps to make the code of kubeadm a bit
less error-prone by reducing the scope of local variables and
unexporting functions that are not meant to be used outside of their
respective modules.
2019-01-14 15:29:42 +02:00
Davanum Srinivas
62fc6df5c2 Bump Docker supported version to 18.09
For 1.14, let's switch to latest Docker 18.09

Change-Id: Ib8d4d9dd3cb51cf4780623389a4bcb101d3c8fa7
2019-01-13 21:41:33 -05:00
Kubernetes Prow Robot
ef70b1159d Merge pull request #72442 from fabriziopandini/join-refactor
Refactor the kubeadm join command
2019-01-12 08:06:25 -08:00
Kubernetes Prow Robot
23315c8192 Merge pull request #72802 from foxyriver/dedent
format help text
2019-01-11 23:14:59 -08:00
Kubernetes Prow Robot
e44330dfab Merge pull request #72455 from rojkov/test-e2e-node-gke
e2e-node-tests: fix path to system specs
2019-01-11 03:30:37 -08:00
foxyriver
b02e1e17ec format help text 2019-01-11 10:18:56 +08:00
Dmitry Rozhkov
43fce8d6e4 e2e-node-tests: fix path to system specs
e2e-node tests may use custom system specs for validating nodes to
conform the specs. The functionality is switched on when the tests
are run with this command:

    make SYSTEM_SPEC_NAME=gke test-e2e-node

Currently the command fails with the error:

    F1228 16:12:41.568836   34514 e2e_node_suite_test.go:106] Failed to load system spec: open /home/rojkov/go/src/k8s.io/kubernetes/k8s.io/kubernetes/cmd/kubeadm/app/util/system/specs/gke.yaml: no such file or directory

Move the spec file under `test/e2e_node/system/specs` and introduce a single
public constant referring the file to use instead of multiple private constants.
2019-01-10 10:37:55 +02:00
Ed Bartosh
d91861e883 kubeadm: add front-proxy CA certificate to selfhosting controller-manager
Selfhosting pivoting fails when using --store-certs-in-secrets
as controller-manager fails to start because of missing front-proxy CA
certificate:
    unable to load client CA file: unable to load client CA file: open
    /etc/kubernetes/pki/front-proxy-ca.crt: no such file or directory

Added required certificate to fix this.

This should fix kubernetes/kubeadm#1281
2019-01-09 17:01:18 +02:00