Commit Graph

288 Commits

Author SHA1 Message Date
Derek Lemon -T (delemon - AEROTEK INC at Cisco) 025a255dd8 Adding ability to retrieve openstack server by ID 2019-01-18 13:42:21 -07:00
Derek Lemon -T (delemon - AEROTEK INC at Cisco) c03f7eeced Additional logging for protokube openstack errors 2019-01-18 13:01:31 -07:00
Derek Lemon -T (delemon - AEROTEK INC at Cisco) eb256593bc Setting project ID as well in cloudconfig. Using loadbalancerID in cloudconfig. Retrieving instance IP from openstack in protokube. 2019-01-18 10:17:14 -07:00
Derek Lemon -T (delemon - AEROTEK INC at Cisco) 5cae86c2ce dep ensure and gofmt updates 2019-01-16 15:09:20 -07:00
Derek Lemon -T (delemon - AEROTEK INC at Cisco) 4f0169bb79 codegen 2019-01-16 09:30:40 -07:00
Jan Wozniak 6d3c9fe44f protokube: add support for OpenStack 2019-01-16 09:25:58 -07:00
Justin SB 26bd75aecb
Bulk spelling fixes
Experimenting with my own spelling checker, these are the typos it caught.
2018-12-20 17:43:56 -05:00
Justin SB 568484ff4b
Fix nsenter mounter in protokube
We don't have any shared directories, and certainly not root!
2018-10-18 22:01:09 -07:00
mooncake 5094996a32 fix typos issues in upup files
Signed-off-by: mooncake <xcoder@tenxcloud.com>
2018-10-07 10:28:01 +08:00
Justin Santa Barbara 62e8e17077 Code fixes for k8s 1.11 API changes 2018-09-28 20:14:45 -04:00
Ilya Shaisultanov 712528728c dns-controller: allow configuring DNS update interval 2018-09-06 13:29:51 -06:00
Justin Santa Barbara 9b70f75aa9 Remove gossip connection limit entirely
This simply turns off gossip connection limits, so we shouldn't ever have to manually configure them.

Follow on to #5077
2018-07-21 21:32:20 -04:00
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
Erik Berdonces Bonelo fdeed33719 Add --min-request-timeout flag in kube-APIServer 2018-07-13 10:29:30 +02:00
Justin Santa Barbara c6995e9a9a gossip: create zone in protokube
We were doing this implicitly previously by creating the etcd records.

As etcd-manager doesn't need to create gossip records, we instead
create a zone explicilty.
2018-06-14 17:43:49 -04:00
Rohith 67296c2db9 - fixing up the spelling mistakes found 2018-06-06 10:03:51 +01:00
Justin Santa Barbara d5a6b15b9b Fix typo: adddresses -> addresses 2018-05-31 13:14:34 -07:00
Justin Santa Barbara ba87c36f73 Support (optional) etcd-manager 2018-05-25 16:01:22 -04:00
liang 8d3ad44137 add err to log 2018-05-02 02:16:40 +00:00
liang ebfb3c241b change gossip dns conn limit by ENV 2018-04-28 15:50:19 +00:00
k8s-ci-robot 99cf4b63e9
Merge pull request #4960 from justinsb/dont_spurious_log_on_shared_volume_tag
Ignore shared-ownership tags on volumes
2018-04-11 01:40:55 -07:00
Justin Santa Barbara f0f9b9a028 Ignore shared-ownership tags on volumes
We were otherwise logging a spurious warning message
2018-04-10 23:58:17 -04: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
andrewsykim 47c41463ce digitalocean: use pagination for all list requests 2018-04-05 11:12:20 -04:00
andrewsykim b0ef6a2f99 protokube: check for device symlinks 2018-04-04 16:08:30 -04:00
andrewsykim b480898af7 digitalocean: add protokube support 2018-04-01 21:47:31 -04:00
Justin Santa Barbara 90f5839341 protokube: match device /root/dev/X as /dev/X
We certainly expect them to be the same dev tree, and it's not clear
that either is more correct than the other.

Issue #4813
Issue #4837
2018-03-31 14:40:38 -04:00
Haoyun 7b42aea169
fix a grammar mistake
fix a grammar mistake delete the "," at the end of the function comment
```release-note
None
```
2018-03-24 13:18:00 +08:00
Rohith 3c7d9d8691 Protokube Channel and RBAC
- only performing the initialization of rbac on masters
- onlu performing the channels apply on a master node
2018-03-10 21:48:35 +00: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
Mike Splain 45a57915e2 Fix bazel deprecation notice 2018-02-26 09:36:13 -05: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 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
Tim Hockin 79d5f793e7 Convert registry to k8s.gcr.io 2018-02-14 10:08:41 -08:00
Mike Splain f40dc50a25 Update BUILD files to account for some recent changes 2018-02-12 17:16:33 -05:00
Kashif Saadat ac25853cd5 - Add etcdClusterSpec Image & Version in bootstrap data for Master nodes
- Reuse execWithTee fn for ETCD Command (tee & mkfifo in different path for newer image versions)
2018-02-10 12:14:36 +00:00
Justin Santa Barbara 7ca593b994 exec target command, but still pipe it to tee
Equivalent of https://github.com/kubernetes/kubernetes/pull/57756
2018-01-25 10:15:24 -05:00
chrislovecnm 4dd3bb1dea Updating bazel BUILD files with new go_rules version 2017-12-29 15:03:14 -07:00
chrislovecnm 509b8e285f fixing goimports formatting 2017-12-18 11:09:04 -07:00
Kubernetes Submit Queue b44d894813
Merge pull request #3860 from justinsb/batching
Automatic merge from submit-queue.

Copy dnsprovider into our code, implement route53 batching

Fixes #3121
2017-12-15 15:44:12 -08:00
Kubernetes Submit Queue 576f3dc603
Merge pull request #4076 from justinsb/refactor_hosts
Automatic merge from submit-queue.

Refactor protokube hosts file into its own package
2017-12-15 05:35:12 -08:00
Kubernetes Submit Queue 490f860bc9
Merge pull request #4078 from justinsb/protokube_local_addresses
Automatic merge from submit-queue.

protokube: better discovery of local address
2017-12-15 05:03:47 -08:00
Justin Santa Barbara 6d166a41dd Refactor protokube hosts file into its own package
So we can bring this in without our gossip layer

This supports an imminent implementation that uses DNS-SD
2017-12-15 01:22:51 -05:00
Justin Santa Barbara 3472b0dc6d protokube: fix logging / logic around cluster-id
Remove superfluous if statement
2017-12-15 01:11:56 -05:00
Justin Santa Barbara 414b0172f0 protokube: better discovery of local address
Fix up the local IP address discovery logic, to recognize new
en-interfaces, and to better log what it is doing.  Plug it in for
baremetal installations.
2017-12-15 01:10:26 -05:00
Justin Santa Barbara f03cc5dbd9 Update dnsprovider imports to use our version 2017-12-13 20:43:01 -05:00
Justin Santa Barbara 1338ba13fc Fix filepath concatenation
Thanks @chrislovecnm
2017-11-30 12:08:02 -05:00
Justin Santa Barbara 3006795aae Initial support for nvme 2017-11-30 00:23:43 -05:00
Justin Santa Barbara aff2e6a114 Fix resources for etcd-events
etcd-events only requests 100m, otherwise we run out of cpu on a 1
core master.
2017-11-13 00:34:39 -05:00
Justin Santa Barbara 67b434fa6a Don't use gazelle proto generation for our code
We're still checking in the generated pb.go file, for now.
2017-11-06 17:28:40 -05:00
chrislovecnm 609e268a1d gazelle updates with new bazel version 2017-11-05 17:41:53 -07:00
chrislovecnm 1e418c3e13 more goimport updates 2017-11-04 10:03:02 -06:00
chrislovecnm 4711d1596e update to imports that apimachinery is doing now automatically 2017-10-27 14:28:48 -06:00
Matt Schurenko 298747e9ae adding etcd settings to protokube 2017-10-20 00:32:53 -04:00
chrislovecnm 91d4e7e3e8 fixing bazel missed BUILD stuff 2017-10-16 10:38:53 -06:00
Kubernetes Submit Queue 3a1f866144 Merge pull request #3621 from justinsb/protokube_mount_using_nsenter
Automatic merge from submit-queue.

Simplify protokube mounter using nsenter executor
2017-10-13 19:49:46 -07: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
Justin Santa Barbara 8c16d05a95 Reduce log level in protokube 2017-10-13 01:44:14 -04:00
Justin Santa Barbara b63f4d2dbe Add data dependencies to go_test rules
This lets all the tests pass in bazel, other than create_cluster which
references files outside its tree.
2017-10-03 10:45:50 -04:00
Justin Santa Barbara 0143be7c4f autogen: BUILD and BUILD.bazel 2017-10-02 14:27:21 -04:00
Justin Santa Barbara 544990842a More fixes for 1.8 API changes 2017-10-01 23:02:32 -04:00
Justin Santa Barbara 95d4f3eb59 More code updates for 1.8 2017-10-01 21:13:00 -04:00
Justin Santa Barbara 3478031533 API types changed package 2017-10-01 14:03:56 -04:00
Justin Santa Barbara 383194780a Create helper function for critical pod annotations
In particularly I think we want a toleration also; easiest to put the
code in one function.
2017-09-30 17:38:20 -04:00
Rohith a7abb07d56 Component Manifests
The current kube manifest redirect all the logs into host located log files, this PR uses the tee command to pipe into both local logs (retaining the current) and docker stdout (which will be picked up by the journald or which every logging your using. Note also permits as to now need the logs via the kubectl command.

- renamed some of the files to make things cleaner
- redirecting the logs from the kubernetes components into local file and stdout
- cleaned up any vetting or linting error i came across
2017-09-27 15:48:41 +01:00
Justin Santa Barbara 8c3d4c56e1 Fix integration test
PR crossed with others, I believe.
2017-09-25 09:41:17 -04:00
Kubernetes Submit Queue bab73b1626 Merge pull request #3423 from wearefair/etcd-fix
Automatic merge from submit-queue. .

ETCD container mount /etc/hosts file

This PR just volume mounts the /etc/hosts file from the masters into the etcd-server containers. I'm not 100% sure if this is the right approach to fixing this problem, but I was running into the issue of the etcd servers no longer being able to discover each other after performing a rolling-update. I'm running this version of protokube locally and it's fixed my issues of the etcd containers not being able to discover each other after an update.

I saw that the kube-proxy manifest was already volume mounting the /etc/hosts file, so I figured this was kosher.
2017-09-25 01:03:50 -07:00
Justin Santa Barbara e730e043ab Add function to get etcd status
This will allow us to permit changing the etcd configuration only if
etcd has not yet been configured.
2017-09-22 23:27:26 -04:00
Catherine Cai 0b4df371d5 ETCD container mount /etc/hosts file 2017-09-20 16:42:50 -07:00
Justin Santa Barbara a26b28576e AWS: Always use verbose errors
As otherwise very difficult to diagnose errors
2017-08-25 23:08:39 -04:00
Lars Lehtonen afea9d05c5
Replace deprecated aws session.New() with session.NewSession() 2017-08-22 17:28:55 -07:00
chrislovecnm 7adee24ba3 testing now in different places if we should mount a volume 2017-08-21 13:28:21 -06:00
chrislovecnm b5e96ae63b Improving etcd volume detection logic, ensuring that root volumes
are not mounted
2017-08-15 15:10:56 -06: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
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
chrislovecnm d2f84374bf protokube changes for allowing running a custom version of etcd 2017-07-16 20:19:03 -06:00
Justin Santa Barbara 7c8dcc4a0d Code changes for 1.7 2017-07-02 13:10:28 -04:00
Justin Santa Barbara 734289043a Fix race in gossip initialization 2017-06-19 14:16:35 -04:00
Justin Santa Barbara 9d40b0e6ca Support internal (gossip) names for AWS also 2017-06-19 14:16:35 -04:00
Justin Santa Barbara 5862c60e84 Log systemctl output from status/start kubelet
Follow on to #2716
2017-06-15 23:18:34 -04:00
Manuel de Brito Fontes 4da48cf6eb Check if kubelet is already running before calling systemctl start 2017-06-14 16:31:06 -04:00
Carlos Alexandro Becker b2fb56746e
typo in TODO 2017-05-02 08:22:38 -03:00
Justin Santa Barbara 85f13a42ab gossipdns: More comments and better error handling 2017-04-25 14:00:30 -04:00
Justin Santa Barbara 45b9d30ad7 Add header 2017-04-25 01:32:27 -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
prashima 3bfe3b6e18 Added comments for files and functions. Fixes #52. (#55) 2017-04-20 23:37:41 -07:00
prashima 074791b446 Removed hardcode from protokube logic. Fixes #15. (#46) 2017-04-20 23:37:40 -07: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
Justin Santa Barbara daecd1a829 Add initialize-rbac flag to protokube
We are integrating with kubeadm!
2017-03-28 19:59:25 -04:00
Justin Santa Barbara c9ac0cdbd8 Support GCE ForwardingRule (LoadBalancer) for API
Also lots of GCE cleanup
2017-03-28 00:00:20 -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 bdf0d04b0a Merge pull request #2104 from justinsb/container_optimized_os
Initial Container-Optimized OS support
2017-03-27 10:21:39 -04:00
Robin Percy 4b030fed69 Added taints property to IG Spec.
- new property is only used when KubernetesVersion is 1.6 or greater
- taints are passed to kubelet via --register-with-taints flag
- Set a default NoSchedule taint on masters
- Set --register-schedule=true when --register-with-taints is used
- Changed the log message in taints.go to be less alarming if taints are
  found - since they are expected on 1.6.0+ clusters
- Added Taints section to the InstanceGroup docs
- Only default taints are allowed in the spec pre-1.6
- Custom taint validation happens as soon as IG specs are edited.
2017-03-25 18:36:00 -07: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
Justin Santa Barbara cb4641fea3 Code updates 2017-03-16 02:40:50 -04:00
Justin Santa Barbara 645f330dad Re-enable GCE support
We move everything to the models.  We feature-flag it, because we
probably want to change the names etc, and we aren't going to be able to
offer smooth upgrades until that is done.
2017-02-28 20:08:03 -05:00
Justin Santa Barbara 587c341dd7 Fix boilerplate / gofmt 2017-01-25 09:13:45 -05:00
Chris Love 830ce9abbd Merge pull request #1588 from justinsb/protokube_etcd_through_code
protokube: build etcd manifest in code
2017-01-25 02:55:05 -07:00
Justin Santa Barbara 5ace7ef11b protokube: build etcd manifest in code 2017-01-24 12:14:25 -05:00
Chris Love 2c2139053f Merge pull request #1541 from justinsb/log_when_starting_kubelet
protokube: log when starting kubelet
2017-01-23 10:08:22 -07:00
Justin Santa Barbara 0be10236b9 protokube: log when starting kubelet 2017-01-19 01:59:47 -05:00
Justin Santa Barbara 8308af1747 Support multi masters in a single AZ
We primarily need to make sure we don't mount all the volumes on the
same instance.
2017-01-18 21:16:17 -05:00
Justin Santa Barbara 9d6fddfa3e Use versioned taint annotations
The json annotations were removed from the unversioned types.
2017-01-12 23:59:04 -05:00
Justin Santa Barbara 84fad6e2b2 Merge pull request #697 from justinsb/unify_dns
Rework protokube dns so it shares code with dns-controller
2017-01-04 23:20:56 -05:00
Kris Nova 968366d444 Merge pull request #1309 from justinsb/version_update
Update to k8s 1.6 code
2017-01-04 21:08:54 -07:00
Justin Santa Barbara 22a963d5af Rework protokube dns so it shares code with dns-controller 2017-01-03 22:33:40 -05:00
Justin Santa Barbara a375b1af82 Updates for k8s 1.6 code 2017-01-03 20:32:48 -05:00
Justin Santa Barbara b36b75ad0c Always set CredentialsChainVerboseErrors when initializing AWS
Fix #605
2017-01-03 20:03:03 -05:00
Duncan McNaught b9b88252d2 Adding label k8s-app to manifests on master 2016-12-29 18:21:45 +00:00
Justin Santa Barbara 911826e397 Protokube should mount volumes in a consistent order
And always mounting the main volume first should be a little faster

Fix #934
2016-12-26 11:47:17 -05:00
Zach Loafman 1f657990b3 Disable kubelet from starting until after volume mounts
* Change protokube to do `systemctl start kubelet` every sync round
** .. which takes a change to the systemd unit for protokube to mount in D-Bus
* Don't start kubelet in nodeup
2016-11-23 11:30:19 -08:00
Justin Santa Barbara 76dc86ff49 Apply gofmt 2016-11-19 15:01:06 -05:00
Justin Santa Barbara 27026ff110 Misc build fixes for dns-controller 2016-11-19 15:01:00 -05:00
Justin Santa Barbara a34adc9be3 Update for new mount API 2016-11-19 15:01:00 -05:00
Justin Santa Barbara 46e5b724cf Reduce CPURequests, so we can run on 1 core machine
Fix #776
2016-11-04 00:41:51 -04:00
chrislovecnm 8fa2aac99f fixing more headers 2016-10-15 19:20:56 -06:00
Justin Santa Barbara b0f7bbbadf Allow channels tool to understand well-known short references
This allows us to move them to a dedicated addons repo later.
2016-10-01 10:58:46 -04:00
Justin Santa Barbara 7f26c8b9e1 Protokube: master tainting and channel creation 2016-10-01 00:16:28 -04:00
Justin Santa Barbara dc2f7f00f1 Set lower CPU request on etcd-events 2016-09-30 00:05:53 -04:00
Justin Santa Barbara b69ee2a0ee Accept a hosted zone ID for dns-zone
There isn't any real ambiguity.

Fix #75
2016-07-12 22:14:26 -04:00
Justin Santa Barbara f82a407e73 Avoid a race between etcd start and volume mount
If the instance restarted but lost the volume mount, there might be a
short or indefinite delay before protokube can mount the volume again.
But the etcd manifest would probably still be in
/etc/kubernetes/manifests from the previous run.

To ensure that kubelet doesn't run etcd until the volume is actually
mounted, we use a symlink to a directory on the volume itself.  Thus
kubelet can't start etcd until we put the volume there.  We can also
delete the symlink before mounting, so we have full control.

Issue #73
2016-07-07 02:21:14 -04:00
Justin Santa Barbara 2cf46731aa Makefile improvements
Fix some paths; don't try to push to production buckets.

Reorganize protokube into the main Makefile
2016-07-05 11:54:41 -04:00
Justin Santa Barbara 59ee0b05a0 Initial protokube README 2016-07-02 14:47:12 -04:00
Justin Santa Barbara d427858477 Rename to kops
The upup tool is now called kops, and we have moved repos
2016-06-30 09:25:25 -04:00
Justin Santa Barbara 8e52111c0f protokube: apply gofmt 2016-06-27 23:52:59 -04:00
Justin Santa Barbara 81c95c48a3 protokube: avoid doing redundant DNS updates 2016-06-27 23:52:23 -04:00
Justin Santa Barbara eeed4a3031 Rationalize API to something we want to support forever 2016-06-26 23:09:02 -04:00
Justin Santa Barbara 77f5ce0cb0 protokube: put etcd data location in same place as before
Enables upgrade from kube-up
2016-06-15 13:55:06 -04:00
Justin Santa Barbara 7e820f89fa upup: increase etcd initialDelaySeconds
Otherwise a transient problem can put etcd into a restart loop, where
k8s backs off and a quorum of nodes won't exist simultaneously.
2016-06-11 23:08:40 -04:00
Justin Santa Barbara c228d2a51e protokube: DNS and direct etcd support
Adds changes to support clustered etcd:

* Configure node names in DNS
* Parse annotations on the volume to infer the etcd configuration

Using annotations on the volumes to control what manifests launch feels
pretty powerful.  Though we could also just write the manifest to a
central location (e.g. S3) and then sync them into the kubelet
directory.

This also means we no longer have to directly spawn kubelet - we can now
just write the manifests.
2016-06-07 15:18:53 -04:00
Justin Santa Barbara d5141af03f protokube: only try to mount the master disk on the master 2016-06-04 16:10:52 -04:00
Justin Santa Barbara b11ad36f94 Protokube: prototyping the 'missing' kubelet pieces
Working towards self-hosting of k8s, we will likely have to add some
features to kubelet, such as independent mounting of disks or copying of
resources from S3.  protokube lets us develop those features prior to
moving them into kubelet.

In particular, today we need to mount an EBS volume on the master prior
to starting kubelet, if we want to run the master in an ASG.

protokube is a service that runs on boot, and it tries to mount the
master volume.  Once it mounts the master volume, it runs kubelet.
Currently it runs kubelet by looking at a directory
/etc/kubernetes/bootstrap; the intention is that we could actually have
multiple versions of kubelet in here (or other services) and then we
could automatically roll-back from a failed update.
2016-05-30 18:05:24 -04:00