Commit Graph

2741 Commits (k3s-v1.15.3)

Author SHA1 Message Date
Kubernetes Prow Robot 531dbd409f
Merge pull request #75445 from shinytang6/enhance/fmt
Replace all time.Now().Sub with time.Since
2019-03-26 13:55:17 -07:00
Kubernetes Prow Robot f3efd1d0b7
Merge pull request #75036 from bart0sh/PR0065-kubeadm-replace-RequiredIPVSKernelModulesAvailable-check
kubeadm: reimplement IPVS check
2019-03-25 13:24:38 -07:00
Kubernetes Prow Robot 3c9c7fca64
Merge pull request #75027 from ping035627/k8s-190306
Add some logs for kubeadm join
2019-03-25 03:23:07 -07:00
PingWang 5a8174bd45 Add some logs for kubeadm join
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2019-03-25 10:07:47 +08:00
Kubernetes Prow Robot 9c53f24012
Merge pull request #75179 from rosti/kill-v1alpha3
kubeadm: remove v1alpha3
2019-03-22 17:02:21 -07:00
aaa 867ad233c6 Replace variables 10251 and 10252 with constants
update pull request

update pull request
2019-03-22 00:27:53 -04:00
aaa 112da093ed Define common sentences as constants
update pull request

update pull request

update pull request

update pull request

update pull request

update pull request
2019-03-21 18:56:42 -04:00
aaa 5c8e550a29 Simplify two if
update pull request

update pull request

update pull request

update pull request

update pull request

update pull request
2019-03-21 18:32:00 -04:00
Kubernetes Prow Robot 0c93929298
Merge pull request #75178 from rosti/kill-commonconfig
kubeadm: Cleanup CommonConfiguration
2019-03-21 13:35:36 -07:00
Kubernetes Prow Robot ad4727440c
Merge pull request #75185 from ereslibre/certs-integration
kubeadm: add integration tests for certs transfer
2019-03-21 05:17:36 -07:00
shinytang6 5c9f4d9dc6 replace time.Now().Sub with time.Since 2019-03-21 18:02:55 +08:00
Kubernetes Prow Robot 4940eae478
Merge pull request #75521 from fabriziopandini/kubeadm-owners
Update kubeadm OWNERS file
2019-03-20 15:05:00 -07:00
fabriziopandini c799c8275f kubeadm-owners 2019-03-20 21:50:04 +01:00
Kubernetes Prow Robot b1e7c20a07
Merge pull request #75318 from ymlong/fix-20190313
Correcting a spelling error
2019-03-20 09:53:24 -07:00
Kubernetes Prow Robot 30071b31c7
Merge pull request #75261 from rosti/fix-fuzzer-cri
kubeadm: Fix fuzzer test for NodeRegistrationOptions
2019-03-20 05:25:05 -07:00
Kubernetes Prow Robot cad1b4dbac
Merge pull request #75252 from d-kuro/feature/fix-typo
Fixed typo
2019-03-20 05:24:49 -07:00
Kubernetes Prow Robot 5e90834abe
Merge pull request #75102 from qingsenLi/k8s190307-fix-typo
fix a typo
2019-03-20 00:54:23 -07:00
Kubernetes Prow Robot 16b5f7d3c5
Merge pull request #67487 from tianshapjq/validate-system-kube-reserved
validate systemReservedCgroup and kubeReservedCgroup
2019-03-19 21:26:22 -07:00
Kubernetes Prow Robot c7e56c7ea1
Merge pull request #74719 from vaamarnath/refactor-dir-create-for-dry-runs
kubeadm: refactored directory fetch code
2019-03-19 20:15:20 -07:00
Marques Johansson 10102cef3c Restore machine readability to the print-join-command output
The output of `kubeadm token create --print-join-command` should be
usable by batch scripts. This issue was pointed out in:

https://github.com/kubernetes/kubeadm/issues/1454
2019-03-19 17:50:04 -04:00
Kubernetes Prow Robot b61baea135
Merge pull request #75420 from fabriziopandini/fix-kubeadm-init-output
fix kubeadm init output
2019-03-18 06:07:11 -07:00
fabriziopandini fcadf143a5 fix-kubeadm-init-output 2019-03-18 12:52:41 +01:00
Kubernetes Prow Robot ebea037729
Merge pull request #75431 from fabriziopandini/fix-external-ca
fix kubeadm external CA Mode
2019-03-17 06:28:56 -07:00
fabriziopandini ff072aa639 fix-external-ca 2019-03-17 13:03:40 +01:00
Kubernetes Prow Robot fe8b1e24ee
Merge pull request #75425 from liggitt/kubeadm-insecure-port
Kubeadm insecure port
2019-03-16 17:24:55 -07:00
Jordan Liggitt d4591ea324 Revert "Stop using API server's `--insecure-port`"
This reverts commit 5b64a98689.
2019-03-16 16:24:49 -04:00
Kubernetes Prow Robot 1a24040447
Merge pull request #74781 from liggitt/http2-watch
kubelet watch-manager test, restore watch-based manager default
2019-03-16 12:52:56 -07:00
Rafael Fernández López bc26c69b61
kubeadm: Allow certain certs/keys to be missing on the secret.
Under certain circumstances, specially when using an insecure external
etcd cluster (no certificates), or when using external certificates (
no CA key), some keys inside the kubeadm-certs secret data can contain
the key with an empty value on the map.

When downloading certs just ignore those that are blank and inform the
user about it.
2019-03-15 23:34:17 +01:00
Ed Bartosh 2914171ed4 kubeadm: reimplement IPVS check
Used existing IPVS Proxier API CanUseIPVSProxier instead
of custom implementation.

Fixes kubernetes/kubeadm#975
2019-03-14 16:52:21 +02:00
RA489 8bcc82a9e4 Rename RunPullImagesCheck to PullControlPlaneImages 2019-03-14 15:37:38 +05:30
Jordan Liggitt f2a0c0342c Revert "Revert kubelet to default to ttl cache secret/configmap behavior"
This reverts commit cd1c9f9018.
2019-03-13 15:12:26 -07:00
Amarnath be8d1c24f1 kubeadm: refactored directory fetch code 2019-03-13 18:28:53 +05:30
ymlong 8be2a4c9f6 Correcting a spelling error 2019-03-13 11:15:50 +08:00
Kubernetes Prow Robot 50bf223a05
Merge pull request #75224 from neolit123/certs-print-key-on-phase
kubeadm: print key inside the upload-certs phase of init
2019-03-11 12:00:15 -07:00
Rafael Fernández López 8737720a7d
kubeadm: add integration tests for certs transfer
* Upload certificates: generate certificates and check that the kubeadm-certs
  secret is populated with the expected contents.

* Download certificates: given we have a kubeadm-certs secret, ensure that
  keys and certificates are copied on the expected target, and that depending
  on the secret nature they have the expected permissions.
2019-03-11 16:27:37 +01:00
Rostislav M. Georgiev 2c4a3ae24c kubeadm: Fix fuzzer test for NodeRegistrationOptions
The fuzzer test for NodeRegistrationOptions is defaulting the CRISocket member.
This is a left over from the times this member was statically defaulted in the
config. Now that the member is dynamically defaulted, setting CRISocket to foo
can cause issues to get undetected by the fuzzer test with this member.

The resolution is to stop setting CRISocket in the fuzzer test.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-03-11 14:09:53 +02:00
d-kuro 4f301cc97a
Fix typo 2019-03-11 13:12:46 +09:00
Lubomir I. Ivanov c5c4cd2580 kubeadm: print key inside the upload-certs phase of init
The standalone execution of upload-certs phase does not print
the key that that user should use for the newly uploaded encrypted
secret. Print this key in the upload-certs phase in both
standalone mode or if executed in the standard init workflow.

Make it possible to omit the printing if the user passes
--skip-certificate-key-print.

Also:
- Uppercase string in Printf call in copycerts.go
- Don't use V(1) for the "Skipping phase" message in uploadcerts.go
instead always print a message that the user case use
--experimental-upload-certs. This solves a problem if the user tried
the standalone phase but didn't pass --experimental-upload-certs.
2019-03-10 19:13:06 +02:00
Rafael Fernández López b57c8e2c45
kubeadm: fix join message if kubeadm-certs secret is not present
`kubeadm init phase upload-certs` requires --experimental-upload-certs
argument. Make this explicit in the error if the secret is missing.
2019-03-08 22:34:11 +01:00
Rostislav M. Georgiev 36783eb88b kubeadm: remove v1alpha3
Remove deprecated old v1alpha3 kubeadm config.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-03-08 14:54:51 +02:00
Rostislav M. Georgiev 4567e7e79e kubeadm: Cleanup CommonConfiguration
CommonConfiguration is an interface, that aims at abstracting common
configuration of InitConfiguration and JoinConfiguration. It was never widely
used and never got too much functionality attached to it. With recent
developments in the kubeadm config field, it got even more out of touch with
reality and where things are going.
Thus, the only viable solution is to remove it completely.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-03-08 14:45:30 +02:00
qingsenLi 55d34ac97e fix a typo 2019-03-08 04:05:49 +08:00
Kubernetes Prow Robot f0418ac3c2
Merge pull request #75082 from neolit123/reset-clean-status
kubeadm-reset: add means to clear the ClusterStatus
2019-03-07 05:15:02 -08:00
Marek Counts a9eea0a353 kubeadm-reset: add means to clear the ClusterStatus
Add ResetClusterStatusForNode() that clears a certain
control-plane node's APIEndpoint from the ClusterStatus
key in the kubeadm ConfigMap on "kubeadm reset".
2019-03-07 04:03:19 +02:00
Timothy St. Clair ef31616e45 Revert "Merge pull request #74628 from hpandeycodeit/alpha_kubeconf"
This reverts commit 7053e43b2e, reversing
changes made to d58ff3bfc0.
2019-03-06 14:07:15 -06:00
Kubernetes Prow Robot c360bac6e2
Merge pull request #75032 from rosti/win-test
kubeadm: Don't hardcode temp path in a test
2019-03-06 09:51:15 -08:00
Kubernetes Prow Robot 0e2c26829c
Merge pull request #75013 from neolit123/fix-join-flags
kubeadm: amend flags for join phases
2019-03-06 09:51:04 -08:00
Kubernetes Prow Robot 5ff303000a
Merge pull request #72685 from yagonobre/bump-minimum
Bump minimum kubeadm supported version to v1.13
2019-03-06 08:24:10 -08:00
Rostislav M. Georgiev 5a3b1a0c7c kubeadm: Don't hardcode temp path in a test
Hardcoding a temp path of /tmp/... is not portable and can potentially cause
other issues (such as flakyness) too.
Use TempFile instead.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-03-06 12:27:31 +02:00
Kubernetes Prow Robot e15ebcd632
Merge pull request #74952 from ping035627/k8s-190305
Fix some typos
2019-03-06 02:08:02 -08:00
Kubernetes Prow Robot d7971e24f3
Merge pull request #74870 from neolit123/fix-join-phase
kubeadm: update output of init, join reset commands
2019-03-06 00:44:38 -08:00
Kubernetes Prow Robot 2b63efcd3e
Merge pull request #74671 from yagonobre/certificate-key
Add certificate-key to kubeadm upload-certs phase, and improve init output
2019-03-05 21:42:32 -08:00
Lubomir I. Ivanov 3e151ab546 kubeadm: amend flags for join phases
Certain join phases have flags that are redundant:
- getControlPlanePreparePhaseFlags():
  - amend flags (use switch / case)
  - add example for the parent command
  - rename internal function and sub-phase "manifests"
    to "control-plane"
- getControlPlaneJoinPhaseFlags():
  - amend flags
  - remove MacroCommandLongDescription
2019-03-06 04:59:35 +02:00
Yago Nobre 59d2f13850
Bump minimum kubeadm supported version to v1.12 2019-03-05 23:45:17 -03:00
Lubomir I. Ivanov 6f6b364b9c kubeadm: update output of init, join reset commands
- move most unrelated to phases output to klog.V(1)
- rename some prefixes for consistency - e.g.
[kubelet] -> [kubelet-start]
- control-plane-prepare: print details for each generated CP
component manifest.
- uppercase the info text for all "[reset].." lines
- modify the text for one line in reset
2019-03-06 03:17:35 +02:00
Yago Nobre b1936853c4
Add certificate-key to kubeadm init upload-certs phase, and improve init output 2019-03-05 14:35:52 -03:00
PingWang 55dac4804f Fix some typos
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2019-03-05 17:58:09 +08:00
Lubomir I. Ivanov af9e3fcfaa kubeadm: add a flag to RunInitNodeChecks to indicate sec. control-plane
Add an extra flag isSecondaryControlPlane to RunInitNodeChecks
which can be used to indicate that the node we are checking is
a secondary control-plane. In such a case we skip some tests
that are already covered by  RunJoinNodeChecks and
RunOptionalJoinNodeChecks.
2019-03-05 02:44:30 +02:00
Lubomir I. Ivanov 269a07c077 kubeadm-reset: fetch init config only if client is non-nil 2019-03-04 04:14:51 +02:00
Kubernetes Prow Robot 37f0138278
Merge pull request #71874 from neolit123/fix-kubeconfig-path
kubeadm: use DefValue for the --kubeconfig flag
2019-03-03 17:28:44 -08:00
Kubernetes Prow Robot 1f6ea0455b
Merge pull request #74780 from pytimer/kubeadm-reduce
kubeadm: reduce some functions number of parameters
2019-03-03 04:23:24 -08:00
pytimer f600348006 kubeadm: reduce some functions number of parameters 2019-03-03 15:16:19 +08:00
fabriziopandini a3ed9f0c2c join-phases-texts 2019-03-02 21:52:04 +01:00
Kubernetes Prow Robot e1b79abfec
Merge pull request #74831 from fabriziopandini/remove-discovery-flags
Remove discovery flags from kubeadm join phases (when possible)
2019-03-02 11:16:12 -08:00
fabriziopandini 5ecd74afbe remove-discovery-flags 2019-03-02 18:31:32 +01:00
Kubernetes Prow Robot d8d260a09d
Merge pull request #74755 from liggitt/kubelet-watch
Revert kubelet to default to ttl cache secret/configmap behavior
2019-03-01 19:14:14 -08:00
Kubernetes Prow Robot fc30b38021
Merge pull request #74756 from fabriziopandini/cleanup-join-phases
Cleanup join data struct
2019-03-01 14:08:58 -08:00
Kubernetes Prow Robot 098075c458
Merge pull request #74797 from fabriziopandini/fix-go-vet-1.12
kubeadm fix for go vet 1.12
2019-03-01 12:49:18 -08:00
fabriziopandini d0d843c588 fix-go-vet-1.12 2019-03-01 15:13:17 +01:00
peibingit d41ad755c1
Update types.go 2019-03-01 12:03:12 +08:00
Kubernetes Prow Robot 9fd7a4c2dc
Merge pull request #74751 from fabriziopandini/cleanup-join-phases-flags
cleanup-join-phases-flags
2019-02-28 17:52:30 -08:00
Jordan Liggitt cd1c9f9018 Revert kubelet to default to ttl cache secret/configmap behavior 2019-02-28 17:54:22 -05:00
fabriziopandini 4c27d6a213 cleanup-join-phases 2019-02-28 23:37:25 +01:00
fabriziopandini d102dac411 cleanup-join-phases-flags 2019-02-28 22:25:35 +01:00
Dmitry Rozhkov bb8f4ac84f kubeadm: use Infoln instead of Infof where appropriate 2019-02-28 16:12:34 +02:00
Kubernetes Prow Robot 83fc13e640
Merge pull request #74511 from rojkov/kubeadm-refactor-enforceRequirements
kubeadm: move duplicated code into enforceRequirements()
2019-02-28 03:06:57 -08:00
Kubernetes Prow Robot 7053e43b2e
Merge pull request #74628 from hpandeycodeit/alpha_kubeconf
Removed alpha kubeconfig command
2019-02-27 14:40:16 -08:00
Himanshu Pandey 94b5945d53 Removed alpha kubeconfig command 2019-02-27 10:08:42 -08:00
Kubernetes Prow Robot 86c274043a
Merge pull request #74630 from xichengliudui/fixleftoverproblem
Fix the legacy of #74479
2019-02-26 19:40:36 -08:00
Kubernetes Prow Robot c6b2a87cdb
Merge pull request #74168 from ereslibre/join-download-certs
kubeadm: Join download certs
2019-02-26 16:50:24 -08:00
Kubernetes Prow Robot e64336e94b
Merge pull request #74590 from vanduc95/cleanup-kubeadm-cont.6-20190226
kubeadm cleanup: master -> control-plane (cont.6)
2019-02-26 15:30:03 -08:00
Rafael Fernández López d30b14d586
kubeadm: Implement certificate download for join
This implements the certificate download for the join process. If certificates
have been uploaded during init (or explicitly on any master node) and the secret
is still present in the cluster, the join process will try to download the secret
data, decrypting it with the provided key in the new `--certificate-key` flag.
2019-02-26 22:00:11 +01:00
Kubernetes Prow Robot d476f20d79
Merge pull request #74479 from ping035627/k8s-190223
Add port constants
2019-02-26 12:44:47 -08:00
Kubernetes Prow Robot be8a9b9637
Merge pull request #74422 from liggitt/client-version-methods
Remove deprecated versionless client interface methods
2019-02-26 12:44:24 -08:00
Kubernetes Prow Robot c487757e88
Merge pull request #74410 from pytimer/kubeadm-fix
kubeadm: reduce the number of fetch configuration when reset
2019-02-26 12:44:14 -08:00
Kubernetes Prow Robot 6de09f69cb
Merge pull request #74584 from cqy0532/fixtypo
fix typo kubeadm joiń -> kubeadm join
2019-02-26 06:38:34 -08:00
Jordan Liggitt d1e865ee34 Update client callers to use explicit versions 2019-02-26 08:36:30 -05:00
vanduc95 3759fcd4c8 kubeadm cleanup: master -> control-plane (cont.6) 2019-02-26 18:42:27 +07:00
pytimer 3306efd619 kubeadm: reduce the number of fetch configuration when reset 2019-02-26 19:40:42 +08:00
Kubernetes Prow Robot 465f7ebf43
Merge pull request #74557 from vanduc95/cleanup-kubeadm-cont.5-20190225
kubeadm cleanup: master -> control-plane (cont.5)
2019-02-26 03:10:20 -08:00
cqy0532 0a0fea60a0 fix typo kubeadm joiń -> kubeadm join 2019-02-26 17:26:41 +08:00
Kubernetes Prow Robot 4e8e3c2f02
Merge pull request #74559 from zhouxiaoninga/fixtypes
Fix typo joiń -> join
2019-02-25 23:12:11 -08:00
Kubernetes Prow Robot 8326ea71a3
Merge pull request #74403 from ping035627/k8s-190222
Code cleanup and refactoring
2019-02-25 20:28:09 -08:00
vanduc95 0296cfb2b8 kubeadm cleanup: master -> control-plane (cont.5) 2019-02-26 09:04:54 +07:00
PingWang 1a439cc646 Add port constants
Signed-off-by: PingWang <wang.ping5@zte.com.cn>

use pkg/master/ports constants

Signed-off-by: PingWang <wang.ping5@zte.com.cn>

update-bazel

Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2019-02-26 09:18:15 +08:00
zhouxiaoning 802c751053 纠正join 2019-02-26 09:10:00 +08:00
Lubomir I. Ivanov de5e17e6c3 kubeadm/phases: use common interfaces for init and join phases
The custom sub-set interfaces in init/join phases as a pattern
have isolation benefits - e.g. when a consumer imports these
but we don't want them to be able to call all methods from
the original object that satisfies a complete interface.

On the other hand these sub-set interfaces under phases/init
and phases/join are private.

Expose a couple of new common interfaces:
- InitData from phases/init/data.go
- JoinData from phases/join/data.go

Use these interfaces in init/join phases accordingly instead
of the sub-set interfaces.

Use compile-time type assertion to verify that these
interfaces can be satisfied by init.go's initData and
join.go's joinData.

Add NO-OP objects called testInitData and joinInitData
that can be used for unit testing if embedded.
2019-02-26 02:23:50 +02:00
Kubernetes Prow Robot 4b8ecd68f3
Merge pull request #74509 from ping035627/k8s-190225-1
Fix typos
2019-02-25 15:15:51 -08:00
Kubernetes Prow Robot b22da83307
Merge pull request #74473 from vanduc95/cleanup-kubeadm-cont.4-20190223
kubeadm cleanup: master -> control-plane (cont.4)
2019-02-25 15:15:30 -08:00
Dmitry Rozhkov 226843fe28 kubeadm: move duplicated code into enforceRequirements()
and to a new function getK8sVersionFromUserInput().

Also drop applyPlanFlags.ignorePreflightErrorsSet field which is not
a command line option.
2019-02-25 16:26:20 +02:00
PingWang 88d6e89279 Fix typos
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2019-02-25 17:12:44 +08:00
RA489 a0ee4b471d Refactor etcd client function have same signatures in etcd.go 2019-02-25 12:54:12 +05:30
ducnv e11916da8e kubeadm cleanup: master -> control-plane (cont.4) 2019-02-25 08:29:19 +07:00
Kubernetes Prow Robot 5312ade3d1
Merge pull request #74457 from neolit123/fix-kubeproxy-winkernel
kubeadm: fix issue with missing kubeproxy fields in test data
2019-02-23 14:05:15 -08:00
Lubomir I. Ivanov b2cc473388 kubeadm: fix issue with missing kubeproxy fields in test data 2019-02-23 19:13:16 +02:00
Ed Bartosh f8d235be9e kubeadm: fix url validation code
Fixed nil pointer dereference in url validation code that
caused kubeamd panic:

  panic: runtime error: invalid memory address or nil pointer dereference
  [signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0xa7930c]

  goroutine 1 [running]:
  kubeadm/validation.ValidateURLs(0x40000bafe0, 0x2, 0x2, 0x1, 0x40002967b0, 0x0, 0x40002967b0, 0xf302a0)
    kubeadm/validation/validation.go:324 +0xcc
  kubeadm/validation.ValidateEtcd(0x400000b490, 0x4000296720, 0x0, 0x0, 0x0)
    kubeadm/validation/validation.go:291 +0x1f0
      ...

Fixes: kubernetes/kubeadm#1419

Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
2019-02-23 16:48:22 +01:00
Kubernetes Prow Robot 8993fbc543
Merge pull request #74328 from daixiang0/delete-blank
delete all duplicate empty blanks
2019-02-23 01:43:58 -08:00
Kubernetes Prow Robot b5566c7818
Merge pull request #71896 from awly/client-go-keyutil
client-go: extract new keyutil package from util/cert
2019-02-23 01:43:16 -08:00
Kubernetes Prow Robot 1d2d2d0ab2
Merge pull request #74390 from vanduc95/cleanup-kubeadm-cont.3-20190222
kubeadm cleanup: master -> control-plane (cont.3)
2019-02-22 23:27:40 -08:00
Kubernetes Prow Robot e4302c96e1
Merge pull request #74428 from bart0sh/PR0063-kubeadm-remove-dead-code
kubeadm: remove dead code
2019-02-22 19:19:27 -08:00
vanduc95 57d04cafee kubeadm cleanup: master -> control-plane (cont.3) 2019-02-23 10:19:26 +07:00
Kubernetes Prow Robot 65cdd7e74a
Merge pull request #74400 from rojkov/kubeadm-refactor-etcdClient
kubeadm: simplify creating etcdClient
2019-02-22 19:19:16 -08:00
Xiang Dai 36065c6dd7 delete all duplicate empty blanks
Signed-off-by: Xiang Dai <764524258@qq.com>
2019-02-23 10:28:04 +08:00
Ed Bartosh 39871f565d kubeadm: remove dead code
Removed unused functions and variables from
the kubeadm codebase.
2019-02-22 23:01:14 +01:00
PingWang 8fef7221a1 Code cleanup and refactoring
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2019-02-22 16:48:00 +08:00
Kubernetes Prow Robot 9e53b85d28
Merge pull request #74112 from pytimer/kubeadm-reset
kubeadm: Remove etcd members from the etcd cluster when reset the nodes
2019-02-22 00:19:40 -08:00
Dmitry Rozhkov 926d9012a4 kubeadm: simplify creating etcdClient
There is no need to overshadow `client` with a transitive variable
used solely for transfering its value to `etcdClient`.
2019-02-22 09:41:46 +02:00
Kubernetes Prow Robot 9dbc8912d9
Merge pull request #74355 from brb/kubeadm-support-kernel-5
kubeadm: Support >= 5.0 Linux kernel
2019-02-21 17:47:40 -08:00
pytimer 83f5296a14 kubeadm: Remove etcd member from the etcd cluster when reset the control plane node 2019-02-22 09:13:01 +08:00
Kubernetes Prow Robot 739af85d7a
Merge pull request #74064 from vanduc95/cleanup-kubeadm-cont.2-20190214
kubeadm cleanup: master -> control-plane (cont.2)
2019-02-21 10:43:07 -08:00
Martynas Pumputis 148b222d97 kubeadm: Support >= 5.0 Linux Kernel
Signed-off-by: Martynas Pumputis <m@lambda.lt>
2019-02-21 17:31:15 +01:00
Kubernetes Prow Robot 62ba022249
Merge pull request #74329 from ping035627/k8s-190221
Delete unuse const and fix some typos
2019-02-21 08:04:10 -08:00
Kubernetes Prow Robot 2721ca28ee
Merge pull request #74256 from rojkov/kubeadm-refactor-drop-newK8sVersionStr
kubeadm: drop applyFlags.newK8sVersionStr field
2019-02-21 08:03:58 -08:00
PingWang ac132aae60 Delete unuse const and fix some typos
Signed-off-by: PingWang <wang.ping5@zte.com.cn>
2019-02-21 11:09:09 +08:00
vanduc95 ae1ec8826a kubeadm cleanup: master -> control-plane (cont.2) 2019-02-21 10:02:24 +07:00
xichengliudui fb7bc5c4ea Fix the legacy of #74479 2019-02-20 17:09:30 -05:00
Kubernetes Prow Robot c06ca11b5d
Merge pull request #70896 from ksubrmnn/overlay_dsr
Adding Windows Overlay support to Kube Proxy
2019-02-20 12:53:13 -08:00
Kubernetes Prow Robot b4a2b63561
Merge pull request #73907 from yagonobre/init-upload-certs
Add kubeadm init upload encrypted certs phase
2019-02-20 11:33:44 -08:00
Kubernetes Prow Robot b0f6857f92
Merge pull request #74277 from neolit123/fix-join-phase
kubeadm/join: expose the KubeConfigPath() method to joinData
2019-02-20 07:44:57 -08:00
Lubomir I. Ivanov 5db0c61788 kubeadm/join: expose the KubeConfigPath() method to joinData
This fixes the following error:
"error execution phase control-plane-join/etcd:
control-plane-join phase invoked with an invalid data struct"

The problem here is that joinData cannot be type-asserted
to the interface type under controlplanejoin.go (controlPlaneJoinData)
because joinData lacks KubeConfigPath.

Given we use KubeConfigPath in more than one place for join
it makes sense to define define the method and make it return:
kubeadmconstants.GetAdminKubeConfigPath()
2019-02-20 14:17:53 +02:00
Kubernetes Prow Robot 7b203c6809
Merge pull request #74137 from rajansandeep/readinessprobe
Add readinessProbe to CoreDNS
2019-02-19 16:24:04 -08:00
Kubernetes Prow Robot 2911e86e0e
Merge pull request #73452 from RA489/graduate-control-plane-join-phase
kubeadm: graduate control plane join phase
2019-02-19 09:55:23 -08:00
Andrew Lytvynov 18458392ca Extract new keyutil package from client-go/util/cert
This package contains public/private key utilities copied directly from
client-go/util/cert. All imports were updated.

Future PRs will actually refactor the libraries.

Updates #71004
2019-02-19 09:48:59 -08:00
Kubernetes Prow Robot cd07a336f1
Merge pull request #73775 from yagonobre/init-certs
Remove todos from init upload certs
2019-02-19 08:37:18 -08:00
Lubomir I. Ivanov 363c778d45 kubeadm: use DefValue for the --kubeconfig flag
- Rename FindExistingKubeConfig to GetKubeConfigPath

- Cobra supports a DefValue option which can be used
to differentiate between the cases where the user set a flag
and when a flag was unset, while still adding a default value.
Use this in options/generic.go for the kubeconfig flag.

- Remove the GetKubeConfigPath() logic from `reset` and `upgrade`
as these are node level kubeadm commands.

- Default kubeconfig values to "" everywhere where GetKubeConfigPath
is used. This allows to search for existing kubeconfig locations.
2019-02-19 17:35:37 +02:00
Sandeep Rajan 37c3d68a91 Add readinessProbe 2019-02-19 10:14:12 -05:00
Dmitry Rozhkov 45ed7ae051 kubeadm: drop applyFlags.newK8sVersionStr field
The structure `applyFlags` is meant to keep a user's
input from command line and as such should be immutable.

Use either a variable or the validated `InitConfig.KubernetesVersion`
field instead.
2019-02-19 15:42:32 +02:00
Rostislav M. Georgiev f64baf755e kubeadm: Don't load deprecated configs
Currently kubeadm supports a couple of configuration versions - v1alpha3 and
v1beta1. The former is deprecated, but still supported.

To discourage users from using it and to speedup conversion to newer versions,
we disable the loading of deprecated configurations by all kubeadm
sub-commands, but "kubeadm config migrate".

v1alpha3 is still present and supported at source level, but cannot be used
directly with kubeadm and some of its internal APIs.

The added benefit to this is, that users won't need to lookup for an old
kubeadm binary after upgrade, just because they were stuck with a deprecated
config version for too long.

To achieve this, the following was done:

- ValidateSupportedVersion now has an allowDeprecated boolean parameter, that
  controls if the function should return an error upon detecting deprecated
  config version. Currently the only deprecated version is v1alpha3.

- ValidateSupportedVersion is made package private, because it's not used
  outside of the package anyway.

- BytesToInitConfiguration and LoadJoinConfigurationFromFile are modified to
  disallow loading of deprecated kubeadm config versions. An error message,
  that points users to kubeadm config migrate is returned.

- MigrateOldConfig is still allowed to load deprecated kubeadm config versions.

- A bunch of tests were fixed to not expect success if v1alpha3 config is
  supplied.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-02-19 12:27:39 +02:00
Yago Nobre 79fd5f25a7 Add kubeadm init upload encrypted certs phase 2019-02-19 02:52:21 -03:00
RA489 6bbed9fef0 kubeadm: graduate control plane join phase 2019-02-19 11:09:00 +05:30
Yago Nobre 3a6c80c372 Remove todos from init certs phase 2019-02-18 21:33:19 -03:00
Kubernetes Prow Robot 9891824352
Merge pull request #74212 from rojkov/kubeadm-drop-applyFlags-newK8sVersion
kubeadm: drop applyFlags.newK8sVersion field
2019-02-18 10:37:42 -08:00
Kubernetes Prow Robot c923a68470
Merge pull request #74024 from rosti/optimize-config-migrate
kubeadm: Replace MigrateOldConfigFromFile
2019-02-18 10:37:32 -08:00
Dmitry Rozhkov a49dc107a3 kubeadm: drop applyFlags.newK8sVersion field
since it's not a command line flag. Use a variable instead.
2019-02-18 17:04:30 +02:00
Dmitry Rozhkov 193d0f21c4 kubeadm: use non-formatting constructor for new error 2019-02-18 09:51:53 +02:00
Kubernetes Prow Robot 16e08f3e53
Merge pull request #73408 from Klaven/component-base-flags
Move flag util pkgs to k8s.io/component-base/cli
2019-02-15 16:46:08 -08:00
Kubernetes Prow Robot f47fbbfd32
Merge pull request #74131 from rojkov/kubeadm-refactor-SessionIsInteractive
kubeadm: unhide the logic for non-interactiveness
2019-02-15 14:05:30 -08:00
Kubernetes Prow Robot 256106e5d1
Merge pull request #74053 from SataQiu/fix-golint-20190214
Fix golint failures on cmd/kubeadm/app/util/config
2019-02-15 12:43:45 -08:00
Kubernetes Prow Robot 07da603b59
Merge pull request #74054 from vanduc95/cleanup-kubeadm-20190214
kubeadm cleanup: master -> control-plane (cont.1)
2019-02-15 07:53:15 -08:00
Marek Counts 160ed26c20 autogen files to support new project structure. 2019-02-15 10:29:31 -05:00
Marek Counts 7744f90830 Moved flag and globalflag
Moved all flag code from `staging/src/k8s.io/apiserver/pkg/util/[flag|globalflag]` to `component-base/cli/[flag|globalflag]` except for the term function because of unwanted dependencies.
2019-02-15 10:28:13 -05:00
Dmitry Rozhkov 339a9c1c1b kubeadm: unhide the logic for non-interactiveness
Currently we maintain the state of the mode of interactiveness
by updating flags.nonInteractiveMode even if the flag hasn't been
set by the user.

Since the computation of the mode is done only once it's easier
and less error prone to calculate the mode in the function
sessionIsInteractive() without mutating any flags.
2019-02-15 14:37:27 +02:00
Kubernetes Prow Robot b6ca168911
Merge pull request #74072 from bart0sh/PR0061-kubeadm-fix-failed-to-load-admin-kubeconfig
kubeadm: fix kubeadm reset logic
2019-02-14 17:05:41 -08:00
vanduc95 46247b2c93 kubeadm cleanup: master -> control-plane (cont.) 2019-02-15 06:49:31 +07:00
Kubernetes Prow Robot 08d0522730
Merge pull request #73844 from rojkov/kubeadm-restructure-upgradeVariables
kubeadm: restructure upgradeVariables
2019-02-14 07:25:36 -08:00
Ed Bartosh 7a8de82dfd kubeadm: fix kubeadm reset logic
If /etc/kubeadm/amdin.conf doesn't exist kubeadm reset fails
with the error:
    failed to load admin kubeconfig: open /root/.kube/config: no such file or directory

Fixed by properly checking if file exists before using it.
2019-02-14 12:57:25 +02:00
Rostislav M. Georgiev f73ac0da3e kubeadm: Replace MigrateOldConfigFromFile
MigrateOldConfigFromFile is a function, whose purpose is to migrate one config
into another. It is working OK for now, but it has some issues:

- It is incredibly inefficient. It can reload and re-parse a single config file
  for up to 3 times.

- Because of the reloads, it has to take a file containing the configuration
  (not a byte slice as most of the rest config functions). However, it returns
  the migrated config in a byte slice (rather asymmetric from the input
  method).

- Due to the above points it's difficult to implement a proper interface for
  deprecated kubeadm config versions.

To fix the issues of MigrateOldConfigFromFile, the following is done:

- Re-implement the function by removing the calls to file loading package
  public APIs and replacing them with newly extracted package private APIs that
  do the job with pre-provided input data in the form of
  map[GroupVersionKind][]byte.

- Take a byte slice of the input configuration as an argument. This makes the
  function input symmetric to its output. Also, it's now renamed to
  MigrateOldConfig to represent the change from config file path as an input
  to byte slice.

- As a bonus (actually forgotten from a previous change) BytesToInternalConfig
  is renamed to the more descriptive BytesToInitConfiguration.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-02-14 11:52:33 +02:00
Kubernetes Prow Robot 30c7df5cd8
Merge pull request #73987 from vanduc95/cleanup-kubeadm-20190213
kubeadm cleanup: master -> control-plane
2019-02-13 23:07:11 -08:00
Kubernetes Prow Robot d01b01beb2
Merge pull request #74032 from tedyu/master
Use Set to check whether flag name is allowed flag
2019-02-13 20:33:17 -08:00
Kubernetes Prow Robot 5b600c5ce3
Merge pull request #73988 from SataQiu/kubeadm-cleanup-20190213
kubeadm cleanup: master -> control-plane :)
2019-02-13 20:32:57 -08:00
SataQiu 19c7f4cb0b fix golint failures on cmd/kubeadm/app/util/config 2019-02-14 12:11:24 +08:00
vanduc95 0e8941f7ec kubeadm cleanup: master -> control-plane 2019-02-14 09:18:42 +07:00
Ted Yu 71134a0d05 Use Set to check whether flag name is allowed flag
Signed-off-by: Ted Yu <yute@vmware.com>
2019-02-13 13:01:21 -08:00
Kubernetes Prow Robot 07428f7e5d
Merge pull request #73992 from SataQiu/golint-fix-20190213
Fix golint failures on cmd/kubeadm/app
2019-02-13 12:16:20 -08:00
Kubernetes Prow Robot a20c186d80
Merge pull request #73942 from rumshenoy/cleanup_constants
Move all constants to a single `const (`
2019-02-13 10:59:53 -08:00
Kubernetes Prow Robot 2bfbbc3141
Merge pull request #73998 from yagonobre/fix-mixed-args
Allow the usage of --kubeconfig-dir and --config flags on kubeadm init
2019-02-13 09:45:28 -08:00
SataQiu 7edea2b77f kubeadm cleanup: master -> control-plane 2019-02-13 23:13:31 +08:00
Yago Nobre 277dfbbdeb Add --kubeconfig-dir to validate mixed arguments whitelist, and refactor ValidateMixedArguments 2019-02-13 04:06:26 -02:00
SataQiu a957c83181 fix golint failures on cmd/kubeadm/app 2019-02-13 12:02:28 +08:00
Kubernetes Prow Robot 2981fb7a01
Merge pull request #73950 from SataQiu/cleanup-kubeadm-20190212
kubeadm cleanup: master -> control-plane
2019-02-12 12:40:11 -08:00
Kubernetes Prow Robot 51f5164f89
Merge pull request #73945 from neolit123/kubeadm-tests-non-linux
kubeadm: remove nodefs.inodesFree test defaulting on non-Linux
2019-02-12 12:40:01 -08:00
Ramya Shenoy 26392c0acd Move all constants to a single `const (`
[#1400]
2019-02-12 09:52:11 -08:00
Rafael Fernández López 30dc43ff86
kubeadm: set priority class name to `system-cluster-critical` for all master components
Remove the deprecated `scheduler.alpha.kubernetes.io/critical-pod` pod annotation and use
the `priorityClassName` first class attribute instead, setting all master components to
`system-cluster-critical`.
2019-02-12 17:50:36 +01:00
Lubomir I. Ivanov 19e89c32f5 kubeadm: remove nodefs.inodesFree test defaulting on non-Linux
Add test files that exclude the field in question
under KubeletConfiguration -> evictionHard for non-Linux.

Add runtime abstraction for the test files in initconfiguration_tests.go
2019-02-12 14:19:47 +02:00
SataQiu ab9709ff70 kubeadm cleanup: master -> control-plane 2019-02-12 17:31:35 +08:00
Rostislav M. Georgiev 0dfc1d6ded kubeadm: Don't dump backtrace on reset
The current code logs an error and full blown backtrace if we fail to remove
the containers upon reset. This creates unneeded, huge and rather scary log
message. Fix that by leaving just the error message.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-02-12 11:24:11 +02:00
Kubernetes Prow Robot aa00afe231
Merge pull request #73649 from ojmhetar/coredns-priorityclass
Add priority class to CoreDNS pods
2019-02-11 22:55:45 -08:00
Davanum Srinivas 1d430a4a73
Remove unnecessary prefixes from various .import-restrictions files
Found using script:
https://gist.github.com/dims/384dea60754042f61d79233603034038

Just run using:
`find . -name .import-restrictions | xargs python ~/junk/sanitize-import-boss.py`

The removed entries are either packages that got moved/renamed/deleted
but are still not cleaned up from .import-restrictions files.

Change-Id: I92c400f74e6f012cc75539311ed4de280e25e918
2019-02-11 16:47:28 -05:00
Rostislav M. Georgiev 51197e4393 kubeadm: Refactor InitConfiguration init APIs
Currently ConfigFileAndDefaultsToInternalConfig and
FetchConfigFromFileOrCluster are used to default and load InitConfiguration
from file or cluster. These two APIs do a couple of completely separate things
depending on how they were invoked. In the case of

ConfigFileAndDefaultsToInternalConfig, an InitConfiguration could be either
defaulted with external override parameters, or loaded from file.
With FetchConfigFromFileOrCluster an InitConfiguration is either loaded from
file or from the config map in the cluster.

The two share both some functionality, but not enough code. They are also quite
difficult to use and sometimes even error prone.

To solve the issues, the following steps were taken:

- Introduce DefaultedInitConfiguration which returns defaulted version agnostic
  InitConfiguration. The function takes InitConfiguration for overriding the
  defaults.

- Introduce LoadInitConfigurationFromFile, which loads, converts, validates and
  defaults an InitConfiguration from file.

- Introduce FetchInitConfigurationFromCluster that fetches InitConfiguration
  from the config map.

- Reduce, when possible, the usage of ConfigFileAndDefaultsToInternalConfig by
  replacing it with DefaultedInitConfiguration or LoadInitConfigurationFromFile
  invocations.

- Replace all usages of FetchConfigFromFileOrCluster with calls to
  LoadInitConfigurationFromFile or FetchInitConfigurationFromCluster.

- Delete FetchConfigFromFileOrCluster as it's no longer used.

- Rename ConfigFileAndDefaultsToInternalConfig to
  LoadOrDefaultInitConfiguration in order to better describe what the function
  is actually doing.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-02-11 14:45:34 +02:00
Kubernetes Prow Robot a1cc48bf59
Merge pull request #73837 from neolit123/preflight-docker-cgroup
kubeadm: add a preflight check for Docker and cgroup driver
2019-02-09 08:45:11 -08:00
Lubomir I. Ivanov 3b3b79fe2c autogenerated bazel 2019-02-08 19:31:22 +02:00
Lubomir I. Ivanov 1d032c40d3 kubeadm: add a preflight check for Docker and cgroup driver
systemd is the recommended driver as per the setup of running
the kubelet using systemd as the init system. Add a preflight
check that throws a warning if this isn't the case.
2019-02-08 19:31:22 +02:00
Kubernetes Prow Robot b50c643be0
Merge pull request #73540 from rlenferink/patch-5
Updated OWNERS files to include link to docs
2019-02-08 09:05:56 -08:00
Kubernetes Prow Robot 395e4c05ba
Merge pull request #73745 from rosti/refactor-JoinConfigFileAndDefaultsToInternalConfig
kubeadm: refactor JoinConfigFileAndDefaultsToInternalConfig
2019-02-08 06:54:16 -08:00
Rostislav M. Georgiev 09f753a94c kubeadm: refactor JoinConfigFileAndDefaultsToInternalConfig
Currently JoinConfigFileAndDefaultsToInternalConfig is doing a couple of
different things depending on its parameters. It:

- loads a versioned JoinConfiguration from an YAML file.
- returns defaulted JoinConfiguration allowing for some overrides.

In order to make code more manageable, the following steps are taken:

- Introduce LoadJoinConfigurationFromFile, which loads a versioned
  JoinConfiguration from an YAML file, defaults it (both dynamically and
  statically), converts it to internal JoinConfiguration and validates it.

- Introduce DefaultedJoinConfiguration, which returns defaulted (both
  dynamically and statically) and verified internal JoinConfiguration.
  The possibility of overwriting defaults via versioned JoinConfiguration is
  retained.

- Re-implement JoinConfigFileAndDefaultsToInternalConfig to use
  LoadJoinConfigurationFromFile and DefaultedJoinConfiguration.

- Replace some calls to JoinConfigFileAndDefaultsToInternalConfig with calls to
  either LoadJoinConfigurationFromFile or DefaultedJoinConfiguration where
  appropriate.

- Rename JoinConfigFileAndDefaultsToInternalConfig to the more appropriate name
  LoadOrDefaultJoinConfiguration.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-02-08 14:00:02 +02:00
Dmitry Rozhkov 6ac76f9859 kubeadm: restructure upgradeVariables 2019-02-08 11:45:33 +02:00
Kubernetes Prow Robot eac19a3ab9
Merge pull request #73616 from dims/move-part-of-kubelet-apis-well-known-lables
move pkg/kubelet/apis/well_known_labels.go to staging/src/k8s.io/api/core/v1/
2019-02-07 19:44:34 -08:00
Kubernetes Prow Robot 7d1dc61920
Merge pull request #73678 from ereslibre/do-not-create-etcd-datadir-dryrun
kubeadm: do not create etcd datastore if we are in dryrun mode
2019-02-07 15:49:53 -08:00
Kubernetes Prow Robot 5b6a23f3af
Merge pull request #73798 from MalloZup/remove-wrong-string
kubeadm: improve ux on infoMsg kubeconfig
2019-02-07 10:20:34 -08:00
Ojas M ebb5b9436f Add priorityClassName to kubeadm kubedns manifest 2019-02-07 09:21:05 -08:00
Ojas M b41bafac7c Add priorityClassName to kubeadm coredns manifest 2019-02-06 15:23:37 -08:00
dmaiocchi 83b808b3b0 kubeadm: improve ux on infoMsg kubeconfig 2019-02-06 23:27:12 +01:00
Rafael Fernández López 981bf1930c
kubeadm: do not create etcd datastore if we are in dryrun mode
This allows for kubeadm tests to pass when run with an unprivileged
user.
2019-02-06 22:59:19 +01:00
Yago Nobre e7a8ac1099
kubeadm: graduate kubelet start join phase 2019-02-06 01:35:28 -02:00
ksubrmnn 164f79e2d4 Update config tests 2019-02-05 10:39:23 -08:00
Davanum Srinivas b975573385
move pkg/kubelet/apis/well_known_labels.go to staging/src/k8s.io/api/core/v1/
Co-Authored-By: Weibin Lin <linweibin1@huawei.com>

Change-Id: I163b2f2833e6b8767f72e2c815dcacd0f4e504ea
2019-02-05 13:39:07 -05:00
Kubernetes Prow Robot 667584cec0
Merge pull request #73728 from neolit123/kubeadm-remove-experimental-config
kubeadm: remove warning about config usage
2019-02-05 06:47:39 -08:00
Kubernetes Prow Robot 28fefba116
Merge pull request #73725 from fabriziopandini/kubeadm-organize-phases
kubeadm: organize phases cmd
2019-02-05 03:18:42 -08:00
Lubomir I. Ivanov b9816b1231 kubeadm: remove warning about config usage 2019-02-05 03:06:25 +02:00
fabriziopandini 64a7c0c7a5 autogenerated 2019-02-05 00:36:24 +01:00
fabriziopandini f38217c75b kubeadm-organize-phases 2019-02-05 00:36:12 +01:00
Roy Lenferink b43c04452f Updated OWNERS files to include link to docs 2019-02-04 22:33:12 +01:00
fabriziopandini 7333cc79d6 remove-kubeadm-alpha-preflight 2019-02-04 21:57:55 +01:00
Kubernetes Prow Robot 9d6ebf6c78
Merge pull request #73467 from ashishranjan738/newpackage
Refactor to use k8s.io/utils/net/ package instead of kubernetes/pkg/util/net/sets
2019-02-04 11:43:14 -08:00
Rafael Fernández López 031ce12dbd
kubeadm: graduate control plane prepare phase 2019-02-04 09:58:06 +01:00
Ashish Ranjan 7be223e798 Refactor to use k8s.io/utils/net/ package instead of kubernetes/pkg/util/net/sets
Signed-off-by: Ashish Ranjan <ashishranjan738@gmail.com>
2019-02-04 10:34:53 +05:30
Kubernetes Prow Robot 0c2613c71a
Merge pull request #73474 from rosti/IsSupportedVersion
kubeadm: Introduce ValidateSupportedVersion
2019-02-02 01:59:37 -08:00
Rostislav M. Georgiev e10dcf07d7 kubeadm: Introduce ValidateSupportedVersion in place of DetectUnsupportedVersion
DetectUnsupportedVersion is somewhat uncomfortable, complex and inefficient
function to use. It takes an entire YAML document as bytes, splits it up to
byte slices of the different YAML sub-documents and group-version-kinds and
searches through those to detect an unsupported kubeadm config. If such config
is detected, the function returns an error, if it is not (i.e. the normal
function operation) everything done so far is discarded.

This could have been acceptable, if not the fact, that in all cases that this
function is called, the YAML document bytes are split up and an iteration on
GVK map is performed yet again. Hence, we don't need DetectUnsupportedVersion
in its current form as it's inefficient, complex and takes only YAML document
bytes.

This change replaces DetectUnsupportedVersion with ValidateSupportedVersion,
which takes a GroupVersion argument and checks if it is on the list of
unsupported config versions. In that case an error is returned.
ValidateSupportedVersion relies on the caller to read and split the YAML
document and then iterate on its GVK map checking if the particular
GroupVersion is supported or not.

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2019-02-01 19:35:39 +02:00
Kubernetes Prow Robot b5b627d522
Merge pull request #73636 from bart0sh/PR0059-kubeadm-reset-fix-null-pointer-dereference
kubeadm: fix nil pointer dereference
2019-02-01 09:03:56 -08:00
Kubernetes Prow Robot 5dd46ad911
Merge pull request #73406 from MalloZup/02-refactor
Limit scope and refactor config functions
2019-02-01 07:44:37 -08:00
Ed Bartosh ab655a29b8 kubeadm: fix nil pointer dereference
If configuration file doesn't exist client variable is not assigned
and causes kubeadm crash:

$ sudo ./_output/bin/kubeadm reset
[reset] Reading configuration from the cluster...
[reset] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0xf8 pc=0x108c9e7]

goroutine 1 [running]:
cmd/kubeadm/app/util/config.getInitConfigurationFromCluster(0x171109b, 0xf, 0x0, 0x0, 0xc0005b5a00, 0x3, 0x3, 0x69)
	cmd/kubeadm/app/util/config/cluster.go:93 +0x37
cmd/kubeadm/app/util/config.loadConfiguration(0x0, 0x0, 0x18d63a0, 0xc00000c018, 0x170620b, 0x5, 0x0, 0x0, 0x15d6000, 0x18d7601, ...)
	cmd/kubeadm/app/util/config/cluster.go:67 +0x374
k8s.io/kubernetes/cmd/kubeadm/app/util/config.FetchConfigFromFileOrCluster(0x0, 0x0, 0x18d63a0, 0xc00000c018, 0x170620b, 0x5, 0x0, 0x0, 0x497700, 0x18d63e0, ...)
	cmd/kubeadm/app/util/config/cluster.go:45 +0x9c
k8s.io/kubernetes/cmd/kubeadm/app/cmd.resetDetectCRISocket(0x0, 0x0, 0x1, 0x0, 0x18d63e0, 0xc0003f0630)
	cmd/kubeadm/app/cmd/reset.go:304 +0x73
k8s.io/kubernetes/cmd/kubeadm/app/cmd.NewCmdReset.func1(0xc0002a6780, 0x26dd548, 0x0, 0x0)
	cmd/kubeadm/app/cmd/reset.go:71 +0x267
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute(0xc0002a6780, 0x26dd548, 0x0, 0x0, 0xc0002a6780, 0x26dd548)
	vendor/github.com/spf13/cobra/command.go:760 +0x2cc
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc00019a000, 0xc000389180, 0xc00019a500, 0xc00057c1a0)
	vendor/github.com/spf13/cobra/command.go:846 +0x2fd
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).Execute(0xc00019a000, 0xc00000c010, 0x18d63a0)
	vendor/github.com/spf13/cobra/command.go:794 +0x2b
k8s.io/kubernetes/cmd/kubeadm/app.Run(0xc000086180, 0x18b)
	cmd/kubeadm/app/kubeadm.go:48 +0x202
main.main()
	cmd/kubeadm/kubeadm.go:29 +0x33

Removing check for configuration file existence should fix the issue.
2019-02-01 15:36:43 +02:00
Sandeep Rajan aa11f6c298 Bump CoreDNS version to 1.3.1 2019-01-31 16:55:02 -05:00
dmaiocchi fd708d173e refactor config functions 2019-01-31 16:48:18 +01:00
Kubernetes Prow Robot 92076f0d2e
Merge pull request #73501 from dlipovetsky/fix-kubelet-exec-error
kubeadm: Make exec error message more informative
2019-01-30 20:26:03 -08:00
Kubernetes Prow Robot 1f7e9fd9a2
Merge pull request #73488 from andrewsykim/replace-utils-file
Replace pkg/util/file with k8s.io/utils/path
2019-01-30 17:50:16 -08:00
Kubernetes Prow Robot 0f93328c7a
Merge pull request #73457 from xichengliudui/updatedockerversion
Update docker support for k8s
2019-01-30 16:39:01 -08:00
dmaiocchi 71494aa9ce add preflight-phase 2019-01-30 20:43:45 +01:00
xichengliudui 945889988b Update docker support for k8s
update pull request

update pull request

update pull request

update pull request
2019-01-30 03:25:05 -05:00
Kubernetes Prow Robot d57d606275
Merge pull request #73495 from neolit123/phase-control-plane
kubeadm: fix missing 'all' in 'init phase control-plane'
2019-01-29 16:50:46 -08:00
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