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 }