Skip to content

Commit 020959f

Browse files
committed
Add more probing to CER
1 parent 46e1163 commit 020959f

File tree

3 files changed

+132
-58
lines changed

3 files changed

+132
-58
lines changed

go.mod

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ require (
4242
k8s.io/klog/v2 v2.130.1
4343
k8s.io/kubernetes v1.33.2
4444
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
45-
pkg.package-operator.run/boxcutter v0.6.0
45+
pkg.package-operator.run/boxcutter v0.7.0
4646
sigs.k8s.io/controller-runtime v0.21.0
4747
sigs.k8s.io/controller-tools v0.18.0
4848
sigs.k8s.io/crdify v0.5.0
@@ -110,9 +110,20 @@ require (
110110
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
111111
github.com/go-jose/go-jose/v4 v4.1.1 // indirect
112112
github.com/go-logr/stdr v1.2.2 // indirect
113-
github.com/go-openapi/jsonpointer v0.21.2 // indirect
114-
github.com/go-openapi/jsonreference v0.21.0 // indirect
115-
github.com/go-openapi/swag v0.23.1 // indirect
113+
github.com/go-openapi/jsonpointer v0.22.0 // indirect
114+
github.com/go-openapi/jsonreference v0.21.1 // indirect
115+
github.com/go-openapi/swag v0.24.1 // indirect
116+
github.com/go-openapi/swag/cmdutils v0.24.0 // indirect
117+
github.com/go-openapi/swag/conv v0.24.0 // indirect
118+
github.com/go-openapi/swag/fileutils v0.24.0 // indirect
119+
github.com/go-openapi/swag/jsonname v0.24.0 // indirect
120+
github.com/go-openapi/swag/jsonutils v0.24.0 // indirect
121+
github.com/go-openapi/swag/loading v0.24.0 // indirect
122+
github.com/go-openapi/swag/mangling v0.24.0 // indirect
123+
github.com/go-openapi/swag/netutils v0.24.0 // indirect
124+
github.com/go-openapi/swag/stringutils v0.24.0 // indirect
125+
github.com/go-openapi/swag/typeutils v0.24.0 // indirect
126+
github.com/go-openapi/swag/yamlutils v0.24.0 // indirect
116127
github.com/gobuffalo/flect v1.0.3 // indirect
117128
github.com/gobwas/glob v0.2.3 // indirect
118129
github.com/gogo/protobuf v1.3.2 // indirect
@@ -191,7 +202,7 @@ require (
191202
github.com/sirupsen/logrus v1.9.3 // indirect
192203
github.com/smallstep/pkcs7 v0.2.1 // indirect
193204
github.com/spf13/cast v1.7.1 // indirect
194-
github.com/spf13/pflag v1.0.9 // indirect
205+
github.com/spf13/pflag v1.0.10 // indirect
195206
github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6 // indirect
196207
github.com/stoewer/go-strcase v1.3.1 // indirect
197208
github.com/stretchr/objx v0.5.2 // indirect
@@ -216,18 +227,18 @@ require (
216227
go.yaml.in/yaml/v3 v3.0.4 // indirect
217228
golang.org/x/crypto v0.41.0 // indirect
218229
golang.org/x/net v0.43.0 // indirect
219-
golang.org/x/oauth2 v0.30.0 // indirect
220-
golang.org/x/sys v0.35.0 // indirect
221-
golang.org/x/term v0.34.0 // indirect
222-
golang.org/x/text v0.28.0 // indirect
223-
golang.org/x/time v0.12.0 // indirect
230+
golang.org/x/oauth2 v0.31.0 // indirect
231+
golang.org/x/sys v0.36.0 // indirect
232+
golang.org/x/term v0.35.0 // indirect
233+
golang.org/x/text v0.29.0 // indirect
234+
golang.org/x/time v0.13.0 // indirect
224235
golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated // indirect
225236
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
226237
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
227238
google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
228239
google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
229240
google.golang.org/grpc v1.75.0 // indirect
230-
google.golang.org/protobuf v1.36.8 // indirect
241+
google.golang.org/protobuf v1.36.9 // indirect
231242
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
232243
gopkg.in/inf.v0 v0.9.1 // indirect
233244
gopkg.in/warnings.v0 v0.1.2 // indirect

go.sum

Lines changed: 44 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -169,12 +169,34 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
169169
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
170170
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
171171
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
172-
github.com/go-openapi/jsonpointer v0.21.2 h1:AqQaNADVwq/VnkCmQg6ogE+M3FOsKTytwges0JdwVuA=
173-
github.com/go-openapi/jsonpointer v0.21.2/go.mod h1:50I1STOfbY1ycR8jGz8DaMeLCdXiI6aDteEdRNNzpdk=
174-
github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
175-
github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
176-
github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU=
177-
github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0=
172+
github.com/go-openapi/jsonpointer v0.22.0 h1:TmMhghgNef9YXxTu1tOopo+0BGEytxA+okbry0HjZsM=
173+
github.com/go-openapi/jsonpointer v0.22.0/go.mod h1:xt3jV88UtExdIkkL7NloURjRQjbeUgcxFblMjq2iaiU=
174+
github.com/go-openapi/jsonreference v0.21.1 h1:bSKrcl8819zKiOgxkbVNRUBIr6Wwj9KYrDbMjRs0cDA=
175+
github.com/go-openapi/jsonreference v0.21.1/go.mod h1:PWs8rO4xxTUqKGu+lEvvCxD5k2X7QYkKAepJyCmSTT8=
176+
github.com/go-openapi/swag v0.24.1 h1:DPdYTZKo6AQCRqzwr/kGkxJzHhpKxZ9i/oX0zag+MF8=
177+
github.com/go-openapi/swag v0.24.1/go.mod h1:sm8I3lCPlspsBBwUm1t5oZeWZS0s7m/A+Psg0ooRU0A=
178+
github.com/go-openapi/swag/cmdutils v0.24.0 h1:KlRCffHwXFI6E5MV9n8o8zBRElpY4uK4yWyAMWETo9I=
179+
github.com/go-openapi/swag/cmdutils v0.24.0/go.mod h1:uxib2FAeQMByyHomTlsP8h1TtPd54Msu2ZDU/H5Vuf8=
180+
github.com/go-openapi/swag/conv v0.24.0 h1:ejB9+7yogkWly6pnruRX45D1/6J+ZxRu92YFivx54ik=
181+
github.com/go-openapi/swag/conv v0.24.0/go.mod h1:jbn140mZd7EW2g8a8Y5bwm8/Wy1slLySQQ0ND6DPc2c=
182+
github.com/go-openapi/swag/fileutils v0.24.0 h1:U9pCpqp4RUytnD689Ek/N1d2N/a//XCeqoH508H5oak=
183+
github.com/go-openapi/swag/fileutils v0.24.0/go.mod h1:3SCrCSBHyP1/N+3oErQ1gP+OX1GV2QYFSnrTbzwli90=
184+
github.com/go-openapi/swag/jsonname v0.24.0 h1:2wKS9bgRV/xB8c62Qg16w4AUiIrqqiniJFtZGi3dg5k=
185+
github.com/go-openapi/swag/jsonname v0.24.0/go.mod h1:GXqrPzGJe611P7LG4QB9JKPtUZ7flE4DOVechNaDd7Q=
186+
github.com/go-openapi/swag/jsonutils v0.24.0 h1:F1vE1q4pg1xtO3HTyJYRmEuJ4jmIp2iZ30bzW5XgZts=
187+
github.com/go-openapi/swag/jsonutils v0.24.0/go.mod h1:vBowZtF5Z4DDApIoxcIVfR8v0l9oq5PpYRUuteVu6f0=
188+
github.com/go-openapi/swag/loading v0.24.0 h1:ln/fWTwJp2Zkj5DdaX4JPiddFC5CHQpvaBKycOlceYc=
189+
github.com/go-openapi/swag/loading v0.24.0/go.mod h1:gShCN4woKZYIxPxbfbyHgjXAhO61m88tmjy0lp/LkJk=
190+
github.com/go-openapi/swag/mangling v0.24.0 h1:PGOQpViCOUroIeak/Uj/sjGAq9LADS3mOyjznmHy2pk=
191+
github.com/go-openapi/swag/mangling v0.24.0/go.mod h1:Jm5Go9LHkycsz0wfoaBDkdc4CkpuSnIEf62brzyCbhc=
192+
github.com/go-openapi/swag/netutils v0.24.0 h1:Bz02HRjYv8046Ycg/w80q3g9QCWeIqTvlyOjQPDjD8w=
193+
github.com/go-openapi/swag/netutils v0.24.0/go.mod h1:WRgiHcYTnx+IqfMCtu0hy9oOaPR0HnPbmArSRN1SkZM=
194+
github.com/go-openapi/swag/stringutils v0.24.0 h1:i4Z/Jawf9EvXOLUbT97O0HbPUja18VdBxeadyAqS1FM=
195+
github.com/go-openapi/swag/stringutils v0.24.0/go.mod h1:5nUXB4xA0kw2df5PRipZDslPJgJut+NjL7D25zPZ/4w=
196+
github.com/go-openapi/swag/typeutils v0.24.0 h1:d3szEGzGDf4L2y1gYOSSLeK6h46F+zibnEas2Jm/wIw=
197+
github.com/go-openapi/swag/typeutils v0.24.0/go.mod h1:q8C3Kmk/vh2VhpCLaoR2MVWOGP8y7Jc8l82qCTd1DYI=
198+
github.com/go-openapi/swag/yamlutils v0.24.0 h1:bhw4894A7Iw6ne+639hsBNRHg9iZg/ISrOVr+sJGp4c=
199+
github.com/go-openapi/swag/yamlutils v0.24.0/go.mod h1:DpKv5aYuaGm/sULePoeiG8uwMpZSfReo1HR3Ik0yaG8=
178200
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
179201
github.com/go-sql-driver/mysql v1.9.1 h1:FrjNGn/BsJQjVRuSa8CBrM5BWA9BWoXXat3KrtSb/iI=
180202
github.com/go-sql-driver/mysql v1.9.1/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
@@ -445,8 +467,9 @@ github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
445467
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
446468
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
447469
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
448-
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
449470
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
471+
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
472+
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
450473
github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6 h1:pnnLyeX7o/5aX8qUQ69P/mLojDqwda8hFOCBTmP/6hw=
451474
github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6/go.mod h1:39R/xuhNgVhi+K0/zst4TLrJrVmbm6LVgl4A0+ZFS5M=
452475
github.com/stoewer/go-strcase v1.3.1 h1:iS0MdW+kVTxgMoE1LAZyMiYJFKlOzLooE4MxjirtkAs=
@@ -594,8 +617,8 @@ golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
594617
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
595618
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
596619
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
597-
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
598-
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
620+
golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo=
621+
golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
599622
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
600623
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
601624
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -627,8 +650,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
627650
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
628651
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
629652
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
630-
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
631-
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
653+
golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
654+
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
632655
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
633656
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
634657
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -638,8 +661,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
638661
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
639662
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
640663
golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
641-
golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
642-
golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
664+
golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ=
665+
golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA=
643666
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
644667
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
645668
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
@@ -649,10 +672,10 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
649672
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
650673
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
651674
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
652-
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
653-
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
654-
golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE=
655-
golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
675+
golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
676+
golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
677+
golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI=
678+
golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
656679
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
657680
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
658681
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
@@ -706,8 +729,8 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
706729
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
707730
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
708731
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
709-
google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
710-
google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
732+
google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
733+
google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
711734
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
712735
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
713736
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
@@ -760,8 +783,8 @@ k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8
760783
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
761784
oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc=
762785
oras.land/oras-go/v2 v2.6.0/go.mod h1:magiQDfG6H1O9APp+rOsvCPcW1GD2MM7vgnKY0Y+u1o=
763-
pkg.package-operator.run/boxcutter v0.6.0 h1:ksbVUBvIQCge5nxfLz5IE03vXxYhPBzMXHkG4fxXags=
764-
pkg.package-operator.run/boxcutter v0.6.0/go.mod h1:lA7n6gIzn+AkQ4XOkHiqGcU/KHc5TMeVtf109N6DjcM=
786+
pkg.package-operator.run/boxcutter v0.7.0 h1:3lrf8YgPs60chqDU6tzoXEJhJHxyxfPzHb1Fi5Dz6eM=
787+
pkg.package-operator.run/boxcutter v0.7.0/go.mod h1:4Tm5SH1CrBR0RlPVIx1ggNguYpZARmV/wWiTFhL4w+g=
765788
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.33.0 h1:qPrZsv1cwQiFeieFlRqT627fVZ+tyfou/+S5S0H5ua0=
766789
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.33.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
767790
sigs.k8s.io/controller-runtime v0.21.0 h1:CYfjpEuicjUecRk+KAeyYh+ouUBn4llGyDYytIGcJS8=

internal/operator-controller/controllers/clusterextensionrevision_controller.go

Lines changed: 66 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@ import (
1212

1313
appsv1 "k8s.io/api/apps/v1"
1414
corev1 "k8s.io/api/core/v1"
15+
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
1516
"k8s.io/apimachinery/pkg/api/meta"
1617
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1718
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
18-
"k8s.io/apimachinery/pkg/runtime"
1919
"k8s.io/apimachinery/pkg/runtime/schema"
2020
"k8s.io/apimachinery/pkg/types"
2121
"k8s.io/apimachinery/pkg/util/sets"
2222
"pkg.package-operator.run/boxcutter"
2323
"pkg.package-operator.run/boxcutter/machinery"
2424
machinerytypes "pkg.package-operator.run/boxcutter/machinery/types"
25+
"pkg.package-operator.run/boxcutter/probing"
2526
ctrl "sigs.k8s.io/controller-runtime"
2627
"sigs.k8s.io/controller-runtime/pkg/builder"
2728
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -373,31 +374,9 @@ func toBoxcutterRevision(rev *ocv1.ClusterExtensionRevision) (*boxcutter.Revisio
373374

374375
opts := []boxcutter.RevisionReconcileOption{
375376
boxcutter.WithPreviousOwners(previous),
376-
boxcutter.WithProbe(boxcutter.ProgressProbeType, boxcutter.ProbeFunc(func(obj client.Object) (bool, []string) {
377-
deployGK := schema.GroupKind{
378-
Group: "apps", Kind: "Deployment",
379-
}
380-
if obj.GetObjectKind().GroupVersionKind().GroupKind() != deployGK {
381-
return true, nil
382-
}
383-
ustrObj := obj.(*unstructured.Unstructured)
384-
depl := &appsv1.Deployment{}
385-
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(ustrObj.Object, depl); err != nil {
386-
return false, []string{err.Error()}
387-
}
388-
389-
if depl.Status.ObservedGeneration != depl.Generation {
390-
return false, []string{".status.observedGeneration outdated"}
391-
}
392-
for _, cond := range depl.Status.Conditions {
393-
if cond.Type == ocv1.ClusterExtensionRevisionTypeAvailable &&
394-
cond.Status == corev1.ConditionTrue &&
395-
depl.Status.UpdatedReplicas == *depl.Spec.Replicas {
396-
return true, nil
397-
}
398-
}
399-
return false, []string{"not available or not fully updated"}
400-
})),
377+
boxcutter.WithProbe(boxcutter.ProgressProbeType, probing.And{
378+
deploymentProbe, statefulSetProbe, crdProbe, issuerProbe, certProbe,
379+
}),
401380
}
402381

403382
r := &boxcutter.Revision{
@@ -433,3 +412,64 @@ func toBoxcutterRevision(rev *ocv1.ClusterExtensionRevision) (*boxcutter.Revisio
433412
}
434413
return r, opts, previous
435414
}
415+
416+
var (
417+
deploymentProbe = &probing.GroupKindSelector{
418+
GroupKind: schema.GroupKind{Group: appsv1.GroupName, Kind: "Deployment"},
419+
Prober: deplStatefulSetProbe,
420+
}
421+
statefulSetProbe = &probing.GroupKindSelector{
422+
GroupKind: schema.GroupKind{Group: appsv1.GroupName, Kind: "StatefulSet"},
423+
Prober: deplStatefulSetProbe,
424+
}
425+
crdProbe = &probing.GroupKindSelector{
426+
GroupKind: schema.GroupKind{Group: "apiextensions.k8s.io", Kind: "CustomResourceDefinition"},
427+
Prober: &probing.ObservedGenerationProbe{
428+
Prober: &probing.ConditionProbe{ // "Available" == "True"
429+
Type: string(apiextensions.Established),
430+
Status: string(corev1.ConditionTrue),
431+
},
432+
},
433+
}
434+
certProbe = &probing.GroupKindSelector{
435+
GroupKind: schema.GroupKind{Group: "acme.cert-manager.io", Kind: "Certificate"},
436+
Prober: &probing.ObservedGenerationProbe{
437+
Prober: readyConditionProbe,
438+
},
439+
}
440+
issuerProbe = &probing.GroupKindSelector{
441+
GroupKind: schema.GroupKind{Group: "acme.cert-manager.io", Kind: "Issuer"},
442+
Prober: &probing.ObservedGenerationProbe{
443+
Prober: readyConditionProbe,
444+
},
445+
}
446+
447+
// deplStaefulSetProbe probes Deployment, StatefulSet objects.
448+
deplStatefulSetProbe = &probing.ObservedGenerationProbe{
449+
Prober: probing.And{
450+
availableConditionProbe,
451+
replicasUpdatedProbe,
452+
},
453+
}
454+
455+
// Checks if the Type: "Available" Condition is "True".
456+
availableConditionProbe = &probing.ConditionProbe{ // "Available" == "True"
457+
Type: string(appsv1.DeploymentAvailable),
458+
Status: string(corev1.ConditionTrue),
459+
}
460+
461+
// Checks if the Type: "Ready" Condition is "True"
462+
readyConditionProbe = &probing.ObservedGenerationProbe{
463+
Prober: &probing.ConditionProbe{
464+
Type: "Ready",
465+
Status: "True",
466+
},
467+
}
468+
469+
// Checks if .status.updatedReplicas == .status.replicas.
470+
// Works for StatefulSts, Deployments and ReplicaSets.
471+
replicasUpdatedProbe = &probing.FieldsEqualProbe{
472+
FieldA: ".status.updatedReplicas",
473+
FieldB: ".status.replicas",
474+
}
475+
)

0 commit comments

Comments
 (0)