Commit 9716b0bf by moonek

Support for running controller outside of cluster

parent ce969521
...@@ -28,13 +28,14 @@ import ( ...@@ -28,13 +28,14 @@ import (
"k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/apis/core/v1/helper"
"github.com/golang/glog" "github.com/golang/glog"
"sigs.k8s.io/sig-storage-lib-external-provisioner/controller"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
storage "k8s.io/api/storage/v1" storage "k8s.io/api/storage/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest" "k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"sigs.k8s.io/sig-storage-lib-external-provisioner/controller"
) )
const ( const (
...@@ -161,13 +162,25 @@ func main() { ...@@ -161,13 +162,25 @@ func main() {
if provisionerName == "" { if provisionerName == "" {
glog.Fatalf("environment variable %s is not set! Please set it.", provisionerNameKey) glog.Fatalf("environment variable %s is not set! Please set it.", provisionerNameKey)
} }
kubeconfig := os.Getenv("KUBECONFIG")
var config *rest.Config
if kubeconfig != "" {
// Create an OutOfClusterConfig and use it to create a client for the controller
// to use to communicate with Kubernetes
var err error
config, err = clientcmd.BuildConfigFromFlags("", kubeconfig)
if err != nil {
glog.Fatalf("Failed to create kubeconfig: %v", err)
}
} else {
// Create an InClusterConfig and use it to create a client for the controller // Create an InClusterConfig and use it to create a client for the controller
// to use to communicate with Kubernetes // to use to communicate with Kubernetes
config, err := rest.InClusterConfig() var err error
config, err = rest.InClusterConfig()
if err != nil { if err != nil {
glog.Fatalf("Failed to create config: %v", err) glog.Fatalf("Failed to create config: %v", err)
} }
}
clientset, err := kubernetes.NewForConfig(config) clientset, err := kubernetes.NewForConfig(config)
if err != nil { if err != nil {
glog.Fatalf("Failed to create client: %v", err) glog.Fatalf("Failed to create client: %v", err)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment