Commit Graph

141 Commits

Author SHA1 Message Date
Walter Fender
f3f46d5f5a Moving the cloudprovider interface to staging.
Individual implementations are not yet being moved.
Fixed all dependencies which call the interface.
Fixed golint exceptions to reflect the move.
Added project info as per @dims and
https://github.com/kubernetes/kubernetes-template-project.
Added dims to the security contacts.
Fixed minor issues.
Added missing template files.
Copied ControllerClientBuilder interface to cp.
This allows us to break the only dependency on K8s/K8s.
Added TODO to ControllerClientBuilder.
Fixed GoDeps.
Factored in feedback from JustinSB.
2018-10-04 14:41:20 -07:00
hui luo
ce15129b9e add test to verify vsphere cloud provider report node hostname
as in pull #67922 has modify vsphere cloud provider to report
node hostname, this patch is to add the test for it.

also fix an issue at InstanceID(), it suppose to return
cloudprovider.InstanceNotFound when vm not found, after the fix,
test TestInstance() can pass
2018-08-29 11:46:24 -07:00
Jordan Liggitt
722e0bca2e
Report Hostname node address for vsphere 2018-08-27 23:32:09 -04:00
Doug MacEachern
ec732d8aab vsphere: support zone tags at any level in the hierarchy
Rather than just looking for zone tags at the VM's Host level, traverse up the hierarchy.
This allows zone tags to be attached at host level, along with cluster, datacenter, root folder
and any inventory folders in between.

Issue #64021
2018-08-23 14:57:21 -07:00
Doug MacEachern
11af6932e5 vsphere: add tests for Cloud Provider Zones implementation
- Add tests for GetZones()

- Fix bug where a host tag other than region or zone caused an error

- Fix bug where GetZones() errored if zone tag was set, but region was not

Follow up to PR #66795 / towards #64021
2018-08-22 18:47:30 -07:00
Doug MacEachern
d4d5c1e7db vsphere: adjust to govmomi tags API changes 2018-08-22 11:22:24 -07:00
Doug MacEachern
5816a8bc18 godeps: update vmware/govmomi
Update required to continue work on #64021

- The govmomi tag API changed

- Pulling in the new vapi/simulator package for testing the VCP Zones impl
2018-08-22 11:11:11 -07:00
jiatongw
99abd4bc79 Add zones support for vSphere cloud provider (in-tree) 2018-08-03 13:24:42 -07:00
Ryo Nishikawa
3c50f3d447 Remove verbose code in VCP 2018-07-27 10:56:10 -07:00
Ryo Nishikawa
059daa6de9 Remove unnecessary context in VCP 2018-07-26 10:25:08 -07:00
Ryo Nishikawa
5e81dcd4f0 Implement InstanceShutdownByProviderID for vSphere CP 2018-07-24 10:51:17 -07:00
Russ Cox
2bd91dda64 kubernetes: fix printf format errors
These are all flagged by Go 1.11's
more accurate printf checking in go vet,
which runs as part of go test.

Lubomir I. Ivanov <neolit123@gmail.com>
applied ammend for:
  pkg/cloudprovider/provivers/vsphere/nodemanager.go
2018-07-11 00:10:15 +03:00
Doug MacEachern
9a219513dc vSphere Cloud Provider: avoid read race during logout
The Client nil check was added in 6d1c4a3 , but there was not any
go test coverage of that code path until e22f9ca

Fixes #65696
2018-07-06 10:05:03 -07:00
Kubernetes Submit Queue
64243d4806
Merge pull request #64758 from pivotal-k8s/64222-vcp-ca-cert
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Setup TLS with CA Cert for vsphere cloud provider

- Extend config to take a path to a CA Certificate
- Use the CA Cert when establishing a connection with the SOAP client

Testing
We provide certs and keys for tests as fixtures, `vclib/fixtures`.
Those were created (and can be regenerated) using `vclib/fixtures/createCerts.sh`.

At the moment it's possible to configure a CA path and at the same time allow insecure
communication between vsphere cloud provider and vcenter. This may
change in the future; we might opt for overwriting the insecure
communication if a CA is configured / log and transparently pass the
arguments to the vcenter command / other. To be discussed.

At the moment the CA is a global level configuration. In other
words, all vcenter servers need to use certificates signed by the same
CA. There might be use cases for different CA per vcenter server; to be
discussed.





**What this PR does / why we need it**:
This PR adds the option of configuring a trusted CA for the communication between the vsphere cloud provider and the vcenter control plane.

**Which issue(s) this PR fixes**:
Fixes #64222

**Special notes for your reviewer**:

**Release note**:

```release-note
- Can configure the vsphere cloud provider with a trusted Root-CA
```
2018-06-30 03:29:24 -07:00
Kubernetes Submit Queue
5f7f5c43d8
Merge pull request #65508 from w-leads/fix-typo-vsphere
Automatic merge from submit-queue (batch tested with PRs 65507, 65508, 65486). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix typo in vsphere cloud provider comment

**What this PR does / why we need it**:
Fix typo in code of vsphere cloud provider
As far as I know, it's not purchased by Google right..?

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2018-06-26 23:17:02 -07:00
Ryo Nishikawa
0637d52128 Fix typo in comment 2018-06-26 17:04:25 -07:00
Alvaro Aleman
81e25c37be
Do not query for VMUUID if it was explicitly passed 2018-06-17 11:56:04 +02:00
Maria Ntalla
7ade8261f6 Pass through CA cert file to the connection when multiple vcenters are configured 2018-06-08 12:00:11 +01:00
Maria Ntalla
b83028325c Introduce thumbprints per vcenter 2018-06-08 12:00:11 +01:00
Maria Ntalla
9fc231e5c0 Setup TLS with CA Cert
- Extend config to take a path to a CA Certificate
- Use the CA Cert when establishing a connection with the SOAP client

Testing
We provide certs and keys for tests as fixtures, `vclib/fixtures`.
Those were created (and can be regenerated) using `vclib/fixtures/createCerts.sh`.

At the moment it's possible to configure a CA path and at the same time allow insecure
communication between vsphere cloud provider and vcenter. This may
change in the future; we might opt for overwriting the insecure
communication if a CA is configured / log and transparently pass the
arguments to the vcenter command / other. To be discussed.

At the moment the CA is a global level configuration. In other
words, all vcenter servers need to use certificates signed by the same
CA. There might be use cases for different CA per vcenter server; to be
discussed.
2018-06-08 12:00:11 +01:00
Abrar Shivani
6c9558334e Add secrets flag in vcp config and modify vcp to use nodemanger connect method 2018-05-17 12:06:03 -07:00
Doug MacEachern
e22f9ca4ae vsphere: fallback to vcsim for testing authentication
The TestVSphereLogin method still defaults to testing against a real vCenter,
but if the required environment variables are not set, it can test against vcsim.

More tests can be converted to use configFromEnvOrSim(), but can be in follow up PRs.
2018-05-07 08:50:31 -07:00
Doug MacEachern
e7f74d83c6 Rename VSphereConnection.GoVmomiClient -> Client 2018-05-07 08:50:31 -07:00
Doug MacEachern
64601373f1 vsphere: use vim25.Client directly to support token authentication
This refactor is in support of SAML token authentication: #63209
Avoid use of govmomi.Client as it only supports username+password authentication via SessionManager.Login().
Using vim25.Client directly will allow VCP to add other authentication methods,
such as SessionManager.LoginByToken().
2018-05-07 08:50:31 -07:00
Kubernetes Submit Queue
02e3577ab1
Merge pull request #60009 from zetaab/nodetaint
Automatic merge from submit-queue (batch tested with PRs 63129, 63066, 60009, 63136, 63086). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

add node shutdown taint

**What this PR does / why we need it**: we need node stopped taint in order to detach volumes immediately without waiting timeout. More info in issue ticket #58635 

**Which issue(s) this PR fixes** 
Fixes #58635

**Special notes for your reviewer**: this was reverted, original PR https://github.com/kubernetes/kubernetes/pull/59323 Hopefully now bugs are fixed. However, I will execute more tests manually today.

**Release note**:
```release-note
NONE
```
2018-04-25 06:29:22 -07:00
Jesse Haka
de967b717d PR #59323, fix bug and remove one api call, add node util dependency to cloud controller 2018-04-22 20:32:26 +03:00
Abrar Shivani
c15336e97a Fix upgrade to Kubernetes v1.9.3+ 2018-04-20 15:18:28 -07:00
Kubernetes Submit Queue
93d89609cb
Merge pull request #62220 from vmware/detach_bug_fix
Automatic merge from submit-queue (batch tested with PRs 62568, 62220, 62743, 62751, 62753). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

[vSphere Cloud Provider] Fix detach disk when VM is not found

**What this PR does / why we need it**:
When VM is deleted from VC inventory and detach request is issued detach returns error since VM cannot be found. In this scenario, detach should return no error if VM is not found. This PR fixes this.

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

**Special notes for your reviewer**:

**Release note**:

```release-note
None
```
@kubernetes/vmware
2018-04-17 20:52:12 -07:00
Abrar Shivani
23b6b46cf2 Detach bug fix 2018-04-03 11:56:27 -07:00
Anup Navare
1335e6e2d4 Cleanup the use of ExternalID as it is deprecated
The patch removes ExternalID usage from node_controller
and node_lifecycle_oontroller. The code instead uses InstanceID
which returns the cloud provider ID as well.
2018-04-02 10:15:32 -07:00
hzxuzhonghu
70e45eccf2 Replace "golang.org/x/net/context" with "context" 2018-03-22 20:57:14 +08:00
Aleksandra Malinowska
2d54ba3e0f
Revert "add node shutdown taint" 2018-02-16 12:24:27 +01:00
Kubernetes Submit Queue
27daaab224
Merge pull request #59323 from zetaab/nodetaint
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

add node shutdown taint

**What this PR does / why we need it**: we need node stopped taint in order to detach volumes immediately without waiting timeout. More info in issue ticket #58635 

**Which issue(s) this PR fixes** 
Fixes #58635

**Special notes for your reviewer**:

**Release note**:
```release-note
NONE
```
2018-02-15 09:52:10 -08:00
Kubernetes Submit Queue
6535c955bf
Merge pull request #59440 from vmware/rohitj-upstream
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Use SetInformers method to register for Node events. (#449)

Till 1.9.2 Kubernetes release vSphere Cloud Provider needs a separate service account which is not needed.

**What this PR does / why we need it**: 
In this fix, vSphere CLoud Provider is now implementing SetInformer API to get the required NodeInformer. With this change vSphere Cloud Provider no more requires separate service account for listening NodeEvents.

**Which issue(s) this PR fixes** 
Fixes #58747

**Special notes for your reviewer**:
VMware vSphere Cloud Provide internal change

**Release note**:
```release-note
With this fix, separate service account is not needed for vSphere Cloud Provider for listening node events.
```
2018-02-14 13:46:48 -08:00
Jesse Haka
3cf5b172fa add node shutdown taint
shutdowned -> stopped

use shutdown everywhere

use patch in taints api call

use notimplemented in clouds use AddOrUpdateTaintOnNode

correct log text

add fake cloud

try to fix bazel

add shutdown tests

add context
2018-02-08 12:56:06 +02:00
Abrar Shivani
918e47c438 Change provider ID to uuid 2018-02-07 17:08:47 -08:00
Rohit Jog
68aba5fe44 Use SetInformers method to register for Node events. (#449)
Till 1.9.2 Kubernetes release vSphere Cloud Provider needs a separate service account which is not needed.
2018-02-06 16:27:31 -08:00
Walter Fender
e18e8ec3c0 Add context to all relevant cloud APIs
This adds context to all the relevant cloud provider interface signatures.
Callers of those APIs are currently satisfied using context.TODO().
There will be follow on PRs to push the context through the stack.
For an idea of the full scope of this change please look at PR #58532.
2018-02-06 12:49:17 -08:00
Balu Dontu
4683a9471f Add multi-vc configuration for e2e tests 2018-01-18 15:29:27 -08:00
Balu Dontu
63826000c5 Remove vmUUID check in VSphere cloud provider 2018-01-12 16:40:08 -08:00
rohitjogvmw
a043d45152 COntroller-manager is crashing in customer environment as vSphere Cloud Provider
is not using lower case naming while creating clientBuilder.
With this fix, ClientBuilder is created using lowercase naming.
2017-12-17 08:49:13 -08:00
Kubernetes Submit Queue
adc648da59
Merge pull request #57053 from prashima/static-provisioning-fix
Automatic merge from submit-queue (batch tested with PRs 56375, 56872, 57053, 57165, 57218). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Compare correct file names for volume detach operation

**What this PR does / why we need it**:
Current volume detach code compares volume path with disk path, as it is. This PR removes '.vmdk' extension from both paths and then compares them. This makes sure that correct comparison is done irrespective of a missing '.vmdk' extension from one of the paths.

**Which issue(s) this PR fixes**:
Fixes  https://github.com/vmware/kubernetes/issues/392 

**Special notes for your reviewer**:
Deployed cluster on vSphere and provisioned a static volume. Verified that a statically provisioned volume gets detached even when volume path didn't contain any .vmdk extension and disk path had .vmdk extension.

**Release note**:
```vSphere cloud provider: Fix detach operation for volumes, when .vmdk extension is not specified in volume path.```
2017-12-17 05:33:43 -08:00
Kubernetes Submit Queue
2ae99cf146
Merge pull request #56955 from feiskyer/scrub-dns
Automatic merge from submit-queue (batch tested with PRs 56997, 57008, 56984, 56975, 56955). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Remove unused ScrubDNS interface from cloudprovider

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

DNS scrubber from kubelet has been removed in #36785 and cloudprovider's `ScrubDNS()` interface is not used anywhere.

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

**Special notes for your reviewer**:

**Release note**:

```release-note
Remove ScrubDNS interface from cloudprovider.
```
2017-12-16 15:23:54 -08:00
prashima
c52413b82e Fixes issue#392. 2017-12-11 11:12:36 -08:00
Pengfei Ni
65efeee64f Remove unused ScrubDNS interface from cloudprovider 2017-12-08 16:03:56 +08:00
Abrar Shivani
94b45a9e84 Fix session out issue while creating volume and error message coming up while attaching the volume 2017-11-30 12:06:40 -08:00
rohitjogvmw
79e1da68d2 Updating vSphere Cloud Provider (VCP) to support k8s cluster spead across multiple ESXi clusters, datacenters or even vSphere vCenters
- vsphere.conf (cloud-config) is now needed only on master node
   - VCP uses OS hostname and not vSphere inventory name
   - VCP is now resilient to VM inventory name change and VM migration
2017-11-17 14:49:32 -08:00
Dr. Stefan Schimanski
012b085ac8 pkg/apis/core: mechanical import fixes in dependencies 2017-11-09 12:14:08 +01:00
Kubernetes Submit Queue
55e49ed554 Merge pull request #51409 from FengyunPan/implement-InstanceExistsByProviderID
Automatic merge from submit-queue (batch tested with PRs 51409, 54616). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Implement InstanceExistsByProviderID() for cloud providers

Fix #51406
If cloud providers(like aws, gce etc...) implement ExternalID()
and support getting instance by ProviderID , they also implement
InstanceExistsByProviderID().

/assign wlan0
/assign @luxas

**Release note**:
```release-note
NONE
```
2017-10-27 06:16:20 -07:00
FengyunPan
462087fd74 Implement InstanceExistsByProviderID() for cloud providers
Fix #51406
If cloud providers(like aws, gce etc...) implement ExternalID()
and support getting instance by ProviderID , they also implement
InstanceExistsByProviderID().
2017-10-20 14:59:28 +08:00