Skip to content

Commit 14476c3

Browse files
authored
feat(fleetshard-operator): Reconcile custom ArgoCD instance (#2399)
1 parent 1951703 commit 14476c3

File tree

5 files changed

+100
-28
lines changed

5 files changed

+100
-28
lines changed

fleetshard-operator/main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import (
55
"crypto/tls"
66
"flag"
77

8+
argoCdOperatorv1beta1 "github.com/argoproj-labs/argocd-operator/api/v1beta1"
89
argoCd "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1"
10+
911
"github.com/go-logr/glogr"
1012
"github.com/golang/glog"
1113
configv1 "github.com/openshift/api/config/v1"
@@ -111,6 +113,7 @@ func init() {
111113
utilRuntime.Must(clientgoscheme.AddToScheme(scheme))
112114
utilRuntime.Must(v1alpha1.AddToScheme(scheme))
113115
utilRuntime.Must(argoCd.AddToScheme(scheme))
116+
utilRuntime.Must(argoCdOperatorv1beta1.AddToScheme(scheme))
114117
utilRuntime.Must(operatorsv1alpha1.AddToScheme(scheme))
115118
utilRuntime.Must(operatorsv1.AddToScheme(scheme))
116119
utilRuntime.Must(configv1.AddToScheme(scheme))

fleetshard-operator/pkg/controllers/gitopsinstallation_controller.go

Lines changed: 67 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"strings"
99
"time"
1010

11+
argoCdOperatorv1beta1 "github.com/argoproj-labs/argocd-operator/api/v1beta1"
1112
argoCd "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1"
1213
"github.com/golang/glog"
1314
configv1 "github.com/openshift/api/config/v1"
@@ -135,6 +136,9 @@ func (r *GitopsInstallationReconciler) Reconcile(ctx context.Context, request re
135136
if err := r.waitForApplicationCRD(ctx); err != nil {
136137
return reconcile.Result{}, err
137138
}
139+
if err := r.ensureArgoCD(ctx); err != nil {
140+
return reconcile.Result{}, err
141+
}
138142
if err := r.ensureBootstrapApplication(ctx, instance.Spec); err != nil {
139143
return reconcile.Result{}, err
140144
}
@@ -203,22 +207,49 @@ func (r *GitopsInstallationReconciler) getNamespace(ctx context.Context, name st
203207
}
204208

205209
func (r *GitopsInstallationReconciler) ensureSubscription(ctx context.Context) error {
206-
var subscription operatorsv1alpha1.Subscription
207-
if err := r.Client.Get(ctx, ctrlClient.ObjectKey{Name: operatorSubscriptionName, Namespace: GitopsOperatorNamespace}, &subscription); err != nil {
210+
desiredSubscription := newSubscription()
211+
foundSubscription := &operatorsv1alpha1.Subscription{}
212+
err := r.Client.Get(ctx, ctrlClient.ObjectKey{Name: operatorSubscriptionName, Namespace: GitopsOperatorNamespace}, foundSubscription)
213+
if err != nil {
208214
if apiErrors.IsNotFound(err) {
209215
glog.V(5).Info("Openshift Gitops Subscription not found. Creating...")
210-
if err := r.Client.Create(ctx, newSubscription()); err != nil {
216+
if err := r.Client.Create(ctx, desiredSubscription); err != nil {
211217
return fmt.Errorf("creating openshift gitops subscription: %w", err)
212218
}
213219
glog.V(5).Info("Openshift Gitops Subscription created.")
214220
return nil
215221
}
216222
return fmt.Errorf("getting openshift gitops subscription: %w", err)
217223
}
218-
glog.V(10).Info("Openshift Gitops Subscription already exists. No update needed.")
224+
225+
if !subscriptionNeedsUpdate(foundSubscription, desiredSubscription) {
226+
glog.V(10).Info("Openshift Gitops Subscription already exists. No update needed.")
227+
return nil
228+
}
229+
230+
glog.V(10).Infof("Openshift Gitops Subscription '%s/%s' needs update. Attempting update...", GitopsOperatorNamespace, operatorSubscriptionName)
231+
updateErr := k8sretry.RetryOnConflict(k8sretry.DefaultRetry, func() error {
232+
currentSubscription := &operatorsv1alpha1.Subscription{}
233+
getErr := r.Client.Get(ctx, ctrlClient.ObjectKey{Name: operatorSubscriptionName, Namespace: GitopsOperatorNamespace}, currentSubscription)
234+
if getErr != nil {
235+
return fmt.Errorf("getting openshift gitops subscription for update: %w", getErr)
236+
}
237+
currentSubscription.Spec = desiredSubscription.Spec
238+
return r.Client.Update(ctx, currentSubscription)
239+
})
240+
241+
if updateErr != nil {
242+
return fmt.Errorf("updating openshift gitops subscription after retries: %w", updateErr)
243+
}
244+
245+
glog.V(10).Infof("Openshift Gitops Subscription '%s/%s' updated successfully.", GitopsOperatorNamespace, operatorSubscriptionName)
219246
return nil
220247
}
221248

249+
func subscriptionNeedsUpdate(current, desired *operatorsv1alpha1.Subscription) bool {
250+
return !reflect.DeepEqual(current.Spec, desired.Spec)
251+
}
252+
222253
func (r *GitopsInstallationReconciler) ensureOperatorGroup(ctx context.Context) error {
223254
var operatorGroup operatorsv1.OperatorGroup
224255
if err := r.Client.Get(ctx, ctrlClient.ObjectKey{Name: operatorGroupName, Namespace: GitopsOperatorNamespace}, &operatorGroup); err != nil {
@@ -257,6 +288,11 @@ func newSubscription() *operatorsv1alpha1.Subscription {
257288
Package: "openshift-gitops-operator",
258289
CatalogSource: "redhat-operators",
259290
CatalogSourceNamespace: "openshift-marketplace",
291+
Config: &operatorsv1alpha1.SubscriptionConfig{
292+
Env: []corev1.EnvVar{
293+
{Name: "DISABLE_DEFAULT_ARGOCD_INSTANCE", Value: "true"},
294+
},
295+
},
260296
},
261297
}
262298
}
@@ -512,3 +548,30 @@ func (r *GitopsInstallationReconciler) createDefaultGitopsInstallation(ctx conte
512548
}
513549
return nil
514550
}
551+
552+
func (r *GitopsInstallationReconciler) ensureArgoCD(ctx context.Context) error {
553+
var argoCD argoCdOperatorv1beta1.ArgoCD
554+
if err := r.Client.Get(ctx, ctrlClient.ObjectKey{Name: gitopsInstallationName, Namespace: ArgoCdNamespace}, &argoCD); err != nil {
555+
if apiErrors.IsNotFound(err) {
556+
glog.V(5).Infof("ArgoCD instance '%s/%s' not found. Creating...", ArgoCdNamespace, gitopsInstallationName)
557+
if err := r.Client.Create(ctx, newArgoCD()); err != nil {
558+
return fmt.Errorf("creating ArgoCD instance: %w", err)
559+
}
560+
glog.V(5).Infof("ArgoCD instance '%s/%s' created.", ArgoCdNamespace, gitopsInstallationName)
561+
return nil
562+
}
563+
return fmt.Errorf("getting ArgoCD instance: %w", err)
564+
}
565+
glog.V(10).Infof("ArgoCD instance '%s/%s' already exists. No update needed.", ArgoCdNamespace, gitopsInstallationName)
566+
return nil
567+
}
568+
569+
func newArgoCD() *argoCdOperatorv1beta1.ArgoCD {
570+
return &argoCdOperatorv1beta1.ArgoCD{
571+
ObjectMeta: metav1.ObjectMeta{
572+
Name: gitopsInstallationName,
573+
Namespace: ArgoCdNamespace,
574+
},
575+
Spec: argoCdOperatorv1beta1.ArgoCDSpec{},
576+
}
577+
}

fleetshard-operator/pkg/controllers/gitopsinstallation_controller_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import (
55
"errors"
66
"testing"
77

8+
argoCdOperatorv1beta1 "github.com/argoproj-labs/argocd-operator/api/v1beta1"
89
argoCd "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1"
10+
911
configv1 "github.com/openshift/api/config/v1"
1012
operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
1113
operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
@@ -33,6 +35,7 @@ func newTestReconciler(initK8sObjs ...ctrlClient.Object) *GitopsInstallationReco
3335
_ = clientgoscheme.AddToScheme(scheme)
3436
_ = v1alpha1.AddToScheme(scheme)
3537
_ = argoCd.AddToScheme(scheme)
38+
_ = argoCdOperatorv1beta1.AddToScheme(scheme)
3639
_ = operatorsv1alpha1.AddToScheme(scheme)
3740
_ = operatorsv1.AddToScheme(scheme)
3841
_ = configv1.AddToScheme(scheme)
@@ -184,11 +187,7 @@ func TestEnsureSubscription_Exists(t *testing.T) {
184187
currentSub := &operatorsv1alpha1.Subscription{}
185188
err = reconciler.Client.Get(ctx, types.NamespacedName{Name: operatorSubscriptionName, Namespace: GitopsOperatorNamespace}, currentSub)
186189
require.NoError(t, err, "Subscription should still exist")
187-
188-
// The current ensureSubscription logic does not update an existing subscription.
189-
// It only checks for existence and creates if not found.
190-
assert.Equal(t, existingSub.Spec.Channel, currentSub.Spec.Channel, "Existing subscription channel should not have changed")
191-
assert.Equal(t, existingSub.Spec.Package, currentSub.Spec.Package)
190+
assert.Equal(t, "latest", currentSub.Spec.Channel, "Existing subscription channel should have changed")
192191
}
193192

194193
func TestEnsureRepositorySecret_SourceNotFound(t *testing.T) {

go.mod

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ go 1.23.0
55
require (
66
github.com/DATA-DOG/go-sqlmock v1.5.2
77
github.com/antihax/optional v1.0.0
8+
github.com/argoproj-labs/argocd-operator v0.14.0
89
github.com/argoproj/argo-cd/v2 v2.14.13
910
github.com/aws/aws-sdk-go-v2 v1.36.5
1011
github.com/aws/aws-sdk-go-v2/config v1.29.17
@@ -39,12 +40,12 @@ require (
3940
github.com/onsi/gomega v1.37.0
4041
github.com/openshift-online/ocm-sdk-go v0.1.456
4142
github.com/openshift/addon-operator/apis v0.0.0-20231110045543-dd01f2f5c184
42-
github.com/openshift/api v0.0.0-20240415161129-d7aff303fa1a
43+
github.com/openshift/api v0.0.0-20250320115527-3aa9dd5b9002
4344
github.com/operator-framework/api v0.31.0
4445
github.com/patrickmn/go-cache v2.1.0+incompatible
4546
github.com/pingcap/errors v0.11.4
4647
github.com/pkg/errors v0.9.1
47-
github.com/prometheus/client_golang v1.20.5
48+
github.com/prometheus/client_golang v1.21.0
4849
github.com/prometheus/client_model v0.6.2
4950
github.com/prometheus/common v0.64.0
5051
github.com/redhat-developer/app-services-sdk-core/app-services-sdk-go/serviceaccountmgmt v0.0.0-20230323122535-49460b57cc45
@@ -67,7 +68,7 @@ require (
6768
k8s.io/apimachinery v0.32.4
6869
k8s.io/autoscaler/vertical-pod-autoscaler v1.2.0
6970
k8s.io/client-go v11.0.1-0.20190816222228-6d55c1b1f1ca+incompatible
70-
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
71+
k8s.io/utils v0.0.0-20241210054802-24370beab758
7172
sigs.k8s.io/controller-runtime v0.20.4
7273
sigs.k8s.io/yaml v1.4.0
7374
)
@@ -200,7 +201,7 @@ require (
200201
github.com/json-iterator/go v1.1.12 // indirect
201202
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
202203
github.com/kevinburke/ssh_config v1.2.0 // indirect
203-
github.com/klauspost/compress v1.17.10 // indirect
204+
github.com/klauspost/compress v1.17.11 // indirect
204205
github.com/kylelemons/godebug v1.1.0 // indirect
205206
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
206207
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
@@ -224,7 +225,7 @@ require (
224225
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
225226
github.com/opencontainers/go-digest v1.0.0 // indirect
226227
github.com/opencontainers/image-spec v1.1.0 // indirect
227-
github.com/openshift/client-go v0.0.0-20240415191513-dcdeb09390b4 // indirect
228+
github.com/openshift/client-go v0.0.0-20250324153519-f0faeb0f2f2e // indirect
228229
github.com/pelletier/go-toml v1.9.5 // indirect
229230
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
230231
github.com/pjbgf/sha1cd v0.3.2 // indirect
@@ -292,10 +293,10 @@ require (
292293
k8s.io/kubectl v0.32.4 // indirect
293294
k8s.io/kubernetes v1.32.6 // indirect
294295
oras.land/oras-go/v2 v2.5.0 // indirect
295-
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
296+
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
296297
sigs.k8s.io/kustomize/api v0.18.0 // indirect
297298
sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect
298-
sigs.k8s.io/structured-merge-diff/v4 v4.4.4-0.20241211184406-7bf59b3d70ee // indirect
299+
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
299300
)
300301

301302
replace (

go.sum

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFI
9292
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
9393
github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg=
9494
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
95+
github.com/argoproj-labs/argocd-operator v0.14.0 h1:ksHsdV5hC8u275PWU746EXB/c09g7UzdJPdkIqDQwjU=
96+
github.com/argoproj-labs/argocd-operator v0.14.0/go.mod h1:UHe70eXnnCEfzp7EWRofMU+BFnPgZiT5OSqpuInEARA=
9597
github.com/argoproj/argo-cd/v2 v2.14.13 h1:oSLPHV9Gon6mEqVkyBOuLJ7T16ShZv6xSjkCiquzEDM=
9698
github.com/argoproj/argo-cd/v2 v2.14.13/go.mod h1:P72XxcRigWQpQsuAgaXyHPFYkSPE4sdACA5g/s3Si1I=
9799
github.com/argoproj/gitops-engine v0.7.1-0.20250521000818-c08b0a72c1f1 h1:Ze4U6kV49vSzlUBhH10HkO52bYKAIXS4tHr/MlNDfdU=
@@ -581,8 +583,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
581583
github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE=
582584
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
583585
github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
584-
github.com/klauspost/compress v1.17.10 h1:oXAz+Vh0PMUvJczoi+flxpnBEPxoER1IaAnU/NMPtT0=
585-
github.com/klauspost/compress v1.17.10/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
586+
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
587+
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
586588
github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
587589
github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
588590
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
@@ -727,10 +729,10 @@ github.com/openshift-online/ocm-sdk-go v0.1.456 h1:N9AmVv8H+FSlld88iCsafy+8Lhykz
727729
github.com/openshift-online/ocm-sdk-go v0.1.456/go.mod h1:CiAu2jwl3ITKOxkeV0Qnhzv4gs35AmpIzVABQLtcI2Y=
728730
github.com/openshift/addon-operator/apis v0.0.0-20231110045543-dd01f2f5c184 h1:P93o33VcHaOTjOTm6/UojtJdr1qLc2U7vPMBno39rdc=
729731
github.com/openshift/addon-operator/apis v0.0.0-20231110045543-dd01f2f5c184/go.mod h1:JS2tbakhIZRgBiULsIUSHGsdz7G/Vylvg1mqI1TlXzs=
730-
github.com/openshift/api v0.0.0-20240415161129-d7aff303fa1a h1:BJqjjh5Q10aJEr84zUnoW0RKGfSIihTxU+iNnPqRzKQ=
731-
github.com/openshift/api v0.0.0-20240415161129-d7aff303fa1a/go.mod h1:CxgbWAlvu2iQB0UmKTtRu1YfepRg1/vJ64n2DlIEVz4=
732-
github.com/openshift/client-go v0.0.0-20240415191513-dcdeb09390b4 h1:l/gocTF9qYhmm+RWgPS9GVPyeisDqCYluSUy2+F3G2E=
733-
github.com/openshift/client-go v0.0.0-20240415191513-dcdeb09390b4/go.mod h1:Q3mt/X5xrxnR5R6BE7duF2ToLioRQJYnTYaaDS4QZTs=
732+
github.com/openshift/api v0.0.0-20250320115527-3aa9dd5b9002 h1:AP8WxjiCyGlyhRlDG83cuk789Gy96IdYNuTO/sAMwl0=
733+
github.com/openshift/api v0.0.0-20250320115527-3aa9dd5b9002/go.mod h1:yk60tHAmHhtVpJQo3TwVYq2zpuP70iJIFDCmeKMIzPw=
734+
github.com/openshift/client-go v0.0.0-20250324153519-f0faeb0f2f2e h1:OfOI0eTTUdwqaUHgm0YsinRYtOj4OGO+ioauVNPuDeQ=
735+
github.com/openshift/client-go v0.0.0-20250324153519-f0faeb0f2f2e/go.mod h1:MWRA5YlclrxlrDIOni+AaeOrHchTslLvLTs9pIWuCiw=
734736
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
735737
github.com/operator-framework/api v0.31.0 h1:tRsFTuZ51xD8U5QgiPo3+mZgVipHZVgRXYrI6RRXOh8=
736738
github.com/operator-framework/api v0.31.0/go.mod h1:57oCiHNeWcxmzu1Se8qlnwEKr/GGXnuHvspIYFCcXmY=
@@ -758,8 +760,8 @@ github.com/pquerna/otp v1.4.0 h1:wZvl1TIVxKRThZIBiwOOHOGP/1+nZyWBil9Y2XNEDzg=
758760
github.com/pquerna/otp v1.4.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg=
759761
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
760762
github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
761-
github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
762-
github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
763+
github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA=
764+
github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg=
763765
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
764766
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
765767
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
@@ -1621,8 +1623,9 @@ k8s.io/kubectl v0.32.4/go.mod h1:XYFDrC1l3cpjWRj7UfS0LDAMlK+6eTema28NeUYFKD8=
16211623
k8s.io/kubernetes v1.32.6 h1:tp1gRjOqZjaoFBek5PN6eSmODdS1QRrH5UKiFP8ZByg=
16221624
k8s.io/kubernetes v1.32.6/go.mod h1:REY0Gok66BTTrbGyZaFMNKO9JhxvgBDW9B7aksWRFoY=
16231625
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
1624-
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
16251626
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
1627+
k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0=
1628+
k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
16261629
oras.land/oras-go/v2 v2.5.0 h1:o8Me9kLY74Vp5uw07QXPiitjsw7qNXi8Twd+19Zf02c=
16271630
oras.land/oras-go/v2 v2.5.0/go.mod h1:z4eisnLP530vwIOUOJeBIj0aGI0L1C3d53atvCBqZHg=
16281631
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
@@ -1631,14 +1634,17 @@ rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
16311634
sigs.k8s.io/controller-runtime v0.20.4 h1:X3c+Odnxz+iPTRobG4tp092+CvBU9UK0t/bRf+n0DGU=
16321635
sigs.k8s.io/controller-runtime v0.20.4/go.mod h1:xg2XB0K5ShQzAgsoujxuKN4LNXR2LfwwHsPj7Iaw+XY=
16331636
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
1634-
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
16351637
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
1638+
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
1639+
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
16361640
sigs.k8s.io/kustomize/api v0.18.0 h1:hTzp67k+3NEVInwz5BHyzc9rGxIauoXferXyjv5lWPo=
16371641
sigs.k8s.io/kustomize/api v0.18.0/go.mod h1:f8isXnX+8b+SGLHQ6yO4JG1rdkZlvhaCf/uZbLVMb0U=
16381642
sigs.k8s.io/kustomize/kyaml v0.18.1 h1:WvBo56Wzw3fjS+7vBjN6TeivvpbW9GmRaWZ9CIVmt4E=
16391643
sigs.k8s.io/kustomize/kyaml v0.18.1/go.mod h1:C3L2BFVU1jgcddNBE1TxuVLgS46TjObMwW5FT9FcjYo=
1644+
sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016 h1:kXv6kKdoEtedwuqMmkqhbkgvYKeycVbC8+iPCP9j5kQ=
1645+
sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
16401646
sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
1641-
sigs.k8s.io/structured-merge-diff/v4 v4.4.4-0.20241211184406-7bf59b3d70ee h1:ipT2c6nEOdAfBwiwW1oI0mkrlPabbXEFmJBrg6B+OR8=
1642-
sigs.k8s.io/structured-merge-diff/v4 v4.4.4-0.20241211184406-7bf59b3d70ee/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
1647+
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc=
1648+
sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps=
16431649
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
16441650
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=

0 commit comments

Comments
 (0)