@@ -11,6 +11,7 @@ import (
1111
1212 batchv1 "k8s.io/api/batch/v1"
1313 corev1 "k8s.io/api/core/v1"
14+ apierrors "k8s.io/apimachinery/pkg/api/errors"
1415 "k8s.io/apimachinery/pkg/api/meta"
1516 "k8s.io/apimachinery/pkg/api/resource"
1617 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -77,7 +78,7 @@ func verifyCatalogEndpoint(ctx SpecContext, catalog, endpoint, query string) {
7778 strings .ReplaceAll (endpoint , "?" , "" ),
7879 strings .ReplaceAll (catalog , "-" , "" ))
7980
80- job := buildCurlJob (jobNamePrefix , "default" , serviceURL )
81+ job := buildCurlJob (ctx , jobNamePrefix , "default" , serviceURL )
8182 err = k8sClient .Create (ctx , job )
8283 Expect (err ).NotTo (HaveOccurred (), "failed to create Job" )
8384
@@ -228,7 +229,29 @@ var _ = Describe("[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1
228229 })
229230})
230231
231- func buildCurlJob (prefix , namespace , url string ) * batchv1.Job {
232+ func buildCurlJob (ctx SpecContext , prefix , namespace , url string ) * batchv1.Job {
233+ // create service account object
234+ serviceAccount := & corev1.ServiceAccount {
235+ ObjectMeta : metav1.ObjectMeta {
236+ Name : prefix ,
237+ Namespace : namespace ,
238+ },
239+ }
240+
241+ serviceAccount .SetName (prefix )
242+ serviceAccount .SetNamespace (namespace )
243+
244+ k8sClient := env .Get ().K8sClient
245+
246+ err := k8sClient .Create (ctx , serviceAccount )
247+ if err != nil && ! apierrors .IsAlreadyExists (err ) {
248+ Fail (fmt .Sprintf ("Failed to ensure ServiceAccount %s: %v" , prefix , err ))
249+ }
250+
251+ DeferCleanup (func (ctx SpecContext ) {
252+ _ = k8sClient .Delete (ctx , serviceAccount )
253+ })
254+
232255 backoff := int32 (1 )
233256 // This means the k8s garbage collector will automatically delete the job 5 minutes
234257 // after it has completed or failed.
@@ -257,7 +280,8 @@ func buildCurlJob(prefix, namespace, url string) *batchv1.Job {
257280 BackoffLimit : & backoff ,
258281 Template : corev1.PodTemplateSpec {
259282 Spec : corev1.PodSpec {
260- RestartPolicy : corev1 .RestartPolicyNever ,
283+ ServiceAccountName : serviceAccount .Name ,
284+ RestartPolicy : corev1 .RestartPolicyNever ,
261285 Containers : []corev1.Container {{
262286 Name : "api-tester" ,
263287 Image : "registry.redhat.io/rhel8/httpd-24:latest" ,
0 commit comments