@@ -25,22 +25,6 @@ import (
25
25
"strings"
26
26
"time"
27
27
28
- "github.com/imdario/mergo"
29
- configv1 "github.com/openshift/api/config/v1"
30
- consolev1 "github.com/openshift/api/console/v1"
31
- osmv1 "github.com/openshift/api/monitoring/v1"
32
- routev1 "github.com/openshift/api/route/v1"
33
- secv1 "github.com/openshift/api/security/v1"
34
- openshiftconfigclientset "github.com/openshift/client-go/config/clientset/versioned"
35
- openshiftconsoleclientset "github.com/openshift/client-go/console/clientset/versioned"
36
- openshiftmonitoringclientset "github.com/openshift/client-go/monitoring/clientset/versioned"
37
- openshiftoperatorclientset "github.com/openshift/client-go/operator/clientset/versioned"
38
- openshiftrouteclientset "github.com/openshift/client-go/route/clientset/versioned"
39
- openshiftsecurityclientset "github.com/openshift/client-go/security/clientset/versioned"
40
- "github.com/openshift/library-go/pkg/operator/events"
41
- "github.com/openshift/library-go/pkg/operator/resource/resourceapply"
42
- monv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
43
- monitoring "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned"
44
28
admissionv1 "k8s.io/api/admissionregistration/v1"
45
29
appsv1 "k8s.io/api/apps/v1"
46
30
v1 "k8s.io/api/core/v1"
@@ -68,6 +52,23 @@ import (
68
52
apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
69
53
aggregatorclient "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset"
70
54
"k8s.io/utils/ptr"
55
+
56
+ "github.com/imdario/mergo"
57
+ configv1 "github.com/openshift/api/config/v1"
58
+ consolev1 "github.com/openshift/api/console/v1"
59
+ osmv1 "github.com/openshift/api/monitoring/v1"
60
+ routev1 "github.com/openshift/api/route/v1"
61
+ secv1 "github.com/openshift/api/security/v1"
62
+ openshiftconfigclientset "github.com/openshift/client-go/config/clientset/versioned"
63
+ openshiftconsoleclientset "github.com/openshift/client-go/console/clientset/versioned"
64
+ openshiftmonitoringclientset "github.com/openshift/client-go/monitoring/clientset/versioned"
65
+ openshiftoperatorclientset "github.com/openshift/client-go/operator/clientset/versioned"
66
+ openshiftrouteclientset "github.com/openshift/client-go/route/clientset/versioned"
67
+ openshiftsecurityclientset "github.com/openshift/client-go/security/clientset/versioned"
68
+ "github.com/openshift/library-go/pkg/operator/events"
69
+ "github.com/openshift/library-go/pkg/operator/resource/resourceapply"
70
+ monv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
71
+ monitoring "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned"
71
72
)
72
73
73
74
const (
@@ -649,10 +650,10 @@ func (c *Client) GetAlertingRule(ctx context.Context, namespace, name string) (*
649
650
return c .osmclient .MonitoringV1 ().AlertingRules (namespace ).Get (ctx , name , metav1.GetOptions {})
650
651
}
651
652
652
- func (c * Client ) CreateOrUpdatePrometheus (ctx context.Context , structuredRequiredPrometheus * monv1.Prometheus ) (* bool , error ) {
653
+ func (c * Client ) CreateOrUpdatePrometheus (ctx context.Context , structuredRequiredPrometheus * monv1.Prometheus ) (bool , error ) {
653
654
unstructuredRequiredPrometheusObject , err := runtime .DefaultUnstructuredConverter .ToUnstructured (structuredRequiredPrometheus )
654
655
if err != nil {
655
- return nil , fmt .Errorf ("converting Prometheus object to unstructured failed: %w" , err )
656
+ return false , fmt .Errorf ("converting Prometheus object to unstructured failed: %w" , err )
656
657
}
657
658
unstructuredRequiredPrometheus := & unstructured.Unstructured {}
658
659
unstructuredRequiredPrometheus .SetUnstructuredContent (unstructuredRequiredPrometheusObject )
@@ -668,17 +669,24 @@ func (c *Client) CreateOrUpdatePrometheus(ctx context.Context, structuredRequire
668
669
Namespace (structuredRequiredPrometheus .GetNamespace ()).
669
670
Get (ctx , structuredRequiredPrometheus .GetName (), metav1.GetOptions {})
670
671
if apierrors .IsNotFound (err ) {
671
- _ , err = c .dclient .
672
- Resource (prometheusGVR ).
673
- Namespace (structuredRequiredPrometheus .GetNamespace ()).
674
- Create (ctx , unstructuredRequiredPrometheus , metav1.CreateOptions {})
672
+ _ , didUpdate , err := resourceapply .ApplyUnstructuredResourceImproved (
673
+ ctx ,
674
+ c .dclient ,
675
+ c .eventRecorder ,
676
+ unstructuredRequiredPrometheus ,
677
+ c .resourceCache ,
678
+ prometheusGVR ,
679
+ prometheusDefaultingFunc ,
680
+ nil ,
681
+ )
675
682
if err != nil {
676
- return nil , fmt .Errorf ("creating Prometheus object failed: %w" , err )
683
+ return didUpdate , fmt .Errorf ("creating Prometheus object failed: %w" , err )
677
684
}
678
- return ptr .To (true ), nil
685
+
686
+ return true , nil
679
687
}
680
688
if err != nil {
681
- return nil , fmt .Errorf ("retrieving Prometheus object failed: %w" , err )
689
+ return false , fmt .Errorf ("retrieving Prometheus object failed: %w" , err )
682
690
}
683
691
unstructuredRequiredPrometheusMetadataLabels := unstructuredRequiredPrometheus .GetLabels ()
684
692
unstructuredRequiredPrometheusMetadataAnnotations := unstructuredRequiredPrometheus .GetAnnotations ()
@@ -699,10 +707,10 @@ func (c *Client) CreateOrUpdatePrometheus(ctx context.Context, structuredRequire
699
707
nil ,
700
708
)
701
709
if err != nil {
702
- return & didUpdate , fmt .Errorf ("updating Prometheus object failed: %w" , err )
710
+ return didUpdate , fmt .Errorf ("updating Prometheus object failed: %w" , err )
703
711
}
704
712
705
- return & didUpdate , nil
713
+ return didUpdate , nil
706
714
}
707
715
708
716
func prometheusDefaultingFunc (unstructuredPrometheus * unstructured.Unstructured ) {
0 commit comments