Commit Graph

618 Commits (4c69bdaacd8149b4f86527b76d8a290086f68dbb)

Author SHA1 Message Date
Justin Santa Barbara 9f44c72ba9 AWS: findInstancesByNodeNames should not make O(N) API calls
findInstancesByNodeNames was a simple loop around
findInstanceByNodeName, which made an EC2 API call for each call.

We've had trouble with this sort of behaviour hitting EC2 rate limits on
bigger clusters (e.g. #11979).

Instead, change this method to fetch _all_ the tagged EC2 instances, and
then loop through the local results.  This is one API call (modulo
paging).

We are currently only using findInstancesByNodeNames for the load
balancer, where we attach every node, so we were fetching all but one of
the instances anyway.

Issue #11979
2016-01-20 12:37:22 -05:00
Justin Santa Barbara 0586d866de AWS: Eliminate assumptions about all load-balancer ports matching
It costs us basically nothing to just check all the ports, and
protects us against future changes to the controller.
2016-01-20 09:30:46 -05:00
Justin Santa Barbara 12dd568662 AWS: Fix comment to reflect new method name
TCPLoadBalancer.EnsureTCPLoadBalancer => LoadBalancer.EnsureLoadBalancer
2016-01-20 09:28:28 -05:00
Justin Santa Barbara 30882265b6 AWS: Remove dead code
I think I added these functions by mistake; they aren't used and
apparently never were.
2016-01-20 09:23:53 -05:00
k8s-merge-robot 4969f11089 Merge pull request #19439 from bprashanth/compute_dep
Auto commit by PR queue bot
2016-01-16 10:38:11 -08:00
Harry Zhang 936a11e775 Use networking to hold network related pkgs
Change names of unclear methods

Use net as pkg name for short
2016-01-15 13:46:16 +08:00
Mike Danese 1f0b10bd22 Merge pull request #19538 from mesosphere/jdef_mesos_026_compat
MESOS: compatibility w/ mesos v0.26
2016-01-14 13:44:42 -08:00
Daniel Schonfeld 12cbc9ff89 optimize ExternalId() and InstanceId() to returned cached results directly from the metadata service 2016-01-13 23:36:57 -05:00
James DeFelice ad1803a4ce construct master URIs from MasterInfo.Address if present; prefer /state over /state.json 2016-01-12 17:49:19 +00:00
Sylvain Baubeau b9dfe1b737 Use Openstack os-ext-ips extension to qualify IP address types
fixes #18409
2016-01-12 15:03:47 +01:00
David Oppenheimer 8ac484793d Comment out calls to httptest.Server.Close() to work around
https://github.com/golang/go/issues/12262 . See #19254 for
more details. This change should be reverted when we upgrade
to Go 1.6.
2016-01-11 23:02:11 -08:00
Prashanth Balasubramanian cc09a603dd Code changes 2016-01-11 16:27:12 -08:00
k8s-merge-robot 37b5726716 Merge pull request #14431 from Defensative/UDP-LB
Auto commit by PR queue bot
2016-01-08 12:39:02 -08:00
k8s-merge-robot e0e305c6be Merge pull request #19337 from danielschonfeld/optimize-list-routes
Auto commit by PR queue bot
2016-01-08 10:19:47 -08:00
Justin Santa Barbara 03900b1dc9 AWS: Use a strongly typed mountDevice
We've had problems in the past from using a string with passing the
wrong value when detaching; stronger typing would have caught this for
us.
2016-01-08 00:25:11 -05:00
Daniel Schonfeld 24c44e7a8e optimize ListRoutes to fetch instances only once per call
Issue #12121 - fixes courtesy of @justinsb - thank you
2016-01-07 14:32:37 -05:00
Justin Santa Barbara e7c3a08947 AWS: Provide newly required initialization arguments
It seems that some formerly optional arguments are now required in the
latest aws-sdk-go, see e.g.
https://github.com/aws/aws-sdk-go/issues/452.
2016-01-06 13:37:02 -05:00
Kenneth Shelton 9e6c45c395 Updated comments
Updated documentation
Fixed e2e test
2016-01-05 20:51:21 +00:00
Kenneth Shelton d399a8f8cc * Added UDP LB support (for GCE) 2016-01-05 20:51:21 +00:00
Trevor Pounds bbc181d1f8 Remove unused EC2 metadata functions. 2016-01-04 16:10:23 -08:00
Trevor Pounds 89d7eb050a Update AWS cloud provider to aws-sdk-go v1.0.2. 2016-01-04 16:10:23 -08:00
Justin Santa Barbara 7444216d4f AWS: Delete routes during create if they are black-holed
If a route already exists but is invalid (e.g. from a crash), we
automatically delete it before trying to create a route that would
otherwise conflict.
2016-01-03 18:19:12 -05:00
Justin Santa Barbara f9a6ac077e Ubernetes Lite: Volumes can dictate zone scheduling
For AWS EBS, a volume can only be attached to a node in the same AZ.
The scheduler must therefore detect if a volume is being attached to a
pod, and ensure that the pod is scheduled on a node in the same AZ as
the volume.

So that the scheduler need not query the cloud provider every time, and
to support decoupled operation (e.g. bare metal) we tag the volume with
our placement labels.  This is done automatically by means of an
admission controller on AWS when a PersistentVolume is created backed by
an EBS volume.

Support for tagging GCE PVs will follow.

Pods that specify a volume directly (i.e. without using a
PersistentVolumeClaim) will not currently be scheduled correctly (i.e.
they will be scheduled without zone-awareness).
2015-12-31 12:27:01 -05:00
Jan Safranek 815d1e0865 Tag OpenStack Cinder volumes created by Kubernetes.
This synchronizes Cinder with AWS EBS code, where we already tag volumes with
claim.Namespace and claim.Name (and pv.Name, as suggested in separate PR).
2015-12-21 11:36:42 +01:00
Jan Safranek 2f06ebf9b7 Implement Creater and Deleter interfaces for Cinder. 2015-12-16 14:23:14 -05:00
Jan Safranek 1b7445a6e2 Use SSD as default volume type.
General purpose SSD ('gp2') volume type is just slighly more expensive than
Magnetic ('standard' / default in AWS), while the performance gain is pretty
significant.

So far, the volumes were created only during testing, where the extra cost
won't make any difference. In future, we plan to introduce QoS classes, where
users could choose SSD/Magnetic depending on their use cases.

'gp2' is just the default volume type for (hopefuly) short period before these
QoS classes are implemented.
2015-12-15 12:14:48 +01:00
Jan Safranek 6ff5286df9 Implement Creater and Deleter interfaces for AWS EBS.
Also mark the created EBS volumes with tags, so the admin knows
who/what created the volumes.
2015-12-15 10:22:49 +01:00
Jan Safranek 700d92c2a8 AWS: Use GiB as units for disk sizes.
From some reason, MiBs were used for public functions and AWS cloud provider
recalculated them to GiB. Let's expose what AWS really supports and don't hide
real allocation units.
2015-12-15 10:18:00 +01:00
k8s-merge-robot 56cd501598 Merge pull request #18427 from mesosphere/sttts-cloud-provider-npe
Auto commit by PR queue bot
2015-12-09 08:45:06 -08:00
Dr. Stefan Schimanski 60ce27cb50 cloudprovider/mesos: fix panics when the Mesos master cannot be reached 2015-12-09 12:58:38 +01:00
Robert Bailey 2ecf504a2e Change the gce constant for session affinity to have the capitalization
shown in the documentation.

Fixes #18347
2015-12-08 09:36:49 -08:00
Mike Danese dcdd7f1ca8 remove vagrant cloud provider 2015-12-02 13:20:54 -08:00
Sebastien LAWNICZAK 3eae5895f8 Passing DomainID/DomainName to AuthOptions
To be able to use Domains with IdentityV3, domain-id/domain-name in provider config should be passed to gophercloud.AuthOptions
2015-12-01 23:12:25 +01:00
k8s-merge-robot 74049947d2 Merge pull request #12589 from slaws/os-vip-with-floatingip
Auto commit by PR queue bot
2015-12-01 02:01:39 -08:00
saadali 42b200a0a0 Refactor GCE wrapper library to allow execution from E2E test suite
This reverts commit 147b6911f5, reversing
changes made to 6fd986065b.
2015-11-25 11:48:06 -08:00
k8s-merge-robot 9a4a8075ed Merge pull request #15537 from jsafrane/devel/cinder-hostname
Auto commit by PR queue bot
2015-11-24 06:47:40 -08:00
Jerzy Szczepkowski 8a922e22be Revert "Refactor GCE wrapper library to allow execution from E2E test suite" 2015-11-23 09:24:32 +01:00
k8s-merge-robot 3fbf0cb810 Merge pull request #17276 from saad-ali/fixErrorCreatingPD
Auto commit by PR queue bot
2015-11-21 23:32:30 -08:00
saadali 882469dd7b Refactor GCE wrapper library to allow execution from E2E test suite 2015-11-20 11:41:10 -08:00
Brendan Burns 4903474bad Remove container api, its no longer generated and breaking godeps. 2015-11-19 09:20:28 -05:00
Dr. Stefan Schimanski 2f45d5706b Add node status update controller 2015-11-16 11:48:04 +01:00
Dr. Stefan Schimanski 0c1d90bf5f Add ListWithoutKubelet to mesos cloud provider 2015-11-16 11:48:04 +01:00
Dr. Stefan Schimanski 6a2602a51b Make cloud provider return disappearence of slave to the node controller
- implement ExternalID in Mesos cloud provider. This is used by the node
  controller to detect disappeared nodes.
- add test case for ExternalID
2015-11-16 11:48:04 +01:00
k8s-merge-robot e86c3de65b Merge pull request #16633 from brendandburns/aws2
Auto commit by PR queue bot
2015-11-13 02:01:55 -08:00
Brendan Burns 64aa189bd2 Make the AWS provider target the metadata server for local data lookup 2015-11-12 15:15:01 -08:00
Jan Safranek 7fc8bcae60 openstack: cache InstanceID and use it for volume management.
Hostnames are not related to server names or instance IDs in any way,
don't use them when attaching/detaching volumes.
2015-11-12 11:10:38 +01:00
Justin Santa Barbara 55c4140a0a AWS: Refactor interfaces to take a single request arg
Cleaning up some of the older code that tried to abstract the AWS SDK,
from when the AWS SDK was less consistent (pre aws-sdk-go).
2015-11-08 22:35:12 -08:00
k8s-merge-robot 45028e8c3d Merge pull request #14493 from BugRoger/fix_devicemapping_cache_invalidation
Auto commit by PR queue bot
2015-10-29 06:43:10 -07:00
k8s-merge-robot 0ced872a26 Merge pull request #16142 from bprashanth/cloudprovider_methods
Auto commit by PR queue bot
2015-10-26 19:44:48 -07:00
Prashanth Balasubramanian f7db2eefef cloudprovider methods to list resources and get health 2015-10-26 13:36:27 -07:00
Daniel Smith b07dd73f26 Merge pull request #16053 from saad-ali/attachDetachMutextFix
Fix GCE Cloud/Attach/Detach stability issues
2015-10-26 13:05:27 -07:00
Tim Hockin 42c7fec490 Add a cloud-provider hook to scrub DNS for pods
GCE needs this hook and it seems general enough to include.
2015-10-23 17:01:49 -07:00
saadali 19115b2a22 Fix GCE Cloudprovider waitForOp bug and make GCE attach/detach atomic operations. 2015-10-23 11:58:56 -07:00
k8s-merge-robot d453976e8a Merge pull request #15918 from justinsb/fix_typos
Auto commit by PR queue bot
2015-10-20 13:37:14 -07:00
Steve Milner 8da2d4002f Fixes remaining imports per #15319 2015-10-20 07:13:13 -04:00
Justin Santa Barbara 67d3a93166 Fix misc typos
Mostly in comments, but also renamed the (test) function
migUdpateCmdBase -> migUpdateCmdBase.
2015-10-20 05:52:45 -04:00
Justin Santa Barbara c465e91681 AWS: Log all calls at V(4), using a handler
Fixes #12122
2015-10-19 18:54:59 -04:00
eulerzgy f8f9afb874 alias local packagename for pkg/util/errors 2015-10-18 09:37:46 +08:00
k8s-merge-robot 1bba475a9d Merge pull request #15735 from mesosphere/jdef-fix-tasks-and-profiling
Auto commit by PR queue bot
2015-10-17 02:20:18 -07:00
k8s-merge-robot a6634adc1c Merge pull request #15435 from zhengguoyong/adjust_package_name_pkgcloudprovider
Auto commit by PR queue bot
2015-10-16 08:30:32 -07:00
James DeFelice 76dda4fbe9 set defaults for http transport 2015-10-15 21:30:43 +00:00
combk8s 59b392c4fa Capitalize the first letter in some log files 2015-10-15 11:03:56 +08:00
Dawn Chen 80bf32ce56 Merge pull request #14879 from tpounds/aws-cloud-cleanup
AWS Cloud Provider Cleanup
2015-10-12 12:25:52 -07:00
eulerzgy 8b174f7f33 adjust package name for pkg/cloudprovider 2015-10-10 16:44:54 +08:00
Alex Robinson 3bbfe48e0a Merge pull request #15286 from a-robinson/ensure
Correctly support updates in EnsureTCPLoadBalancer for GCE.
2015-10-09 17:34:40 -07:00
Alex Robinson 29c607bed6 Only use static IPs for GCE forwarding rules while creating or updating
them, not in the steady state once they've been created. This makes it
much less likely that users will run into static IP quota issues.

Also add slightly more parallelism to the deletion of load balancers
now that I realize the static IPs can be deleted in parallel with
forwarding rules :)
2015-10-09 19:03:57 +00:00
Alex Robinson 2a5a121505 Fix small comments. 2015-10-09 17:38:55 +00:00
Trevor Pounds 5d5013a722 Remove unreachable panic statement.
The availability zone always exist since it is retrieved
from the instance's EC2 metadata service during cloud
provider construction.
2015-10-09 10:19:56 -07:00
Trevor Pounds 4407ca9a64 Remove unused method. 2015-10-09 10:19:56 -07:00
Trevor Pounds f71533ce20 Remove unnecessary describe VPC call.
The external DescribeVPCs call is unnecessary since only the VPC ID
is used and it is retrieved from the EC2 metadata service.
2015-10-09 10:19:56 -07:00
Trevor Pounds 326dd7c1c0 Remove private struct field. It is only used at construction. 2015-10-09 10:19:56 -07:00
Alex Robinson 429fa7a378 Correctly support updates in EnsureTCPLoadBalancer for GCE.
Previously we'd just tear everything down and recreate it, which makes
for a pretty bad experience because it causes downtime whenever the
service controller restarts and has to make sure everything is in the
desired state.

This adds more code than I'd prefer, but makes it much cleaner and more
organized than it was before, in my opinion. I didn't bother
parallelizing anything because it's complex enough as it is, right now.

It's consistently passing the existing e2es and worked when I tested
manually, but this could definitely use additional e2e tests and/or some
serious refactoring to make real unit tests feasible. I'll follow up
with one or two e2e tests that make sense (updating an LB or killing the
controller manager, perhaps).
2015-10-08 23:20:48 +00:00
Prashanth Balasubramanian 02aa5e183c Add HTTPHealthCheck crud operations to cloudprovider library. 2015-10-07 13:22:56 -07:00
Michael Schmidt 48776f3feb Fix for Invalidation of DeviceMapping-Cache 2015-10-06 09:58:04 +02:00
Alex Robinson d481ba7547 Merge pull request #14964 from a-robinson/lbdelete
Unrevert #14608 and decrease the latency of GCE load balancer deletions
2015-10-05 16:26:07 -07:00
Alex Robinson 90a9e01a68 Delete GCE external load balancer components in parallel.
This will cut down on the amount of time it takes to delete an external
load balancer, which should reduce the likelihood of resource leaks when
clusters are deleted.
2015-10-05 22:43:25 +00:00
Alex Robinson cfdde6f7d4 Fix PR for maintaining a GCE IP independently of the forwarding rule.
This code was in rough shape, so I've fixed the issues with the original
PR as well as a few other changes:
1. Clarify the error messages related to the "gce Addresses" to make it
   clear we're talking about static IP addresses
2. Fix the bug in the original PR, which was a nil pointer dereference
   from passing op to waitForRegionOp when the address doesn't exist.
3. Rearrange the steps of EnsureTCPLoadBalancerDeleted to be the reverse
   of EnsureCreated, which mostly just seems like good practice to me.
   This is also supported by the following two bugs I found :(
4. Fix an independent bug of returning too early if the target pool
   doesn't exist, effectively stranding the firewall. This was likely
   introduced because target pools used to be the last thing deleted,
   so it was previously safe to return there.
5. Fix an independent bug of not returning an error waiting for the
   target pool to be deleted failed. This was very possibly causing
   target pool leaks in our e2e tests. This was similarly due to
   assuming that the target pool was the last thing deleted in the
   function, then having the firewall deletion stuck in after it.
2015-10-05 22:43:15 +00:00
Alex Robinson d578e7738d Merge pull request #14242 from simonswine/fix_mulitple_subnets_per_az
aws: fixes ELB creation with multiple subnets per AZ
2015-10-05 13:06:19 -07:00
Marcin Wielgus 5adeb00583 Merge pull request #15048 from Huawei-PaaS/fixed_typos_for_cloudprovider
Fixed some typos and improved comments for cloudprovider
2015-10-05 17:49:15 +02:00
qiaolei 919add69be Fixed some typos and improved comments 2015-10-03 22:43:10 +08:00
k8s-merge-robot cc34aee8ab Merge pull request #14526 from saad-ali/issue13751GCEPollOps
Auto commit by PR queue bot
2015-10-02 09:46:28 -07:00
k8s-merge-robot a34855e0d1 Merge pull request #14657 from justinsb/aws_more_regions
Auto commit by PR queue bot
2015-10-02 03:48:25 -07:00
Brendan Burns 0e71ea1253 Maintain an IP address independent of the forwarding rule for GCE 2015-10-01 21:42:36 +00:00
Christian Simon c1a14bd163 aws: fixes ELB creation with multiple subnets per AZ
Only takes the first available subnet in a AZ, ignore other subnets
and log warning about this.

Removes AWS region comparison for subnet AZs. A VPC is only in a single
AWS region.

Fixes #12381
2015-10-01 21:38:11 +01:00
k8s-merge-robot 8356270cce Merge pull request #14430 from Defensative/updated-fw-tags
Auto commit by PR queue bot
2015-10-01 03:51:13 -07:00
eulerzgy 4c588d771c ent 2015-09-30 14:49:19 +08:00
eulerzgy 71b96422f4 set capital in some files 2015-09-30 14:46:20 +08:00
Brendan Burns 4b1d3d8b0c Merge pull request #14245 from tpounds/update-to-aws-sdk-go-v0.9.9
Update to aws-sdk-go v0.9.9
2015-09-29 19:31:14 -07:00
saadali 7771151767 GCE PD attach/detach operations should poll to verify successful completion 2015-09-29 14:32:06 -07:00
Justin Santa Barbara fda6243c5e AWS: Recognize cn-north-1 & us-gov-west-1 regions
These two regions were accidentally omitted.  This list now matches the
list we use elsewhere (e.g. when choosing an AMI).

Fixes #14420
2015-09-28 07:01:45 -07:00
Trevor Pounds ea85e2319b Use set interface methods. 2015-09-25 23:19:33 -07:00
Brian Grant 9f01981863 Revert "Maintain an IP address independent of the forwarding rule for GCE plus bug fixes" 2015-09-25 22:04:35 -07:00
Trevor Pounds 9cd91d111d Use AWS SDK EC2 metadata client. 2015-09-25 17:03:22 -07:00
Trevor Pounds df0718caa1 Migrate source to aws-sdk-go v0.9.9.
Upgrading to aws-sdk-go >= v0.9.0 requires a
source migration via awsmigrate-renamer tool.

see: http://aws.amazon.com/releasenotes/2948141298714307
2015-09-25 17:03:22 -07:00
Alex Robinson 242d28cf68 Fix PR for maintaining a GCE IP independently of the forwarding rule.
This code was in rough shape, so I've fixed the issues with the original
PR as well as a few other changes:
1. Clarify the error messages related to the "gce Addresses" to make it
   clear we're talking about static IP addresses
2. Fix the bug in the original PR, which was a nil pointer dereference
   from passing op to waitForRegionOp when the address doesn't exist.
3. Rearrange the steps of EnsureTCPLoadBalancerDeleted to be the reverse
   of EnsureCreated, which mostly just seems like good practice to me.
   This is also supported by the following two bugs I found :(
4. Fix an independent bug of returning too early if the target pool
   doesn't exist, effectively stranding the firewall. This was likely
   introduced because target pools used to be the last thing deleted,
   so it was previously safe to return there.
5. Fix an independent bug of not returning an error waiting for the
   target pool to be deleted failed. This was very possibly causing
   target pool leaks in our e2e tests. This was similarly due to
   assuming that the target pool was the last thing deleted in the
   function, then having the firewall deletion stuck in after it.
2015-09-25 18:49:51 +00:00
Brendan Burns a5f4484f24 Maintain an IP address independent of the forwarding rule for GCE 2015-09-25 16:36:13 +00:00
Christopher Eck 511e3e1be9 Fix for issue #14466. Don't use tag filtering when looking up which VPC an AWS node is attached to. 2015-09-24 09:51:35 -07:00
Kenneth Shelton 65ad351c7f * Removed host tag tests as they now require real live nodes 2015-09-23 09:10:52 -07:00
Kenneth Shelton aef8ba00e0 Ran gofmt -s 2015-09-23 08:40:51 -07:00
Kenneth Shelton 967fac0adc Changed to use sets utility 2015-09-22 12:26:50 -07:00