Skip to content

Commit

Permalink
improve kubernetes object creation
Browse files Browse the repository at this point in the history
  • Loading branch information
choffmeister committed Feb 23, 2022
1 parent 636aaf3 commit 71b43c5
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions internal/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ import (
"k8s.io/client-go/tools/clientcmd"
)

var metadataAccessor = apimeta.NewAccessor()

func KubernetesListNodes(ctx *Context) (*v1.NodeList, error) {
clientset, _, err := kubernetesInit(ctx)
if err != nil {
Expand Down Expand Up @@ -46,7 +48,7 @@ func KubernetesCreateFromManifest(ctx *Context, namespace string, manifest strin
if err != nil {
return err
}
err = kubernetesCreateObject(clientset, *config, namespace, obj)
err = kubernetesCreateObject(clientset, *config, obj)
if err != nil && !apierrors.IsAlreadyExists(err) {
return err
}
Expand All @@ -69,7 +71,7 @@ func kubernetesInit(ctx *Context) (*kubernetes.Clientset, *rest.Config, error) {
return clientset, config, nil
}

func kubernetesCreateObject(kubeClientset kubernetes.Interface, restConfig rest.Config, namespace string, obj runtime.Object) error {
func kubernetesCreateObject(kubeClientset kubernetes.Interface, restConfig rest.Config, obj runtime.Object) error {
// Create a REST mapper that tracks information about the available resources in the cluster.
groupResources, err := restmapper.GetAPIGroupResources(kubeClientset.Discovery())
if err != nil {
Expand All @@ -96,6 +98,12 @@ func kubernetesCreateObject(kubeClientset kubernetes.Interface, restConfig rest.
return err
}

// Detect namespace
namespace, err := metadataAccessor.Namespace(obj)
if err != nil {
return err
}

// Use the REST helper to create the object in the "default" namespace.
restHelper := resource.NewHelper(restClient, mapping)
_, err = restHelper.Create(namespace, false, obj)
Expand Down

0 comments on commit 71b43c5

Please sign in to comment.