Commit Graph

212 Commits

Author SHA1 Message Date
k8s-merge-robot
30375b21d6 Merge pull request #19776 from justinsb/aws_sync_kubeup_gce
Auto commit by PR queue bot
2016-02-01 14:44:18 -08:00
k8s-merge-robot
0aca70016c Merge pull request #20066 from justinsb/aws_move_build_runtime_config
Auto commit by PR queue bot
2016-02-01 09:48:27 -08:00
Justin Santa Barbara
c556e8f0f5 kube-up: Refactor kube-env into common; use in AWS
Use kube-env on the AWS master also
2016-01-28 10:31:51 -08:00
Justin Santa Barbara
4d88a4ed2c kube-up: move sha1sum-file into common
Also hash the tar files in AWS kube-up
2016-01-28 10:19:38 -08:00
Justin Santa Barbara
ae75a7d259 kube-up: move build-runtime-config from AWS & GCE into common 2016-01-28 10:19:38 -08:00
k8s-merge-robot
6c63acdd3d Merge pull request #19398 from justinsb/aws_elasticip_for_master
Auto commit by PR queue bot
2016-01-26 04:34:28 -08:00
k8s-merge-robot
8c821700f3 Merge pull request #19389 from justinsb/internal_cidr
Auto commit by PR queue bot
2016-01-26 03:58:48 -08:00
Justin Santa Barbara
8a7afc459c AWS: Call build-runtime-config where it is used
build-runtime-config was being called in verify-prereqs, which didn't
match how GCE called it, and didn't seem to actually work.

Instead call it just before the master configuration is built.  Also
call it just before the node configuration is built, even though the
nodes don't _currently_ require the runtime_config.
2016-01-24 10:43:15 -05:00
Justin Santa Barbara
d8460d5920 AWS: Pass non-masquerade-cidr through kube-up
Set the environment variable NON_MASQUERADE_CIDR.

Docs in cluster/aws/options.md
2016-01-22 21:01:44 -05:00
Justin Santa Barbara
274e589aa6 AWS: Use an elastic IP for the master by default
If we don't use an elastic IP, the IP address will be lost if we lose
the master for any reason, and a replacement master will not have the
same IP.  But the master IP is set both in client kubeconfig files and
the master SSL certificate.  Hence the default should be to allocate an
elastic IP for the master.

One complication: AWS doesn't allow tags on elastic IPs, so it is hard
to track the elastic IP so we can delete it as part of kube-down.
Instead, we take the master EBS volume with the elastic IP.  This is a
little odd, but works because the master volume & the master elastic IP
really need to be assigned to the same machine, so might be thought of
as a pair.

Also, we now delete the master EBS volume as part of kube-down, as
people expect kube-down to clean-up everything it creates.
2016-01-21 22:01:55 -05:00
Alex Mohr
f788e1e11a Merge pull request #19446 from justinsb/aws_reboot_master_on_failure
AWS: Create a cloudwatch alarm to reboot the master on failure
2016-01-21 15:05:14 -08:00
Justin Santa Barbara
2958ea253a GCE: Allow for reuse of master
This is for internal use at the moment, for testing Ubernetes Lite, but
arguably makes the code a little cleaner.

Also rename KUBE_SHARE_MASTER -> KUBE_USE_EXISTING_MASTER
2016-01-20 15:37:00 -05:00
Josh Ellithorpe
76e8a8b08d Fix issues with Python3 and bring up a dev cluster 2016-01-12 11:08:42 -08:00
Justin Santa Barbara
d91ad0bb6f AWS: Create a cloudwatch alarm to reboot the master on failure
This is an easier alternative to keep a master running than trying to
dynamically find & attach master volumes.

To actually work, it requires that users create the EC2ActionsAccess IAM
role as required by CloudWatch, see e.g.
http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/UsingIAM.html
2016-01-09 14:53:29 -05:00
Justin Santa Barbara
57265a4c74 AWS: Pass NUM_NODES in instance-data
The bootstrap scripts already assume it is set.
2016-01-05 23:10:43 -05:00
Michael Nikitochkin
2272de1f67 AWS: Fixed compacting script of cloud init for MacOS
In MacOS there is error during setup a new cluster:

```
+ sed -i -e 's/^[[:blank:]]*#.*$//' -e '/^[[:blank:]]*$/d' /sometmpfile
sed: -e: No such file or directory
```

Because sed version of MacOS does not support modern features.
2015-12-16 09:20:57 +01:00
Thomas Ploch
189f2436e3 [AWS] Wrong assignment of KUBE_MASTER_IP with Elastic IP
Currently when using a custom elastic IP, the ENV var `KUBE_MASTER_IP` gets
the output of `$(assign-elastic-ip $ip $master_id)` assigned.

This is wrong since the command returns a string:
`Attaching IP 99.999.999.999 to instance i-9999999`

This patch fixes the assignment by calling `get_instance_public_ip` again.
2015-12-12 13:53:01 +01:00
Justin Santa Barbara
428e4156e2 AWS: Strip more comments from instance user-data
To stay under the 16KB limit
2015-12-07 22:27:33 -05:00
k8s-merge-robot
b69018eab2 Merge pull request #17844 from eosrei/kube-util-minion-node
Auto commit by PR queue bot
2015-12-02 03:06:27 -08:00
k8s-merge-robot
bb86936765 Merge pull request #17803 from davidsiefert/master
Auto commit by PR queue bot
2015-12-01 02:15:11 -08:00
k8s-merge-robot
7bcd7759fa Merge pull request #17814 from themez/master
Auto commit by PR queue bot
2015-12-01 00:22:51 -08:00
Brad Erickson
0bd16e0437 Minion->Node rename: kube-util hosting provider helper functions 2015-11-26 09:31:46 -08:00
ThemeZ
3342e4e1d3 Correct s3 url base for region "cn-north-1" 2015-11-26 11:37:28 +08:00
David Siefert
94d32588f4 Extracting more functions for reuse out of kube-up 2015-11-25 17:29:30 -06:00
Brad Erickson
53172a5356 Minion->Node rename: NUM_NODES 2015-11-25 00:45:10 -08:00
Brad Erickson
e67be19a5b Minion->Node rename: OLD_NODE_TAG, NODE_TAG 2015-11-25 00:45:09 -08:00
Brad Erickson
bd06c19aa8 Minion->Node rename: NODE_SIZE 2015-11-25 00:45:09 -08:00
Brad Erickson
8431993a44 Minion->Node rename: NODE_SG_ID, NODE_SG_NAME 2015-11-25 00:45:09 -08:00
Brad Erickson
1846cfc129 Minion->Node rename: NODE_ROOT_DISK_SIZE, NODE_ROOT_DISK_TYPE, etc
NODE_SCOPES
2015-11-25 00:45:09 -08:00
Brad Erickson
fc04b55088 Minion->Node rename: NODE_NAMES, NODE_NAME, NODE_PORT 2015-11-25 00:45:09 -08:00
Brad Erickson
83ed2fa22e Minion->Node rename: NODE_DISK_SIZE, NODE_DISK_TYPE, NODE_HOSTNAME, etc
NODE_IDS
NODE_ID
NODE_IMAGE_PROJECT
NODE_IMAGE
2015-11-25 00:45:09 -08:00
Brad Erickson
a36d3390bf Minion->Node rename: KUBERNETES_NODE_MEMORY, VAGRANT_NODE_NAMES, etc
ENABLE_NODE_PUBLIC_IP
NODE_ADDRESS
NODE_BLOCK_DEVICE_MAPPINGS
NODE_CONTAINER_ADDRS
NODE_CONTAINER_NETMASKS
NODE_CONTAINER_SUBNET_BASE
NODE_CONTAINER_SUBNETS
NODE_CPU
2015-11-25 00:43:52 -08:00
Brad Erickson
ae314ad246 Minion->Node rename: KUBE_NODE_IP_ADDRESSES, KUBE_NODE_IP_ADDRESS 2015-11-25 00:43:52 -08:00
Brad Erickson
68539ae8a4 Minion->Node rename: KUBE_NODE_IMAGE 2015-11-25 00:43:51 -08:00
Brad Erickson
6b91b45eff Minion->Node rename: IAM_PROFILE_NODE, KUBE_ENABLE_NODE_PUBLIC_IP, etc
KUBE_GCE_NODE_IMAGE, KUBE_GCE_NODE_PROJECT, KUBEMARK_NUM_NODES
2015-11-25 00:43:51 -08:00
k8s-merge-robot
440bdd27d5 Merge pull request #17087 from justinsb/aws_delete_ebs
Auto commit by PR queue bot
2015-11-12 01:17:40 -08:00
Justin Santa Barbara
d5f62ca67b AWS: Don't use JSON parsing in kube-up
We use the AWS CLI support for --query and --filter instead; should be
more reliable and clearer.

Also set the output format to text, so we don't have to set it every
time and don't risk problems if we forget to set it.

Fixes #16747

We do still have to use JSON parsing in one place: ELB does not support
--filter, so we have to use Python there.
2015-11-10 23:30:42 -05:00
Christian Stewart
d61d57adec
Remove ENABLE_EXPERIMENTAL_API and similar in favor of KUBE_RUNTIME_CONFIG.
Addresses #15968

This patch removes KUBE_ENABLE_EXPERIMENTAL_API and similar calls in
favor of specifying desired features in KUBE_RUNTIME_CONFIG. Changes
have also been made to e2e scripts to re-enable using
KUBE_RUNTIME_CONFIG rather than EXPERIMENTAL_API env vars.

This also introduces KUBE_ENABLE_DAEMONSETS and KUBE_ENABLE_DEPLOYMENTS.

Signed-off-by: Christian Stewart <christian@paral.in>
2015-11-10 21:36:34 -05:00
k8s-merge-robot
6fbae33eb1 Merge pull request #16918 from justinsb/aws_fix_kubedown_no_instances
Auto commit by PR queue bot
2015-11-10 11:11:56 -08:00
k8s-merge-robot
157f663f5b Merge pull request #16867 from justinsb/aws_log_upload_urls
Auto commit by PR queue bot
2015-11-07 00:00:28 -08:00
k8s-merge-robot
b719d7a45e Merge pull request #15070 from justinsb/aws_print_region_if_not_matching
Auto commit by PR queue bot
2015-11-06 10:31:29 -08:00
Justin Santa Barbara
84bab0dae5 AWS: kube-down was failing with no instances
The new delete-ASG logic wasn't correct if there were no instances
2015-11-06 10:43:13 -05:00
Justin Santa Barbara
5bde574eca AWS: Log the download URLs after we upload to S3
This is helpful if you want to manually update a cluster.
2015-11-05 14:39:18 -05:00
Justin Santa Barbara
2d5671aec2 AWS: Fix kube-up comments per code review 2015-11-03 13:12:17 -05:00
Justin Santa Barbara
41743ce87a AWS: Delete ASGs by following instances
We can't tag ASGs, but we can see what instances are running in an ASG,
and we can match those by our tags.

So look for our running instances, and look for the ASGs that created
them, and delete those.

This can be defeated (most notably if users change the ASG size to 0),
but it is safer that other deletion methods.
2015-11-03 11:58:05 -05:00
Justin Santa Barbara
cf86ecc604 AWS: Only match minions in the current ASG
i.e. don't assume there is only one ASG any more
2015-11-03 11:58:05 -05:00
Justin Santa Barbara
d64643fe26 AWS: Experimental support for multiple subnets/AZs in kube-up
By setting KUBE_SHARE_MASTER=true we reuse an existing master, rather
than creating a new one.

By setting KUBE_SUBNET_CIDR=172.20.1.0/24 you can specify the CIDR for a
new subnet, avoiding conflicts.

Both these options are documented only in kube-up and clearly marked as
'experimental' i.e. likely to change.

By combining these, you can kube-up a cluster normally, and then kube-up
a cluster in a different AZ, and the new nodes will attach to the same
master.

KUBE_SHARE_MASTER is also useful for addding a second node
auto-scaling-group, for example if you wanted to mix spot & on-demand
instances.
2015-11-03 11:57:59 -05:00
Justin Santa Barbara
df3897c4ab Split main kube-up function into sub-functions
Makes it a little easier to read, also lets us reuse a master in the
next commit without a complex diff.
2015-11-03 10:16:32 -05:00
Justin Santa Barbara
1607ac1a7a AWS: use filters in get_igw_id & get_subnet_id
Also remove unused get_route_table_id
2015-11-03 10:09:51 -05:00
Jeff Lowdermilk
de4f29f1f5 Load or generate auth from kubeconfig on kube-up
Allows loading existing auth from kubeconfig on kube-up if a
valid KUBE_CONTEXT is specified, instead of always force
regenerating auth (basic or token) when creating a new cluster.
2015-10-30 10:19:40 -07:00