Commit Graph

128 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
f091722c38 Merge pull request #46819 from pipejakob/idem-config
Automatic merge from submit-queue (batch tested with PRs 46787, 46876, 46621, 46907, 46819)

kubeadm: Only create bootstrap configmap if not exists.

**What this PR does / why we need it**:
The fact that this method was not idempotent was breaking kubeadm upgrades.

https://github.com/kubernetes/kubeadm/issues/278

**Release note**:

```release-note
NONE
```
2017-06-06 02:22:00 -07:00
Jacob Beacham
7ffd870c1e kubeadm: Idempotent service account creation.
Ignore errors for duplicates when creating service accounts.

https://github.com/kubernetes/kubeadm/issues/278
2017-06-06 01:43:55 -07:00
Jacob Beacham
20c45d08fb kubeadm: don't duplicate master taint if it already exists.
This helps enable a graceful upgrade/downgrade process between 1.6.x and
1.7.x kubeadm clusters (although no guarantees outside of that range) by
doing:

  $ kubeadm init --kubernetes-version <version> --skip-preflight-checks

Without this change, the command fails with an error that the node taint
is duplicated.

This is part of https://github.com/kubernetes/kubeadm/issues/278
2017-06-05 14:47:50 -07:00
Jacob Beacham
cbc14a7df4 kubeadm: Only create bootstrap configmap if exists.
The fact that this method was not idempotent was breaking kubeadm
upgrades.
2017-06-01 19:08:03 -07:00
deads2k
954eb3ceb9 move labels to components which own the APIs 2017-05-31 10:32:06 -04:00
Mike Danese
fb4c020c82 make kubeadm use new sar approver 2017-05-30 11:43:03 -07:00
fabriziopandini
7166f185be path.Join to filepath.Join 2017-05-29 19:15:04 +02:00
Bowei Du
1c223c8e1b Update kube-dns version to 1.14.2
Changes:

- Support kube-master-url flag without kubeconfig
- Fix concurrent R/Ws in dns.go
- Fix confusing logging when initialize server
- Fix printf in cmd/kube-dns/app/server.go
- Fix version on startup and --version flag
- Support specifying port number for nameserver in stubDomains
2017-05-11 12:29:00 -07:00
Lucas Käldström
6065824958 kubeadm: Fix the tainting of the master node 2017-05-04 22:34:44 +03:00
Chao Xu
958903509c bazel 2017-04-27 09:41:53 -07:00
Chao Xu
3fa7b7824a easy changes 2017-04-27 09:41:53 -07:00
Chao Xu
4f9591b1de move pkg/api/v1/ref.go and pkg/api/v1/resource.go to subpackages. move some functions in resource.go to pkg/api/v1/node and pkg/api/v1/pod 2017-04-17 11:38:11 -07:00
Mike Danese
a05c3c0efd autogenerated 2017-04-14 10:40:57 -07:00
Ivan Shvedunov
24b8ed5d84 Fix panic in kubeadm master node setup 2017-04-06 14:50:13 +03:00
Kubernetes Submit Queue
b41e415ebd Merge pull request #43137 from shashidharatd/federation-domain
Automatic merge from submit-queue

[Federation] Remove FEDERATIONS_DOMAIN_MAP references

Remove all references to FEDERATIONS_DOMAIN_MAP as this method is no longer is used and is replaced by adding federation domain map to kube-dns configmap.

cc @madhusudancs @kubernetes/sig-federation-pr-reviews 

**Release note**:
```
[Federation] Mechanism of adding `federation domain maps` to kube-dns deployment via `--federations` flag is superseded by adding/updating `federations` key in `kube-system/kube-dns` configmap. If user is using kubefed tool to join cluster federation, adding federation domain maps to kube-dns is already taken care by `kubefed join` and does not need further action.
```
2017-04-06 02:05:42 -07:00
Piotr Skamruk
b30855acba kubeadm: Wait for node before updating labels and taints
fixes kubernetes/kubeadm#221
2017-04-05 20:40:22 +02:00
Mike Danese
01984a9f98 move end to end validation to a dedicated phase 2017-03-30 18:06:09 -07:00
shashidharatd
b09b20b598 Remove FEDERATIONS_DOMAIN_MAP references 2017-03-15 23:06:16 +05:30
Kubernetes Submit Queue
d731dc7546 Merge pull request #41826 from bowei/stub-2
Automatic merge from submit-queue (batch tested with PRs 41826, 42405)

Add stubDomains and upstreamNameservers configuration to kube-dns

```release-note
Updates the dnsmasq cache/mux layer to be managed by dnsmasq-nanny.
dnsmasq-nanny manages dnsmasq based on values from the
kube-system:kube-dns configmap:

"stubDomains": {
	"acme.local": ["1.2.3.4"]
},

is a map of domain to list of nameservers for the domain. This is used
to inject private DNS domains into the kube-dns namespace. In the above
example, any DNS requests for *.acme.local will be served by the
nameserver 1.2.3.4.

"upstreamNameservers": ["8.8.8.8", "8.8.4.4"]

is a list of upstreamNameservers to use, overriding the configuration
specified in /etc/resolv.conf.
```
2017-03-06 15:06:04 -08:00
Lucas Käldström
61a284d720 Hook up kubeadm against the BootstrapSigner/BootstrapTokenAuthenticator 2017-03-04 11:17:52 +02:00
Lucas Käldström
579a743482 kubeadm: Add --cert-dir, --apiserver-cert-extra-sans, remove --api-external-dns-names and add the phase command for certs. Also use the CertificatesDir var everywhere instead of the HostPKIPath variable and fix some bugs in certs.go 2017-03-02 20:51:02 +02:00
Lucas Käldström
5cbefbcbca kubeadm: Rename --api-advertise-addresses to --apiserver-advertise-address and --api-port to --apiserver-bind-port 2017-03-01 14:33:19 +02:00
Bowei Du
4fe2e82d88 Configure DNS based on the kube-system:kube-dns ConfigMap
Updates the dnsmasq cache/mux layer to be managed by dnsmasq-nanny.
dnsmasq-nanny manages dnsmasq based on values from the
kube-system:kube-dns configmap:

"stubDomains": {
	"acme.local": ["1.2.3.4"]
},

is a map of domain to list of nameservers for the domain. This is used
to inject private DNS domains into the kube-dns namespace. In the above
example, any DNS requests for *.acme.local will be served by the
nameserver 1.2.3.4.

"upstreamNameservers": ["8.8.8.8", "8.8.4.4"]

is a list of upstreamNameservers to use, overriding the configuration
specified in /etc/resolv.conf.
2017-02-27 11:31:59 -08:00
Lucas Käldström
796c3f9773 kubeadm: Implement the kubeadm token command fully and move it out of the experimental subsection 2017-02-27 12:56:03 +02:00
Kubernetes Submit Queue
b2765427a2 Merge pull request #41897 from luxas/kubeadm_secure_controlplane
Automatic merge from submit-queue (batch tested with PRs 41701, 41818, 41897, 41119, 41562)

kubeadm: Secure the control plane communication and add the kubeconfig phase command

**What this PR does / why we need it**:

This generates kubeconfig files for the controller-manager and the scheduler, ref: https://github.com/kubernetes/kubeadm/issues/172

The second commit adds the `kubeadm alpha phase kubeconfig` command as described in the design doc: https://github.com/kubernetes/kubeadm/pull/156

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

@dmmcquay What kind of tests would you like for the kubeconfig phase command?

**Release note**:

```release-note
```
@jbeda @mikedanese @dmmcquay @pires @liggitt @deads2k @errordeveloper
2017-02-26 14:02:52 -08:00
Lucas Käldström
036463dd17 Fix golint issues 2017-02-23 23:44:46 +02:00
Lucas Käldström
42cb8c8cb0 kubeadm: Generate kubeconfig files for controller-manager and scheduler and use them; secures the control plane communication 2017-02-23 21:28:03 +02:00
Lucas Käldström
0b16999e50 kubeadm: Use a new label for marking and tainting the master node 2017-02-23 19:43:09 +02:00
Kubernetes Submit Queue
6024f56f80 Merge pull request #38957 from aveshagarwal/master-taints-tolerations-api-fields
Automatic merge from submit-queue (batch tested with PRs 38957, 41819, 41851, 40667, 41373)

Change taints/tolerations to api fields

This PR changes current implementation of taints and tolerations from annotations to API fields. Taint and toleration are now part of `NodeSpec` and `PodSpec`, respectively. The annotation keys: `scheduler.alpha.kubernetes.io/tolerations` and `scheduler.alpha.kubernetes.io/taints`  have been removed.

**Release note**:
Pod tolerations and node taints have moved from annotations to API fields in the PodSpec and NodeSpec, respectively. Pod tolerations and node taints that are defined in the annotations will be ignored. The annotation keys: `scheduler.alpha.kubernetes.io/tolerations` and `scheduler.alpha.kubernetes.io/taints`  have been removed.
2017-02-22 19:59:31 -08:00
Kubernetes Submit Queue
44aa1679c9 Merge pull request #41657 from bowei/update-dns
Automatic merge from submit-queue (batch tested with PRs 41349, 41532, 41256, 41587, 41657)

Update dns

```release-note
NONE
```
2017-02-22 08:12:48 -08:00
Avesh Agarwal
9b640838a5 Change taint/toleration annotations to api fields. 2017-02-22 09:27:42 -05:00
Joe Beda
3a3c2fa0c8 Ignore Bootstrap Token secrets that don't use predictable names.
This aligns with spec changes coming in https://github.com/kubernetes/community/pull/381.

Signed-off-by: Joe Beda <joe.github@bedafamily.com>
2017-02-20 11:38:21 -08:00
Lucas Käldström
60b789b1c7 kubeadm: Move {admin,kubelet}.conf out as constants and make a separate util package for kubeconfig logic 2017-02-17 21:36:58 +02:00
Bowei Du
f8b7464097 -no-resolv will make upstream DNS unreachable 2017-02-17 11:13:25 -08:00
Bowei Du
9f75db3c69 Update kube-dns image versions to the latest stable release 2017-02-17 11:12:25 -08:00
Kubernetes Submit Queue
2948c89433 Merge pull request #41509 from luxas/kubeadm_reorder_tokens
Automatic merge from submit-queue (batch tested with PRs 38101, 41431, 39606, 41569, 41509)

kubeadm: Reorder the token packages more logically

**What this PR does / why we need it**:

In order to be able to implement https://github.com/kubernetes/kubernetes/pull/41417, the token functionality (which now is spread across the codebase), should be in two places: a generic token functions library, which in the future _may_ [move into client-go](https://github.com/kubernetes/kubernetes/pull/41281#discussion_r101357106) in some form, and a package for the token handling against the api server.

This commit has no large functional changes.

```
kubeadm: Aggregate the token functionality in sane packages.
    
 - Factor out token constants to kubeadmconstants.
 - Move cmd/kubeadm/app/util/{,token/}tokens.go
 - Use the token-id, token-secret, etc constants provided by the bootstrapapi package
 - Move cmd/kubeadm/app/master/tokens.go to cmd/kubeadm/app/phases/token/csv.go
    
This refactor basically makes it possible to hook up kubeadm to the BootstrapSigner controller later on
```

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
@mikedanese @pires @errordeveloper @dmmcquay @jbeda @GheRivero
2017-02-16 15:49:19 -08:00
Kubernetes Submit Queue
30ce5d7244 Merge pull request #41484 from deads2k/kubeadm-01-add-front-proxy
Automatic merge from submit-queue (batch tested with PRs 41505, 41484, 41544, 41514, 41022)

add front proxy to kubeadm created kube-apiservers

The front proxy authenticator configuration has been in a release or two.  It allows a front proxy (secured by mutual TLS auth) to provide user information for a request.  The kube-aggregator uses this to securely terminate authentication (has to terminate TLS and thus client-certs) and communicate user info to backing API servers.

Since the kube-apiserver always verifies the front-proxy via a client certificate, this isn't open for abuse unless you already have access to either the signing key or client cert which kubeadm creates locally.  If you got there, you already owned the box.  Therefore, this adds the authenticator unconditionally.

@luxas Are there e2e tests for `kubeadm`?
@liggitt @kubernetes/sig-auth-misc
2017-02-16 14:28:16 -08:00
Lucas Käldström
0f1124aff3 kubeadm: Aggregate the token functionality in sane packages.
- Factor out token constants to kubeadmconstants.
 - Move cmd/kubeadm/app/util/{,token/}tokens.go
 - Use the token-id, token-secret, etc constants provided by the bootstrapapi package
 - Move cmd/kubeadm/app/master/tokens.go to cmd/kubeadm/app/phases/token/csv.go

This refactor basically makes it possible to hook up kubeadm to the BootstrapSigner controller later on
2017-02-16 22:22:30 +02:00
Derek McQuay
70e7d64b46 kubeadm: moved import to client-go, where possible
Some imports dont exist yet (or so it seems) in client-go (examples
being:

  - "k8s.io/kubernetes/pkg/api/validation"
  - "k8s.io/kubernetes/pkg/util/initsystem"
  - "k8s.io/kubernetes/pkg/util/node"

one change in kubelet to import to client-go
2017-02-15 13:06:15 -08:00
deads2k
affdf829a3 add front proxy to kubeadm created kube-apiservers 2017-02-15 11:02:03 -05:00
Lucas Käldström
b32e6040e3 Update the DNS spec from upstream 2017-02-14 16:33:44 +02:00
Andrew Rynhard
3ea7b29e8e Use a dedicated key for service account token signing 2017-02-13 08:39:46 -08:00
Andrew Rynhard
052ceee47e Fix cluster-cidr flag 2017-02-10 13:52:25 -08:00
Kubernetes Submit Queue
89ca179771 Merge pull request #41123 from xilabao/replace-update-to-patch-in-setupmaster
Automatic merge from submit-queue (batch tested with PRs 40917, 41181, 41123, 36592, 41183)

replace update in setupmaster.go

follow the TODO
2017-02-09 23:10:45 -08:00
xilabao
efa6afdad0 replace update to patch in setupmaster.go 2017-02-09 09:37:37 +08:00
Kubernetes Submit Queue
3268d8102a Merge pull request #41020 from luxas/kubeadm_cleanup
Automatic merge from submit-queue (batch tested with PRs 41061, 40888, 40664, 41020, 41085)

kubeadm: Small cleanup and fixes, validate the service subnet

**What this PR does / why we need it**:
 - Validate the minimum subnet cidr so there are always 10 available addresses
 - Remove an old proxy arg function, add clustercidr to the proxy manifest and automatically calculate the dns ip

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```

@errordeveloper @pires @mikedanese @dmmcquay @dgoodwin
2017-02-07 23:06:42 -08:00
Kubernetes Submit Queue
b58a20740a Merge pull request #40888 from apprenda/kubeadm_pkiutil_tests
Automatic merge from submit-queue (batch tested with PRs 41061, 40888, 40664, 41020, 41085)

kubeadm: added tests cert/pkiutil pkg

raised coverage from ~37% to ~77%

**What this PR does / why we need it**: added tests to cert/pkiutil pkg and raised coverage from ~37% to ~77%

Adding unit tests is a WIP from #34136

**Special notes for your reviewer**: /cc @luxas @pires 

**Release note**:
```release-note
NONE
```
2017-02-07 23:06:39 -08:00
Derek McQuay
d23507f40d kubeadm: added tests cert/pkiutil pkg
raised coverage from ~37% to ~77%
2017-02-07 08:22:12 -08:00
Kubernetes Submit Queue
751cbc9b0c Merge pull request #41026 from apprenda/kubeadm_fix_os_remove
Automatic merge from submit-queue (batch tested with PRs 40385, 40786, 40999, 41026, 40996)

kubeadm: change os.Remove to os.RemoveAll

**What this PR does / why we need it**: This would not correctly clean out the tmp dir, since os.Remove doesn't recursively remove dirs, which could exist in the tmp dir.

Unit tests are a WIP from #34136

**Special notes for your reviewer**: /cc @luxas @pires 

**Release note**:
```release-note
NONE
```
2017-02-06 16:51:10 -08:00
Lucas Käldström
407722b378 Remove an old proxy arg function, add clustercidr to the proxy manifest and automatically calculate the dns ip 2017-02-06 23:09:27 +02:00