Commit Graph

1126 Commits

Author SHA1 Message Date
Mike Danese
3b6a067afc autogenerated 2016-10-21 17:32:32 -07:00
Jing Xu
34ef93aa0c Add mounterPath to mounter interface
In order to be able to use new mounter library, this PR adds the
mounterPath flag to kubelet which passes the flag to the mount
interface. If flag is empty, mount uses default mount path.
2016-10-20 14:15:27 -07:00
Kubernetes Submit Queue
e6b5b076b8 Merge pull request #33957 from bprashanth/esipp-beta
Automatic merge from submit-queue

Loadbalanced client src ip preservation enters beta

Sounds like we're going to try out the proposal (https://github.com/kubernetes/kubernetes/issues/30819#issuecomment-249877334) for annotations -> fields on just one feature in 1.5 (scheduler). Or do we want to just convert to fields right now?
2016-10-20 06:53:07 -07:00
Davide Agnello
4805e6e6f6 vSphere cloud provider: re-use session for vCenter logins
Resolves #34491
2016-10-19 16:54:30 -07:00
bprashanth
a46a849b9e Promote source ip annotations to beta 2016-10-19 13:39:37 -07:00
Dan Williams
40cefcaf8f cloudprovider/gce: canonicalize instance name when returning instance array
'names' is an array of FQDNs.  'instances' is a map indexed by canonicalized
name.  Clearly these two won't always match, so when building the final
instance array to return, make sure to look up map entries by their canonicalized
name.

In the below example, "ocp-master-5pob" is clearly found as a GCE instance
but when building the final instance array it cannot be matched as the code
is looking for "ocp-master-5pob.c.ose-refarch.internal" instead.  The node
is then deleted from the cluster as it cannot be found by the cloud provider.

gce.go:2519] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]): initial node prefix ocp-
gce.go:2530] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]): looking for instances map[ocp-master-5pob:<nil>]
gce.go:2533] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]): getting zone 'europe-west1-c' (remaining 1)
gce.go:2563] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]):    instance name <omitted> not requested
gce.go:2563] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]):    instance name <omitted> not requested
gce.go:2533] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]): getting zone 'europe-west1-b' (remaining 1)
gce.go:2563] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]):    instance name <omitted> not requested
gce.go:2576] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]):    found instance 'ocp-master-5pob' remaining 0
gce.go:2563] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]):    instance name <omitted> not requested
gce.go:2533] ### getInstancesByNames([ocp-master-5pob.c.ose-refarch.internal]): getting zone 'europe-west1-d' (remaining 0)
gce.go:2588] Failed to retrieve instance: "ocp-master-5pob.c.ose-refarch.internal"
gce.go:2624] ### getInstanceByName(ocp-master-5pob.c.ose-refarch.internal): got []: instance not found
gce.go:2626] getInstanceByName/multiple-zones: failed to get instance ocp-master-5pob.c.ose-refarch.internal; err: instance not found
nodecontroller.go:587] Deleting node (no longer present in cloud provider): ocp-master-5pob.c.ose-refarch.internal
nodecontroller.go:664] Recording Deleting Node ocp-master-5pob.c.ose-refarch.internal because it's not present according to cloud provider event message for node ocp-master-5pob.c.ose-refarch.internal
2016-10-19 13:03:58 -05:00
Kubernetes Submit Queue
cd44cec587 Merge pull request #34765 from ivan4th/fix-more-typos
Automatic merge from submit-queue

Fix typos
2016-10-19 00:21:11 -07:00
Justin Santa Barbara
c53d62a554 Fix typo: attachement -> attachment 2016-10-18 17:52:48 -04:00
Kubernetes Submit Queue
01c31b380d Merge pull request #34997 from vmware/fix-kube-vsphere.kerneltime
Automatic merge from submit-queue

Fix kube vsphere.kerneltime

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**What this PR does / why we need it**:
This fixes kube-up to correctly install and configure on vSphere and avoid panics when only a single ESX(hypervisor) is used instead of a cluster.

**Which issue this PR fixes** 
fixes #34992
fixes #34847

**Special notes for your reviewer**:

We plan to cherry pick this into 1.4 release branch as well Ref: https://github.com/kubernetes/kubernetes/pull/34993
2016-10-18 09:26:18 -07:00
Ritesh H Shukla
26db528da3 Fix panic in vSphere when deploying on a single ESX node.
Use ComputeResource instead of ClusterComputeResource when
initializing the vSphere Cloud Provider
2016-10-17 23:42:59 +00:00
Zach Loafman
22352d2844 Revert "Add e2e tests for storageclass" 2016-10-17 10:32:27 -07:00
Kubernetes Submit Queue
f418cd3d46 Merge pull request #34426 from dagnello/lb-nodeport-update
Automatic merge from submit-queue

Openstack: Update lb member when node port changes

Ensures lb members are update if node port changes.

cc @suonto
2016-10-15 02:13:14 -07:00
Mathieu Velten
c1b3100ba2 Support trust id as a scope in the OpenStack authentication logic. 2016-10-14 14:54:26 +02:00
Kubernetes Submit Queue
4f36c2394a Merge pull request #34730 from colemickens/colemickens-azure-specify-availabilityset
Automatic merge from submit-queue

azure: lower log priority for skipped nic update message

**What this PR does / why we need it**: Very minor, just wanted to remove some log noise I introduced in #34526.

I chose `V(3)` since it aligns with the other nicupdate message printed out here, and will be hidden for the usual default of `--v=2`.

**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
```release-note
NONE
```
2016-10-14 04:22:21 -07:00
Kubernetes Submit Queue
95ccabdf46 Merge pull request #31921 from grahamhayes/openstack-loadbalancer-security-groups
Automatic merge from submit-queue

Security Group support for OpenStack Load Balancers

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**Add Security Group Support for OpenStack Load Balancers**:

fixes #29745
adds OpenStack support to the work done in #20392

**Release note**:

```
This allows security groups to be created and attached to the neutron
port that the load balancer is using on the subnet.

The security group ID that is assigned to the nodes needs to be
provided, to allow for traffic from the load balancer to the nodePort
to be reflected in the rules.

This adds two config items to the LoadBalancer options -

ManageSecurityGroups (bool)
NodeSecurityGroupID  (string)
```
2016-10-14 02:29:59 -07:00
Graham Hayes
ac205183d4 Security Group support for OpenStack Load Balancers
This allows security groups to be created and attached to the neutron
port that the loadbalancer is using on the subnet.

The security group ID that is assigned to the nodes needs to be
provided, to allow for traffic from the loadbalancer to the nodePort
to be refelected in the rules.

This adds two config items to the LoadBalancer options -

ManageSecurityGroups (bool)
NodeSecurityGroupID  (string)
2016-10-13 15:42:01 -07:00
Ivan Shvedunov
2b427f7d59 Fix typos 2016-10-14 00:29:50 +03:00
Cole Mickens
c7237c8624 azure: lower log priority for skipped nic update message 2016-10-13 08:35:12 -07:00
Jan Safranek
c9c1147270 Add e2e tests for storageclass
- test pd-ssd and pd-standard on GCE,
- test all four volume types on AWS
- test just the default volume type on OpenStack (right now, there is no API
  to get list of them)
2016-10-13 15:37:08 +02:00
Cole Mickens
113c5e3475 azure: filter load balancer backend nodes to PrimaryAvailabilitySet if set 2016-10-12 15:01:17 -07:00
Davide Agnello
14b184756a Openstack: Update lb member when node port changes 2016-10-10 18:04:26 -07:00
Kubernetes Submit Queue
42c027215c Merge pull request #31671 from anguslees/config-drive
Automatic merge from submit-queue

openstack: Support config-drive and improve CurrentNodeName, GetZone

This PR adds support for fetching local instance metadata via config-drive (as well as querying metadata service), and surfaces some additional metadata information (from either source):

- `CurrentNodeName` now returns the OpenStack instance name, rather than the current hostname (they might not be the same)
- `GetZone` includes availability zone label in `FailureDomain`

Thanks to @kiall for a WIP implementation of the latter.
2016-10-10 12:40:28 -07:00
Kubernetes Submit Queue
2fd28577df Merge pull request #33276 from suonto/lbaasv2_reimplementation
Automatic merge from submit-queue

OpenStack LBaaSV2: EnsureLoadBalancer now updates instead of recreates existing LBs

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**What this PR does / why we need it**: Current LBaaSV2 integration recreates existing LBs and causes service downtime and floating ip rotation. New implementation updates LBs without service downtime or any ip rotation.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #32794 

**Special notes for your reviewer**: I really need this before we can move to production with kubernetes. Getting this to v1.4 would be really great. I have performed plenty of testing; lb and listener creation, port changing and listener update, multiple listeners for multi-port LBs, and deletion. Seems to work flawlessly.

**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
```release-note
```
2016-10-07 19:52:42 -07:00
Angus Lees
ab5250efd8 openstack: Set GetZone FailureDomain to nova AZ
Set FailureDomain in GetZone result to value of availability_zone in
local instance metadata.
2016-10-04 21:14:47 +11:00
Angus Lees
8167df2965 openstack: Return instance name in CurrentNodeName
Previously the OpenStack provider just returned the hostname in
CurrentNodeName.  With this change, we return the local OpenStack
instance name, as the API intended.
2016-10-04 21:14:47 +11:00
Angus Lees
3745e0f88c openstack: Support config-drive for local metadata
Config-drive is an alternate no-network method for publishing local
instance metadata on OpenStack.  This change implements support for
fetching data from config-drive, and tries it before querying the
network metadata service (since config-drive will fail quickly if not
available).

Note config-drive involves mounting the filesystem with label
"config-2", so anyone using config-drive and running kubelet in a
container will need to ensure /dev/disk/by-label/config-2 is available
inside the container (read-only).
2016-10-04 21:13:27 +11:00
Mike Danese
56ea178e7c kubeadm: refactor config
1) break object into substructures
2) seperate a config object for master and node
2016-10-03 14:44:18 -07:00
Markus Suonto
e1068c9a49 EnsureLoadBalancer update instead of recreate existing LBs 2016-10-02 12:29:50 +03:00
Doug Davis
9d5bac6330 Change minion to node
Contination of #1111

I tried to keep this PR down to just a simple search-n-replace to keep
things simple.  I may have gone too far in some spots but its easy to
roll those back if needed.

I avoided renaming `contrib/mesos/pkg/minion` because there's already
a `contrib/mesos/pkg/node` dir and fixing that will require a bit of work
due to a circular import chain that pops up. So I'm saving that for a
follow-on PR.

I rolled back some of this from a previous commit because it just got
to big/messy. Will follow up with additional PRs

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-09-28 10:53:30 -07:00
Sander van Harmelen
4ecf46907b Fix a bug where we assume IP addresses instead of a hostnames
Because of how our test environment was setup, we didn’t notice that we were assuming the load balancer hosts list to be IP addresses, while they actually are hostnames.

Also updated some comments and added a check to prevent trying to release a public IP if we don’t have one.
2016-09-28 19:42:43 +02:00
Kubernetes Submit Queue
b1e8c9fc13 Merge pull request #29491 from justinsb/aws_deprecate_orempty
Automatic merge from submit-queue

AWS: Deprecate a few functions in favor of aws-sdk-go
2016-09-28 03:01:39 -07:00
Kubernetes Submit Queue
c20965c652 Merge pull request #33067 from justinsb/better_aws_logging
Automatic merge from submit-queue

Better AWS logging around volumes
2016-09-28 00:20:56 -07:00
Kubernetes Submit Queue
4b4e8ad6a7 Merge pull request #33569 from justinsb/fix_31127
Automatic merge from submit-queue

AWS: Add log line when we're updating ELB attributes
2016-09-27 22:58:20 -07:00
Justin Santa Barbara
5bfd15e49e AWS: include ELB name in health-check logging
Makes more supportable
2016-09-27 11:20:42 -04:00
Justin Santa Barbara
54309acd84 AWS: Add log line when we're updating ELB attributes
We want to be sure that reflect.DeepEqual doesn't give false positives

Fix #31127
2016-09-27 11:19:19 -04:00
Justin Santa Barbara
310423a4f9 AWS: more information in volume log messages 2016-09-27 11:10:40 -04:00
Justin Santa Barbara
54195d590f Use strongly-typed types.NodeName for a node name
We had another bug where we confused the hostname with the NodeName.

To avoid this happening again, and to make the code more
self-documenting, we use types.NodeName (a typedef alias for string)
whenever we are referring to the Node.Name.

A tedious but mechanical commit therefore, to change all uses of the
node name to use types.NodeName

Also clean up some of the (many) places where the NodeName is referred
to as a hostname (not true on AWS), or an instanceID (not true on GCE),
etc.
2016-09-27 10:47:31 -04:00
Kubernetes Submit Queue
fd2469a0bb Merge pull request #33219 from dagnello/vsphere-instance-not-found
Automatic merge from submit-queue

vSphere cloud provider: ExternalID/InstanceID not returning appropriate error for non-existing VM

Addresses #33215.
When vCenter returns error vm not found, this is now being translated to
the appropriate error 'cloudprovider.InstanceNotFound' which indicates
to Kubernetes node controller that the VM is in fact not found.
2016-09-27 01:11:56 -07:00
Kubernetes Submit Queue
abcc7927d1 Merge pull request #33208 from hacktastic/fix_openstack_lbaas_healthmonitors
Automatic merge from submit-queue

Fixed a bug that causes k8s to delete all healthmonitors on your OpenStack tenant

<!--  Thanks for sending a pull request!  Here are some tips for you:
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/kubernetes/blob/master/CONTRIBUTING.md and developer guide https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/faster_reviews.md
3. Follow the instructions for writing a release note: https://github.com/kubernetes/kubernetes/blob/master/docs/devel/pull-requests.md#release-notes
-->

**What this PR does / why we need it**:
The OpenStack LBaaS v2 api does not support filtering health monitors by pool_id, so /lbaas/healthmonitors?pool_id=abc123 will always return all health monitors in your OpenStack tenant. 

This presents a problem when, in the very next block of code, we loop over the list of monitorIDs and delete them one-by-one. This will delete all the health monitors in your tenant without warning. 

Fortunately, we already got the healthmonitor IDs when we built the list of pools. Using those, we can delete only those healthmonitors associated with our pool(s).

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:
The main issue here was the use of v2_monitors.List(lbaas.network, v2_monitors.ListOpts{PoolID: poolID}). This is trying to filter healthmonitors by pool_id, but that is not supported by the API. It creates a call like /lbaas/healthmonitors?pool_id=abc123. The API server ignores the pool_id parameter and returns a list of all healthmonitors (which k8s then tries to delete).

**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
```release-note
```
2016-09-26 18:42:18 -07:00
Kubernetes Submit Queue
4785f6f517 Merge pull request #31978 from jsafrane/detach-before-delete
Automatic merge from submit-queue

Do not report error when deleting an attached volume

Persistent volume controller should not send warning events to a PV and mark the PV as failed when the volume is still attached.

This happens when a user quickly deletes a pod and associated PVC - PV is slowly detaching, while the PVC is already deleted and the PV enters Failed phase.

`Deleter.Deleter` can now return `tryAgainError`, which is sent as INFO to the PV to let the user know we did not forget to delete the PV, however the PV stays in Released state. The controller tries again in the next sync (15 seconds by default).

Fixes #31511
2016-09-25 18:55:32 -07:00
Davide Agnello
fda70d220b ExternalID/InstanceID not returning appropriate error for missing VM
Addresses #33215.
When vCenter returns error vm not found, this is now being translated to
the appropriate error 'cloudprovider.InstanceNotFound' which indicates
to Kubernetes node controller that the VM is in fact not found.
2016-09-23 08:54:35 -07:00
hacktastic
77a203c49f the api does not support filtering health monitors by pool_id, so /lbaas/healthmonitors?pool_id=abc123 will always return all health monitors in your OS tenant. fortunately, we can get the health monitor IDs from the query to /lbaas/pools and delete them 2016-09-22 23:52:32 -07:00
Abrar Shivani
57180093af Support for storage class for vSphere volume plugin. Custom disk format for dynamic provisioning. 2016-09-16 17:15:38 -07:00
Jan Safranek
9903b389b3 Update cloud providers 2016-09-15 10:33:57 +02:00
Kubernetes Submit Queue
98eadd6219 Merge pull request #32636 from justinsb/aws_slower_volume_poll
Automatic merge from submit-queue

AWS: Reduce frequency of volume-mount poll
2016-09-14 19:40:06 -07:00
Justin Santa Barbara
3688dc4a72 AWS: More robust volume-mount poll
When we are mounting a lot of volumes, we frequently hit rate limits.

Reduce the frequency with which we poll the status; introduces a bit of
latency but probably matches common attach times pretty closely, and
avoids causing rate limit problems everywhere.

Also, we now poll for longer, as when we timeout, the volume is in an
indeterminate state: it may be about to complete.  The volume controller
can tolerate a slow attach/detach, but it is harder to tolerate the
indeterminism.

Finally, we ignore a sequence of errors in DescribeVolumes (up to 5 in a
row currently).  So we will eventually return an error, but a one
off-failure (e.g. due to rate limits) does not cause us to spuriously
fail.
2016-09-14 16:47:53 -04:00
Davanum Srinivas
64efc3a744 Update Google Cloud API client import paths
Bump version of golang.org/x/oauth2
Vendor google.golang.org/cloud/
Vendor google.golang.org/api/
Vendor cloud.google.com/go/compute/
Replace google.golang.org/cloud with cloud.google.com/go/

Fixes #30069
2016-09-13 22:21:06 -04:00
Kubernetes Submit Queue
8a56b6b27c Merge pull request #32265 from lojies/errmodify
Automatic merge from submit-queue

modify error return

err is nil here,chage it to fmt.Errorf("cannot find SCSI controller in VM")
2016-09-13 01:16:03 -07:00
Kubernetes Submit Queue
f7bea5d8fd Merge pull request #32290 from zhouhaibing089/lbaasv1-fix
Automatic merge from submit-queue

delete the member before delete the pool

fixes https://github.com/kubernetes/kubernetes/issues/32285. it is necessary to delete members before delete the pool.
2016-09-13 01:15:58 -07:00
Piotr Skamruk
dc3674c8d0 Ensure that we are closing files. 2016-09-12 09:33:24 +02:00