github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/pkg/kubernetes/resources/namespace/adapt.go (about)

     1  package namespace
     2  
     3  import (
     4  	"github.com/caos/orbos/pkg/kubernetes"
     5  	"github.com/caos/orbos/pkg/kubernetes/resources"
     6  	corev1 "k8s.io/api/core/v1"
     7  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
     8  )
     9  
    10  func AdaptFuncToEnsure(namespace string) (resources.QueryFunc, error) {
    11  	ns := &corev1.Namespace{
    12  		ObjectMeta: metav1.ObjectMeta{
    13  			Name: namespace,
    14  		},
    15  	}
    16  	return func(_ kubernetes.ClientInt, _ map[string]interface{}) (resources.EnsureFunc, error) {
    17  		return func(k8sClient kubernetes.ClientInt) error {
    18  			return k8sClient.ApplyNamespace(ns)
    19  		}, nil
    20  	}, nil
    21  }
    22  
    23  func AdaptFuncToDestroy(namespace string) (resources.DestroyFunc, error) {
    24  	return func(client kubernetes.ClientInt) error {
    25  		return client.DeleteNamespace(namespace)
    26  	}, nil
    27  }