Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
87a5edd2
Commit
87a5edd2
authored
May 17, 2017
by
Nick Sardo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Initialize cloud providers with a K8s clientBuilder
parent
d823a6e2
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
72 additions
and
2 deletions
+72
-2
controllermanager.go
cmd/cloud-controller-manager/app/controllermanager.go
+6
-0
controllermanager.go
cmd/kube-controller-manager/app/controllermanager.go
+5
-0
BUILD
pkg/cloudprovider/BUILD
+1
-0
cloud.go
pkg/cloudprovider/cloud.go
+3
-0
BUILD
pkg/cloudprovider/providers/aws/BUILD
+1
-0
aws.go
pkg/cloudprovider/providers/aws/aws.go
+4
-0
BUILD
pkg/cloudprovider/providers/azure/BUILD
+1
-0
azure.go
pkg/cloudprovider/providers/azure/azure.go
+5
-1
BUILD
pkg/cloudprovider/providers/cloudstack/BUILD
+1
-0
cloudstack.go
pkg/cloudprovider/providers/cloudstack/cloudstack.go
+4
-0
BUILD
pkg/cloudprovider/providers/fake/BUILD
+1
-0
fake.go
pkg/cloudprovider/providers/fake/fake.go
+4
-0
BUILD
pkg/cloudprovider/providers/gce/BUILD
+1
-0
gce.go
pkg/cloudprovider/providers/gce/gce.go
+4
-0
BUILD
pkg/cloudprovider/providers/mesos/BUILD
+1
-0
mesos.go
pkg/cloudprovider/providers/mesos/mesos.go
+4
-0
BUILD
pkg/cloudprovider/providers/openstack/BUILD
+1
-0
openstack.go
pkg/cloudprovider/providers/openstack/openstack.go
+4
-0
BUILD
pkg/cloudprovider/providers/ovirt/BUILD
+1
-0
ovirt.go
pkg/cloudprovider/providers/ovirt/ovirt.go
+5
-1
BUILD
pkg/cloudprovider/providers/photon/BUILD
+1
-0
photon.go
pkg/cloudprovider/providers/photon/photon.go
+4
-0
BUILD
pkg/cloudprovider/providers/rackspace/BUILD
+1
-0
rackspace.go
pkg/cloudprovider/providers/rackspace/rackspace.go
+4
-0
BUILD
pkg/cloudprovider/providers/vsphere/BUILD
+1
-0
vsphere.go
pkg/cloudprovider/providers/vsphere/vsphere.go
+4
-0
No files found.
cmd/cloud-controller-manager/app/controllermanager.go
View file @
87a5edd2
...
...
@@ -199,6 +199,12 @@ func StartControllers(s *options.CloudControllerManagerServer, kubeconfig *restc
client
:=
func
(
serviceAccountName
string
)
clientset
.
Interface
{
return
rootClientBuilder
.
ClientOrDie
(
serviceAccountName
)
}
if
cloud
!=
nil
{
// Initialize the cloud provider with a reference to the clientBuilder
cloud
.
Initialize
(
clientBuilder
)
}
versionedClient
:=
client
(
"shared-informers"
)
sharedInformers
:=
informers
.
NewSharedInformerFactory
(
versionedClient
,
resyncPeriod
(
s
)())
...
...
cmd/kube-controller-manager/app/controllermanager.go
View file @
87a5edd2
...
...
@@ -451,6 +451,11 @@ func StartControllers(controllers map[string]InitFunc, s *options.CMServer, root
return
fmt
.
Errorf
(
"cloud provider could not be initialized: %v"
,
err
)
}
if
cloud
!=
nil
{
// Initialize the cloud provider with a reference to the clientBuilder
cloud
.
Initialize
(
clientBuilder
)
}
if
ctx
.
IsControllerEnabled
(
nodeControllerName
)
{
_
,
clusterCIDR
,
err
:=
net
.
ParseCIDR
(
s
.
ClusterCIDR
)
if
err
!=
nil
{
...
...
pkg/cloudprovider/BUILD
View file @
87a5edd2
...
...
@@ -17,6 +17,7 @@ go_library(
tags = ["automanaged"],
deps = [
"//pkg/api/v1:go_default_library",
"//pkg/controller:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
],
...
...
pkg/cloudprovider/cloud.go
View file @
87a5edd2
...
...
@@ -23,10 +23,13 @@ import (
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/controller"
)
// Interface is an abstract, pluggable interface for cloud providers.
type
Interface
interface
{
// Initialize provides the cloud with a kubernetes client builder
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
// LoadBalancer returns a balancer interface. Also returns true if the interface is supported, false otherwise.
LoadBalancer
()
(
LoadBalancer
,
bool
)
// Instances returns an instances interface. Also returns true if the interface is supported, false otherwise.
...
...
pkg/cloudprovider/providers/aws/BUILD
View file @
87a5edd2
...
...
@@ -30,6 +30,7 @@ go_library(
"//pkg/api/v1:go_default_library",
"//pkg/api/v1/service:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//pkg/credentialprovider/aws:go_default_library",
"//pkg/volume:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
...
...
pkg/cloudprovider/providers/aws/aws.go
View file @
87a5edd2
...
...
@@ -49,6 +49,7 @@ import (
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/api/v1/service"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/volume"
)
...
...
@@ -888,6 +889,9 @@ func newAWSCloud(config io.Reader, awsServices Services) (*Cloud, error) {
return
awsCloud
,
nil
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
c
*
Cloud
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
// Clusters returns the list of clusters.
func
(
c
*
Cloud
)
Clusters
()
(
cloudprovider
.
Clusters
,
bool
)
{
return
nil
,
false
...
...
pkg/cloudprovider/providers/azure/BUILD
View file @
87a5edd2
...
...
@@ -29,6 +29,7 @@ go_library(
"//pkg/api/v1:go_default_library",
"//pkg/api/v1/service:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//pkg/version:go_default_library",
"//pkg/volume:go_default_library",
"//vendor/github.com/Azure/azure-sdk-for-go/arm/compute:go_default_library",
...
...
pkg/cloudprovider/providers/azure/azure.go
View file @
87a5edd2
...
...
@@ -20,8 +20,10 @@ import (
"fmt"
"io"
"io/ioutil"
"time"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/version"
"github.com/Azure/azure-sdk-for-go/arm/compute"
...
...
@@ -30,7 +32,6 @@ import (
"github.com/Azure/go-autorest/autorest"
"github.com/Azure/go-autorest/autorest/azure"
"github.com/ghodss/yaml"
"time"
)
// CloudProviderName is the value used for the --cloud-provider flag
...
...
@@ -179,6 +180,9 @@ func NewCloud(configReader io.Reader) (cloudprovider.Interface, error) {
return
&
az
,
nil
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
az
*
Cloud
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
// LoadBalancer returns a balancer interface. Also returns true if the interface is supported, false otherwise.
func
(
az
*
Cloud
)
LoadBalancer
()
(
cloudprovider
.
LoadBalancer
,
bool
)
{
return
az
,
true
...
...
pkg/cloudprovider/providers/cloudstack/BUILD
View file @
87a5edd2
...
...
@@ -18,6 +18,7 @@ go_library(
deps = [
"//pkg/api/v1:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/xanzy/go-cloudstack/cloudstack:go_default_library",
"//vendor/gopkg.in/gcfg.v1:go_default_library",
...
...
pkg/cloudprovider/providers/cloudstack/cloudstack.go
View file @
87a5edd2
...
...
@@ -24,6 +24,7 @@ import (
"github.com/xanzy/go-cloudstack/cloudstack"
"gopkg.in/gcfg.v1"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
)
// ProviderName is the name of this cloud provider.
...
...
@@ -81,6 +82,9 @@ func newCSCloud(cfg *CSConfig) (*CSCloud, error) {
return
&
CSCloud
{
client
,
cfg
.
Global
.
ProjectID
,
cfg
.
Global
.
Zone
},
nil
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
cs
*
CSCloud
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
// LoadBalancer returns an implementation of LoadBalancer for CloudStack.
func
(
cs
*
CSCloud
)
LoadBalancer
()
(
cloudprovider
.
LoadBalancer
,
bool
)
{
return
cs
,
true
...
...
pkg/cloudprovider/providers/fake/BUILD
View file @
87a5edd2
...
...
@@ -17,6 +17,7 @@ go_library(
deps = [
"//pkg/api/v1:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
],
)
...
...
pkg/cloudprovider/providers/fake/fake.go
View file @
87a5edd2
...
...
@@ -26,6 +26,7 @@ import (
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
)
const
defaultProviderName
=
"fake"
...
...
@@ -82,6 +83,9 @@ func (f *FakeCloud) ClearCalls() {
f
.
Calls
=
[]
string
{}
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
f
*
FakeCloud
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
func
(
f
*
FakeCloud
)
ListClusters
()
([]
string
,
error
)
{
return
f
.
ClusterList
,
f
.
Err
}
...
...
pkg/cloudprovider/providers/gce/BUILD
View file @
87a5edd2
...
...
@@ -38,6 +38,7 @@ go_library(
"//pkg/api/v1:go_default_library",
"//pkg/api/v1/service:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//pkg/util/net/sets:go_default_library",
"//pkg/volume:go_default_library",
"//vendor/cloud.google.com/go/compute/metadata:go_default_library",
...
...
pkg/cloudprovider/providers/gce/gce.go
View file @
87a5edd2
...
...
@@ -31,6 +31,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/util/flowcontrol"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
"github.com/golang/glog"
"golang.org/x/oauth2"
...
...
@@ -233,6 +234,9 @@ func CreateGCECloud(projectID, region, zone string, managedZones []string, netwo
},
nil
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
gce
*
GCECloud
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
// LoadBalancer returns an implementation of LoadBalancer for Google Compute Engine.
func
(
gce
*
GCECloud
)
LoadBalancer
()
(
cloudprovider
.
LoadBalancer
,
bool
)
{
return
gce
,
true
...
...
pkg/cloudprovider/providers/mesos/BUILD
View file @
87a5edd2
...
...
@@ -20,6 +20,7 @@ go_library(
deps = [
"//pkg/api/v1:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/mesos/mesos-go/detector:go_default_library",
"//vendor/github.com/mesos/mesos-go/detector/zoo:go_default_library",
...
...
pkg/cloudprovider/providers/mesos/mesos.go
View file @
87a5edd2
...
...
@@ -31,6 +31,7 @@ import (
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
)
const
(
...
...
@@ -89,6 +90,9 @@ func newMesosCloud(configReader io.Reader) (*MesosCloud, error) {
}
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
c
*
MesosCloud
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
// Implementation of Instances.CurrentNodeName
func
(
c
*
MesosCloud
)
CurrentNodeName
(
hostname
string
)
(
types
.
NodeName
,
error
)
{
return
types
.
NodeName
(
hostname
),
nil
...
...
pkg/cloudprovider/providers/openstack/BUILD
View file @
87a5edd2
...
...
@@ -24,6 +24,7 @@ go_library(
"//pkg/api/v1/helper:go_default_library",
"//pkg/api/v1/service:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//pkg/util/exec:go_default_library",
"//pkg/util/mount:go_default_library",
"//pkg/volume:go_default_library",
...
...
pkg/cloudprovider/providers/openstack/openstack.go
View file @
87a5edd2
...
...
@@ -45,6 +45,7 @@ import (
"k8s.io/kubernetes/pkg/api/v1"
v1helper
"k8s.io/kubernetes/pkg/api/v1/helper"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
)
const
ProviderName
=
"openstack"
...
...
@@ -265,6 +266,9 @@ func newOpenStack(cfg Config) (*OpenStack, error) {
return
&
os
,
nil
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
os
*
OpenStack
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
// mapNodeNameToServerName maps a k8s NodeName to an OpenStack Server Name
// This is a simple string cast.
func
mapNodeNameToServerName
(
nodeName
types
.
NodeName
)
string
{
...
...
pkg/cloudprovider/providers/ovirt/BUILD
View file @
87a5edd2
...
...
@@ -15,6 +15,7 @@ go_library(
deps = [
"//pkg/api/v1:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//vendor/gopkg.in/gcfg.v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
],
...
...
pkg/cloudprovider/providers/ovirt/ovirt.go
View file @
87a5edd2
...
...
@@ -34,6 +34,7 @@ import (
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
)
const
ProviderName
=
"ovirt"
...
...
@@ -116,7 +117,10 @@ func newOVirtCloud(config io.Reader) (*OVirtCloud, error) {
return
&
OVirtCloud
{
VmsRequest
:
request
},
nil
}
func
(
aws
*
OVirtCloud
)
Clusters
()
(
cloudprovider
.
Clusters
,
bool
)
{
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
v
*
OVirtCloud
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
func
(
v
*
OVirtCloud
)
Clusters
()
(
cloudprovider
.
Clusters
,
bool
)
{
return
nil
,
false
}
...
...
pkg/cloudprovider/providers/photon/BUILD
View file @
87a5edd2
...
...
@@ -16,6 +16,7 @@ go_library(
"//pkg/api/v1:go_default_library",
"//pkg/api/v1/helper:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/vmware/photon-controller-go-sdk/photon:go_default_library",
"//vendor/gopkg.in/gcfg.v1:go_default_library",
...
...
pkg/cloudprovider/providers/photon/photon.go
View file @
87a5edd2
...
...
@@ -41,6 +41,7 @@ import (
"k8s.io/kubernetes/pkg/api/v1"
v1helper
"k8s.io/kubernetes/pkg/api/v1/helper"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
)
const
(
...
...
@@ -292,6 +293,9 @@ func newPCCloud(cfg PCConfig) (*PCCloud, error) {
return
&
pc
,
nil
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
pc
*
PCCloud
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
// Instances returns an implementation of Instances for Photon Controller.
func
(
pc
*
PCCloud
)
Instances
()
(
cloudprovider
.
Instances
,
bool
)
{
return
pc
,
true
...
...
pkg/cloudprovider/providers/rackspace/BUILD
View file @
87a5edd2
...
...
@@ -15,6 +15,7 @@ go_library(
deps = [
"//pkg/api/v1:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/rackspace/gophercloud:go_default_library",
"//vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach:go_default_library",
...
...
pkg/cloudprovider/providers/rackspace/rackspace.go
View file @
87a5edd2
...
...
@@ -43,6 +43,7 @@ import (
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
)
const
(
...
...
@@ -218,6 +219,9 @@ func newRackspace(cfg Config) (*Rackspace, error) {
return
&
os
,
nil
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
os
*
Rackspace
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
type
Instances
struct
{
compute
*
gophercloud
.
ServiceClient
}
...
...
pkg/cloudprovider/providers/vsphere/BUILD
View file @
87a5edd2
...
...
@@ -19,6 +19,7 @@ go_library(
"//pkg/api/v1:go_default_library",
"//pkg/api/v1/helper:go_default_library",
"//pkg/cloudprovider:go_default_library",
"//pkg/controller:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/vmware/govmomi:go_default_library",
"//vendor/github.com/vmware/govmomi/find:go_default_library",
...
...
pkg/cloudprovider/providers/vsphere/vsphere.go
View file @
87a5edd2
...
...
@@ -50,6 +50,7 @@ import (
"k8s.io/kubernetes/pkg/api/v1"
v1helper
"k8s.io/kubernetes/pkg/api/v1/helper"
"k8s.io/kubernetes/pkg/cloudprovider"
"k8s.io/kubernetes/pkg/controller"
)
const
(
...
...
@@ -229,6 +230,9 @@ func init() {
})
}
// Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func
(
vs
*
VSphere
)
Initialize
(
clientBuilder
controller
.
ControllerClientBuilder
)
{}
// UUID gets the BIOS UUID via the sys interface. This UUID is known by vsphere
func
getvmUUID
()
(
string
,
error
)
{
id
,
err
:=
ioutil
.
ReadFile
(
UUIDPath
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment