github.com/redhat-appstudio/e2e-tests@v0.0.0-20230619105049-9a422b2094d7/pkg/utils/common/service_account.go (about) 1 package common 2 3 import ( 4 "context" 5 6 corev1 "k8s.io/api/core/v1" 7 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 8 "k8s.io/apimachinery/pkg/util/wait" 9 "sigs.k8s.io/controller-runtime/pkg/client" 10 ) 11 12 func (s *SuiteController) GetServiceAccount(saName, namespace string) (*corev1.ServiceAccount, error) { 13 return s.KubeInterface().CoreV1().ServiceAccounts(namespace).Get(context.TODO(), saName, metav1.GetOptions{}) 14 } 15 16 func (s *SuiteController) ServiceaccountPresent(saName, namespace string) wait.ConditionFunc { 17 return func() (bool, error) { 18 _, err := s.GetServiceAccount(saName, namespace) 19 if err != nil { 20 return false, nil 21 } 22 return true, nil 23 } 24 } 25 26 // CreateServiceAccount creates a service account with the provided name and namespace using the given list of secrets. 27 func (s *SuiteController) CreateServiceAccount(name, namespace string, serviceAccountSecretList []corev1.ObjectReference) (*corev1.ServiceAccount, error) { 28 serviceAccount := &corev1.ServiceAccount{ 29 ObjectMeta: metav1.ObjectMeta{ 30 Name: name, 31 Namespace: namespace, 32 }, 33 Secrets: serviceAccountSecretList, 34 } 35 return s.KubeInterface().CoreV1().ServiceAccounts(namespace).Create(context.TODO(), serviceAccount, metav1.CreateOptions{}) 36 } 37 38 // DeleteAllServiceAccountsInASpecificNamespace deletes all ServiceAccount from a given namespace 39 func (h *SuiteController) DeleteAllServiceAccountsInASpecificNamespace(namespace string) error { 40 return h.KubeRest().DeleteAllOf(context.TODO(), &corev1.ServiceAccount{}, client.InNamespace(namespace)) 41 }