Skip to content

Commit ebe0f34

Browse files
Merge pull request #994 from wking/custom-signature-stores
OTA-917: pkg/customsignaturestore: Implement signatureStores customization
2 parents e23ee60 + c798c3c commit ebe0f34

File tree

429 files changed

+5878
-2668
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

429 files changed

+5878
-2668
lines changed

Dockerfile

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ RUN hack/build-go.sh; \
88
FROM registry.access.redhat.com/ubi9/ubi-minimal:latest
99
COPY --from=builder /tmp/build/cluster-version-operator /usr/bin/
1010
COPY install /manifests
11-
COPY vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusterversion.crd.yaml /manifests/
12-
COPY vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusteroperator.crd.yaml /manifests/
11+
COPY vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_* /manifests/
1312
COPY bootstrap /bootstrap
1413
ENTRYPOINT ["/usr/bin/cluster-version-operator"]

Dockerfile.rhel

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ RUN hack/build-go.sh; \
88
FROM registry.ci.openshift.org/ocp/4.15:base-rhel9
99
COPY --from=builder /tmp/build/cluster-version-operator /usr/bin/
1010
COPY install /manifests
11-
COPY vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusterversion.crd.yaml /manifests/
12-
COPY vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusteroperator.crd.yaml /manifests/
11+
COPY vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_* /manifests/
1312
COPY bootstrap /bootstrap
1413
ENTRYPOINT ["/usr/bin/cluster-version-operator"]

go.mod

+13-13
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ require (
88
github.com/ghodss/yaml v1.0.0
99
github.com/google/go-cmp v0.5.9
1010
github.com/google/uuid v1.3.0
11-
github.com/openshift/api v0.0.0-20231204192004-bfea29e5e6c4
11+
github.com/openshift/api v0.0.0-20231206170337-f356bd9e2ff6
1212
github.com/openshift/client-go v0.0.0-20230926161409-848405da69e1
1313
github.com/openshift/library-go v0.0.0-20231017173800-126f85ed0cc7
1414
github.com/operator-framework/api v0.17.1
@@ -18,25 +18,25 @@ require (
1818
github.com/prometheus/client_model v0.4.0
1919
github.com/prometheus/common v0.44.0
2020
github.com/spf13/cobra v1.7.0
21-
golang.org/x/crypto v0.14.0
22-
golang.org/x/net v0.17.0
21+
golang.org/x/crypto v0.16.0
22+
golang.org/x/net v0.19.0
2323
golang.org/x/time v0.3.0
2424
gopkg.in/fsnotify.v1 v1.4.7
25-
k8s.io/api v0.28.3
25+
k8s.io/api v0.28.4
2626
k8s.io/apiextensions-apiserver v0.28.2
27-
k8s.io/apimachinery v0.28.3
27+
k8s.io/apimachinery v0.28.4
2828
k8s.io/client-go v0.28.3
29-
k8s.io/klog/v2 v2.100.1
29+
k8s.io/klog/v2 v2.110.1
3030
k8s.io/kube-aggregator v0.28.2
31-
k8s.io/utils v0.0.0-20230726121419-3b25d923346b
31+
k8s.io/utils v0.0.0-20231127182322-b307cd553661
3232
)
3333

3434
require (
3535
github.com/beorn7/perks v1.0.1 // indirect
3636
github.com/cespare/xxhash/v2 v2.2.0 // indirect
3737
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
3838
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
39-
github.com/go-logr/logr v1.2.4 // indirect
39+
github.com/go-logr/logr v1.3.0 // indirect
4040
github.com/go-openapi/jsonpointer v0.19.6 // indirect
4141
github.com/go-openapi/jsonreference v0.20.2 // indirect
4242
github.com/go-openapi/swag v0.22.3 // indirect
@@ -60,18 +60,18 @@ require (
6060
github.com/sirupsen/logrus v1.9.0 // indirect
6161
github.com/spf13/pflag v1.0.5 // indirect
6262
golang.org/x/oauth2 v0.8.0 // indirect
63-
golang.org/x/sys v0.13.0 // indirect
64-
golang.org/x/term v0.13.0 // indirect
65-
golang.org/x/text v0.13.0 // indirect
63+
golang.org/x/sys v0.15.0 // indirect
64+
golang.org/x/term v0.15.0 // indirect
65+
golang.org/x/text v0.14.0 // indirect
6666
google.golang.org/appengine v1.6.7 // indirect
67-
google.golang.org/protobuf v1.30.0 // indirect
67+
google.golang.org/protobuf v1.31.0 // indirect
6868
gopkg.in/inf.v0 v0.9.1 // indirect
6969
gopkg.in/yaml.v2 v2.4.0 // indirect
7070
gopkg.in/yaml.v3 v3.0.1 // indirect
7171
k8s.io/apiserver v0.28.3 // indirect
7272
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
7373
sigs.k8s.io/controller-runtime v0.12.1 // indirect
7474
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
75-
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
75+
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
7676
sigs.k8s.io/yaml v1.3.0 // indirect
7777
)

go.sum

+26-27
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@ github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQL
1616
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
1717
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
1818
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
19-
github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
20-
github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
21-
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
19+
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
20+
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
2221
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
2322
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
2423
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
@@ -81,8 +80,8 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
8180
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
8281
github.com/onsi/ginkgo/v2 v2.9.4 h1:xR7vG4IXt5RWx6FfIjyAtsoMAtnc3C/rFXBBd2AjZwE=
8382
github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE=
84-
github.com/openshift/api v0.0.0-20231204192004-bfea29e5e6c4 h1:5RyeLvTSZEn/fDQA6e6+qIvFPssWjreY8pbwfg4/EEQ=
85-
github.com/openshift/api v0.0.0-20231204192004-bfea29e5e6c4/go.mod h1:qNtV0315F+f8ld52TLtPvrfivZpdimOzTi3kn9IVbtU=
83+
github.com/openshift/api v0.0.0-20231206170337-f356bd9e2ff6 h1:XxmuE/mW0VMIxJ78M0zAgTY/Fi0grVJgSnSgr0qjICU=
84+
github.com/openshift/api v0.0.0-20231206170337-f356bd9e2ff6/go.mod h1:qNtV0315F+f8ld52TLtPvrfivZpdimOzTi3kn9IVbtU=
8685
github.com/openshift/client-go v0.0.0-20230926161409-848405da69e1 h1:W1N/3nVciqmjPjn2xldHjb0AwwCQzlGxLvX5BCgE8H4=
8786
github.com/openshift/client-go v0.0.0-20230926161409-848405da69e1/go.mod h1:ihUJrhBcYAGYQrJu/gP2OMgfVds5f5z5kbeLNBqjHLo=
8887
github.com/openshift/library-go v0.0.0-20231017173800-126f85ed0cc7 h1:pJLcCSJzdiWCaJ4bAepgnvwMdP33LumbVJyWSW7+3ng=
@@ -125,17 +124,17 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
125124
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
126125
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
127126
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
128-
golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
129-
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
127+
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
128+
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
130129
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
131130
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
132131
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
133132
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
134133
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
135134
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
136135
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
137-
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
138-
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
136+
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
137+
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
139138
golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
140139
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
141140
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -146,15 +145,15 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h
146145
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
147146
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
148147
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
149-
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
150-
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
151-
golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
152-
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
148+
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
149+
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
150+
golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
151+
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
153152
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
154153
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
155154
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
156-
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
157-
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
155+
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
156+
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
158157
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
159158
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
160159
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -170,8 +169,8 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6
170169
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
171170
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
172171
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
173-
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
174-
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
172+
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
173+
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
175174
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
176175
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
177176
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
@@ -187,29 +186,29 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
187186
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
188187
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
189188
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
190-
k8s.io/api v0.28.3 h1:Gj1HtbSdB4P08C8rs9AR94MfSGpRhJgsS+GF9V26xMM=
191-
k8s.io/api v0.28.3/go.mod h1:MRCV/jr1dW87/qJnZ57U5Pak65LGmQVkKTzf3AtKFHc=
189+
k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY=
190+
k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0=
192191
k8s.io/apiextensions-apiserver v0.28.2 h1:J6/QRWIKV2/HwBhHRVITMLYoypCoPY1ftigDM0Kn+QU=
193192
k8s.io/apiextensions-apiserver v0.28.2/go.mod h1:5tnkxLGa9nefefYzWuAlWZ7RZYuN/765Au8cWLA6SRg=
194-
k8s.io/apimachinery v0.28.3 h1:B1wYx8txOaCQG0HmYF6nbpU8dg6HvA06x5tEffvOe7A=
195-
k8s.io/apimachinery v0.28.3/go.mod h1:uQTKmIqs+rAYaq+DFaoD2X7pcjLOqbQX2AOiO0nIpb8=
193+
k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8=
194+
k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg=
196195
k8s.io/apiserver v0.28.3 h1:8Ov47O1cMyeDzTXz0rwcfIIGAP/dP7L8rWbEljRcg5w=
197196
k8s.io/apiserver v0.28.3/go.mod h1:YIpM+9wngNAv8Ctt0rHG4vQuX/I5rvkEMtZtsxW2rNM=
198197
k8s.io/client-go v0.28.3 h1:2OqNb72ZuTZPKCl+4gTKvqao0AMOl9f3o2ijbAj3LI4=
199198
k8s.io/client-go v0.28.3/go.mod h1:LTykbBp9gsA7SwqirlCXBWtK0guzfhpoW4qSm7i9dxo=
200-
k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
201-
k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
199+
k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0=
200+
k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo=
202201
k8s.io/kube-aggregator v0.28.2 h1:tCjAfB1p/v18yD2NpegNQRuahzyA/szFfcRARnpjDeo=
203202
k8s.io/kube-aggregator v0.28.2/go.mod h1:g4hZVjC4KhJtZHV2pyiRBiU6AdBA/sAjh9Y9GJC/SbU=
204203
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ=
205204
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM=
206-
k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
207-
k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
205+
k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI=
206+
k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
208207
sigs.k8s.io/controller-runtime v0.12.1 h1:4BJY01xe9zKQti8oRjj/NeHKRXthf1YkYJAgLONFFoI=
209208
sigs.k8s.io/controller-runtime v0.12.1/go.mod h1:BKhxlA4l7FPK4AQcsuL4X6vZeWnKDXez/vp1Y8dxTU0=
210209
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
211210
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
212-
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
213-
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
211+
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
212+
sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
214213
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
215214
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=

hack/test-prerequisites.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func main() {
2727

2828
client := apiext.NewForConfigOrDie(cfg)
2929
for _, path := range []string{
30-
"vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusterversion.crd.yaml",
30+
"vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusterversion-Default.crd.yaml",
3131
"vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusteroperator.crd.yaml",
3232
} {
3333
var name string

pkg/cincinnati/cincinnati.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ func (c Client) GetUpdates(ctx context.Context, uri *url.URL, desiredArch, curre
116116
//nolint:staticcheck // SA1019: TLSClientConfig.RootCAs.Subjects() is deprecated because
117117
// "if s was returned by SystemCertPool, Subjects will not include the system roots"
118118
// but that should not apply for us, we construct it ourselves in Operator.getTLSConfig()
119-
klog.V(2).Infof("Using a root CA pool with %n root CA subjects to request updates from %s", len(c.transport.TLSClientConfig.RootCAs.Subjects()), uri)
119+
klog.V(2).Infof("Using a root CA pool with %d root CA subjects to request updates from %s", len(c.transport.TLSClientConfig.RootCAs.Subjects()), uri)
120120
}
121121
}
122122

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
// Package customsignaturestore implements a signature store as configured by ClusterVersion.
2+
package customsignaturestore
3+
4+
import (
5+
"context"
6+
"errors"
7+
"fmt"
8+
"net/url"
9+
"strings"
10+
"sync"
11+
12+
configv1listers "github.com/openshift/client-go/config/listers/config/v1"
13+
"github.com/openshift/library-go/pkg/verify/store"
14+
"github.com/openshift/library-go/pkg/verify/store/parallel"
15+
"github.com/openshift/library-go/pkg/verify/store/sigstore"
16+
)
17+
18+
type Store struct {
19+
// Name is the name of the ClusterVersion object that configures this store.
20+
Name string
21+
22+
// Lister allows the store to fetch the current ClusterVersion configuration.
23+
Lister configv1listers.ClusterVersionLister
24+
25+
// HTTPClient is called once for each Signatures call to ensure
26+
// requests are made with the currently-recommended parameters.
27+
HTTPClient sigstore.HTTPClient
28+
29+
// lock allows the store to be locked while mutating or accessing internal state.
30+
lock sync.Mutex
31+
32+
// customURIs tracks the most-recently retrieved ClusterVersion configuration.
33+
customURIs []*url.URL
34+
}
35+
36+
// Signatures fetches signatures for the provided digest.
37+
func (s *Store) Signatures(ctx context.Context, name string, digest string, fn store.Callback) error {
38+
uris, err := s.refreshConfiguration(ctx)
39+
if err != nil {
40+
return err
41+
}
42+
43+
if uris == nil {
44+
return nil
45+
}
46+
47+
if len(uris) == 0 {
48+
return errors.New("ClusterVersion spec.signatureStores is an empty array. Unset signatureStores entirely if you want to to enable the default signature stores.")
49+
}
50+
51+
allDone := false
52+
53+
wrapper := func(ctx context.Context, signature []byte, errIn error) (done bool, err error) {
54+
done, err = fn(ctx, signature, errIn)
55+
if done {
56+
allDone = true
57+
}
58+
return done, err
59+
}
60+
61+
stores := make([]store.Store, 0, len(uris))
62+
for i := range uris {
63+
uri := *uris[i]
64+
stores = append(stores, &sigstore.Store{
65+
URI: &uri,
66+
HTTPClient: s.HTTPClient,
67+
})
68+
}
69+
store := &parallel.Store{Stores: stores}
70+
if err := store.Signatures(ctx, name, digest, wrapper); err != nil || allDone {
71+
return err
72+
}
73+
return errors.New("ClusterVersion spec.signatureStores exhausted without finding a valid signature.")
74+
}
75+
76+
func (s *Store) refreshConfiguration(ctx context.Context) ([]*url.URL, error) {
77+
config, err := s.Lister.Get(s.Name)
78+
if err != nil {
79+
return nil, err
80+
}
81+
82+
var uris []*url.URL
83+
if config.Spec.SignatureStores != nil {
84+
uris = make([]*url.URL, 0, len(config.Spec.SignatureStores))
85+
for _, store := range config.Spec.SignatureStores {
86+
uri, err := url.Parse(store.URL)
87+
if err != nil {
88+
return uris, err
89+
}
90+
91+
uris = append(uris, uri)
92+
}
93+
}
94+
95+
s.lock.Lock()
96+
defer s.lock.Unlock()
97+
s.customURIs = uris
98+
return uris, nil
99+
}
100+
101+
// String returns a description of where this store finds
102+
// signatures.
103+
func (s *Store) String() string {
104+
s.lock.Lock()
105+
defer s.lock.Unlock()
106+
107+
if s.customURIs == nil {
108+
return "ClusterVersion signatureStores unset, falling back to default stores"
109+
} else if len(s.customURIs) == 0 {
110+
return "0 ClusterVersion signatureStores"
111+
}
112+
uris := make([]string, 0, len(s.customURIs))
113+
for _, uri := range s.customURIs {
114+
uris = append(uris, uri.String())
115+
}
116+
return fmt.Sprintf("ClusterVersion signatureStores: %s", strings.Join(uris, ", "))
117+
}

0 commit comments

Comments
 (0)