Commit Graph

100 Commits

Author SHA1 Message Date
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
Justin Santa Barbara 212224b3cc Merge pull request #21 from justinsb/upup_executor
upup: Executor that performs some retry logic
2016-05-22 22:26:44 +01:00
Justin Santa Barbara 16559c9010 upup: Executor that performs some retry logic
If there is an error performing a task, we will reattempt it as long as
forward progress is still being made (i.e. at least one other task
completed successfully)

This makes everything more reliable (though we should still fix these
problems), but it also lays the groundwork for parallel execution.
2016-05-22 21:02:53 +01:00
Justin Santa Barbara 7dc7e848a7 Merge pull request #20 from justinsb/upup_export_kubecfg
upup: add command to generate kubecfg
2016-05-22 21:00:34 +01:00
Mike Danese 3e57457d80 Merge pull request #12 from luxas/docker_multinode
WIP: Initial add of docker-multinode
2016-05-22 12:56:15 -07:00
Mike Danese 6cdb33cf48 Merge pull request #30 from mikedanese/reorg
reorganize turnup directory structure
2016-05-17 11:25:06 -07:00
Justin Santa Barbara 6a85472cd2 Add glide dependency on cobra 2016-05-17 12:58:27 -04:00
Justin Santa Barbara 505ef056d9 Add upup command, with a subcommand to generate kubecfg 2016-05-17 12:54:13 -04:00
Justin Santa Barbara bbc460f5a7 Refactor Certificate and PrivateKey to implement io.WriterTo 2016-05-17 12:54:13 -04:00
Mike Danese 19bb767767 Merge pull request #28 from justinsb/upup_aws_retry_tags_on_eventual_consistency_error
upup: tolerate aws eventual-consistency errors on tags
2016-05-17 09:34:53 -07:00
Mike Danese 01590a9704 Merge pull request #27 from justinsb/upup_aws_image_aliases
upup: Map matching image ids to source name
2016-05-17 09:34:42 -07:00
Mike Danese 026bb16e49 Merge pull request #26 from justinsb/upup_aws_instance_userdata
upup: Fetch instance userdata on AWS
2016-05-17 09:34:30 -07:00
Mike Danese 7466c48a75 Merge pull request #25 from justinsb/upup_dryrun_print_interface
upup: fix dryrun spurious printing of interface values
2016-05-17 09:34:17 -07:00
Mike Danese d5928df6a4 Merge pull request #24 from justinsb/upup_aws_iamrole_policies
upup: Perform JSON comparison on IAMRole PolicyDocuments
2016-05-17 09:34:03 -07:00
Mike Danese cf98b75d39 Merge pull request #23 from justinsb/upup_aws_instance_tags
upup: Discover tags on AWS instances
2016-05-17 09:33:50 -07:00
Mike Danese 03ae922b01 Merge pull request #22 from justinsb/upup_aws_keypairs
upup: Fix fingerprint calculation in AWS keypair
2016-05-17 09:33:38 -07:00
Mike Danese a4344e1564 Merge pull request #19 from justinsb/upup_keypair
upup: better keypair support
2016-05-17 09:33:24 -07:00
Mike Danese d6026a431e Merge pull request #18 from justinsb/upup_reflection_redux
upup: Make reflective walk more logical, use for dryrun change printing
2016-05-17 09:33:16 -07:00
Mike Danese b48b503a7c Merge pull request #17 from justinsb/upup_gce_metadata
upup: Discover metadata on GCE instance
2016-05-17 09:33:11 -07:00
Mike Danese 5aa64c72a6 Merge pull request #16 from justinsb/upup_image_url
upup: Map GCE image-url to string consistently
2016-05-17 09:33:02 -07:00
Mike Danese 3703ecedc8 Merge pull request #15 from justinsb/master_pd
upup: Support for persistent disks, users & symlinks
2016-05-17 09:32:56 -07:00
Justin Santa Barbara c68aeec94d upup: tolerate aws eventual-consistency errors on tags
AWS will sometimes return an error like "resource not found" when a
DescribeTags or CreateTags call immediately follows creation of the
resource.  Introduce a retry-loop when we get an error that is of the
appropriate type.
2016-05-16 12:08:28 -04:00
Justin Santa Barbara 14ac983241 upup: Map matching image ids to source name
This avoids spurious changes, and also is more intuitive for the user -
whatever name the user gave it, if it resolves to the same image, that
is the name we will use.
2016-05-16 11:20:24 -04:00
Justin Santa Barbara a00e974a95 upup: Fetch instance userdata on AWS
We simply weren't doing this until now
2016-05-16 11:12:13 -04:00
Justin Santa Barbara e90f5c78e1 upup: fix dryrun spurious printing of interface values
We missed the case where the interface changed (this only shows up if
other fields change also)
2016-05-16 10:58:44 -04:00
Justin Santa Barbara ba77aea0ea upup: Perform JSON comparison on IAMRole PolicyDocuments
AWS reformats them (inserting lots of whitespace), making a string
comparison incorrect.  Instead we parse to JSON and do a
reflect.DeepEqual check; if they are the same then we pretend the actual
value was the expected value.
2016-05-15 23:49:01 -04:00
Justin Santa Barbara e6ce439fcd upup: Discover tags on AWS instances
We simply weren't mapping them previously.
2016-05-15 23:32:49 -04:00
Justin Santa Barbara 8752db39aa upup: Fix fingerprint calculation in AWS keypair
Both fix the calculation itself to match AWS's weird fingerprint
algorithm, and also fix the comparison logic by which we infer that if
the fingerprint matches, that the public key matches also.
2016-05-15 23:28:19 -04:00
Justin Santa Barbara 1c97a94d87 Rework keypair to fit our change model
We also remove another special-case context (pki), so that it is just
another object type.
2016-05-15 21:46:53 -04:00
Justin Santa Barbara c4742045ab Support changing GCE instance metadata
This works, but is only a part-way there because:

1. We need to trigger cloudup
2. Our manifests don't pick up the change (e.g. kube-apiserver)
2016-05-15 17:46:34 -04:00
Justin Santa Barbara ac220d2ba1 Allow Render methods to take fi.Context
We call the Render methods on Tasks by reflection, and some of them
don't care about the Target, but do care about the Context (e.g. the PKI
tasks, which only care about the CAStore)
2016-05-15 17:43:04 -04:00
Justin Santa Barbara cb7e20be3b Create HasAddress interface
AWS ElasticIPs and GCE Addresses implement HasAddress.  This will be
used by dependent tasks to extract the IP address at runtime.
2016-05-15 17:42:59 -04:00
Justin Santa Barbara 02d980c681 Make reflective walk more logical, use for dryrun change printing
Remove a bunch of inconsistencies so that the reflective walk is not
suprising, and also rename it to ReflectRecursive.

Then use this for dry-run change printing.
2016-05-15 17:41:19 -04:00
Justin Santa Barbara 0976ee1a73 Discover metadata on GCE instance
We simply weren't mapping it before, which was causing spurious changes.
2016-05-15 17:40:32 -04:00
Justin Santa Barbara 5a61c35052 Map GCE image-url to string consistently
We need to reverse our image shortening consistently with how we resolve
the image, so that --dryrun does not report spurious changes.
2016-05-15 17:39:26 -04:00
Justin Santa Barbara 370727aa44 Support for persistent disks, users & symlinks
These are required to mount the master PD.  We use the kubernetes
safe-format-and-mount implementation.
2016-05-13 13:29:56 -04:00
Mike Danese b083e4f6bf Merge pull request #14 from justinsb/fintegration_aws
UpUp: AWS support
2016-05-11 14:10:04 -07:00
Justin Santa Barbara caccb8953f UpUp: AWS support
Adds AWS support for both cloudup & nodeup.
Also cleaning up things found along the way!
2016-05-09 13:08:27 -04:00
Mike Danese 72a79d7998 Merge pull request #8 from justinsb/fintegration
cloudup & nodeup: direct, terraform, cloud-init
2016-05-06 16:55:50 -07:00
Justin Santa Barbara d4c2cfaae7 Initial version of upup: cloudup & nodeup
* GCE support only
* Key and secret generation
* "Direct mode" makes API calls
* "Dry run mode" previews the changes
* Terraform output (though key generation not working for master ip)
* cloud-init output (though debian image does not ship with cloud-init)
2016-05-06 16:01:33 -04:00
Mike Danese be661c34ef Merge pull request #11 from mikedanese/readme
add to the readme a description of what this project's goal is
2016-05-03 12:51:51 -07:00
Mike Danese 4825589c36 add to the readme a description of what this project's goal is 2016-05-03 11:16:07 -07:00
Mike Danese 7af89bb646 Merge pull request #2 from mikedanese/addons
move kube_addon_manager to new home
2016-03-29 11:16:56 -07:00
Mike Danese 24dc804bab move addon manatger into subdirectory 2016-03-29 11:02:43 -07:00
Quintin Lee 5eec0fb93f Removing versions from deployment names. 2016-03-29 11:01:37 -07:00
Quintin Lee 90f046e907 Support addon Deployments, make heapster a deployment with a nanny. 2016-03-29 11:01:37 -07:00
bryk 0ca684752a Set kubernetes-dashboard as the default UI addon
Dashboard release info:
https://github.com/kubernetes/dashboard/releases/tag/v0.1.0

This replaces kube-ui addon
2016-03-29 11:01:37 -07:00
Andy Zheng 2c7fa3c243 Support master on Ubuntu Trusty
This change support running kubernetes master on Ubuntu Trusty.
It uses pure cloud-config and shell scripts, and completely gets
rid of saltstack or the release salt tarball.
2016-03-29 11:01:37 -07:00
Peter McDonnell e9f32808dc exit if unable to query status from apiserver 2016-03-29 11:01:37 -07:00
Dhawal Yogesh Bhanushali 8df36f9eba vsphere support 2016-03-29 11:01:37 -07:00