Skip to content

Commit d70a6ff

Browse files
authored
refactor: use improved clusteraccess library features (#36)
* use improved clusteraccess library features * bump deps
1 parent ec212cf commit d70a6ff

File tree

4 files changed

+49
-37
lines changed

4 files changed

+49
-37
lines changed

go.mod

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ require (
88
github.com/fluxcd/helm-controller/api v1.4.2
99
github.com/fluxcd/pkg/apis/meta v1.22.0
1010
github.com/fluxcd/source-controller/api v1.7.2
11-
github.com/openmcp-project/controller-utils v0.23.1
12-
github.com/openmcp-project/openmcp-operator/api v0.15.2
13-
github.com/openmcp-project/openmcp-operator/lib v0.15.3-0.20251017065940-637b58a6e264
11+
github.com/openmcp-project/controller-utils v0.23.2
12+
github.com/openmcp-project/openmcp-operator/api v0.16.0
13+
github.com/openmcp-project/openmcp-operator/lib v0.16.1-0.20251030140622-66804142483a
1414
github.com/openmcp-project/platform-service-dns/api v0.0.2
1515
github.com/spf13/cobra v1.10.1
1616
k8s.io/api v0.34.1
@@ -20,7 +20,7 @@ require (
2020
sigs.k8s.io/yaml v1.6.0
2121
)
2222

23-
require golang.org/x/mod v0.28.0 // indirect
23+
require golang.org/x/mod v0.29.0 // indirect
2424

2525
require (
2626
cel.dev/expr v0.24.0 // indirect
@@ -60,7 +60,7 @@ require (
6060
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
6161
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
6262
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
63-
github.com/onsi/ginkgo/v2 v2.26.0
63+
github.com/onsi/ginkgo/v2 v2.27.1
6464
github.com/onsi/gomega v1.38.2
6565
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
6666
github.com/prometheus/client_golang v1.23.0 // indirect
@@ -84,15 +84,15 @@ require (
8484
go.uber.org/zap v1.27.0 // indirect
8585
go.yaml.in/yaml/v2 v2.4.2 // indirect
8686
go.yaml.in/yaml/v3 v3.0.4 // indirect
87-
golang.org/x/exp v0.0.0-20251002181428-27f1f14c8bb9 // indirect
88-
golang.org/x/net v0.45.0 // indirect
87+
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
88+
golang.org/x/net v0.46.0 // indirect
8989
golang.org/x/oauth2 v0.30.0 // indirect
9090
golang.org/x/sync v0.17.0 // indirect
91-
golang.org/x/sys v0.36.0 // indirect
92-
golang.org/x/term v0.35.0 // indirect
93-
golang.org/x/text v0.29.0 // indirect
91+
golang.org/x/sys v0.37.0 // indirect
92+
golang.org/x/term v0.36.0 // indirect
93+
golang.org/x/text v0.30.0 // indirect
9494
golang.org/x/time v0.12.0 // indirect
95-
golang.org/x/tools v0.37.0 // indirect
95+
golang.org/x/tools v0.38.0 // indirect
9696
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
9797
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect
9898
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect

go.sum

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ github.com/gkampitakis/ciinfo v0.3.2 h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BN
4343
github.com/gkampitakis/ciinfo v0.3.2/go.mod h1:1NIwaOcFChN4fa/B0hEBdAb6npDlFL8Bwx4dfRLRqAo=
4444
github.com/gkampitakis/go-diff v1.3.2 h1:Qyn0J9XJSDTgnsgHRdz9Zp24RaJeKMUHg2+PDZZdC4M=
4545
github.com/gkampitakis/go-diff v1.3.2/go.mod h1:LLgOrpqleQe26cte8s36HTWcTmMEur6OPYerdAAS9tk=
46-
github.com/gkampitakis/go-snaps v0.5.14 h1:3fAqdB6BCPKHDMHAKRwtPUwYexKtGrNuw8HX/T/4neo=
47-
github.com/gkampitakis/go-snaps v0.5.14/go.mod h1:HNpx/9GoKisdhw9AFOBT1N7DBs9DiHo/hGheFGBZ+mc=
46+
github.com/gkampitakis/go-snaps v0.5.15 h1:amyJrvM1D33cPHwVrjo9jQxX8g/7E2wYdZ+01KS3zGE=
47+
github.com/gkampitakis/go-snaps v0.5.15/go.mod h1:HNpx/9GoKisdhw9AFOBT1N7DBs9DiHo/hGheFGBZ+mc=
4848
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
4949
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
5050
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
@@ -115,16 +115,16 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd
115115
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
116116
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
117117
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
118-
github.com/onsi/ginkgo/v2 v2.26.0 h1:1J4Wut1IlYZNEAWIV3ALrT9NfiaGW2cDCJQSFQMs/gE=
119-
github.com/onsi/ginkgo/v2 v2.26.0/go.mod h1:qhEywmzWTBUY88kfO0BRvX4py7scov9yR+Az2oavUzw=
118+
github.com/onsi/ginkgo/v2 v2.27.1 h1:0LJC8MpUSQnfnp4n/3W3GdlmJP3ENGF0ZPzjQGLPP7s=
119+
github.com/onsi/ginkgo/v2 v2.27.1/go.mod h1:wmy3vCqiBjirARfVhAqFpYt8uvX0yaFe+GudAqqcCqA=
120120
github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
121121
github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k=
122-
github.com/openmcp-project/controller-utils v0.23.1 h1:suuZ9UWJbSE/LbpZCtzpHg6FOqU7BkR4bq6cEAYykyc=
123-
github.com/openmcp-project/controller-utils v0.23.1/go.mod h1:fU16gy7PHCqMtNaH/nAnHJyGM1SI5ZUiyQcUwrPy2TQ=
124-
github.com/openmcp-project/openmcp-operator/api v0.15.2 h1:Ujf0NLysUSj0Wiel3qnroDcnnHCXMEpbFd0a9rkZoxY=
125-
github.com/openmcp-project/openmcp-operator/api v0.15.2/go.mod h1:0KytEWVi1Gw5SEjyclhNZmUXks+SqbivLW10fDe7vL4=
126-
github.com/openmcp-project/openmcp-operator/lib v0.15.3-0.20251017065940-637b58a6e264 h1:Tb9voXDeiYc4vnkMwEFX7Np9tZQk1XpV6FQ4YB0QcTs=
127-
github.com/openmcp-project/openmcp-operator/lib v0.15.3-0.20251017065940-637b58a6e264/go.mod h1:D/CwGD8NjUHba4PAIzEHFi/FNoj4xcnOb6F2qwcAaIc=
122+
github.com/openmcp-project/controller-utils v0.23.2 h1:69zbDwFE7EYalvV1N0kOddkuFrCKLkIwcSzBIygGhq0=
123+
github.com/openmcp-project/controller-utils v0.23.2/go.mod h1:rycrEcxCREUTV3qu5KNNUcY1mfoQ8U4R5Mz/JG4DFKk=
124+
github.com/openmcp-project/openmcp-operator/api v0.16.0 h1:sVqLiJmxSGTKnVEz274LIaj+2esrMkcD7j9H9n81CMo=
125+
github.com/openmcp-project/openmcp-operator/api v0.16.0/go.mod h1:0KytEWVi1Gw5SEjyclhNZmUXks+SqbivLW10fDe7vL4=
126+
github.com/openmcp-project/openmcp-operator/lib v0.16.1-0.20251030140622-66804142483a h1:xTdGPeFlyg8A+wpLsY+t9uZA940V/P4QFAHV+GUXzC0=
127+
github.com/openmcp-project/openmcp-operator/lib v0.16.1-0.20251030140622-66804142483a/go.mod h1:/5tYrnfo/ExW6LSrKF/ajqWfuE70wtxLoihuUKesHY8=
128128
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
129129
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
130130
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -208,18 +208,18 @@ go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
208208
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
209209
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
210210
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
211-
golang.org/x/exp v0.0.0-20251002181428-27f1f14c8bb9 h1:TQwNpfvNkxAVlItJf6Cr5JTsVZoC/Sj7K3OZv2Pc14A=
212-
golang.org/x/exp v0.0.0-20251002181428-27f1f14c8bb9/go.mod h1:TwQYMMnGpvZyc+JpB/UAuTNIsVJifOlSkrZkhcvpVUk=
211+
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 h1:mgKeJMpvi0yx/sU5GsxQ7p6s2wtOnGAHZWCHUM4KGzY=
212+
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70=
213213
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
214214
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
215-
golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U=
216-
golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI=
215+
golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
216+
golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
217217
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
218218
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
219219
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
220220
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
221-
golang.org/x/net v0.45.0 h1:RLBg5JKixCy82FtLJpeNlVM0nrSqpCRYzVU1n8kj0tM=
222-
golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
221+
golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4=
222+
golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210=
223223
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
224224
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
225225
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -230,22 +230,22 @@ golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
230230
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
231231
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
232232
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
233-
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
234-
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
235-
golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ=
236-
golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA=
233+
golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
234+
golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
235+
golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q=
236+
golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss=
237237
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
238238
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
239-
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
240-
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
239+
golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
240+
golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
241241
golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE=
242242
golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
243243
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
244244
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
245245
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
246246
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
247-
golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE=
248-
golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w=
247+
golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
248+
golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
249249
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
250250
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
251251
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

internal/controllers/cluster/controller.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,13 +319,24 @@ func (r *ClusterReconciler) handleDelete(ctx context.Context, c *clustersv1alpha
319319
}
320320

321321
// get access to Cluster
322+
log.Info("Updating AccessRequest to get access to Cluster")
322323
req := testutils.RequestFromObject(c)
324+
res, err := r.ClusterAccessReconciler.Reconcile(ctx, req)
325+
if err != nil {
326+
rr.ReconcileError = errutils.WithReason(fmt.Errorf("error reconciling cluster access: %w", err), clusterconst.ReasonInternalError)
327+
return rr
328+
}
329+
if res.RequeueAfter > 0 {
330+
log.Info("Requeuing because cluster access is not yet available", "after", res.RequeueAfter)
331+
rr.Result = res
332+
return rr
333+
}
323334
ar, err := r.ClusterAccessReconciler.AccessRequest(ctx, req, clusterId)
324335
if client.IgnoreNotFound(err) != nil {
325336
rr.ReconcileError = errutils.WithReason(fmt.Errorf("error getting AccessRequest: %w", err), clusterconst.ReasonInternalError)
326337
return rr
327338
}
328-
if ar != nil && ar.Status.IsGranted() {
339+
if ar != nil && ar.DeletionTimestamp.IsZero() && ar.Status.IsGranted() {
329340
access, err := r.ClusterAccessReconciler.Access(ctx, req, clusterId)
330341
if err != nil {
331342
rr.ReconcileError = errutils.WithReason(fmt.Errorf("error getting access to Cluster: %w", err), clusterconst.ReasonInternalError)
@@ -351,7 +362,7 @@ func (r *ClusterReconciler) handleDelete(ctx context.Context, c *clustersv1alpha
351362
return rr
352363
}
353364

354-
res, err := r.ClusterAccessReconciler.ReconcileDelete(ctx, req)
365+
res, err = r.ClusterAccessReconciler.ReconcileDelete(ctx, req)
355366
if err != nil {
356367
rr.ReconcileError = errutils.WithReason(fmt.Errorf("error reconciling deletion of cluster access: %w", err), clusterconst.ReasonInternalError)
357368
return rr

internal/controllers/cluster/controller_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ func defaultTestSetup(testDirPathSegments ...string) (*testutils.Environment, ma
5454
WithReconcilerConstructor(func(c client.Client) reconcile.Reconciler {
5555
rec := cluster.NewClusterReconciler(clusters.NewTestClusterFromClient(platformCluster, c), nil, providerName, providerNamespace, environment)
5656
rec.ClusterAccessReconciler.WithFakingCallback(accesslib.FakingCallback_WaitingForAccessRequestReadiness, accesslib.FakeAccessRequestReadiness())
57+
rec.ClusterAccessReconciler.WithFakingCallback(accesslib.FakingCallback_WaitingForAccessRequestDeletion, accesslib.FakeAccessRequestDeletion([]string{"*"}, nil))
5758
rec.ClusterAccessReconciler.WithFakeClientGenerator(func(ctx context.Context, kcfgData []byte, scheme *runtime.Scheme, additionalData ...any) (client.Client, error) {
5859
if clusterRef, ok := strings.CutPrefix(string(kcfgData), "fake:cluster:"); ok {
5960
if fc, ok := fakeClientMapping[clusterRef]; ok {

0 commit comments

Comments
 (0)