Commit Graph

57 Commits

Author SHA1 Message Date
qiaolei
919add69be Fixed some typos and improved comments 2015-10-03 22:43:10 +08:00
Abhishek Shah
44ce4aa423 Create a LB for a K8S with the LB-IP provided by user. 2015-09-10 21:05:06 -07:00
Justin Santa Barbara
87df1d6fb6 Change CreateTCPLoadBalancer -> EnsureTCPLoadBalancer; implementations auto-delete if already exists
Previously the servicecontroller would do the delete, but by having the cloudprovider
take that task on, we can later remove it from the servicecontroller, and the
cloudprovider can do something more efficient.
2015-08-17 08:58:45 -04:00
CJ Cullen
e20467afcb Clean up GCE metadata calls. Remove GetNodeResources from all providers. 2015-08-14 07:29:52 -07:00
Mike Danese
8e33cbfa28 rewrite go imports 2015-08-05 17:30:03 -07: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
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
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
Justin Santa Barbara
efaead81dc Allow cloud providers to return a node identifier different from the hostname 2015-06-17 00:40:43 -04:00
Brendan Burns
5115fd5703 Add key generation. 2015-06-05 14:55:15 -07:00
Justin Santa Barbara
c741b8f3ae Pass ports as []*api.ServicePort into LoadBalancer provider
Because AWS needs the NodePort; this also paves the way for e.g. UDP balancing
2015-05-29 18:47:05 -04:00
Federico Simoncelli
2a89428d44 api: add the ProviderID attribute to NodeSpec
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-05-28 13:01:58 -04:00
Federico Simoncelli
faba12951a cloudprovider: add support for InstanceID method
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-05-28 12:47:50 -04:00
Federico Simoncelli
194343267d cloudprovider: add the ProviderName method
This patch adds the ProviderName method used to identify the cloud
provider.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-05-28 12:47:47 -04:00
Robert Bailey
1dfaa93ccd For GCE, compute the external IP by using the local metadata
server. This is in many ways a revert of #7530 but after auditing
the code I found that this function is now only used to determine
an address of the node where it is currently running.
2015-05-27 17:41:41 -07:00
Justin Santa Barbara
3884d5fc59 Add LoadBalancer status to ServiceStatus
This will replace publicIPs
2015-05-22 18:27:05 -04:00
Dawn Chen
677a4aa1a7 Merge pull request #8164 from cjcullen/cloudprovider
Route creation reconciler loop.
2015-05-22 12:27:50 -07:00
Quinton Hoole
6d8eaa924e Merge pull request #7852 from a-robinson/tp
Prevent stranding of partial load balancers resources
2015-05-22 10:12:30 -07:00
CJ Cullen
e6da5b9601 Make routecontroller_test less hacky.
Rename reconcilePodCIDRs to reconcileNodeCIDRs.
Add comments and TODOs about using controller framework.
2015-05-21 18:05:11 -07:00
CJ Cullen
0d12a15971 Route creation reconciler loop. 2015-05-20 14:21:30 -07:00
CJ Cullen
bf646abf8d Revert "Revert "Modify nodes to register directly with the master.""
This reverts commit c53786ab31.
2015-05-20 14:21:03 -07:00
Quinton Hoole
c53786ab31 Revert "Modify nodes to register directly with the master." 2015-05-20 13:47:51 -07:00
Alex Robinson
dbf224475d Require DeleteTCPLoadBalancer to be idempotent and change the service
controller to rely on that, so that we won't strand partial resources
from them anymore (target pools in GCE, pools in OpenStack, etc.).
2015-05-19 17:06:54 +00:00
Robert Bailey
01467e0bb8 Modify nodes to register directly with the master.
- Delete nodes when they are no longer ready and don't exist in the
cloud provider.
 - Label each node with it's hostname.
 - Add flag to skip node registration.
 - Add a test for registering an existing node.
2015-05-19 09:55:07 -07:00
Tim Hockin
a548d542db Rename AffinityType to ServiceAffinity 2015-05-18 17:21:30 -07:00
Tomek Kulczynski
290c7b94ef Make nodecontroller configure nodes' pod IP ranges 2015-05-05 16:10:42 -07:00
Quinton Hoole
8bc481d65c Merge pull request #7669 from a-robinson/lb
Change the cloud provider TCPLoadBalancerExists function to GetTCPLoadBalancer...
2015-05-05 11:42:06 -07:00
Quinton Hoole
83b70c4411 Revert "Revert #7145 now that #7609 is in, and fix the tests that were relying on it" 2015-05-02 23:32:21 -07:00
Jeff Lowdermilk
b447dc0c54 Merge pull request #7635 from a-robinson/length
Revert #7145 now that #7609 is in, and fix the tests that were relying on it
2015-05-01 17:48:41 -07:00
Alex Robinson
a047250b53 Change the cloud provider TCPLoadBalancerExists function to GetTCPLoadBalancer,
which returns the IP/DNS address of the load balancer, enabling more
intelligent reconciliation in the service controller.
2015-05-01 17:42:23 -07:00
Eric Paris
6b3a6e6b98 Make copyright ownership statement generic
Instead of saying "Google Inc." (which is not always correct) say "The
Kubernetes Authors", which is generic.
2015-05-01 17:49:56 -04:00
Alex Robinson
890ff7b4aa Revert #7145 now that #7609 is in, and fix the tests that were relying on it. 2015-05-01 10:49:23 -07:00
caesarxuchao
e9c5e44767 Use service UID as the ELB name 2015-04-21 12:20:42 -07:00
Alex Robinson
fc08a0a71b Do service creation/update/deletion work in a pool of goroutines, protecting
each service with a lock to ensure that no two goroutines will process a
service at the same time. This is needed to avoid weird race conditions.
2015-04-15 00:30:18 +00:00
Alex Robinson
ccc300289f Implement a ServiceController that watches services and handles keeping
external load balancers up-to-date based on the service's specs, using
the new DeltaFIFO watch queue class. Remove the old registry REST
handler code for creating/updating/deleting load balancers.

Also clean up a bunch of the GCE cloudprovider code related to load balancers.
2015-04-14 18:56:24 +00:00
Jerzy Szczepkowski
eb253a694e Updating target pools on cloud nodes change.
Implemented updating target pools for external services on chage of cloud nodes. Related to #5241.
2015-04-10 16:06:56 +02:00
Tim Hockin
186818d787 WIP: Implement multi-port Services 2015-03-30 19:28:11 -07:00
Alex Robinson
579edee4c2 Merge pull request #5346 from justinsb/cloudprovider_multiple_addresses
Let CloudProvider return list of NodeAddress, not just one net.IP
2015-03-13 15:45:11 -07:00
Justin Santa Barbara
99da56fb06 Fix problems identified in review 2015-03-13 18:07:08 -04:00
Justin Santa Barbara
bc16d83a51 Let CloudProvider return list of NodeAddress, not just one net.IP
This lets cloud providers populate the NodeAddress array
2015-03-11 16:50:26 -07:00
Justin Santa Barbara
5d36d3cdbe Change cloud provider CreateTCPLoadBalancer to return endpoint as string
Some load balancers (particularly AWS ELB) define the public endpoint
as a hostname (instead of using IP addresses).

This is a partial fix for #5224; there will also be some proxy work.
2015-03-09 20:35:13 -07:00
Federico Simoncelli
a450da4fd0 cloudprovider: add instance id to NodeSpec
Sometimes for external applications it is important to identify the
cloud instance of the nodes. Until this patch there was no contract
that the node name returned by List was also the unique identifier of
the cloud instance. This new API ensures that an external application
can reliably retrieve the relevant instance id of the nodes.

Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-02-26 20:52:12 +00:00
Mike Foley
c4e94efe16 Sticky Session Implementation
- Added process to cleanup stale session affinity records
- Automatically set cloud provided load balancer for sticky session if the service requires it - Note, this only works on GCE right now.
- Changed sessionAffinityMap a map to pointers instead of structs to improve performance
- Commented out cookie and protocol from sessionAffinityDetail to avoid confusion as it is not yet implemented.
2014-12-18 18:46:10 -05:00
Brendan Burns
2aa52d043b Add external services v2 support. 2014-11-14 11:32:54 -08:00
Brendan Burns
aabf1c3573 Add a clusters interface and GCE implementation. 2014-11-14 10:38:03 -08:00
Brendan Burns
1551b48347 Add a resource fit scheduler predicate. Set sensible defaults. 2014-10-03 15:09:59 -07:00
Vojtech Vitek (V-Teq)
59f58cd043 Unify Godoc formatting, fix various typos
Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-09-02 13:41:03 +02:00
Brendan Burns
c27ab18481 Don't use zone for regional load balancers. 2014-08-05 11:38:33 -07:00