Commit Graph

160 Commits

Author SHA1 Message Date
Justin SB 4b3e66b347
Use hostPID: true with etcd-manager
Addresses issues with mounting inside a container with systemd
("Failed to add PIDs to scope's control group: Invalid argument")
2018-10-18 20:20:11 -07:00
k8s-ci-robot c81a0c64c5
Merge pull request #5868 from gambol99/fix_up_client
Node Authorizer Fixes
2018-10-03 06:12:55 -07:00
k8s-ci-robot 9c851ddcda
Merge pull request #5867 from gambol99/node_mode_controllers
Node mode controllers
2018-10-03 06:12:45 -07:00
Rohith aa700961b5 - fixing up the prometheus metrics annotation to indicates a https scheme 2018-10-03 11:39:35 +01:00
Rohith 2ce1df88cc - fixing the logging message, variable were wrong way around 2018-10-03 11:39:35 +01:00
Rohith 97dc2beb71 Node Authorizer Client Fix
- fixing up the client for reboots ... somewhat of a oversight on my part :-)
- added the reason to the node denial message
2018-10-03 11:39:35 +01:00
Rohith cf67cfd030 - enabling the tokencleaner controller when bootstrap tokens are enabled 2018-10-03 11:36:51 +01:00
k8s-ci-robot b3d61542cd
Merge pull request #5820 from justinsb/etcd_manager_channels_step1
etcd: introduce field to specify whether we are using etcd-manager or legacy mode
2018-10-02 14:20:37 -07:00
Justin Santa Barbara 9a9a947f7d Extract default etcd versions as constants 2018-10-02 13:13:11 -07:00
Justin Santa Barbara 54c499fe9b Introduce field to specify whether we are using etcd-manager or legacy mode
Splitting this out from the bigger bundle PR
2018-10-01 15:36:24 -07:00
Rohith 8401273b06 - fixing the reference to the import, goimports made an error
- updating the version of the node-authorizer manifest
2018-09-27 10:21:10 +01:00
Rohith 26942eb601 - updating to the fix rollout image for node authorizer 2018-09-27 09:59:23 +01:00
Justin Santa Barbara 7cf432fcba Add test for etcd-manager output
We need to get this under test coverage so we can start changing it confidently!
2018-09-14 08:46:32 -04:00
andrewsykim 6dc9f01a41 add kube-proxy hostname override 2018-08-16 23:26:37 -04:00
Justin Santa Barbara b208bd44b3 Create ExperimentalClusterDNS feature flag
This currently just turns off validation of the kubelet cluster dns
flag, which should allow for experimenting with more complicated DNS
configurations such as local proxies, which may address shortcomings
of DNS retries with UDP.

Issue #5584
2018-08-14 14:59:20 -04:00
Spike Curtis 1540f906d2 Don't set kube-proxy cluster-cidr with aws-vpc-cni
Signed-off-by: Spike Curtis <spike@tigera.io>
2018-08-03 15:48:14 -07:00
k8s-ci-robot 56ccfac26d
Merge pull request #5317 from gambol99/node_registration
Node Authorization Service
2018-07-19 05:17:41 -07:00
Rohith 92115b2341 - dropping the specific flags and using a genenic --feature gate model for the authorizers, meaning i don't need to come back to the API whenever we want to make changes 2018-07-06 20:15:18 +01:00
Rohith ce55c257eb - making the node-authorizer image default v0.0.1 (with sha) or use an environment variable override 2018-07-06 20:14:35 +01:00
Rohith fd6cef8180 Requested Changes
- switching to using code rather than a template for the systemd unit creation as requested in review
- as part of the review, changing the name of the ca from tls-ca to tls-client-ca
- changing the api from DisableAddressCheck to EnableAddressCheck and defaulting to true if no set
- fixing up the test for node-authorizer and shifting the parsing of the certificates as suggested in reviews to a method
2018-07-06 20:14:35 +01:00
Rohith 304d0ce8a9 - consuming the node authorization api spec in nodeup binary
- adding the options builder to fill in the model
- adding the spec into the bootstrap config
2018-07-06 20:14:35 +01:00
Mike Splain 48c9f3d7c9 Fixes issue when setting docker version
Previously when setting docker version, logdriver was automatically
added to cluster config. Switching it to a pointer fixes this issue.

Fixes #5384
2018-07-06 11:29:11 -04:00
k8s-ci-robot 019ecdecae
Merge pull request #5335 from justinsb/gce_etcd_manager
etcd-manager: GCE support
2018-06-20 08:45:08 -07:00
Justin Santa Barbara 5120b913a5 Initial work for etcd-manager on GCE 2018-06-14 17:50:07 -04:00
Justin Santa Barbara 553e519a56 Set log-verbosity for etcd-manager 2018-06-14 17:40:06 -04:00
Rohith d2bae64dd1 - adding the enable-bootstrap-token-auth to the kubeapi and fixing up the various compoents 2018-06-11 09:57:26 +01:00
Rohith 2d5bd2cfd9 - update the IAM policy to ensure the kubelet permision is skipped
- update the PKI to ensure on new clusters the certificate it not created
2018-06-11 09:57:26 +01:00
Rohith 4531384649 This PR attempts to solve two issues
a) The current implementation use's a static kubelet which doesn't not conform to the Node authorization mode (i.e. system:nodes:<nodename>)
b) As present the kubeconfig is static and reused across all the masters and nodes

The PR firstly introduces the ability for users to use bootstrap tokens and secondly when enabled ensure the kubelets for the masters as have unique usernames.  Note, this PR does not attempt to address the distribution of the bootstrap tokens themselves, that's for cluster admins. One solution for this would be a daemonset on the masters running on hostNetwork and reuse dns-controller to annotated the pods and give as the DNS

Notes:
- the master node do not use bootstrap tokens, instead given they have access to the ca anyhow, we generate certificates for each.
- when bootstrap token is not enabled the behaviour will stay the same; i.e. a kubelet configuration brought down from the store.
- when bootstrap tokens are enabled, the Nodes sit in a timeout loop waiting for the configuration to appear (by third party).
- given the nodeup docker and manifests builders are executed before the kubelet builder, the assumption here is a unit file kicks of a custom container to bootstrap the rest.
- the current firewalls on between the master and nodes are fairly open so no need to open ports between the two
- much of the work was ported from @justinsb PR [here](https://github.com/kubernetes/kops/pull/4134/)
- we add a very presumptuous server and client certificates for use with an authorizer (node-bootstrap-internal.dns_zone)

I do have an additional PR which performs the entire thing. The process being a node_authorizer which runs on the master nodes via a daemonset, the service implements a series of authorizers (i.e. alwaysallow, aws, gce etc). For aws, the process is similar to how vault authorizes nodes [here](https://www.vaultproject.io/docs/auth/aws.html). Nodeup no then calls out to the node_authorizer on bootstrap and provisions the kubelet.
2018-06-11 09:56:32 +01:00
k8s-ci-robot aef1afbc02
Merge pull request #4724 from gambol99/custom_kube_dns
Customize KubeDNS
2018-06-10 18:52:01 -07:00
Andrew Sy Kim 5004652505
Revert "digitalocean: don't set --cloud-provider=external on control plane starting v1.10" 2018-06-08 11:41:07 -04:00
Justin Santa Barbara 2b4888a596 Delay overlay2 to 1.11
Gives us more time to consider image support.
2018-06-07 17:11:19 -04:00
Justin Santa Barbara ef5936d8b5 Support overlay2 in docker
We also have to stop passing the flag on ContainerOS, because it's set
in /etc/docker/default.json and it's now an error to pass the flag.

That in turn means we move those options to code, which are the last of
those legacy config options.  (We still have a few tasks declaratively
defined though)
2018-06-07 17:11:11 -04:00
Tomas Virgl 874e2a514f Override hostname with '@aws' only if hostname override is not specified. 2018-06-06 13:54:19 -07:00
Rohith 67296c2db9 - fixing up the spelling mistakes found 2018-06-06 10:03:51 +01:00
Justin Santa Barbara 53bf6ea6ad Replace deprecated flags: address -> insecure-bind-address 2018-05-31 23:23:33 -04:00
Ripta Pasay dfa4190cb5 Add --enable-admission-plugins API server flag, deprecating --admission-control in v1.10 2018-05-29 16:42:23 -07:00
k8s-ci-robot ad60dbd63d
Merge pull request #5178 from dims/patch-1
Add a FIXME and don't log about insecure ports
2018-05-26 14:22:41 -07:00
k8s-ci-robot e323fa918f
Merge pull request #5126 from justinsb/optional_etcd_manager
Support (optional) etcd-manager
2018-05-25 15:45:32 -07:00
Justin Santa Barbara ba87c36f73 Support (optional) etcd-manager 2018-05-25 16:01:22 -04:00
Davanum Srinivas 3e075fcab5
Add a FIXME and don't log about insecure ports
Thanks to @craigtracey for spotting this.
2018-05-25 09:35:06 -07:00
Rohith de977e627e Customize KubeDNS
This PR adds the ability for users to customize the kubedns upstream nameservers and provider stubdomains, as per [here](https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/)
2018-05-13 17:08:56 +01:00
andrewsykim 2b325be8cf digitalocean: don't set --cloud-provider=external on control plane starting v1.10 2018-04-16 18:19:38 -04:00
James McMinn 458f59d5d8 Add dnsmasq parameteres to kubeDNS config 2018-04-06 09:09:54 +10:00
andrewsykim 54bee09f47 digitalocean: add kubelet hostname override 2018-04-03 01:16:50 -04:00
k8s-ci-robot fc1bed4353
Merge pull request #4224 from nebril/cilium-support
Add Cilium as CNI plugin
2018-03-26 07:49:02 -07:00
Justin Santa Barbara 2bccf880d2 etcd-quorum-read flag: explicitly default to off for v2
Kubernetes 1.9 changed the default for etcd-quorum-read flag value to
true, in the hope of fixing some of the edge-case controller issues.

However, while this is cheap on etcd3, that fix was not backported to
etcd2, and performance there of quorum reads is poor.

For non-HA clusters with etcd2, it still goes through raft, but does not
need to - we set etcd-quorum-read to false, as this is just a missed
optimization in etcd2.

For HA clusters with etcd2, it's trickier, but at least for now we're
going to avoid the (crippling) performance regression.  kops 1.10 should
have etcd-manager (allowing upgrades to etcd3), and the ability to
configure IOPS on the etcd volume, so we can revisit this in 1.10 /
1.11.
2018-03-25 19:08:05 -04:00
Maciej Kwiek ed67c013f5 Validate etcd and k8s version for Cilium
Signed-off-by: Maciej Kwiek <maciej@covalent.io>
2018-03-20 13:08:39 +01:00
Maciej Kwiek bca52dede9 Add Cilium as CNI plugin
Signed-off-by: Maciej Kwiek <maciej@covalent.io>
2018-03-20 13:07:26 +01:00
Justin Santa Barbara b2fa0bfa09
Merge pull request #4443 from zacblazic/update-default-docker-in-k8s-1.8
Set the default docker for kubernetes 1.9 to 17.03.2
2018-02-28 00:23:18 -05:00
k8s-ci-robot 0ab8b57c2a
Merge pull request #4493 from justinsb/vfs_streaming
VFS: WriteFile takes an io.ReadSeeker
2018-02-26 15:50:45 -08:00