Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
8762ed5
:seedling: Bump github.com/operator-framework/operator-registry (#2217)
dependabot[bot] Sep 12, 2025
c73b6e0
Add more probing to CER (#2210)
thetechnick Sep 12, 2025
4867f92
promote rukpak hash util to shared package, use in boxcutter applier …
joelanford Sep 12, 2025
823aeaa
Merge branch 'main' into synchronize
Sep 15, 2025
b847e83
UPSTREAM: <carry>: Add OpenShift specific files
dtfranz Oct 26, 2023
c8c9430
UPSTREAM: <carry>: Fix catalogd.Dockerfile to use new paths
tmshort Feb 26, 2025
5280355
UPSTREAM: <carry>: Update DOWNSTREAM_OWNERS_ALIASES
tmshort Mar 6, 2025
2341c83
UPSTREAM: <carry>: Add openshift node selector annotation
oceanc80 Mar 26, 2025
c56f044
UPSTREAM: <carry>: Add caalogd-cas-dir option to op-con
tmshort Apr 15, 2025
96fa2dd
UPSTREAM: <carry>: set the SElinux type
jianzhangbjz Apr 27, 2025
1066409
UPSTREAM: <carry>: Add initial stack to run tests to validate the cat…
camilamacedo86 Apr 17, 2025
03ff337
UPSTREAM: <carry>: Add vendor files for the catalog-sync tests
camilamacedo86 Apr 17, 2025
510ed25
UPSTREAM: <carry>: Bump catalog versions to 4.19
tmshort Apr 24, 2025
56084ad
UPSTREAM: <carry>: revert "Bump catalog versions to 4.19"
tmshort May 15, 2025
988c0ec
UPSTREAM: <carry>: Update HOWTO-origin-tests
tmshort May 14, 2025
016cf54
UPSTREAM: <carry>: [DefaultCatalogTests]: Allow to pass auth path for…
camilamacedo86 May 16, 2025
57cbe71
UPSTREAM: <carry>: fix: set NoLchown=true to allow image unpack on OCPci
camilamacedo86 May 19, 2025
6344291
UPSTREAM: <carry>: [DefaultCatalogTests]: Moving parse of ENVVAR to t…
camilamacedo86 May 17, 2025
afa7931
UPSTREAM: <carry>: [Default Catalog]: Create tmp dir to extract layer…
camilamacedo86 May 20, 2025
8bd8a5b
UPSTREAM: <carry>: [Default Catalog](cleanp) Remove hack directory wh…
camilamacedo86 May 19, 2025
0cdacc0
UPSTREAM: <carry>: Change code implementation to extract layers in OC…
camilamacedo86 May 21, 2025
6aee70f
UPSTREAM: <carry>: Add vendor files for change in the extract code im…
camilamacedo86 May 21, 2025
15e6f15
UPSTREAM: <carry>: [Default Catalog Tests]: Final cleanups and enhanc…
camilamacedo86 May 22, 2025
4a8b765
UPSTREAM: <carry>: SELinux type for operator-controller
jianzhangbjz May 22, 2025
a6fab86
UPSTREAM: <carry>: Bump catalog versions to 4.19
tmshort Apr 24, 2025
212521f
UPSTREAM: <carry>: [Default Catalog Consistency Test] (feat) add chec…
camilamacedo86 May 28, 2025
8fa47e3
UPSTREAM: <carry>: [Default Catalog Consistency Test]: fix junit outp…
camilamacedo86 Jun 2, 2025
06e4041
UPSTREAM: <carry>: [Default Catalog Consistency Test] (feat) add chec…
camilamacedo86 May 29, 2025
0d1c95a
UPSTREAM: <carry>: [Default Catalog Consistency Test]: Enable Catalog…
camilamacedo86 Jun 4, 2025
d6de364
UPSTREAM: <carry>: [Default Catalog Consistency Test]: Rename Tests s…
camilamacedo86 Jun 4, 2025
bfc85ac
UPSTREAM: <carry>: Updating ose-olm-operator-controller-container ima…
Jun 18, 2025
3c5330f
UPSTREAM: <carry>: Updating ose-olm-catalogd-container image to be co…
Jun 18, 2025
e5f093e
UPSTREAM: <carry>: Update e2e registry to use 1.24/4.20
tmshort Jun 30, 2025
5e8e76a
UPSTREAM: <carry>: [Catalog Default Tests]: Upgrade go version to 1.2…
camilamacedo86 Jul 1, 2025
e786caa
UPSTREAM: <carry>: Add structure to allow move the orgin tests using OTE
camilamacedo86 Jun 13, 2025
24ac744
UPSTREAM: <carry>: Add support for experimental manifests
tmshort Jul 2, 2025
36a8a30
UPSTREAM: <carry>: [OTE] - chore: follow up #383 – remove unreachable…
camilamacedo86 Jul 10, 2025
40156c6
UPSTREAM: <carry>: Remove build of test image registry
tmshort Jul 9, 2025
1b68f84
UPSTREAM: <carry>: Add test-experimental-e2e target to openshift Make…
tmshort Jul 15, 2025
9cbe797
UPSTREAM: <carry>: [OTE]: Add binary in the operator controller image…
camilamacedo86 Jul 11, 2025
791db71
UPSTREAM: <carry>: Fix experimental manifest copying
tmshort Jul 17, 2025
3f248ef
UPSTREAM: <carry>: Update manifest generation for upstream rbac/webhooks
tmshort Jul 17, 2025
526a66d
UPSTREAM: <carry>: [OTE] - Add tracking mechanism
camilamacedo86 Jul 17, 2025
5a06ccb
UPSTREAM: <carry>: Update OTE dep to get fix
camilamacedo86 Jul 22, 2025
49d8348
UPSTREAM: <carry>: [OTE] Add Readme
camilamacedo86 Jul 24, 2025
4aebe68
UPSTREAM: <carry>: set GIT_COMMIT env from SOURCE_GIT_COMMIT in Docke…
rashmigottipati Jun 6, 2025
3b289f9
UPSTREAM: <carry>: add openshift specific build target to pass commit…
ankitathomas Jun 11, 2025
aabfce4
UPSTREAM: <carry>: add source commit into binaries when linking
bentito Jul 9, 2025
1faf39d
UPSTREAM: <carry>: OTE add first test from openshift/origin olmv1.go
camilamacedo86 Jul 19, 2025
a505de6
UPSTREAM: <carry>: Migrate tasks from openshift/origin olm v1.go file…
camilamacedo86 Jul 31, 2025
91a9617
UPSTREAM: <carry>: OTE - How to test locally with OCP instances
camilamacedo86 Aug 6, 2025
b8a9ed7
UPSTREAM: <carry>: [OTE] Refac: refac helper and olmv1 test to create…
camilamacedo86 Aug 8, 2025
688cc22
UPSTREAM: <carry>: [OTE] add webhook tests
camilamacedo86 Jul 31, 2025
26a8d7a
UPSTREAM: <carry>: OTE: rewrite the upgrade incompatible operator test
tmshort Aug 11, 2025
4b25cb8
UPSTREAM: <carry>: Handle service-ca cert availability/rotation
tmshort Aug 15, 2025
68b2746
UPSTREAM: <carry>: [OTE] add webhook tests
sosiouxme Aug 14, 2025
9f30aa2
UPSTREAM: <carry>: Upgrade OCP Catalog images from 4.19 to 4.20
camilamacedo86 Aug 13, 2025
9863f20
UPSTREAM: <carry>: Remove bindata generation from build
tmshort Aug 15, 2025
f25c88c
UPSTREAM: <carry>: [OTE] Add webhook tests
camilamacedo86 Aug 13, 2025
7e2298e
UPSTREAM: <carry>: OTE add logs and dumps for olmv1 test and fix help…
camilamacedo86 Aug 15, 2025
8cf6304
UPSTREAM: <carry>: [OTE] Migrate preflight checks from openshift/origin
camilamacedo86 Jul 31, 2025
ca98999
UPSTREAM: <carry>: [OTE] Add webhook to validate openshift-service-ca…
camilamacedo86 Aug 13, 2025
5d8a15e
UPSTREAM: <carry>: Adds ResourceVersion checks to the tls secret dele…
camilamacedo86 Aug 21, 2025
270bd12
UPSTREAM: <carry>: [OTE] - Readme:Add info to help use payload-aggreg…
camilamacedo86 Aug 20, 2025
4c54a94
UPSTREAM: <carry>: remove obsolete owners
grokspawn Aug 21, 2025
d726bca
UPSTREAM: <carry>: [OTE] add catalog tests from openshift/origin
camilamacedo86 Jul 31, 2025
4143ecb
UPSTREAM: <carry>: Migrate single/own namespace tests
camilamacedo86 Aug 8, 2025
a28eb45
UPSTREAM: <carry>: Adds ResourceVersion checks to the tls secret dele…
neisw Aug 25, 2025
bb17a52
UPSTREAM: <carry>: Ensure unique name for bad-catalog tests
camilamacedo86 Aug 27, 2025
78c4dff
UPSTREAM: <carry>: Revert "Handle service-ca cert availability/rotation"
tmshort Aug 29, 2025
76580b4
UPSTREAM: <carry>: grant QE approver permission for OTE
jianzhangbjz Aug 27, 2025
9310360
UPSTREAM: <carry>: Update webhook ote tests to use latest webhook-ope…
Sep 4, 2025
0a29fab
UPSTREAM: <carry>: update operator-controller to v1.5.1
anik120 Sep 11, 2025
3fdb008
UPSTREAM: <carry>: configure watchnamespace using spec.config for OTE…
anik120 Sep 11, 2025
1d5a428
UPSTREAM: <drop>: go mod vendor
Sep 15, 2025
6e66d65
UPSTREAM: <drop>: remove upstream GitHub configuration
Sep 15, 2025
1122522
UPSTREAM: <drop>: configure the commit-checker
Sep 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion commitchecker.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
expectedMergeBase: e0a2e17332717dab9a16c1ff6d6ff80fd769ffe5
expectedMergeBase: 4867f92ba1bda49f4861627fb078177d2553f438
upstreamBranch: main
upstreamOrg: operator-framework
upstreamRepo: operator-controller
12 changes: 6 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ require (
github.com/cert-manager/cert-manager v1.18.2
github.com/containerd/containerd v1.7.28
github.com/containers/image/v5 v5.36.2
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
github.com/fsnotify/fsnotify v1.9.0
github.com/go-logr/logr v1.4.3
github.com/golang-jwt/jwt/v5 v5.3.0
Expand All @@ -22,7 +21,7 @@ require (
github.com/opencontainers/image-spec v1.1.1
github.com/operator-framework/api v0.34.0
github.com/operator-framework/helm-operator-plugins v0.8.0
github.com/operator-framework/operator-registry v1.57.0
github.com/operator-framework/operator-registry v1.58.0
github.com/prometheus/client_golang v1.23.2
github.com/prometheus/common v0.66.1
github.com/spf13/cobra v1.10.1
Expand Down Expand Up @@ -83,14 +82,15 @@ require (
github.com/containerd/stargz-snapshotter/estargz v0.16.3 // indirect
github.com/containerd/ttrpc v1.2.7 // indirect
github.com/containerd/typeurl/v2 v2.2.3 // indirect
github.com/containers/common v0.64.1 // indirect
github.com/containers/common v0.64.2 // indirect
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 // indirect
github.com/containers/ocicrypt v1.2.1 // indirect
github.com/containers/storage v1.59.1 // indirect
github.com/cyberphone/json-canonicalization v0.0.0-20241213102144-19d51d7fe467 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/distribution/reference v0.6.0 // indirect
github.com/docker/cli v28.3.3+incompatible // indirect
github.com/docker/cli v28.4.0+incompatible // indirect
github.com/docker/distribution v2.8.3+incompatible // indirect
github.com/docker/docker v28.3.3+incompatible // indirect
github.com/docker/docker-credential-helpers v0.9.3 // indirect
Expand Down Expand Up @@ -207,7 +207,7 @@ require (
github.com/stoewer/go-strcase v1.3.1 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 // indirect
github.com/ulikunitz/xz v0.5.14 // indirect
github.com/ulikunitz/xz v0.5.15 // indirect
github.com/vbatts/tar-split v0.12.1 // indirect
github.com/vbauerster/mpb/v8 v8.10.2 // indirect
github.com/x448/float16 v0.8.4 // indirect
Expand Down Expand Up @@ -237,7 +237,7 @@ require (
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
google.golang.org/grpc v1.75.0 // indirect
google.golang.org/grpc v1.75.1 // indirect
google.golang.org/protobuf v1.36.9 // indirect
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
Expand Down
28 changes: 14 additions & 14 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ github.com/containerd/ttrpc v1.2.7 h1:qIrroQvuOL9HQ1X6KHe2ohc7p+HP/0VE6XPU7elJRq
github.com/containerd/ttrpc v1.2.7/go.mod h1:YCXHsb32f+Sq5/72xHubdiJRQY9inL4a4ZQrAbN1q9o=
github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40=
github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk=
github.com/containers/common v0.64.1 h1:E8vSiL+B84/UCsyVSb70GoxY9cu+0bseLujm4EKF6GE=
github.com/containers/common v0.64.1/go.mod h1:CtfQNHoCAZqWeXMwdShcsxmMJSeGRgKKMqAwRKmWrHE=
github.com/containers/common v0.64.2 h1:1xepE7QwQggUXxmyQ1Dbh6Cn0yd7ktk14sN3McSWf5I=
github.com/containers/common v0.64.2/go.mod h1:o29GfYy4tefUuShm8mOn2AiL5Mpzdio+viHI7n24KJ4=
github.com/containers/image/v5 v5.36.2 h1:GcxYQyAHRF/pLqR4p4RpvKllnNL8mOBn0eZnqJbfTwk=
github.com/containers/image/v5 v5.36.2/go.mod h1:b4GMKH2z/5t6/09utbse2ZiLK/c72GuGLFdp7K69eA4=
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 h1:Qzk5C6cYglewc+UyGf6lc8Mj2UaPTHy/iF2De0/77CA=
Expand Down Expand Up @@ -110,8 +110,8 @@ github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5Qvfr
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/docker/cli v28.3.3+incompatible h1:fp9ZHAr1WWPGdIWBM1b3zLtgCF+83gRdVMTJsUeiyAo=
github.com/docker/cli v28.3.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/cli v28.4.0+incompatible h1:RBcf3Kjw2pMtwui5V0DIMdyeab8glEw5QY0UUU4C9kY=
github.com/docker/cli v28.4.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/docker v28.3.3+incompatible h1:Dypm25kh4rmk49v1eiVbsAtpAsYURjYkaKubwuBdxEI=
Expand Down Expand Up @@ -212,8 +212,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
github.com/golang-migrate/migrate/v4 v4.18.3 h1:EYGkoOsvgHHfm5U/naS1RP/6PL/Xv3S4B/swMiAmDLs=
github.com/golang-migrate/migrate/v4 v4.18.3/go.mod h1:99BKpIi6ruaaXRM1A77eqZ+FWPQ3cfRa+ZVy5bmWMaY=
github.com/golang-migrate/migrate/v4 v4.19.0 h1:RcjOnCGz3Or6HQYEJ/EEVLfWnmw9KnoigPSjzhCuaSE=
github.com/golang-migrate/migrate/v4 v4.19.0/go.mod h1:9dyEcu+hO+G9hPSw8AIg50yg622pXJsoHItQnDGZkI0=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
Expand Down Expand Up @@ -386,8 +386,8 @@ github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY=
github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
github.com/onsi/ginkgo/v2 v2.25.2 h1:hepmgwx1D+llZleKQDMEvy8vIlCxMGt7W5ZxDjIEhsw=
github.com/onsi/ginkgo/v2 v2.25.2/go.mod h1:43uiyQC4Ed2tkOzLsEYm7hnrb7UJTWHYNsuy3bG/snE=
github.com/onsi/ginkgo/v2 v2.25.3 h1:Ty8+Yi/ayDAGtk4XxmmfUy4GabvM+MegeB4cDLRi6nw=
github.com/onsi/ginkgo/v2 v2.25.3/go.mod h1:43uiyQC4Ed2tkOzLsEYm7hnrb7UJTWHYNsuy3bG/snE=
github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
Expand All @@ -402,8 +402,8 @@ github.com/operator-framework/helm-operator-plugins v0.8.0 h1:0f6HOQC5likkf0b/Ov
github.com/operator-framework/helm-operator-plugins v0.8.0/go.mod h1:Sc+8bE38xTCgCChBUvtq/PxatEg9fAypr7S5iAw8nlA=
github.com/operator-framework/operator-lib v0.17.0 h1:cbz51wZ9+GpWR1ZYP4CSKSSBxDlWxmmnseaHVZZjZt4=
github.com/operator-framework/operator-lib v0.17.0/go.mod h1:TGopBxIE8L6E/Cojzo26R3NFp1eNlqhQNmzqhOblaLw=
github.com/operator-framework/operator-registry v1.57.0 h1:mQ4c8A8VUxZPJ0QCFRNio+7JEsLX6eKxlDSl6ORCRdk=
github.com/operator-framework/operator-registry v1.57.0/go.mod h1:9rAZH/LZ/ttEuTvL1D4KApGqOtRDE6fJzzOrJNcBu7g=
github.com/operator-framework/operator-registry v1.58.0 h1:CvfwYy19fBmsGBHEPQLwVvsYrQ3HQnqP9xQorBtz8nM=
github.com/operator-framework/operator-registry v1.58.0/go.mod h1:0MhOHp+BPGs9HBgbwtLSTKwmRKYIeD0aMnJesEXhIAw=
github.com/otiai10/copy v1.14.1 h1:5/7E6qsUMBaH5AnQ0sSLzzTg1oTECmcCmT6lvF45Na8=
github.com/otiai10/copy v1.14.1/go.mod h1:oQwrEDDOci3IM8dJF0d8+jnbfPDllW6vUjNc3DoZm9I=
github.com/otiai10/mint v1.6.3 h1:87qsV/aw1F5as1eH1zS/yqHY85ANKVMgkDrf9rcxbQs=
Expand Down Expand Up @@ -490,8 +490,8 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 h1:e/5i7d4oYZ+C1wj2THlRK+oAhjeS/TRQwMfkIuet3w0=
github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399/go.mod h1:LdwHTNJT99C5fTAzDz0ud328OgXz+gierycbcIx2fRs=
github.com/ulikunitz/xz v0.5.14 h1:uv/0Bq533iFdnMHZdRBTOlaNMdb1+ZxXIlHDZHIHcvg=
github.com/ulikunitz/xz v0.5.14/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY=
github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/vbatts/tar-split v0.12.1 h1:CqKoORW7BUWBe7UL/iqTVvkTBOF8UvOMKOIZykxnnbo=
github.com/vbatts/tar-split v0.12.1/go.mod h1:eF6B6i6ftWQcDqEn3/iGFRFRo8cBIMSJVOpnNdfTMFA=
github.com/vbauerster/mpb/v8 v8.10.2 h1:2uBykSHAYHekE11YvJhKxYmLATKHAGorZwFlyNw4hHM=
Expand Down Expand Up @@ -718,8 +718,8 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4=
google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI=
google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
Expand Down
34 changes: 2 additions & 32 deletions internal/operator-controller/applier/boxcutter.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,13 @@ package applier
import (
"cmp"
"context"
"crypto/sha256"
"encoding/hex"
"errors"
"fmt"
"hash"
"io/fs"
"maps"
"slices"
"strings"

"github.com/davecgh/go-spew/spew"
"helm.sh/helm/v3/pkg/release"
"helm.sh/helm/v3/pkg/storage/driver"
apierrors "k8s.io/apimachinery/pkg/api/errors"
Expand All @@ -33,6 +29,7 @@ import (
"github.com/operator-framework/operator-controller/internal/operator-controller/labels"
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/bundle/source"
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render"
hashutil "github.com/operator-framework/operator-controller/internal/shared/util/hash"
)

const (
Expand Down Expand Up @@ -233,7 +230,7 @@ func (bc *Boxcutter) apply(ctx context.Context, contentFS fs.FS, ext *ocv1.Clust
if err != nil {
return false, "", err
}
desiredHash := computeSHA256Hash(desiredRevision.Spec.Phases)
desiredHash := hashutil.DeepHashObject(desiredRevision.Spec.Phases)

// Sort into current and previous revisions.
var (
Expand Down Expand Up @@ -355,33 +352,6 @@ func (bc *Boxcutter) getExistingRevisions(ctx context.Context, extName string) (
return existingRevisionList.Items, nil
}

// computeSHA256Hash returns a sha236 hash value calculated from object.
func computeSHA256Hash(obj any) string {
hasher := sha256.New()
deepHashObject(hasher, obj)
return hex.EncodeToString(hasher.Sum(nil))
}

// deepHashObject writes specified object to hash using the spew library
// which follows pointers and prints actual values of the nested objects
// ensuring the hash does not change when a pointer changes.
func deepHashObject(hasher hash.Hash, objectToWrite any) {
hasher.Reset()

// TODO: change this out to `json.Marshal`. Pretty sure we found issues in the past where
// spew would produce different output when internal structures changed without the
// external public API changing.
printer := spew.ConfigState{
Indent: " ",
SortKeys: true,
DisableMethods: true,
SpewKeys: true,
}
if _, err := printer.Fprintf(hasher, "%#v", objectToWrite); err != nil {
panic(err)
}
}

func latestRevisionNumber(prevRevisions []ocv1.ClusterExtensionRevision) int64 {
if len(prevRevisions) == 0 {
return 0
Expand Down
4 changes: 2 additions & 2 deletions internal/operator-controller/applier/boxcutter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ func TestBoxcutter_Apply(t *testing.T) {
UID: "test-uid",
},
}
defaultDesiredHash := "705ada5296ab26f74d94bfa497295a0cbccdb140623bbe704a3506cd1dfba4eb"
defaultDesiredHash := "gvvp8nzq5sbila80hkiv69am8hdr7o68qkk8n084gdn"
defaultDesiredRevision := &ocv1.ClusterExtensionRevision{
ObjectMeta: metav1.ObjectMeta{
Name: "test-ext-1",
Expand Down Expand Up @@ -546,7 +546,7 @@ func TestBoxcutter_Apply(t *testing.T) {

assert.Equal(t, "test-ext-2", newRev.Name)
assert.Equal(t, int64(2), newRev.Spec.Revision)
assert.Equal(t, "9d0e48f6830fce1be5f510eb996f2876719fdb8bcffcfe1dfd3fd60e56316424", newRev.Annotations[applier.RevisionHashAnnotation])
assert.Equal(t, "1fqrim12vefkogp3pwxwhcs7c0pi1z1t2fw4roxu81sv", newRev.Annotations[applier.RevisionHashAnnotation])
require.Len(t, newRev.Spec.Previous, 1)
assert.Equal(t, "test-ext-1", newRev.Spec.Previous[0].Name)
assert.Equal(t, types.UID("rev-uid-1"), newRev.Spec.Previous[0].UID)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,18 @@ import (

appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions"
"k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/sets"
"pkg.package-operator.run/boxcutter"
"pkg.package-operator.run/boxcutter/machinery"
machinerytypes "pkg.package-operator.run/boxcutter/machinery/types"
"pkg.package-operator.run/boxcutter/probing"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/builder"
"sigs.k8s.io/controller-runtime/pkg/client"
Expand Down Expand Up @@ -430,31 +431,9 @@ func toBoxcutterRevision(rev *ocv1.ClusterExtensionRevision) (*boxcutter.Revisio

opts := []boxcutter.RevisionReconcileOption{
boxcutter.WithPreviousOwners(previous),
boxcutter.WithProbe(boxcutter.ProgressProbeType, boxcutter.ProbeFunc(func(obj client.Object) (bool, []string) {
deployGK := schema.GroupKind{
Group: "apps", Kind: "Deployment",
}
if obj.GetObjectKind().GroupVersionKind().GroupKind() != deployGK {
return true, nil
}
ustrObj := obj.(*unstructured.Unstructured)
depl := &appsv1.Deployment{}
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(ustrObj.Object, depl); err != nil {
return false, []string{err.Error()}
}

if depl.Status.ObservedGeneration != depl.Generation {
return false, []string{".status.observedGeneration outdated"}
}
for _, cond := range depl.Status.Conditions {
if cond.Type == ocv1.ClusterExtensionRevisionTypeAvailable &&
cond.Status == corev1.ConditionTrue &&
depl.Status.UpdatedReplicas == *depl.Spec.Replicas {
return true, nil
}
}
return false, []string{"not available or not fully updated"}
})),
boxcutter.WithProbe(boxcutter.ProgressProbeType, probing.And{
deploymentProbe, statefulSetProbe, crdProbe, issuerProbe, certProbe,
}),
}

r := &boxcutter.Revision{
Expand Down Expand Up @@ -490,3 +469,64 @@ func toBoxcutterRevision(rev *ocv1.ClusterExtensionRevision) (*boxcutter.Revisio
}
return r, opts, previous
}

var (
deploymentProbe = &probing.GroupKindSelector{
GroupKind: schema.GroupKind{Group: appsv1.GroupName, Kind: "Deployment"},
Prober: deplStatefulSetProbe,
}
statefulSetProbe = &probing.GroupKindSelector{
GroupKind: schema.GroupKind{Group: appsv1.GroupName, Kind: "StatefulSet"},
Prober: deplStatefulSetProbe,
}
crdProbe = &probing.GroupKindSelector{
GroupKind: schema.GroupKind{Group: "apiextensions.k8s.io", Kind: "CustomResourceDefinition"},
Prober: &probing.ObservedGenerationProbe{
Prober: &probing.ConditionProbe{ // "Available" == "True"
Type: string(apiextensions.Established),
Status: string(corev1.ConditionTrue),
},
},
}
certProbe = &probing.GroupKindSelector{
GroupKind: schema.GroupKind{Group: "acme.cert-manager.io", Kind: "Certificate"},
Prober: &probing.ObservedGenerationProbe{
Prober: readyConditionProbe,
},
}
issuerProbe = &probing.GroupKindSelector{
GroupKind: schema.GroupKind{Group: "acme.cert-manager.io", Kind: "Issuer"},
Prober: &probing.ObservedGenerationProbe{
Prober: readyConditionProbe,
},
}

// deplStaefulSetProbe probes Deployment, StatefulSet objects.
deplStatefulSetProbe = &probing.ObservedGenerationProbe{
Prober: probing.And{
availableConditionProbe,
replicasUpdatedProbe,
},
}

// Checks if the Type: "Available" Condition is "True".
availableConditionProbe = &probing.ConditionProbe{ // "Available" == "True"
Type: string(appsv1.DeploymentAvailable),
Status: string(corev1.ConditionTrue),
}

// Checks if the Type: "Ready" Condition is "True"
readyConditionProbe = &probing.ObservedGenerationProbe{
Prober: &probing.ConditionProbe{
Type: "Ready",
Status: "True",
},
}

// Checks if .status.updatedReplicas == .status.replicas.
// Works for StatefulSts, Deployments and ReplicaSets.
replicasUpdatedProbe = &probing.FieldsEqualProbe{
FieldA: ".status.updatedReplicas",
FieldB: ".status.replicas",
}
)
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,7 @@ func BundleCSVPermissionsGenerator(rv1 *bundle.RegistryV1, opts render.Options)
for _, ns := range opts.TargetNamespaces {
for _, permission := range permissions {
saName := saNameOrDefault(permission.ServiceAccountName)
name, err := opts.UniqueNameGenerator(fmt.Sprintf("%s-%s", rv1.CSV.Name, saName), permission)
if err != nil {
return nil, err
}
name := opts.UniqueNameGenerator(fmt.Sprintf("%s-%s", rv1.CSV.Name, saName), permission)

objs = append(objs,
CreateRoleResource(name, ns, WithRules(permission.Rules...)),
Expand Down Expand Up @@ -167,10 +164,7 @@ func BundleCSVClusterPermissionsGenerator(rv1 *bundle.RegistryV1, opts render.Op
objs := make([]client.Object, 0, 2*len(clusterPermissions))
for _, permission := range clusterPermissions {
saName := saNameOrDefault(permission.ServiceAccountName)
name, err := opts.UniqueNameGenerator(fmt.Sprintf("%s-%s", rv1.CSV.Name, saName), permission)
if err != nil {
return nil, err
}
name := opts.UniqueNameGenerator(fmt.Sprintf("%s-%s", rv1.CSV.Name, saName), permission)
objs = append(objs,
CreateClusterRoleResource(name, WithRules(permission.Rules...)),
CreateClusterRoleBindingResource(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,8 +352,8 @@ func Test_BundleCSVDeploymentGenerator_FailsOnNil(t *testing.T) {
}

func Test_BundleCSVPermissionsGenerator_Succeeds(t *testing.T) {
fakeUniqueNameGenerator := func(base string, _ interface{}) (string, error) {
return base, nil
fakeUniqueNameGenerator := func(base string, _ interface{}) string {
return base
}

for _, tc := range []struct {
Expand Down Expand Up @@ -786,8 +786,8 @@ func Test_BundleCSVPermissionGenerator_FailsOnNil(t *testing.T) {
}

func Test_BundleCSVClusterPermissionsGenerator_Succeeds(t *testing.T) {
fakeUniqueNameGenerator := func(base string, _ interface{}) (string, error) {
return base, nil
fakeUniqueNameGenerator := func(base string, _ interface{}) string {
return base
}

for _, tc := range []struct {
Expand Down
Loading