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

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