Commit Graph

44 Commits

Author SHA1 Message Date
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