diff --git a/internal/kubernetes/client.go b/internal/kubernetes/client.go index 1d4f4db..72f14fa 100644 --- a/internal/kubernetes/client.go +++ b/internal/kubernetes/client.go @@ -5,6 +5,7 @@ package kubernetes import ( "fmt" + "k8s.io/client-go/rest" ipamv1alpha1 "github.com/ironcore-dev/ipam/api/ipam/v1alpha1" metalv1alpha1 "github.com/ironcore-dev/metal-operator/api/v1alpha1" @@ -17,6 +18,7 @@ import ( var ( scheme = runtime.NewScheme() kubeClient client.Client + cfg *rest.Config ) func init() { @@ -25,7 +27,7 @@ func init() { } func InitClient() error { - cfg := config.GetConfigOrDie() + cfg = config.GetConfigOrDie() var err error kubeClient, err = client.New(cfg, client.Options{Scheme: scheme}) if err != nil { @@ -40,3 +42,5 @@ func SetClient(client *client.Client) { } func GetClient() client.Client { return kubeClient } + +func GetConfig() *rest.Config { return cfg } diff --git a/plugins/ipam/k8s.go b/plugins/ipam/k8s.go index 06123d5..7907cbc 100644 --- a/plugins/ipam/k8s.go +++ b/plugins/ipam/k8s.go @@ -8,6 +8,7 @@ import ( "encoding/hex" "encoding/json" "fmt" + "github.com/ironcore-dev/fedhcp/internal/kubernetes" "net" "os" "reflect" @@ -24,7 +25,6 @@ import ( corev1client "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/client-go/tools/record" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/client/config" ) const ( @@ -41,16 +41,8 @@ type K8sClient struct { } func NewK8sClient(namespace string, subnetNames []string) (*K8sClient, error) { - - if err := ipamv1alpha1.AddToScheme(scheme.Scheme); err != nil { - return nil, fmt.Errorf("unable to add registered types ipam to client scheme: %w", err) - } - - cfg := config.GetConfigOrDie() - cl, err := client.New(cfg, client.Options{}) - if err != nil { - return nil, fmt.Errorf("failed to create controller runtime client: %w", err) - } + cfg := kubernetes.GetConfig() + cl := kubernetes.GetClient() clientset, err := ipam.NewForConfig(cfg) if err != nil {