Commit Graph

376 Commits (207c53b7e6c46885b3c13180c9af72b40ca7b922)

Author SHA1 Message Date
Justin Santa Barbara 2a5ed2f086 AWS: Use auto-scaling group to run minions
This uses the dynamic CIDR work, and we set source-dest-check to false
when we configure the route (which kind-of makes sense)
2015-06-19 10:22:15 -04:00
Satnam Singh 9f32599bee Merge pull request #9720 from justinsb/aws_routes
Refactor Routes, and dynamically configure minion CIDRs on AWS
2015-06-18 17:16:29 -07:00
Justin Santa Barbara 0ad16a187d Refactor findRouteTable to be less verbose
Thanks for the suggestion @cjcullen
2015-06-18 17:08:32 -07:00
Justin Santa Barbara a4e15cdf3e AWS: Configure minion routes dynamically
We need to implement the Routes interface, and then enable the functionality in the cluster scripts.
2015-06-18 14:59:37 -07:00
Justin Santa Barbara a3b43a36fd Refactor cloud route interface, to avoid assumption that routes are named 2015-06-18 14:59:37 -07:00
Justin Santa Barbara a77bc9cfc4 Document assumption made by node-controller, and fix AWS to match
ExternalID must return "", cloudprovider.InstanceNotFound if the instance
is not found, for nodecontroller to remove nodes corresponding to deleted instances.
2015-06-18 14:55:10 -07:00
Satnam Singh 4c13f8957d Merge pull request #10057 from justinsb/aws_id_as_name_2
Fix of reverted #9728
2015-06-18 14:07:21 -07:00
Justin Santa Barbara bd512ae06d AWS: Use the instance id as the node name
The EC2 instance id is the canonical node name on EC2.
2015-06-18 12:40:10 -07:00
Justin Santa Barbara df87470ecf Allow cloud providers to return a node identifier different from the hostname 2015-06-18 12:40:05 -07:00
Satnam Singh e4f5529a2d Revert "Allow nodename to be != hostname, use AWS instance ID on AWS" 2015-06-18 11:27:55 -07:00
CJ Cullen abf1e768dc Pass through an explicit PROXY_SSH_USER.
Use user@user instead of user@hostname in case hostname is too long.
2015-06-18 10:35:02 -07:00
Satnam Singh 790ca2344f Merge pull request #9728 from justinsb/aws_id_as_name
Allow nodename to be != hostname, use AWS instance ID on AWS
2015-06-18 10:17:39 -07:00
CJ Cullen 15596ede41 Make AddSSHKeys a controller loop. Make sure master's always initializes m.tunnels. 2015-06-17 17:46:27 -07:00
Justin Santa Barbara c89b0cd807 AWS: Use the instance id as the node name
The EC2 instance id is the canonical node name on EC2.
2015-06-17 00:40:43 -04:00
Justin Santa Barbara efaead81dc Allow cloud providers to return a node identifier different from the hostname 2015-06-17 00:40:43 -04:00
Justin Santa Barbara bf7946c326 AWS: Define new m4 instance types 2015-06-17 00:04:05 -04:00
Justin Santa Barbara 1561fce81c servicecontroller: last state applied to LB vs last state seen
We need the last state seen for interpreting the change-stream,
separately we need to track the last state we successfully applied to the
load balancer.
2015-06-16 18:59:03 -04:00
CJ Cullen 4d5d0457ef Fix mislooping in ssh.go. Add retries to AddSSHKeys. 2015-06-16 00:08:37 -07:00
Brendan Burns 99bf48dc2f Merge pull request #9542 from brendandburns/validate
Change the way we test if a disk is already attached.
2015-06-09 22:00:06 -07:00
Brendan Burns 3350eecedf Change the way we test if a disk is already attached.
Validated by manual introspection on a running GCE cluster.
2015-06-09 17:50:52 -07:00
krousey f62a2a1bb6 Merge pull request #9451 from cjcullen/mig
Use Node IP Address instead of Node.Name in minion.ResourceLocation.
2015-06-09 15:52:12 -07:00
krousey 3d803ab7b2 Merge pull request #9410 from cjcullen/ratelimit
Add a RateLimiter for the gce altTokenSource.
2015-06-09 11:11:48 -07:00
CJ Cullen 2d85e4a094 Use Node IP Address instead of Node.Name in minion.ResourceLocation.
Refactor GetNodeHostIP into pkg/util/node (instead of pkg/util to break import cycle).

Include internalIP in gce NodeAddresses.
2015-06-08 16:58:00 -07:00
krousey afb9a7e362 Merge pull request #9373 from justinsb/aws_lb_cleanup
Make deletion of an AWS load balancer clean
2015-06-08 16:49:21 -07:00
CJ Cullen be0d24824d Add a RateLimiter for the gce altTokenSource. 2015-06-08 11:16:52 -07:00
Justin Santa Barbara c2caa3f1da AWS: Fix cleanup of security group
The most reliable way seems to be to deauthorize the LB security group from
other groups, then delete the LB itself, then repeatedly retry to delete the LB
security group.

We can't delete the LB security group until the LB is actually completely
deleted, but the LB is hidden from the API during deletion.  So our only real
option is to retry deletion of the LB security group until the expected error
goes away when the LB is fully deleted.
2015-06-06 23:20:34 -04:00
Justin Santa Barbara 1700259508 AWS: Ignore the UserId when determining whether we can skip revoking a security group
Otherwise we weren't correctly de-authorizing the AWS LB SG from the Node SG
2015-06-06 12:37:01 -04:00
Justin Santa Barbara 8fafefd728 Fix doc for edge-case return from removeSecurityGroupIngress 2015-06-06 12:25:50 -04:00
Justin Santa Barbara e32c66c6f4 Fix typo: Ingess -> Ingress 2015-06-06 12:22:50 -04:00
CJ Cullen cb317604ab Some refactoring. Only selectively use ssh proxy.
Add NetworkName to gce.Config.
Add locking to uses of master.tunnels.
2015-06-05 14:55:16 -07:00
Brendan Burns 7ea533d871 Add the SSHTunnel transport to the kubelet client. 2015-06-05 14:55:15 -07:00
CJ Cullen de9a5f43bc Specify sshUser, sshKeyfile in kube-apiserver manifest.
Trim space on ssh key so GCE doesn't treat it as 2 lines.
A couple other minor fixes.
2015-06-05 14:55:15 -07:00
Brendan Burns 5115fd5703 Add key generation. 2015-06-05 14:55:15 -07:00
Justin Santa Barbara 48e8a8b0ec AWS: Set up security groups, to mirror GCE firewalling
Some slightly fussy code to enable load-balancers to talk to
instances, but otherwise relatively simple.
2015-06-05 16:10:08 -04:00
Justin Santa Barbara 33a3d884f2 AWS: Filter by Cluster tag, rationalize EC2 abstraction
Whenever we do a list we now filter on tags so we only see resources relating
to our cluster.

Also, rationalize all the DescribeX calls:
 * They all take a request object (so that we can pass filters)
 * They do paging if that is required (and return the underlying resources)
 * They wrap any error with a "error while listing X: %v" message
2015-06-05 16:09:01 -04:00
Quinton Hoole f048d0dff7 Merge pull request #9105 from anguslees/openstack-provider
Openstack LB improvements
2015-06-05 12:06:12 -07:00
Angus Lees 75f49b331a Ignore "unspecified" externalIP during LB create
Previously we always passed `Address: externalIP.String()` while
creating a loadbalancer VIP.  This passed "0.0.0.0" when externalIP was
unspecified, effectively making it mandatory to specify an externalIP.

This change correctly leaves `Address` unspecified when externalIP is
unspecified (has a zero value).

(Thanks to @justinsb for the report)
2015-06-05 16:27:45 +10:00
Quinton Hoole b5251de193 Merge pull request #9261 from justinsb/aws_d2_instance_types
AWS: Add d2 instance types
2015-06-04 13:11:43 -07:00
Trevor Pounds 6eea271656 Guard against non AWS errors. 2015-06-04 10:33:36 -07:00
Justin Santa Barbara 41f52546bc AWS: Add d2 instance types
Another family of instance types, I think the next-gen of hs1
2015-06-04 12:57:33 -04:00
Trevor Pounds 7cdf573015 Update aws-sdk-go dependency from awslabs to aws. 2015-06-03 23:07:42 -07:00
Brian Grant f72fa67924 Revert "Use Node IP Address instead of Node.Name in minion.ResourceLocation." 2015-06-03 18:19:22 -07:00
Brian Grant d6d52b41c6 Merge pull request #9189 from justinsb/fix_9123
Avoid nil-pointer dereference panics in AWS
2015-06-03 12:34:34 -07:00
Justin Santa Barbara e3eb23f464 Avoid nil-pointer dereference panics in AWS
These were introduced because the new official AWS SDK uses *string
where the old library used strings.  We now use the helpers much
more (orEmpty and isNilOrEmpty).

Fixes #9123
2015-06-03 12:24:23 -04:00
Angus Lees 9394635cc0 Make EnsureTCPLoadBalancerDeleted idempotent
This change allows EnsureTCPLoadBalancerDeleted to be called repeatedly
to reattempt deleting objects that may have failed on a previous run.

Specifically, if the VIP is already deleted, then an attempt is made to
lookup the pool by name.  Returns success when both the VIP and pool are
not found.

Fixes #8352
2015-06-03 17:21:31 +10:00
feihujiang ebc8eab590 get Events to be logged 2015-06-03 15:05:07 +08:00
CJ Cullen 4e5d0da839 Use Node IP Address instead of Node.Name in minion.ResourceLocation.
Refactor GetNodeHostIP into pkg/util/node (instead of pkg/util to break import cycle).

Include internalIP in gce NodeAddresses. Remove NodeLegacyHostIP
2015-06-02 20:01:49 -07:00
Angus Lees 785a775777 Actually delete LBaaS monitors after disassociating
Partially addresses issue #8352
2015-06-02 15:25:51 +10:00
Angus Lees 6491922562 Catch 404 and return exists=false from GetTCPLoadBalancer
Previouly getVipByName treated 404 like any other unexpected error
return and passed it up the chain.  This caused the "if ErrNotFound then
exists=false" logic in GetTCPLoadBalancer to never fire.

This change teaches getVipByName to return ErrNotFound on a 404 server
response.
2015-06-02 15:25:40 +10:00
Eric Tune 8b498aee4a Merge pull request #8495 from gmarek/fix_ratelimit
Move evicting pods to separate thread to allow for correct ratelimitting.
2015-06-01 10:29:37 -07:00