Commit Graph

101 Commits (361dd00ea6a1378064f89b8fdeaefc993dd5a80d)

Author SHA1 Message Date
Zach Loafman b98f93bb4b Merge pull request #7112 from erictune/kubeconfig-secrets
Extend PR#5470 for AWS and Vagrant
2015-04-22 09:25:53 -07:00
Eric Tune 2ca8a9d15d Added kube-proxy token.
Generates the new token on AWS, GCE, Vagrant.
Renames instance metadata from "kube-token" to "kubelet-token".
(Is this okay for GKE?)

Having separate tokens for kubelet and kube-proxy permits
using principle of least privilege, makes it easy to
rate limit the clients separately, allows annotation
of apiserver logs with the client identity at a finer grain
than just source-ip.
2015-04-21 09:21:31 -07:00
Eric Tune 7475efbcfb Extend PR#5470 for AWS and Vagrant 2015-04-21 08:22:31 -07:00
yaoguo e597b41d93 Remove duplicate localhost setting 2015-04-10 00:10:47 +08:00
Abhishek Shah fb665ede4c Run etcd on localhost for all providers. 2015-04-03 14:00:44 -07:00
Derek Carr 2af9b54147 Merge pull request #6259 from zmerlynn/fix_cloud_provider
Eliminate grains.cloud_provider (in preference to grains.cloud) from SaltStack
2015-04-01 17:04:05 -04:00
Zach Loafman b581320bf7 Eliminate grains.cloud_provider (in preference to grains.cloud) from SaltStack
This variable can be entirely derived from grains.cloud, and it
simplifies the configuration somewhat. (Or someone convince me I'm
wrong. I'm happy to be wrong here.)
2015-04-01 08:32:32 -07:00
Zach Loafman 0806e3bde0 rm Salt grains.master_ip
This appears in the Salt documentation, is set by Vagrant, but has no
consumers. Remove vestigial references.
2015-03-31 17:31:47 -07:00
jayunit100 9b67949085 Fix vagrant so that ssh commands work OOTB, (squashed) move verify to vagrant/util.sh, remove run_provider_test, cleanup. 2015-03-18 15:02:12 -04:00
derekwaynecarr 468bf1da75 Enable common set of admission controllers across salt providers 2015-03-11 11:06:00 -04:00
derekwaynecarr 2ed8eed004 Make admission control plug-ins work from indexes 2015-03-06 09:36:57 -05:00
derekwaynecarr 5fdf6b131c Fix error provisioning kube-apiserver on vagrant 2015-02-27 10:17:46 -08:00
derekwaynecarr 87a41b0934 Improve vagrant reliablility, fix race condition with openvswitch and docker 2015-02-21 13:31:50 -05:00
derekwaynecarr 0bd0e12bbc Add support for Namespace as Kind
Add example for using namespaces
2015-02-10 09:50:50 -05:00
derekwaynecarr 4dd50a18c3 Fix vagrant regression, add flag to easily enable v1beta3 2015-01-30 12:16:24 -05:00
Zach Loafman a305269e18 Deferred creation of SkyDNS, monitoring and logging objects
This implements phase 1 of the proposal in #3579, moving the creation
of the pods, RCs, and services to the master after the apiserver is
available.

This is such a wide commit because our existing initial config story
is special:

* Add kube-addons service and associated salt configuration:
** We configure /etc/kubernetes/addons to be a directory of objects
that are appropriately configured for the current cluster.
** "/etc/init.d/kube-addons start" slurps up everything in that dir.
(Most of the difficult is the business logic in salt around getting
that directory built at all.)
** We cheat and overlay cluster/addons into saltbase/salt/kube-addons
as config files for the kube-addons meta-service.
* Change .yaml.in files to salt templates
* Rename {setup,teardown}-{monitoring,logging} to
{setup,teardown}-{monitoring,logging}-firewall to properly reflect
their real purpose now (the purpose of these functions is now ONLY to
bring up the firewall rules, and possibly to relay the IP to the user).
* Rework GCE {setup,teardown}-{monitoring,logging}-firewall: Both
functions were improperly configuring global rules, yet used
lifecycles tied to the cluster. Use $NODE_INSTANCE_PREFIX with the
rule. The logging rule needed a $NETWORK specifier. The monitoring
rule tried gcloud describe first, but given the instancing, this feels
like a waste of time now.
* Plumb ENABLE_CLUSTER_MONITORING, ENABLE_CLUSTER_LOGGING,
ELASTICSEARCH_LOGGING_REPLICAS and DNS_REPLICAS down to the master,
since these are needed there now.

(Desperately want just a yaml or json file we can share between
providers that has all this crap. Maybe #3525 is an answer?)

Huge caveats: I've gone pretty firm testing on GCE, including
twiddling the env variables and making sure the objects I expect to
come up, come up. I've tested that it doesn't break GKE bringup
somehow. But I haven't had a chance to test the other providers.
2015-01-21 12:25:50 -08:00
derekwaynecarr 123c96164e Disable defaults plugin 2015-01-15 19:42:20 -05:00
derekwaynecarr 7f724867c2 Admission control plugin for resource defaults 2015-01-14 15:28:59 -05:00
derekwaynecarr 520ae3ef27 Implement basic admission control framework 2015-01-07 14:42:31 -05:00
Tim Hockin 59164ca844 Make DNS an option for cluster turnup 2014-12-29 09:18:12 -08:00
Joe Beda 428aeacf6d Rework vagrant cluster set up.
* Have a single config file that mirrors other cluster providers
* Warn users not to use 'vagrant up' directly
* Allow 'extra' parameters to the docker daemon.  Fixes #2685
* Renumbers things so that they are more sane.  Master/minions are 10.245.1.x, container subnets are 10.246.x.1/24, portal is 10.247.0.0/16
2014-12-17 13:23:39 -08:00
Joe Beda 2fc02cb06a Quote strings in bash populated YAML files.
Quoting is hard.  When writing strings into YAML files, wrap them in single quotes.  Also escape any embedded single quotes in those strings via a double signle quote ('').
2014-12-16 16:13:46 -08:00
Eric Tune edeb96dca9 Merge pull request #2772 from rlarocque2/apiserver_auth
Implement apiserver communication for Vagrant
2014-12-10 07:13:40 -08:00
Brendan Burns 3a7dd589d5 Merge pull request #2735 from erictune/proxy_no_etcd
Use apiserver instead of etcd for kube-proxy.
2014-12-09 15:27:20 -08:00
derekwaynecarr aacf2c2780 Add python-cherrypy as explicit install for salt-api 2014-12-08 11:36:26 -05:00
Richard Larocque 7d37b24cc7 Implement apiserver communication for Vagrant
This implementation is based on the GCE impementation from
618a367dbb48dbaa9c3b50e877858d854322fd0b.
2014-12-05 12:49:51 -08:00
Eric Tune 65b38e7af7 Use apiserver instead of etcd for kube-proxy.
For cloud-providers that use salt, have kube-proxy use
apiserver instead of etcd as a config source.
2014-12-02 22:21:01 -08:00
Tim Hockin 47141f05c7 standard config opt names: logging 2014-11-25 17:41:53 -08:00
Tim Hockin 52ad94d766 standard config opt names: node monitoring 2014-11-25 17:39:28 -08:00
derekwaynecarr 1a894741b2 Fix vagrant regression 2014-11-20 10:39:09 -05:00
Joe Beda 5a0159ea00 Get Vagrant to start using TLS client certs.
Also fix up cert generation. It was failing during the first salt highstate when trying to chown the certs as the apiserver user didn't exist yet.  Fix this by creating a 'kube-cert' group and chgrping the files to that.  Then make the apiserver a member of that group.

Fixes #2365
Fixes #2368
2014-11-13 22:16:45 -08:00
Pieter Noordhuis 1152471db7 Split reactor files
There now are reactor files to run highstate on:

* New nodes only
* Master nodes
* Minion nodes
2014-10-29 11:30:09 -07:00
Tim Hockin 5c4bd55273 Add vagrant support 2014-10-16 08:36:47 -07:00
Joe Beda 9bb20b41ee Break out dynamic salt files to enable clean kube-push.
This lets us blow away salt files and replace them with a new version while keeping a tree of "overlay" files that are cluster specific and generated at cluster up time.

Fixes #1783
2014-10-14 15:01:43 -07:00
derekwaynecarr b8d2f08192 Fix race condition in start-up of salt-minion and salt-master 2014-10-14 12:41:45 -04:00
Joe Beda d43a6ec5a3 Standardize how we refer to the kubernetes root.
Now use $KUBE_ROOT as the variable pretty much everywhere.
2014-10-10 12:33:36 -07:00
Joe Beda 881cf80182 Vagrant now using pre-built binaries. 2014-10-10 12:30:12 -07:00
Joe Beda c323179d9b Don't print Kubernetes username/password to console.
It is too easy to copy/paste this on-line.

Fixes #1483
2014-09-29 13:18:29 -07:00
derekwaynecarr f42fcef620 Add explicit flag to use openvswitch 2014-09-08 15:31:22 -04:00
derekwaynecarr 7f75aae8ab Improve vagrant hostname support across cluster 2014-09-05 16:39:39 -04:00
Filipe Brandenburger 54b2ed0078 Suppress non-error output of `systemctl enable`
The `systemctl enable` command ordinarily prints the `ln` command used
to enable the unit to stderr, but that's not ideal in the vagrant setup
because it gets printed in red, which should be reserved for errors, but
it's not a real error.

Set an environment variable to raise the log level to prevent `info`
messages from being printed to stderr (as they are not actually errors.)

I looked into the `systemctl` calls happening from the Salt setup script
to understand why they were not going to stderr, and it turns out the
Salt script will redirect all messages to stdout so they will all be
green regardless...

Tested:
- Started a fresh Vagrant cluster, confirmed no red messages in output
  when creating the cluster successfully. Successfully started nginx
  through Kubernetes using cluster/kubecfg.sh.
- Confirmed that the salt-api service was up after `vagrant up`:
  $ vagrant ssh master -c 'systemctl status salt-api.service'
  salt-api.service - The Salt API
     Loaded: loaded (/usr/lib/systemd/system/salt-api.service; enabled)
     Active: active (running) since Fri 2014-08-29 23:19:47 UTC; 11min ago
   Main PID: 2090 (salt-api)
     CGroup: /system.slice/salt-api.service
             +-2090 /usr/bin/python /usr/bin/salt-api
             +-2110 /usr/bin/python /usr/bin/salt-api

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-29 16:44:05 -07:00
Joe Beda 843ae1fbe2 Rename `output/` directory to `_output/`
go build ./... will ignore any directory starting with an underscore.
2014-08-29 14:44:55 -07:00
Filipe Brandenburger c5520dd39d Remove workaround for salt-minion startup in vagrant/provision-minion.sh
The workaround was not needed, as salt-minion was always correctly
started in the Vagrant minion setup.

The issue reported in #270 was clearly specific do System V style init
scripts and will not affect systemd.

Also remove the inaccurate comment from provision-master.sh, since -X
was not even really in use there.

Tested:
- Performed 3 full `vagrant up` and `vagrant destroy -f` cycles with at
  least 3 minions and up to 6 minions in one case. Checked that
  salt-minion was up in each of the minions using a `systemctl status
  salt-minion` command.
- Started nginx on the cluster using cluster/kubecfg.sh, confirmed it
  was up with `list /pods` and confirmed it was reachable using wget on
  port 8080 of the minions.

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-29 08:50:10 -07:00
Filipe Brandenburger 86c1ddc121 Fix `which salt-master` warning in Vagrant startup
The `which` command in Fedora 20 (differently from the one in Debian)
prints to stderr when the binary is not found. Redirect both stdout and
stderr to /dev/null to prevent messages from being printed by `which`.

Check whether the binary exists or not by the exit status of `which`
(non-zero means the binary does not exist) instead of checking for empty
output.

Tested:
- Started a Vagrant cluster with `vagrant up` and confirmed these
  messages were gone. Checked master and minions for Kubernetes
  components using the systemd status commands.
- Confirmed that the same error message for salt-minion is also
  suppressed from the output with this patch.

Fixes: Issue #1079

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-27 23:15:08 -07:00
derekwaynecarr 8df21b84a1 Add vagrant cloudprovider 2014-08-18 14:30:31 -04:00
derekwaynecarr 967c2552e7 Revert to latest salt bootstrap and force SSL 2014-08-18 11:39:23 -04:00
derekwaynecarr 10be80295c apiserver listen on 0.0.0.0 in vagrant 2014-08-14 10:02:04 -04:00
derekwaynecarr b9dc38e617 Log only states that change or error to improve readability 2014-08-06 14:47:41 -04:00
Michal Fojtik 264eebb997 Disable curl progress bar when running vagrant up 2014-08-01 15:08:17 +02:00
csrwng d9ae72d1f0 Temporarily point to older bootstrap script
The most recent saltstack bootstrap file expects a salt-api service to
exist. The most recent Fedora salt-master rpm doesn't include this
service yet. Pointing to the previous version of the bootstrap script.
2014-07-28 12:51:01 -04:00
derekwaynecarr 69ae2fe4bb Initial vagrant setup and e2e testing support 2014-07-24 16:32:36 -04:00