Skip to content

Commit 1b9f11a

Browse files
committed
boxcutter webhook support
Signed-off-by: Joe Lanford <[email protected]>
1 parent 00a153c commit 1b9f11a

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

cmd/operator-controller/main.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,7 @@ func run() error {
443443
// create applier
444444
var ctrlBuilderOpts []controllers.ControllerBuilderOption
445445
var extApplier controllers.Applier
446-
446+
certProvider := getCertificateProvider()
447447
if features.OperatorControllerFeatureGate.Enabled(features.BoxcutterRuntime) {
448448
// TODO: add support for preflight checks
449449
// TODO: better scheme handling - which types do we want to support?
@@ -454,14 +454,14 @@ func run() error {
454454
RevisionGenerator: &applier.SimpleRevisionGenerator{
455455
Scheme: mgr.GetScheme(),
456456
BundleRenderer: &applier.RegistryV1BundleRenderer{
457-
BundleRenderer: registryv1.Renderer,
457+
BundleRenderer: registryv1.Renderer,
458+
CertificateProvider: certProvider,
458459
},
459460
},
460461
}
461462
ctrlBuilderOpts = append(ctrlBuilderOpts, controllers.WithOwns(&ocv1.ClusterExtensionRevision{}))
462463
} else {
463464
// now initialize the helmApplier, assigning the potentially nil preAuth
464-
certProvider := getCertificateProvider()
465465
extApplier = &applier.Helm{
466466
ActionClientGetter: acg,
467467
Preflights: preflights,

internal/operator-controller/applier/boxcutter.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,17 +223,23 @@ type BundleRenderer interface {
223223
}
224224

225225
type RegistryV1BundleRenderer struct {
226-
BundleRenderer render.BundleRenderer
226+
BundleRenderer render.BundleRenderer
227+
CertificateProvider render.CertificateProvider
227228
}
228229

229230
func (r *RegistryV1BundleRenderer) Render(bundleFS fs.FS, ext *ocv1.ClusterExtension) ([]client.Object, error) {
230231
reg, err := source.FromFS(bundleFS).GetBundle()
231232
if err != nil {
232233
return nil, err
233234
}
235+
236+
if len(reg.CSV.Spec.WebhookDefinitions) > 0 && r.CertificateProvider == nil {
237+
return nil, fmt.Errorf("unsupported bundle: webhookDefinitions are not supported")
238+
}
239+
234240
watchNamespace, err := GetWatchNamespace(ext)
235241
if err != nil {
236242
return nil, err
237243
}
238-
return r.BundleRenderer.Render(reg, ext.Spec.Namespace, render.WithTargetNamespaces(watchNamespace))
244+
return r.BundleRenderer.Render(reg, ext.Spec.Namespace, render.WithTargetNamespaces(watchNamespace), render.WithCertificateProvider(r.CertificateProvider))
239245
}

0 commit comments

Comments
 (0)