Commit Graph

1473 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
e2685d800d Merge pull request #50706 from freehan/cloud-provider-op-v2
Automatic merge from submit-queue (batch tested with PRs 50967, 50505, 50706, 51033, 51028)

teach gce cloud to handle alpha/beta operations v2

Alternative to #50704 

This one feels cleaner. BUT, type assertion problems cannot be exposed at compile time. 

Please let me know what you think. This will set the precedence for consuming GCE alpha/beta API. 

cc: @thockin @yujuhong @saad-ali @MrHohn 

```release-note
NONE
```
2017-08-22 10:48:18 -07:00
Kubernetes Submit Queue
a4b719dcab Merge pull request #50640 from yujuhong/check-ips
Automatic merge from submit-queue (batch tested with PRs 50893, 50913, 50963, 50629, 50640)

gce external LB: add a function to verify the requested IP address

Factor out the logic for verifying the user-requested IP for better
readability and testing. Also rename a few variables for clarity.
2017-08-22 05:31:15 -07:00
Minhan Xia
25f8c946f5 teach gce cloud to handle alpha/beta operations 2017-08-21 10:58:10 -07:00
Yu-Ju Hong
afcb948385 gce external LB: add a function to verify the requested IP address 2017-08-21 08:42:11 -07:00
Kubernetes Submit Queue
9553e89a19 Merge pull request #50860 from wlan0/master
Automatic merge from submit-queue

Proposal to add @wlan0 to appropriate owner files

@thockin @luxas
2017-08-18 10:24:20 -07:00
Kubernetes Submit Queue
c573d8192f Merge pull request #50255 from mattlandis/aws-duplicate-subnets
Automatic merge from submit-queue (batch tested with PRs 50255, 50885)

AWS: Arbitrarily choose first (lexicographically) subnet in AZ

When there is more than one subnet for an AZ on AWS choose arbitrarily
chose the first one lexicographically for consistency.



**What this PR does / why we need it**:
If two subnets were to be used appear in the same aws az which one is chosen is currently not consistent.  This could lead to difficulty in diagnosing issues.

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

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-08-18 05:21:57 -07:00
Kubernetes Submit Queue
4e4168121a Merge pull request #50856 from shyamjvs/save-route-controller-memory
Automatic merge from submit-queue (batch tested with PRs 50303, 50856)

Make route-controller list only relevant routes instead of all of them

Ref https://github.com/kubernetes/kubernetes/issues/50854 (somewhat related issue)

IIUC from the code, route-controller memory is mainly being used in storing routes and nodes (also CIDRs, but that's not much).
This should help reduce that memory usage (particularly when running in a project with large no. of routes), by moving filtering to server-side.
For e.g in kubernetes-scale project we have ~5000 routes (each about 600B) => 3 MB of routes

This doesn't help with reducing time to list the routes as filtering is also linear.

cc @kubernetes/sig-scalability-misc @wojtek-t @gmarek
2017-08-18 03:37:53 -07:00
Kubernetes Submit Queue
7c13d65134 Merge pull request #50281 from FengyunPan/mark-detached-vsphere
Automatic merge from submit-queue

Mark volume as detached when node does not exist for vsphere

If node does not exist, node's volumes will be detached
automatically and become available. So mark them detached and
return false without error.
Fix #50266

**Special notes for your reviewer**:
/assign @jingxu97

**Release note**:
```release-note
NONE
```
2017-08-17 16:33:26 -07:00
Shyam Jeedigunta
0b1d548879 Make route-controller list only relevant routes instead of all of them 2017-08-17 20:39:59 +02:00
wlan0
92415f7dd7 Proposal to add @wlan0 to appropriate owner files 2017-08-17 11:37:51 -07:00
zhengchuan hu
05d3e9c5f3 Delete useless code 2017-08-17 13:38:17 +08:00
Kubernetes Submit Queue
7a58f55423 Merge pull request #50651 from itowlson/log-azure-share-name
Automatic merge from submit-queue (batch tested with PRs 46317, 48922, 50651, 50230, 47599)

Log name if Azure file share cannot be created

**What this PR does / why we need it**: If the Azure storage provider fails to create a file share, it logs and error message 'failed to create share in account _foo_: _error-msg_'.  A user on the Slack azure-sig channel reported an error of "The specified resource name length is not within the permissible limits".  This PR adds logging of the name so that this error can be diagnosed in future.

**Which issue this PR fixes**: This was raised on Slack and has not been created as a GitHub issue.

**Special notes for your reviewer**: None

**Release note**:

```release-note
Changed the error log format when creating an Azure file share to include the name of the share.
```
2017-08-16 19:50:17 -07:00
Kubernetes Submit Queue
5c558ddb18 Merge pull request #50722 from vmware/longVmName
Automatic merge from submit-queue (batch tested with PRs 50061, 48580, 50779, 50722)

Fix for Policy based volume provisioning failure due to long VM Name in vSphere cloud provider

Dummy VM is used for SPBM policy based provisioning feature of vSphere cloud provider.
Dummy VM name is generated based on kubernetes cluster name and pv name. It can easily go beyond 
vSphere's limitation of 80 characters for vmName.

To solve the long VM name failure hash is used instead of vSphere-k8s-clusterName-PvName

**Which issue this PR fixes** 
https://github.com/vmware/kubernetes/issues/176

**Release note:**
```release-note
None
```

@BaluDontu @divyenpatel @luomiao @tusharnt
2017-08-16 14:57:31 -07:00
FengyunPan
8d4949c5f3 Support autoprobing subnet-id for openstack cloud provider
Currently if user doesn't specify subnet-id or specify a unsafe
subnet-id, openstack cloud provider can't create a correct LoadBalancer
service.
Actually we can get it automatically. This patch do a improvement.
This is a part of #50726
2017-08-16 14:21:49 +08:00
rohitjogvmw
1de7d47819 Using hash/fnv to generate the vmName
vSphere has limitation of 80 characters for vmName.
        with vsphere-k8s prefix and "vmdisk.volumeOptions.Name" vmName can become easily bigger than 80 chars.
        Used hash funciton just of the "vmdisk.volumeOptions.Name" part as cleanup dummyVm logic depends on prefix "vsphere-k8s"
2017-08-15 17:56:46 -07:00
Ivan Towlson
0035b40f27 Log name if Azure file share cannot be created 2017-08-15 14:01:53 +12:00
FengyunPan
ea32f06d20 [VSphere] Don't return err when node doesn't exist in DetachDisk() 2017-08-14 10:12:46 +08:00
FengyunPan
b85743b868 Mark volume as detached when node does not exist for vsphere
If node does not exist, node's volumes will be detached
automatically and become available. So mark them detached and
return false without error.
Fix #50266
2017-08-14 10:09:50 +08:00
Kubernetes Submit Queue
1f2185fbfb Merge pull request #49743 from euank/hostname
Automatic merge from submit-queue (batch tested with PRs 49847, 49743, 49853, 50225, 50479)

cloudprovider/photon: remove unneeded bash exec

**Release note**:
```release-note
NONE
```
2017-08-12 02:35:54 -07:00
Kubernetes Submit Queue
a7ce691311 Merge pull request #49785 from FengyunPan/fix-getPortByIP
Automatic merge from submit-queue (batch tested with PRs 47724, 49984, 49785, 49803, 49618)

Fix conflict about getPortByIp

**What this PR does / why we need it**:
Currently getPortByIp() get port of instance only based on IP.
If there are two instances in diffent network and the CIDR of
their subnet are same, getPortByIp() will be conflict.
My PR gets port based on IP and Name of instance.

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

**Special notes for your reviewer**:

**Release note**:
```release-note
NONE
```
2017-08-11 18:47:19 -07:00
Kubernetes Submit Queue
92d9e44269 Merge pull request #50535 from jdumars/azure-owners
Automatic merge from submit-queue

Added jdumars to OWNERS file for Azure cloud provider

**What this PR does / why we need it**:

This PR adds GitHub user jdumars as an approver to pkg/cloudprovider/providers/azure 

Jaice Singer DuMars (me) is the program manager at Microsoft tasked with shepherding all upstream contributions from Microsoft into Kubernetes.  With the volume of work, and the impending breakout of cloud provider code, this helps distribute the review and approval load more evenly.

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

N/A

**Special notes for your reviewer**:

This was discussed with Brendan Burns prior to submitting the pre-approval.

**Release note**:
none
2017-08-11 15:52:55 -07:00
Kubernetes Submit Queue
bbe93bb202 Merge pull request #50470 from nicksardo/gce-annotation-fixes
Automatic merge from submit-queue

GCE: Fix lowercase value and alpha-missing annotation for ILB

**What this PR does / why we need it**:
Fixes #50426
Also explicitly sets an annotation as 'alpha'.

/assign @freehan @bowei 

**Release note**:
```release-note
NONE
```
2017-08-11 15:03:28 -07:00
Jason Singer DuMars
8516e9ff18 Added jdumars to OWNERS file for Azure cloud provider 2017-08-11 15:47:54 -04:00
Jeff Grafton
a7f49c906d Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
Jeff Grafton
33276f06be Use buildozer to remove deprecated automanaged tags 2017-08-11 09:31:50 -07:00
Nick Sardo
2aa62506c8 GCE: Specify alpha in annotation key, deprecate lower case of LB type 2017-08-10 16:09:45 -07:00
Yu-Ju Hong
58ea4e41d4 GCE: filter addresses by IP when listing
Also move the function to gce_addresses.go so that metrics can be
recorded for the call.
2017-08-10 09:30:48 -07:00
FengyunPan
6aa7c47480 Fix conflict about getPortByIp
Currently getPortByIp() get port of instance only based on IP.
If there are two instances in diffent network and the CIDR of
their subnet are same, getPortByIp() will be conflict.
My PR gets port based on IP and Name of instance.
2017-08-08 23:32:59 +08:00
FengyunPan
ba463062ca Update gophercloud to support list interfaces of OpenStack instance 2017-08-08 23:29:37 +08:00
Kubernetes Submit Queue
702f23e977 Merge pull request #50208 from FengyunPan/fix-volume-detach
Automatic merge from submit-queue

Ignore the available volume when calling DetachDisk

Fix #50207
If user detachs the volume by nova in openstack env, volume becomes
available. If nova instance is been deleted, nova will detach it
automatically and become available. So the "available" is fine since that means the
volume is detached from instance already.

**Release note**:
```release-note
NONE
```
2017-08-08 01:47:36 -07:00
Kubernetes Submit Queue
57cbc67cd8 Merge pull request #50206 from FengyunPan/add-debug
Automatic merge from submit-queue (batch tested with PRs 49524, 46760, 50206, 50166, 49603)

[OpenStack] Add more detail error message

I get same simple error messages "Unable to initialize cinder client
for region: RegionOne" from controller-manager, but I can not find the
reason. We should add more detail message "err" into glog.Errorf.

Currently NewBlockStorageV2() return err when failed to get cinder endpoint, but there is no code to output the message of err.

**Release note**:
```release-note
NONE
```
2017-08-07 13:52:00 -07:00
Robert Rati
926f070719 Make ClusterID required for AWS. #48954 2017-08-07 15:47:00 -04:00
Kubernetes Submit Queue
5a25527b9b Merge pull request #49725 from sylr/vnet
Automatic merge from submit-queue

Azure: Allow VNet to be in a separate Resource Group

**What this PR does / why we need it**: 

This PR allows Kubernetes in an Azure context to use a VNet which is not in the same Resource Group as Kubernetes.

We need this because currently Azure Cloud Provider driver assumes that it should have a VNet for himself but if there is one thing that should be shared amongst Azure resources it's a VNet cause, well, things might want to talk to each other in a private network, don't you think ?

I guess this should we backported down to 1.6 branch.

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

fixes #49577

**Release note**:

```release-note
NONE
```

@kubernetes/sig-azure
@kubernetes/sig-azure-pr-reviews
2017-08-10 01:41:15 -07:00
Kubernetes Submit Queue
031a83082b Merge pull request #49283 from dixudx/fix_cloudprovider_azure_config
Automatic merge from submit-queue (batch tested with PRs 49642, 50335, 50390, 49283, 46582)

fix bug when azure cloud provider configuration file is not specified

**What this PR does / why we need it**:

Current [Azure cloud provider](https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/azure/azure.go#L203) failed to [parse empty config file](https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/plugins.go#L110-L124) when `--cloud-config` is not specified.

[GetServicePrincipalToken](https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/azure/azure.go#L157-L199) will raise an error if no valid secrets/tokens are found. So we just need to return empty config obj if `--cloud-config` is not set.

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

**Special notes for your reviewer**:
@githubvick 

**Release note**:

```release-note
fix bug when azure cloud provider configuration file is not specified
```
2017-08-10 00:53:24 -07:00
Kubernetes Submit Queue
a2db3d2fd7 Merge pull request #49912 from freehan/local-cloud-provider
Automatic merge from submit-queue (batch tested with PRs 50418, 49830, 49206, 49061, 49912)

add LocalZone into gce.conf and refactor gce cloud provider configura…

The main goal of this PR is to make gce cloud provider able to run locally. 

1. added a LocalZone parameter into gce.conf. 
2. refactor `newGCECloud` to avoid contacting metadata server if configuration is already available. 

```release-note
None
```
2017-08-09 22:07:22 -07:00
Kubernetes Submit Queue
a881405bd4 Merge pull request #49164 from vmware/vSphereCloudProviderCodeRefactoring
Automatic merge from submit-queue

VSphere cloud provider code refactoring

The current PR tracks the vSphere Cloud Provider code refactoring which includes the following changes.
- VCLib Package - A framework used by vSphere cloud provider for managing the vSphere entities. VCLib package mainly does the following:
  - Volume management on datastore (Create/Delete)
  - Volume management on Virtual Machines (Attach/Detach)
  - Storage Policy Management
- vSphere Cloud Provider changes to implement the cloud provider interfaces by calling into VCLib package.
- Modifications to e2e tests to accomodate the latest design changes.

@divyenpatel @rohitjogvmw @luomiao 

```release-note
vSphere cloud provider: vSphere cloud provider code refactoring
```
2017-08-09 18:18:58 -07:00
Minhan Xia
1cad829b6e add LocalZone into gce.conf and refactor gce cloud provider configuration to allow avoiding external communication 2017-08-07 18:01:49 -07:00
Kubernetes Submit Queue
d6cb4827bf Merge pull request #50042 from jingxu97/Aug/cinderfix
Automatic merge from submit-queue (batch tested with PRs 50087, 39587, 50042, 50241, 49914)

AttachDisk should not call detach inside of Cinder volume provider
2017-08-07 10:58:59 -07:00
Matt Landis
10794e7f6e Arbitrarily chose first (lexicographically) subnet in AZ on AWS.
When there is more than one subnet for an AZ on AWS choose arbitrarily
chose the first one lexicographically for consistency.
2017-08-07 07:41:47 -07:00
FengyunPan
48db05166a Ignore the available volume when calling DetachDisk
If use detachs the volume by nova in openstack env, volume becomes
available. If nova instance is been deleted, nova will detach it
automatically. So the "available" is fine since that means the
volume is detached from instance already.
2017-08-07 17:11:40 +08:00
FengyunPan
1ff8e12a24 [OpenStack] Add more detail error message
I get same simple error messages "Unable to initialize cinder client
for region: RegionOne" from controller-manager, but I can not find the
reason. We should add more detail message "err" into glog.Errorf.
2017-08-06 14:41:47 +08:00
Kubernetes Submit Queue
207a95a076 Merge pull request #49805 from nbutton23/nbutton-fix-elb-sg-bug
Automatic merge from submit-queue (batch tested with PRs 49805, 50052)

We never want to modify the globally defined SG for ELBs

**What this PR does / why we need it**:
Fixes a bug where creating or updating an ELB will modify a globally defined security group

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

**Special notes for your reviewer**:

**Release note**:

```release-note
fixes a bug around using the Global config ElbSecurityGroup where Kuberentes would modify the passed in Security Group.
```
2017-08-05 12:32:59 -07:00
Kubernetes Submit Queue
c3f4dba513 Merge pull request #49697 from zetaab/mfloating
Automatic merge from submit-queue (batch tested with PRs 47416, 47408, 49697, 49860, 50162)

add possibility to use multiple floatingip pools in openstack loadbalancer

**What this PR does / why we need it**: Currently only one floating pool is supported in kubernetes openstack cloud provider. It is quite big issue for us, because we want run only single kubernetes cluster, but we want that external and internal services can be used. It means that we need possibility to create services with internal and external pools.

**Which issue this PR fixes**: fixes #49147

**Special notes for your reviewer**: service labels is not maybe correct place to define this floatingpool id. However, I did not find any better place easily. I do not want start modifying service api structure.

**Release note**:
```release-note
Add possibility to use multiple floatingip pools in openstack loadbalancer
```

Example how it works:
```
cat /etc/kubernetes/cloud-config
[Global]
auth-url=https://xxxx
username=xxxx
password=xxxx
region=yyy
tenant-id=b23efb65b1d44b5abd561511f40c565d
domain-name=foobar

[LoadBalancer]
lb-version=v2
subnet-id=aed26269-cd01-4d4e-b0d8-9ec726c4c2ba
lb-method=ROUND_ROBIN
floating-network-id=56e523e7-76cb-477f-80e4-2dc8cf32e3b4
create-monitor=yes
monitor-delay=10s
monitor-timeout=2000s
monitor-max-retries=3
```
```
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        run: web
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  labels:
    run: web-ext
  name: web-ext
  namespace: default
spec:
  selector:
    run: web
  ports:
  - port: 80
    name: https
    protocol: TCP
    targetPort: 80
  type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
  labels:
    run: web-int
    floatingPool: a2a84887-4915-42bf-aaff-2b76688a4ec7
  name: web-int
  namespace: default
spec:
  selector:
    run: web
  ports:
  - port: 80
    name: https
    protocol: TCP
    targetPort: 80
  type: LoadBalancer
```
```
% kubectl create -f example.yaml
deployment "nginx-deployment" created
service "web-ext" created
service "web-int" created
% kubectl get svc -o wide
NAME         CLUSTER-IP       EXTERNAL-IP                   PORT(S)        AGE       SELECTOR
kubernetes   10.254.0.1       <none>                        443/TCP        2m        <none>
web-ext      10.254.23.153    192.168.1.57,193.xx.xxx.xxx   80:30151/TCP   52s       run=web
web-int      10.254.128.141   192.168.1.58,10.222.130.80    80:32431/TCP   52s       run=web
```

cc @anguslees @k8s-sig-openstack-feature-requests @dims
2017-08-05 03:22:57 -07:00
xiangpengzhao
f003ee9b29 Update OWNERS to correct members' handles. 2017-08-04 15:00:15 +08:00
Kubernetes Submit Queue
7bc1c67685 Merge pull request #50050 from nicksardo/gce-fix-strs
Automatic merge from submit-queue (batch tested with PRs 49916, 50050)

GCE: Fix bug by correctly cast port to string

Code is incorrectly casting a port to a string, causing the diff-expression to always return true. 

**What this PR does / why we need it**:
Fixes #50049

**Special notes for your reviewer**:
/assign @MrHohn 

**Release note**:
```release-note
NONE
```
2017-08-02 23:29:53 -07:00
Jesse Haka
ef0015a993 add possibility to use multiple floating pools
if not needed here

load network ids from gophercloud api

fix to getnetworkbyname

update godeps, add networks library

fix gofmt and boilerplate

gofmt

use annotations

fix

remove enableflag

add comment to annotationvalue
2017-08-03 08:46:55 +03:00
Kubernetes Submit Queue
82b95c0a4e Merge pull request #49237 from brendandburns/imds2
Automatic merge from submit-queue (batch tested with PRs 49237, 49656, 49980, 49841, 49899)

Improve our Instance Metadata coverage in Azure.
2017-08-02 19:11:09 -07:00
Nick Sardo
6ce095cf2c Correctly cast port to string 2017-08-02 17:03:11 -07:00
Jing Xu
8ffc361564 AttachDisk should not call detach inside of Cinder volume provider
This PR fixes #50038 which removes the detach call inside of AttachDisk.
2017-08-02 14:35:39 -07:00
Balu Dontu
f4e39933f6 vSphere Cloud Provider code refactoring 2017-08-02 08:06:09 -07:00