pkg/kuberneteshelper/client.go (43 lines of code) (raw):

package kuberneteshelper import ( "context" aadpodv1 "github.com/Azure/aad-pod-identity/pkg/apis/aadpodidentity/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" clientgoscheme "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" "sigs.k8s.io/controller-runtime/pkg/client" ) var ( scheme = runtime.NewScheme() ) func init() { _ = clientgoscheme.AddToScheme(scheme) // Add aadpodidentity v1 to the scheme. aadPodIdentityGroupVersion := schema.GroupVersion{Group: aadpodv1.GroupName, Version: "v1"} scheme.AddKnownTypes(aadPodIdentityGroupVersion, &aadpodv1.AzureIdentity{}, &aadpodv1.AzureIdentityList{}, &aadpodv1.AzureIdentityBinding{}, &aadpodv1.AzureIdentityBindingList{}, ) metav1.AddToGroupVersion(scheme, aadPodIdentityGroupVersion) } // GetKubeConfig returns the kubeconfig func GetKubeConfig() (*rest.Config, error) { return clientcmd.NewNonInteractiveDeferredLoadingClientConfig(clientcmd.NewDefaultClientConfigLoadingRules(), &clientcmd.ConfigOverrides{}).ClientConfig() } // GetKubeClient returns a Kubernetes clientset. func GetKubeClient() (client.Client, error) { kubeConfig, err := GetKubeConfig() if err != nil { return nil, err } return client.New(kubeConfig, client.Options{Scheme: scheme}) } // GetObject returns an object from the Kubernetes cluster. func GetObject(ctx context.Context, kubeClient client.Client, namespace string, name string, obj client.Object) (client.Object, error) { err := kubeClient.Get(ctx, client.ObjectKey{ Namespace: namespace, Name: name, }, obj) return obj, err }