Commit Graph

46 Commits

Author SHA1 Message Date
k8s-ci-robot 2dbb6e84f6
Merge pull request #5077 from yancl/master
change gossip dns conn limit by ENV
2018-07-19 21:40:52 -07:00
Rohith c9db958696 - cleanup up elements, imports and comments 2018-06-20 09:26:31 +01:00
Justin Santa Barbara 45eeddb560 protokube: only specify etcd flags when managing etcd
If we're using etcd-manager, we don't need to pass the flags to protokube.
2018-06-14 17:40:51 -04: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
Rohith 67296c2db9 - fixing up the spelling mistakes found 2018-06-06 10:03:51 +01:00
Justin Santa Barbara ba87c36f73 Support (optional) etcd-manager 2018-05-25 16:01:22 -04:00
liang ebfb3c241b change gossip dns conn limit by ENV 2018-04-28 15:50:19 +00:00
Justin Santa Barbara b1384b3bc0 Only do etcd backups on main
Because our implementation can't actually differentiate settings for
events & main, we only support backup of main for now.
2018-04-10 18:52:08 -04:00
AdamDang 71d8d23982
Typo fix an->and
Typo fix an->and
2018-04-06 10:13:57 +08:00
andrewsykim 27e8902016 digitalocean: add nodeup support 2018-04-01 10:11:07 -04:00
k8s-ci-robot 37d4b53d0d
Merge pull request #4010 from gambol99/etcd_options
Etcd TLS Peer & CLient Auth
2018-02-27 22:27:56 -08:00
Rohith a140d5b7f1 - fixing the protokube flag issue 2018-02-24 10:03:43 +00:00
Rohith d065111453 Etcd TLS Peer & CLient Auth 2018-02-24 10:02:41 +00:00
Justin Santa Barbara b68f58d746 Change NewAssetBuilder to take a kops.Cluseter 2018-02-22 21:42:40 -08:00
Justin Santa Barbara dde7600dae Initial support for standalone etcd-manager backups
The etcd-manager will (ideally) take over etcd management.  To provide a
nice migration path, and because we want etcd backups, we're creating a
standalone image that just backs up etcd in the etcd-manager format.

This isn't really ready for actual usage, but should be harmless because
it runs as a sidecar container.
2018-02-20 20:06:08 -05:00
k8s-ci-robot 4b8db1eee0
Merge pull request #4137 from thockin-tmp/gcr-vanity
Convert registry to k8s.gcr.io
2018-02-20 08:54:39 -08:00
Rohith c8e4a1caf8 Kubernetes Calico TLS
The current implementation when Etcd TLS was added does not support using calico as the configuration and client certificates are not present. This PR updates the calico manifests and adds the distribution of the client certificate
2018-02-14 23:41:45 +00:00
Tim Hockin 79d5f793e7 Convert registry to k8s.gcr.io 2018-02-14 10:08:41 -08:00
Otto Yiu 2b12b59d75 add ability to override etcd image and update apimachinery generated files from EtcdClusterSpec changes 2018-01-10 13:39:07 -08:00
Justin Santa Barbara 9e5c086c5b Remove use of deprecated create-if-missing functions
Generally tightening up the interface to make it easier to remove list
operations.
2017-12-20 00:52:18 -05:00
chrislovecnm 7057aaf1bb Enabling the file assets
File assets and the SHA files are uploaded to the new location. Files
when are users uses s3 are upload public read only. The copyfile task
uses only the existing SHA value.

This PR include major refactoring of the use of URLs.  Strings are no
longer categnated, but converted into a URL struct and path.Join is
utlilized.

A new values.go file is included so that we can start refactoring more
code out of the "fi" package.

A
2017-12-17 15:26:57 -07:00
chrislovecnm bc9df922f0 refactored to return err 2017-10-26 17:25:51 -06:00
chrislovecnm 4de78b0055 setting up etcd to use asset builder for its container 2017-10-26 17:25:50 -06:00
Matt Schurenko 298747e9ae adding etcd settings to protokube 2017-10-20 00:32:53 -04:00
Justin Santa Barbara 9517a1c4a7 Simplify protokube mounter using nsenter executor
Makes it much clearer, and avoids problems when systemd is in the host
but not the container.
2017-10-13 21:37:15 -04:00
chrislovecnm 0706c21dbc mounting kubectl from the host instead to copying it to protokube 2017-10-07 20:23:57 -06:00
Justin Santa Barbara 914fe68ee2 SecretStore and CAStore implementations backed by API
Not yet wired in
2017-09-17 23:01:13 -04:00
Rohith 7cd214266a Requested Changes - Etvd v3
- removing the StorageType on the etcd cluster spec (sticking with the Version field only)
- changed the protokube flag back to -etcd-image
- users have to explicitly set the etcd version now; the latest version in gcr.io is 3.0.17
- reverted the ordering on the populate spec
2017-08-11 21:08:09 +01:00
Rohith f3e98af217 Etcd V3 Support
The current implementation is running v2.2.1 which is two year old and end of life. This PR add the ability to use etcd and set the versions if required. Note at the moment the image is still using the gcr.io registry image. As note, much like TLS their presently is not 'automated' migration path from v2 to v3.

- the feature is gated behine the storageType of the etcd cluster, bot clusters events and main must use the same storage type
- the version for v2 is unchanged and pinned at v2.2.1 with v2 using v3.0.17
- @question: we shoudl consider allowing the use to override the images though I think this should be addresses more generically, than one offs here and then. I know chris is working on a asset registry??
2017-08-11 21:04:31 +01:00
Derek VerLee ffa95b8112 Add support for cluster using http forward proxy 2017-08-07 14:30:42 -04:00
Rohith f61e1ebe08 Etcd TLS Options
- changed the location of this variable to be in the etcd cluster spec rather the kops cluster spec
- reflected the changes against the models
2017-08-06 20:50:05 +01:00
Rohith 74f59612c7 Fixes
- added the master option back the protokube, updating the nodeup model and protokube code
- removed any comments no related to the PR as suggested
- reverted the ordering of the mutex in the AWSVolumes in protokube
2017-08-06 18:52:38 +01:00
Rohith a73d255b03 Etcd TLS Options
The current implementation does not put any transport security on the etcd cluster. The PR provides and optional flag to enable TLS the etcd cluster

- cleaned up and fixed any formatting issues on the journey
- added two new certificates (server/client) for etcd peers and a client certificate for kubeapi and others perhaps (perhaps calico?)
- disabled the protokube service for nodes completely is not required; note this was first raised in https://github.com/kubernetes/kops/pull/3091, but figured it would be easier to place in here given the relation
- updated protokube codebase to reflect the changes, removing the master option as its no longer required
- added additional integretion tests for the protokube manifests;
- note, still need to add documentation, but opening the PR to get feedback
- one outstanding issue is the migration from http -> https for preexisting clusters, i'm gonna hit the coreos board to ask for the best options
2017-08-06 17:06:46 +01:00
Rohith b5066c967b Vetting / Formating / Cleanup
- fixed any of the vettting / formatting issues that i'm came across on the update
- removed the commented out lines from the componentconfig as it make its increasingly difficult to find what is supported, what is not and the difference between them.
- added SerializeImagePulls, RegisterSchedulable to kubelet (by default they are ignored)
- added FeatureGates to the kube-proxy

Out of interest can someone point me to where these multi-versioned componentconfig are being used?
2017-07-28 17:16:11 +01:00
Hanfei Shen fc50984f09 support china region 2017-07-16 00:57:38 +08:00
Justin Santa Barbara d2df318ecc Move CloudProvider to kops API
This avoids a circular reference when breaking up the fi package
2017-06-17 16:27:07 -04:00
Justin Santa Barbara eddd73549c Use LB IP address for private dns 2017-04-25 01:32:27 -04:00
Justin Santa Barbara c8b18be9dd Gossip backed DNS 2017-04-25 01:32:21 -04:00
Miao Luo 6b010c4c5e Enable CoreDNS in nodeup/protokube (#6)
* Enable CoreDNS in nodeup/protokube.

* Address comments.
2017-04-20 23:33:21 -07:00
prashima e51e841d0c Added vSphere volumes to protokube, updated vSphere testing doc and makefile. (#1)
* Add vSphere volumes to protokube. Update vSphere testing doc and makefile.

* Updated vsphere_volume to get correct IP. Addressed comments.
2017-04-20 23:33:20 -07:00
SandeepPissay 82f9f0668d vsphere initial support. 2017-04-20 23:31:21 -07:00
Miao Luo 76437a77d4 Support user-defined s3 endpoint. 2017-04-18 11:27:07 -07:00
Justin Santa Barbara 8b965a0ad9 Disable insecure port for apiserver
All components need a kubeconfig
2017-03-28 21:26:17 -04:00
Justin Santa Barbara 4c28bd30e4 Enable RBAC on 1.6 2017-03-28 20:14:13 -04:00
Justin Santa Barbara 86d544c2f3 Update protokube to make tainting optional
As of 1.6, kubelet can apply the taints, so we don't need to do it in
protokube.
2017-03-27 23:08:15 -04:00
Justin Santa Barbara b9204e9911 Initial Container-Optimized OS support
Add initial support for google's container-optimized OS (available on
GCE).
2017-03-20 23:47:37 -04:00