Commit Graph

51 Commits

Author SHA1 Message Date
Mike Danese
17defc7383 run gofmt on everything we touched 2015-08-05 17:52:56 -07:00
Mike Danese
8e33cbfa28 rewrite go imports 2015-08-05 17:30:03 -07:00
Joshua Griffiths
950bc8401b Check for nil, not unspecified 2015-08-05 18:28:25 +01: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
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
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
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
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
154eccefe2 cloudprovider: openstack InstanceID implementation
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-05-28 13:02:11 -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
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
0d12a15971 Route creation reconciler loop. 2015-05-20 14:21:30 -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
Alex Robinson
dc2f10d51b Make openstack's impl of DeleteTCPLoadBalancer idempotent with respect
to load balancers having already been deleted.
2015-05-19 17:06:50 +00: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
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
Angus Lees
8818966d1f OpenStack: lb_method required when creating LbaaS pool
This change takes lb-method from [LoadBalancer] section of cloud
provider config file, defaulting to ROUND_ROBIN.

Fixes #7199
2015-04-23 15:19:14 +10:00
Masahiro Sano
b2d68c79b7 use auto reauth when access token is expired 2015-04-18 18:41:54 +09:00
Tim Hockin
eeff1b74fb Fixes from feedback and testing 2015-03-30 23:52:37 -07:00
Tim Hockin
186818d787 WIP: Implement multi-port Services 2015-03-30 19:28:11 -07:00
Angus Lees
1437e6b7ca OpenStack: Return multiple private+public NodeAddresses
Add better support for the new NodeAddresses call.  Note the returned
list may include IPv6 addresses (as strings) on many OpenStack clouds.
2015-03-16 17:11:36 +11:00
Angus Lees
437853b8cd Keep resources as numeric values
Previously, this code converted to a string and reparsed back to a
numeric Quantity.  Keeping it numeric avoids the overhead, but also
removes a (theoretical) run-time panic if the re-parse failed.

In addition, since Quantity can now store quantities <1, convert
openstack.org/rxTxFactor back to its original ratio, rather than
arbitrarily scaling it up by 1000.
2015-03-16 15:35:45 +11:00
Angus Lees
e14b73bd30 Reauthenticate to OpenStack periodically
It appears that gophercloud's "AllowReauth" AuthOption doesn't actually
do anything, and the keystone/auth token is never refreshed.  Eventually
it expires and all OpenStack calls receive HTTP 401 responses.

This change reauthenticates every time the Instances() or
TCPLoadBalancer() API object is requested.  This is more frequently than
required, but exposing token expiry information will require gophercloud
surgery.
2015-03-16 15:35:45 +11:00
Angus Lees
762225ed47 OpenStack: Align logging levels with devel/logging.md 2015-03-16 15:35:43 +11:00
Angus Lees
4ff292a65e OpenStack: Support loadbalancer client IP affinity 2015-03-16 15:33:54 +11: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
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
bfb93a1928 openstack: report the nodes external id
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
2015-02-26 20:52:13 +00: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
Daniel Smith
2050131b9a ParseOrDie -> MustParse; stop returning pointer 2015-01-07 15:21:35 -08:00
Daniel Smith
35f54addca Update more packages, tests, binaries for quantity
make etcd registry pass test
fix kubelet config for quantity
fix openstack for quantity
fix controller for quantity
fix last tests for quantity
wire into binaries
fix controller manager
fix build for 32 bit systems
2015-01-07 15:21:35 -08:00
Brendan Burns
1d58958db8 Fix the build. 2014-12-23 10:28:26 -08:00
Angus Lees
a00f73c360 Add additional logging to openstack cloud provider
Turned out to be invaluable while debugging issues - I expect it will be
for others too.

Conflicts:
	pkg/cloudprovider/openstack/openstack.go
2014-11-26 16:41:11 +11:00
Angus Lees
5499981ad3 Implement TCPLoadBalancer OpenStack cloud provider
Also add a trivial implementation of Zones() too.

This only supports a single region/zone currently (the region where
kubernetes is running).
2014-11-26 16:40:35 +11:00
Angus Lees
f184eebc9b Update openstack provider to gophercloud v1.0 API 2014-11-26 16:08:43 +11:00
Tim Hockin
ea960711ff Clean up error logs.
Use %v for errors, tidy some messages, make error messages start lowe-case
(as per go guidelines).  Just accumulated nits.
2014-11-21 09:45:26 +08:00
Brendan Burns
aabf1c3573 Add a clusters interface and GCE implementation. 2014-11-14 10:38:03 -08:00
Angus Lees
fffa0527d4 Implement Instances interface for OpenStack cloud provider 2014-10-15 14:09:27 +11:00
Angus Lees
a90d503fce Read user/pass from config and authenticate to OpenStack 2014-10-15 14:09:27 +11:00