Skip to content

Commit 5097073

Browse files
UPSTREAM: <carry>: add service account to curl job
1 parent cde7bf0 commit 5097073

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

openshift/tests-extension/test/olmv1-catalog.go

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)