Commit Graph

1409 Commits

Author SHA1 Message Date
Justin Santa Barbara c5c2bd1acb Don't repeatedly download nodeup
Only delete if the file doesn't match the hash.

Should help with retry issues / bandwidth
2018-07-19 12:09:13 -04:00
k8s-ci-robot 54cbe492cb
Merge pull request #5414 from Raffo/master
[WIP] Initial implementation of ACM certificate for API server ELB
2018-07-19 08:34:54 -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
Raffaele Di Fazio b19ee16b09 Fix nilpointer in create_kubecfg.go 2018-07-19 09:41:48 +02:00
Mike Splain 188824cba0 Add configurable conntrack settings 2018-07-18 12:11:30 -04:00
Deniz Zoeteman 2a69901d52 Add message to error for stopping rolling update after failure 2018-07-17 18:56:31 +02:00
Deniz Zoeteman b06e3efa4d Stop with rolling update if bastions or masters failed to update 2018-07-16 16:56:47 +02:00
k8s-ci-robot 9264587454
Merge pull request #5419 from AliyunContainerService/rollingUpdate
support edit cluster and rolling-update cluster for AliCloud
2018-07-15 18:02:55 -07:00
k8s-ci-robot 70e3653291
Merge pull request #5417 from mikesplain/fix_docker_config
Fixes issue when setting docker version
2018-07-15 17:17:55 -07:00
k8s-ci-robot 4195bd5adf
Merge pull request #5438 from Sturgelose/master
Add minRequestTimeout flag in kube-APIServer
2018-07-15 16:36:06 -07:00
k8s-ci-robot bb1dd6bb5e
Merge pull request #5431 from ripta/docker-root-flags
Add data-root and exec-root attributes to the docker config spec
2018-07-15 16:35:56 -07:00
k8s-ci-robot 3defe18a4b
Merge pull request #5445 from dzoeteman/update-validation
Fail cluster validation for rolling-update if a failure occurs
2018-07-15 13:55:55 -07:00
k8s-ci-robot bfafff1310
Merge pull request #5380 from shrinandj/fix-calico-mtu
Allow setting MTU for calico networking.
2018-07-15 10:54:56 -07:00
Deniz Zoeteman 84796eac0b Fail cluster validation for rolling-update if a failure occurs 2018-07-14 21:41:10 +02:00
Erik Berdonces Bonelo fdeed33719 Add --min-request-timeout flag in kube-APIServer 2018-07-13 10:29:30 +02:00
Eric Hole 49e5ba0907
Merge pull request #5421 from rdrgmnzs/remane-aws-authenticator
Rename hept.io authenticator to aws authenticator
2018-07-11 10:34:09 -07:00
Corey O'Brien 12fccd29f9 Remap initContainers as well as containers in PodSpec 2018-07-10 22:03:49 -04:00
Ripta Pasay a6814c2733 Add data-root and exec-root attributes to the docker config spec 2018-07-10 18:28:59 -07:00
Rodrigo Menezes 414b3a780b Rename hept.io authenticator to aws authenticator 2018-07-08 10:10:19 -07:00
LilyFaFa b3aabfdebc support edit cluster and rolling-update cluster for AliCloud 2018-07-07 15:42:44 +08: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 c3d057355a - placing the node auhorization feature behind a feature flag 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 79cff25eb4 - fixing up on the comments raised by on the review 2018-07-06 20:14:35 +01:00
Rohith 338a6d721c Changes
- including the config only when there is something to include i.e. no nulls please
- fixing up the pod security policies for system:nodes groups, needs a mapping to permit manifests
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
Rohith 826a49c7c3 A previous PR added the ability to enable the bootstrap tokens. Note the feature is isolated and regardless of this PR can still be enabled and used (albeit they will have to implement their own means of token distribution). This PR adds on top of #5253 and provides an authorization service which runs on the masters. The service is responsible for receiving request from nodes (who's identity is verified via a chosen means) and issues a bootstrap token to the node registration. The bootstrap is part of the system:node-bootstrapper group and can request a CSR via that. Note, but turning on NodeAuthorization we also default to using the NodeAdmission controller providing extra security by apply a filter on the requests from a node (i.e. you can't request something that isn't scheduled on the node)
For aws, the nodes are verified in the following manner

the pkcs7 signed identity document available only from the node metadata service is passed in the request.
the instance is checked as running, inside the region, part of the cluster via a tag and then check that the node is not already registered.
assuming everyone is cool a bootstrap token is given (this at present is auto-approval, though think about it I meant add it as an optional thing)
I've tried to break up the commits in logical order make reviewing easier.

- adding the node authorization api specification

- adding the node authorization api specification 5dbf275
- consuming the node authorization api spec in nodeup binary 6e32f24
- adding the options builder to fill in the model
- adding the spec into the bootstrap config
- adding the node authorization service into kops ad5c654. note there is not code cross over, it's a completely independent service and could technically live in another repo
- adding the dependencies for the node authorization service 2e3f279
- adding the node authorization addon deployment manifest ff31be1
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
Kashif Saadat 2f0fdbc6d7 Add IAM ec2:ModifyVolume permission to allow EBS volume resize 2018-07-06 15:49:34 +01:00
Christian Kampka d112b230cd Update bazel files 2018-07-06 15:00:25 +02:00
Christian Kampka 97c1211338 Finish builder implementation and add tests 2018-07-06 14:32:29 +02:00
Christian Kampka 1264ef8fce Add cluster spec validation
Since containerRegistry and containerProxy follow mutually exclusive
concepts, we need to ensure that they are not mistakenly used together.
2018-07-06 14:32:29 +02:00
Christian Kampka cbcd7d43c0 Run gofmt 2018-07-06 14:32:29 +02:00
Christian Kampka 4d87fb6a74 Destinguish between docker hub and convenience registry domain 2018-07-06 14:32:29 +02:00
Christian Kampka debbbcfb4f Include containerProxy in kops api deep copying 2018-07-06 14:32:29 +02:00
Christian Kampka e8607b8c7e Fix JSON field name in cluster asset struct 2018-07-06 14:32:29 +02:00
Christian Kampka 7e3221a2fb Add pull-through proxy cache for asset docker images 2018-07-06 14:32:29 +02:00
Raffaele Di Fazio d477e96c38 Added initial implementation of ACM cert for Kubernetes API ELB 2018-07-06 09:29:54 +02:00
k8s-ci-robot 88f12317cb
Merge pull request #5403 from ripta/kubelet-disable-shared-pid
Add dockerDisableSharedPID to kubelet config
2018-07-05 20:38:26 -07:00
Rob Graham e307021a6c remove log 2018-07-03 10:26:13 +01:00
Ripta Pasay 5f2f031f6d Add dockerDisableSharedPID to kubelet config 2018-07-02 17:17:12 -07:00
Rob Graham ae327e1e8c wrestling with the api stuff 2018-07-02 15:16:37 +01:00
Rob Graham cc589ae538 Reworked to use loadbalancer only if config is specified 2018-07-02 12:02:50 +01:00
LilyFaFa 7e1f400d11 delete cloud resources for ALicloud 2018-06-30 09:55:43 +08:00
Gijs Kunze b605a27cb5 Added external load balancer support for terraform 2018-06-29 11:39:21 +02:00
Gijs Kunze abae4644f6 Adds generated code 2018-06-29 11:39:20 +02:00
Gijs Kunze b3346c28cd Added the ability to specify external loadbalancers in instancegroups 2018-06-29 11:39:20 +02:00
Shri Javadekar 35edca3e42 Add fields in CalicoNetworkingSpec in alphabetical order. 2018-06-25 21:50:40 -07:00
Shri Javadekar e4638de5f4 Allow setting MTU for calico networking
This commit does the following two changes:

1. Changes the default calico mtu to 8198.
2. Enables setting the mtu explicitly in the config as:
```
  networking:
    calico:
      mtu: 2048
```

Testing done:

1. Created cluster on AWS with networking set to calico. No additional details were provided. Verified that the mtu was set to 8198. Also verified that the FELIX_IPINIPMTU environment variable was set to 8198.
2. Created a cluster explicitly setting the calico mtu to 2048. Verified that the mtu for the 'cali*' interfaces inside the pods was set to 2048. Also, verified that the FELIX_IPINIPMTU environment variable was set to 2048.
3. make test passed.

Closes #4042
2018-06-25 15:18:15 -07:00
LilyFaFa 59b28164f7 add ALI volume model and apply_cluster codes 2018-06-22 20:28:33 +08:00
k8s-ci-robot 3489ea317e
Merge pull request #5357 from gambol99/docker_userns_remap
Docker Userspace Remapping Options
2018-06-22 02:17:05 -07:00
k8s-ci-robot f6f49693ea
Merge pull request #5364 from AliyunContainerService/scalingModel
add ScalingGroup model for AliCloud
2018-06-21 19:00:58 -07:00
LilyFaFa cdd8bb6101 add ScalingGroup model 2018-06-22 00:32:20 +08:00
k8s-ci-robot f346efd290
Merge pull request #5240 from nebril/etcd-tls
Add etcd TLS support for Cilium
2018-06-21 09:23:37 -07:00
k8s-ci-robot 5313176a9d
Merge pull request #5356 from AliyunContainerService/ramModel
add RAM model for ALIcloud
2018-06-21 08:44:50 -07:00
k8s-ci-robot ab0510da81
Merge pull request #5353 from kampka/master
Fix containerRegistry for Kubernetes < 1.10
2018-06-21 07:54:35 -07:00
k8s-ci-robot 792f02a5c2
Merge pull request #5245 from justinsb/gc_launchconfigurations
AWS: Delete old LaunchConfigurations
2018-06-20 10:33:08 -07:00
Rohith 2c7a4d2d97 Docker Userspace Remapping Options
- adding the userspace remap options for docker daemon
2018-06-20 18:13:47 +01:00
LilyFaFa 7db0fe2a39 add RAM model for ALIcloud 2018-06-20 23:46:13 +08: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
Maciej Kwiek e1a0f4a73e Etcd TLS support for Cilium
Signed-off-by: Maciej Kwiek <maciej@covalent.io>
2018-06-20 14:27:24 +02:00
k8s-ci-robot a92ee72153
Merge pull request #5349 from gambol99/api_options
Aggregator Routing Option
2018-06-20 01:24:08 -07:00
Christian Kampka 921591343a Fix containerRegistry for Kubernetes < 1.10 2018-06-20 09:46:55 +02:00
k8s-ci-robot 9a4c553fde
Merge pull request #5343 from AliyunContainerService/firewallModel
add firewallModel for ALIcloud
2018-06-19 18:41:07 -07:00
Rohith 9e7b15d01b Aggregator Routing Option
- adding the enable-aggregator-routing option to the kube-apiserver
2018-06-19 23:18:34 +01:00
Haoyun 58e9ba2314
Typo fix
Typo fix  change defined -> defines
2018-06-19 10:20:33 +08:00
LilyFaFa a9d0775e2d add firewallModel for ALIcloud 2018-06-19 00:08:02 +08:00
Justin Santa Barbara a9eb6fed2e AWS: Delete old LaunchConfigurations
We delete old AWS LaunchConfigurations when we see that we have more
than 3.  We add a feature flag KeepLaunchConfigurations to disable this
functionality, for backwards compatability.

Fixes #329
2018-06-17 23:24:53 -04:00
LilyFaFa 6a83025823 add SSHKey model for AliCloud 2018-06-18 00:15:12 +08:00
k8s-ci-robot cdafebda51
Merge pull request #5320 from nebril/cilium-more-config
More configuration options for cilium
2018-06-15 07:02:29 -07:00
Maciej Kwiek a054df4fec Apimachinery for cilium config
Signed-off-by: Maciej Kwiek <maciej@covalent.io>
2018-06-15 11:48:18 +02:00
Maciej Kwiek ca52ad5685 More configuration options for cilium
Signed-off-by: Maciej Kwiek <maciej@covalent.io>
2018-06-15 11:48:12 +02:00
Justin Santa Barbara 168cf56ebe GCE: storage-rw scope for instances that need it 2018-06-14 17:50:26 -04:00
Justin Santa Barbara ba6d14d1a8 GCE: Grant bucket permissions for etcd-manager
Unfortunately it has to be bucket level, because that is all that GCS
supports.
2018-06-14 17:50:16 -04: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
Eric Herot 2090479da5 Let people know that stopping an instance can sometimes take a while 2018-06-13 18:21:24 -04:00
Eric Herot 0e47086ff5 Communicate that we're going to wait for stabilization after draining
The wait for this is very long (90s) by default, which is long enough that many users may assume things are hanging if we don't say what they're waiting for.
2018-06-13 18:18:23 -04:00
k8s-ci-robot 634a76565d
Merge pull request #5307 from justinsb/5253_followup_avoid_iam_change
Avoid changing IAM policy for users
2018-06-12 11:08:29 -07:00
Justin Santa Barbara 8064f19fc4 Avoid changing IAM policy for users
Follow on to #5253, making it so that users that don't adopt bootstrap
kubelet config don't have their IAM policies change.
2018-06-12 11:58:08 -04:00
Rohith 2f56428aa2 Fix Admission Controller Validation
- Note sure how I missed this, but the options builder is run before the validation which will always cause and issue (we need to add a warning instead)
- for now, given if the user is already using the AdmissionControllers it's fixed later in the chain we will only check the Disabled plugins for now
2018-06-12 11:28:21 +01:00
k8s-ci-robot 9b80326129
Merge pull request #5253 from gambol99/bootstrap_tokens
Node Bootstrap Tokens
2018-06-11 11:10:29 -07:00
Justin Santa Barbara 89dc7b22f9
Merge branch 'master' into sshkey 2018-06-11 11:23:28 -04:00
Justin Santa Barbara 8681095af4
Merge pull request #4977 from zengchen1024/router_interface
implement router interface task for OpenStack platform
2018-06-11 11:17:49 -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
Jesse Haka ed8d03d402 add keypair role 2018-06-11 09:54:54 +03:00
k8s-ci-robot 02daea62ae
Merge pull request #5119 from ripta/avpc-custom-image
Amazon VPC CNI: Upgrade to v1.0 and Allow Custom Images
2018-06-10 22:40:27 -07:00
k8s-ci-robot 8a470580ef
Merge pull request #5250 from gambol99/verify_admissions
Admission Controller Validation
2018-06-10 21:54:10 -07:00
k8s-ci-robot 7a004d7c10
Merge pull request #5207 from AliyunContainerService/loadBalancer
implement LoadBalancer task for ALICloud
2018-06-10 21:54:00 -07:00
k8s-ci-robot aef1afbc02
Merge pull request #4724 from gambol99/custom_kube_dns
Customize KubeDNS
2018-06-10 18:52:01 -07:00
k8s-ci-robot 1b29b54d5b
Merge pull request #4171 from rifelpet/rifelpet_iam
Add support for external IAM Instance Profiles
2018-06-10 14:54:00 -07:00
k8s-ci-robot a57a6de4a8
Merge pull request #5139 from justinsb/fix_subnet_egress_indexing
Fix issue where we assumed that private zone were in order
2018-06-09 09:27:01 -07:00
Peter Rifel 5f0b63100d Add support for using existing instance profiles 2018-06-08 10:33:09 -07:00
chrislovecnm 9cbc81fe33 adding API for IAM Profile 2018-06-08 09:51:26 -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