diff --git a/cluster/addons/fluentd-elasticsearch/es-image/Makefile b/cluster/addons/fluentd-elasticsearch/es-image/Makefile index 024552bf503..5c3b8380a6d 100755 --- a/cluster/addons/fluentd-elasticsearch/es-image/Makefile +++ b/cluster/addons/fluentd-elasticsearch/es-image/Makefile @@ -16,7 +16,7 @@ # The current value of the tag to be used for building and # pushing an image to gcr.io -TAG = v5.4.0 +TAG = v5.4.0-1 build: elasticsearch_logging_discovery docker build --pull -t gcr.io/google_containers/elasticsearch:$(TAG) . diff --git a/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go b/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go index d6e7cfa2ae9..a896faf80bd 100644 --- a/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go +++ b/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go @@ -26,10 +26,27 @@ import ( "github.com/golang/glog" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" + clientapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/kubernetes/pkg/api" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" ) +func buildConfigFromEnvs(masterURL, kubeconfigPath string) (*restclient.Config, error) { + if kubeconfigPath == "" && masterURL == "" { + kubeconfig, err := restclient.InClusterConfig() + if err != nil { + return nil, err + } + + return kubeconfig, nil + } + + return clientcmd.NewNonInteractiveDeferredLoadingClientConfig( + &clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfigPath}, + &clientcmd.ConfigOverrides{ClusterInfo: clientapi.Cluster{Server: masterURL}}).ClientConfig() +} + func flattenSubsets(subsets []api.EndpointSubset) []string { ips := []string{} for _, ss := range subsets { @@ -42,9 +59,10 @@ func flattenSubsets(subsets []api.EndpointSubset) []string { func main() { flag.Parse() + glog.Info("Kubernetes Elasticsearch logging discovery") - cc, err := restclient.InClusterConfig() + cc, err := buildConfigFromEnvs(os.Getenv("APISERVER_HOST"), os.Getenv("KUBE_CONFIG_FILE")) if err != nil { glog.Fatalf("Failed to make client: %v", err) }