@@ -23,11 +23,14 @@ import (
2323 "github.com/onsi/gomega"
2424
2525 corev1 "k8s.io/api/core/v1"
26+ "k8s.io/apimachinery/pkg/api/resource"
2627 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2728 "k8s.io/apimachinery/pkg/runtime"
2829)
2930
3031func CreateConfigMap (t Test , namespace string , content map [string ][]byte ) * corev1.ConfigMap {
32+ t .T ().Helper ()
33+
3134 configMap := & corev1.ConfigMap {
3235 TypeMeta : metav1.TypeMeta {
3336 APIVersion : corev1 .SchemeGroupVersion .String (),
@@ -98,7 +101,10 @@ func storeContainerLog(t Test, namespace *corev1.Namespace, podName, containerNa
98101
99102 options := corev1.PodLogOptions {Container : containerName }
100103 stream , err := t .Client ().Core ().CoreV1 ().Pods (namespace .Name ).GetLogs (podName , & options ).Stream (t .Ctx ())
101- t .Expect (err ).NotTo (gomega .HaveOccurred ())
104+ if err != nil {
105+ t .T ().Logf ("Failed to retrieve logs for Pod Container %s/%s/%s, logs cannot be stored" , namespace .Name , podName , containerName )
106+ return
107+ }
102108
103109 defer func () {
104110 t .Expect (stream .Close ()).To (gomega .Succeed ())
@@ -110,3 +116,51 @@ func storeContainerLog(t Test, namespace *corev1.Namespace, podName, containerNa
110116 containerLogFileName := "pod-" + podName + "-" + containerName
111117 WriteToOutputDir (t , containerLogFileName , Log , bytes )
112118}
119+
120+ func CreateServiceAccount (t Test , namespace string ) * corev1.ServiceAccount {
121+ t .T ().Helper ()
122+
123+ serviceAccount := & corev1.ServiceAccount {
124+ TypeMeta : metav1.TypeMeta {
125+ APIVersion : corev1 .SchemeGroupVersion .String (),
126+ Kind : "ServiceAccount" ,
127+ },
128+ ObjectMeta : metav1.ObjectMeta {
129+ GenerateName : "sa-" ,
130+ Namespace : namespace ,
131+ },
132+ }
133+ serviceAccount , err := t .Client ().Core ().CoreV1 ().ServiceAccounts (namespace ).Create (t .Ctx (), serviceAccount , metav1.CreateOptions {})
134+ t .Expect (err ).NotTo (gomega .HaveOccurred ())
135+ t .T ().Logf ("Created ServiceAccount %s/%s successfully" , serviceAccount .Namespace , serviceAccount .Name )
136+
137+ return serviceAccount
138+ }
139+
140+ func CreatePersistentVolumeClaim (t Test , namespace string , storageSize string , accessMode ... corev1.PersistentVolumeAccessMode ) * corev1.PersistentVolumeClaim {
141+ t .T ().Helper ()
142+
143+ pvc := & corev1.PersistentVolumeClaim {
144+ TypeMeta : metav1.TypeMeta {
145+ APIVersion : corev1 .SchemeGroupVersion .String (),
146+ Kind : "PersistentVolumeClaim" ,
147+ },
148+ ObjectMeta : metav1.ObjectMeta {
149+ GenerateName : "pvc-" ,
150+ Namespace : namespace ,
151+ },
152+ Spec : corev1.PersistentVolumeClaimSpec {
153+ AccessModes : accessMode ,
154+ Resources : corev1.ResourceRequirements {
155+ Requests : corev1.ResourceList {
156+ corev1 .ResourceStorage : resource .MustParse (storageSize ),
157+ },
158+ },
159+ },
160+ }
161+ pvc , err := t .Client ().Core ().CoreV1 ().PersistentVolumeClaims (namespace ).Create (t .Ctx (), pvc , metav1.CreateOptions {})
162+ t .Expect (err ).NotTo (gomega .HaveOccurred ())
163+ t .T ().Logf ("Created PersistentVolumeClaim %s/%s successfully" , pvc .Namespace , pvc .Name )
164+
165+ return pvc
166+ }
0 commit comments