@@ -13,7 +13,8 @@ import (
13
13
"sigs.k8s.io/controller-runtime/pkg/client/config"
14
14
)
15
15
16
- var _ = Describe ("Prometheus Metrics" , Ordered , func () {
16
+ // Try to retry test case multipletimes when failing.
17
+ var _ = Describe ("Prometheus Metrics" , FlakeAttempts (5 ), Ordered , func () {
17
18
const metricsViewerSAName = "metrics-viewer-sa"
18
19
const clusterMonitoringViewClusterRole = "cluster-monitoring-view"
19
20
var cr * olsv1alpha1.OLSConfig
@@ -36,32 +37,37 @@ var _ = Describe("Prometheus Metrics", Ordered, func() {
36
37
37
38
By ("create a service account" )
38
39
cleanUp , err := client .CreateServiceAccount (OLSNameSpace , metricsViewerSAName )
39
- Expect (err ).NotTo (HaveOccurred ())
40
40
cleanUpFuncs = append (cleanUpFuncs , cleanUp )
41
+ Expect (err ).NotTo (HaveOccurred ())
41
42
42
43
By ("create a role binding for application metrics access" )
43
44
cleanUp , err = client .CreateClusterRoleBinding (OLSNameSpace , metricsViewerSAName , clusterMonitoringViewClusterRole )
44
- Expect (err ).NotTo (HaveOccurred ())
45
45
cleanUpFuncs = append (cleanUpFuncs , cleanUp )
46
+ Expect (err ).NotTo (HaveOccurred ())
46
47
47
48
By ("fetch the service account token" )
48
49
saToken , err = client .GetServiceAccountToken (OLSNameSpace , metricsViewerSAName )
49
50
Expect (err ).NotTo (HaveOccurred ())
50
51
51
- // Get a Kubernetes rest config
52
+ By ( "fetch a Kubernetes rest config" )
52
53
cfg , err := config .GetConfig ()
53
54
Expect (err ).NotTo (HaveOccurred ())
54
55
55
56
openshiftRouteClient , err := routev1 .NewForConfig (cfg )
56
57
Expect (err ).NotTo (HaveOccurred ())
57
58
58
- prometheusClient , err = NewPrometheusClientFromRoute (
59
- context .Background (),
60
- openshiftRouteClient ,
61
- "openshift-monitoring" , "thanos-querier" ,
62
- saToken ,
63
- )
64
- Expect (err ).NotTo (HaveOccurred ())
59
+ By ("fetch a Prometheus route" )
60
+ // Retry multiple times to fetch route
61
+ // mitigates networking issues
62
+ Eventually (func () error {
63
+ prometheusClient , err = NewPrometheusClientFromRoute (
64
+ context .Background (),
65
+ openshiftRouteClient ,
66
+ "openshift-monitoring" , "thanos-querier" ,
67
+ saToken ,
68
+ )
69
+ return err
70
+ }, 10 * time .Second , 2 * time .Second ).ShouldNot (HaveOccurred ())
65
71
66
72
By ("wait for application server deployment rollout" )
67
73
deployment := & appsv1.Deployment {
0 commit comments