Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions cmd/alerter/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,17 @@ import (
"strings"
"syscall"

"github.com/Azure/adx-mon/alerter"
alertrulev1 "github.com/Azure/adx-mon/api/v1"
"github.com/Azure/adx-mon/pkg/logger"
"github.com/Azure/adx-mon/pkg/version"
"github.com/urfave/cli/v2" // imports as package "cli"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/kubernetes"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/tools/clientcmd"
ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"

"github.com/Azure/adx-mon/alerter"
alertrulev1 "github.com/Azure/adx-mon/api/v1"
"github.com/Azure/adx-mon/pkg/k8s"
"github.com/Azure/adx-mon/pkg/logger"
"github.com/Azure/adx-mon/pkg/version"
)

func main() {
Expand Down Expand Up @@ -141,7 +142,7 @@ func realMain(ctx *cli.Context) error {
}

func newKubeClient(cCtx *cli.Context) (dynamic.Interface, *kubernetes.Clientset, ctrlclient.Client, error) {
config, err := clientcmd.BuildConfigFromFlags("", cCtx.String("kubeconfig"))
config, err := k8s.BuildConfigFromFlags("", cCtx.String("kubeconfig"))
if err != nil {
logger.Warnf("No kube config provided, using fake kube client")
return nil, nil, nil, fmt.Errorf("unable to find kube config [%s]: %v", cCtx.String("kubeconfig"), err)
Expand Down
10 changes: 5 additions & 5 deletions cmd/collector/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ import (
"syscall"
"time"

"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v2"
"k8s.io/client-go/kubernetes"

"github.com/Azure/adx-mon/cmd/collector/config"
"github.com/Azure/adx-mon/collector"
"github.com/Azure/adx-mon/collector/logs"
Expand All @@ -36,10 +40,6 @@ import (
"github.com/Azure/adx-mon/pkg/version"
"github.com/Azure/adx-mon/schema"
"github.com/Azure/adx-mon/storage"
"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v2"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)

func main() {
Expand Down Expand Up @@ -877,7 +877,7 @@ func getInformer(kubeConfig string, nodeName string, informer *k8s.PodInformer)
return informer, nil
}

config, err := clientcmd.BuildConfigFromFlags("", kubeConfig)
config, err := k8s.BuildConfigFromFlags("", kubeConfig)
if err != nil {
logger.Warnf("No kube-config provided")
return nil, fmt.Errorf("unable to find kube config [%s]: %w", kubeConfig, err)
Expand Down
23 changes: 12 additions & 11 deletions cmd/ingestor/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,29 @@ import (
"syscall"
"time"

"github.com/Azure/azure-kusto-go/kusto"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/urfave/cli/v2"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/fake"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/rest"
ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"

v1 "github.com/Azure/adx-mon/api/v1"
"github.com/Azure/adx-mon/ingestor"
"github.com/Azure/adx-mon/ingestor/adx"
runner "github.com/Azure/adx-mon/ingestor/runner/shutdown"
"github.com/Azure/adx-mon/metrics"
monhttp "github.com/Azure/adx-mon/pkg/http"
"github.com/Azure/adx-mon/pkg/k8s"
"github.com/Azure/adx-mon/pkg/limiter"
"github.com/Azure/adx-mon/pkg/logger"
"github.com/Azure/adx-mon/pkg/scheduler"
adxtls "github.com/Azure/adx-mon/pkg/tls"
"github.com/Azure/adx-mon/pkg/version"
"github.com/Azure/adx-mon/schema"
"github.com/Azure/azure-kusto-go/kusto"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/urfave/cli/v2"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes/fake"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"
)

func main() {
Expand Down Expand Up @@ -398,7 +399,7 @@ func newKubeClient(cCtx *cli.Context) (dynamic.Interface, kubernetes.Interface,
return nil, fake.NewSimpleClientset(), nil, nil
}

config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
config, err := k8s.BuildConfigFromFlags("", kubeconfig)
if err != nil {
return nil, nil, nil, fmt.Errorf("unable to find kube config [%s]: %v", kubeconfig, err)
}
Expand Down
9 changes: 5 additions & 4 deletions ingestor/cluster/coordinator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import (
"testing"
"time"

"github.com/Azure/adx-mon/pkg/prompb"
"github.com/Azure/adx-mon/pkg/testutils"
"github.com/stretchr/testify/require"
"github.com/testcontainers/testcontainers-go"
"github.com/testcontainers/testcontainers-go/modules/k3s"
Expand All @@ -17,7 +15,10 @@ import (
"k8s.io/client-go/kubernetes"
fakek8s "k8s.io/client-go/kubernetes/fake"
v12 "k8s.io/client-go/listers/core/v1"
"k8s.io/client-go/tools/clientcmd"

"github.com/Azure/adx-mon/pkg/k8s"
"github.com/Azure/adx-mon/pkg/prompb"
"github.com/Azure/adx-mon/pkg/testutils"
)

func TestCoordinator_NewPeer(t *testing.T) {
Expand Down Expand Up @@ -275,7 +276,7 @@ func TestCoordinatorInK8s(t *testing.T) {
kubeconfig, err := testutils.WriteKubeConfig(ctx, k3sContainer, t.TempDir())
require.NoError(t, err)

config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
config, err := k8s.BuildConfigFromFlags("", kubeconfig)
require.NoError(t, err)

client, err := kubernetes.NewForConfig(config)
Expand Down
29 changes: 29 additions & 0 deletions pkg/k8s/client.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package k8s

import (
restclient "k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
"k8s.io/klog/v2"
)

// BuildConfigFromFlags is a helper function that builds configs from a master
// url or a kubeconfig filepath. These are passed in as command line flags for cluster
// components. Warnings should reflect this usage. If neither masterUrl or kubeconfigPath
// are passed in we fallback to inClusterConfig. If inClusterConfig fails, we fallback
// to the default config.
//
// Copied from upstream and just removed the "using in-cluster config" warning.
// see: https://github.com/kubernetes/client-go/blob/master/tools/clientcmd/client_config.go
func BuildConfigFromFlags(masterUrl, kubeconfigPath string) (*restclient.Config, error) {
if kubeconfigPath == "" && masterUrl == "" {
kubeconfig, err := restclient.InClusterConfig()
if err == nil {
return kubeconfig, nil
}
klog.Warning("error creating inClusterConfig, falling back to default config: ", err)
}
return clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
&clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfigPath},
&clientcmd.ConfigOverrides{ClusterInfo: clientcmdapi.Cluster{Server: masterUrl}}).ClientConfig()
}