Skip to content

Commit 1653e77

Browse files
author
Per Goncalves da Silva
committed
Fix up makefile
Signed-off-by: Per Goncalves da Silva <[email protected]>
1 parent 4df630b commit 1653e77

File tree

15 files changed

+1596
-713
lines changed

15 files changed

+1596
-713
lines changed

cmd/operator-controller/main.go

Lines changed: 69 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,6 @@ import (
2222
"errors"
2323
"flag"
2424
"fmt"
25-
"github.com/operator-framework/operator-controller/internal/operator-controller/authorization"
26-
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/convert"
27-
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/preflights/crdupgradesafety"
28-
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render"
29-
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render/certproviders"
30-
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render/registryv1"
31-
apiextensionsv1client "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1"
3225
"net/http"
3326
"os"
3427
"path/filepath"
@@ -38,7 +31,8 @@ import (
3831
"github.com/containers/image/v5/types"
3932
"github.com/spf13/cobra"
4033
rbacv1 "k8s.io/api/rbac/v1"
41-
"k8s.io/apimachinery/pkg/labels"
34+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
35+
apiextensionsv1client "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1"
4236
k8slabels "k8s.io/apimachinery/pkg/labels"
4337
"k8s.io/apimachinery/pkg/selection"
4438
k8stypes "k8s.io/apimachinery/pkg/types"
@@ -66,13 +60,19 @@ import (
6660
"github.com/operator-framework/operator-controller/internal/operator-controller/action"
6761
"github.com/operator-framework/operator-controller/internal/operator-controller/applier"
6862
"github.com/operator-framework/operator-controller/internal/operator-controller/authentication"
63+
"github.com/operator-framework/operator-controller/internal/operator-controller/authorization"
6964
"github.com/operator-framework/operator-controller/internal/operator-controller/catalogmetadata/cache"
7065
catalogclient "github.com/operator-framework/operator-controller/internal/operator-controller/catalogmetadata/client"
7166
"github.com/operator-framework/operator-controller/internal/operator-controller/contentmanager"
7267
"github.com/operator-framework/operator-controller/internal/operator-controller/controllers"
7368
"github.com/operator-framework/operator-controller/internal/operator-controller/features"
7469
"github.com/operator-framework/operator-controller/internal/operator-controller/finalizers"
7570
"github.com/operator-framework/operator-controller/internal/operator-controller/resolve"
71+
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/convert"
72+
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/preflights/crdupgradesafety"
73+
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render"
74+
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render/certproviders"
75+
"github.com/operator-framework/operator-controller/internal/operator-controller/rukpak/render/registryv1"
7676
"github.com/operator-framework/operator-controller/internal/operator-controller/scheme"
7777
sharedcontrollers "github.com/operator-framework/operator-controller/internal/shared/controllers"
7878
fsutil "github.com/operator-framework/operator-controller/internal/shared/util/fs"
@@ -439,9 +439,17 @@ func run() error {
439439

440440
if features.OperatorControllerFeatureGate.Enabled(features.BoxcutterRuntime) {
441441
// TODO: add support for preflight checks
442+
// TODO: better scheme handling - which types do we want to support?
443+
_ = apiextensionsv1.AddToScheme(mgr.GetScheme())
442444
extApplier = &applier.Boxcutter{
443445
Client: mgr.GetClient(),
444446
Scheme: mgr.GetScheme(),
447+
RevisionGenerator: &applier.SimpleRevisionGenerator{
448+
Scheme: mgr.GetScheme(),
449+
BundleRenderer: &applier.RegistryV1BundleRenderer{
450+
BundleRenderer: registryv1.Renderer,
451+
},
452+
},
445453
}
446454
ctrlBuilderOpts = append(ctrlBuilderOpts, controllers.WithOwns(&ocv1.ClusterExtensionRevision{}))
447455
} else {
@@ -470,46 +478,6 @@ func run() error {
470478
return err
471479
}
472480

473-
// Boxcutter
474-
discoveryClient, err := discovery.NewDiscoveryClientForConfig(restConfig)
475-
if err != nil {
476-
setupLog.Error(err, "unable to create discovery client")
477-
return err
478-
}
479-
mapFunc := func(ctx context.Context, ce *ocv1.ClusterExtension, c *rest.Config, o crcache.Options) (*rest.Config, crcache.Options, error) {
480-
saKey := client.ObjectKey{
481-
Name: ce.Spec.ServiceAccount.Name,
482-
Namespace: ce.Spec.Namespace,
483-
}
484-
saConfig := rest.AnonymousClientConfig(c)
485-
saConfig.Wrap(func(rt http.RoundTripper) http.RoundTripper {
486-
return &authentication.TokenInjectingRoundTripper{
487-
Tripper: rt,
488-
TokenGetter: tokenGetter,
489-
Key: saKey,
490-
}
491-
})
492-
493-
// Cache scoping
494-
req1, err := labels.NewRequirement(
495-
controllers.ClusterExtensionRevisionOwnerLabel, selection.Equals, []string{ce.Name})
496-
if err != nil {
497-
return nil, o, err
498-
}
499-
o.DefaultLabelSelector = labels.NewSelector().Add(*req1)
500-
501-
return saConfig, o, nil
502-
}
503-
504-
accessManager := managedcache.NewObjectBoundAccessManager(
505-
ctrl.Log.WithName("accessmanager"), mapFunc, restConfig, crcache.Options{
506-
Scheme: mgr.GetScheme(), Mapper: mgr.GetRESTMapper(),
507-
})
508-
if err := mgr.Add(accessManager); err != nil {
509-
setupLog.Error(err, "unable to register AccessManager")
510-
return err
511-
}
512-
513481
if err = (&controllers.ClusterExtensionReconciler{
514482
Client: cl,
515483
Resolver: resolver,
@@ -524,15 +492,59 @@ func run() error {
524492
return err
525493
}
526494

527-
if err = (&controllers.ClusterExtensionRevisionReconciler{
528-
Client: cl,
529-
AccessManager: accessManager,
530-
Scheme: mgr.GetScheme(),
531-
RestMapper: mgr.GetRESTMapper(),
532-
DiscoveryClient: discoveryClient,
533-
}).SetupWithManager(mgr); err != nil {
534-
setupLog.Error(err, "unable to create controller", "controller", "ClusterExtension")
535-
return err
495+
if features.OperatorControllerFeatureGate.Enabled(features.BoxcutterRuntime) {
496+
// Boxcutter
497+
discoveryClient, err := discovery.NewDiscoveryClientForConfig(restConfig)
498+
if err != nil {
499+
setupLog.Error(err, "unable to create discovery client")
500+
return err
501+
}
502+
mapFunc := func(ctx context.Context, ce *ocv1.ClusterExtension, c *rest.Config, o crcache.Options) (*rest.Config, crcache.Options, error) {
503+
saKey := client.ObjectKey{
504+
Name: ce.Spec.ServiceAccount.Name,
505+
Namespace: ce.Spec.Namespace,
506+
}
507+
saConfig := rest.AnonymousClientConfig(c)
508+
saConfig.Wrap(func(rt http.RoundTripper) http.RoundTripper {
509+
return &authentication.TokenInjectingRoundTripper{
510+
Tripper: rt,
511+
TokenGetter: tokenGetter,
512+
Key: saKey,
513+
}
514+
})
515+
516+
// Cache scoping
517+
req1, err := k8slabels.NewRequirement(
518+
controllers.ClusterExtensionRevisionOwnerLabel, selection.Equals, []string{ce.Name})
519+
if err != nil {
520+
return nil, o, err
521+
}
522+
o.DefaultLabelSelector = k8slabels.NewSelector().Add(*req1)
523+
524+
return saConfig, o, nil
525+
}
526+
527+
accessManager := managedcache.NewObjectBoundAccessManager(
528+
ctrl.Log.WithName("accessmanager"), mapFunc, restConfig, crcache.Options{
529+
Scheme: mgr.GetScheme(), Mapper: mgr.GetRESTMapper(),
530+
})
531+
if err := mgr.Add(accessManager); err != nil {
532+
setupLog.Error(err, "unable to register AccessManager")
533+
return err
534+
}
535+
536+
if err = (&controllers.ClusterExtensionRevisionReconciler{
537+
Client: cl,
538+
RevisionManager: &controllers.OLMRevisionEngineGetter{
539+
AccessManager: accessManager,
540+
Scheme: mgr.GetScheme(),
541+
RestMapper: mgr.GetRESTMapper(),
542+
DiscoveryClient: discoveryClient,
543+
},
544+
}).SetupWithManager(mgr); err != nil {
545+
setupLog.Error(err, "unable to create controller", "controller", "ClusterExtension")
546+
return err
547+
}
536548
}
537549

538550
if err = (&controllers.ClusterCatalogReconciler{

config/base/operator-controller/rbac/standard/role.yaml

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,8 @@ rules:
2727
- apiGroups:
2828
- olm.operatorframework.io
2929
resources:
30-
- clusterextensionrevisions
30+
- clusterextensions
3131
verbs:
32-
- create
33-
- delete
3432
- get
3533
- list
3634
- patch
@@ -39,28 +37,16 @@ rules:
3937
- apiGroups:
4038
- olm.operatorframework.io
4139
resources:
42-
- clusterextensionrevisions/finalizers
4340
- clusterextensions/finalizers
4441
verbs:
4542
- update
4643
- apiGroups:
4744
- olm.operatorframework.io
4845
resources:
49-
- clusterextensionrevisions/status
5046
- clusterextensions/status
5147
verbs:
5248
- patch
5349
- update
54-
- apiGroups:
55-
- olm.operatorframework.io
56-
resources:
57-
- clusterextensions
58-
verbs:
59-
- get
60-
- list
61-
- patch
62-
- update
63-
- watch
6450
- apiGroups:
6551
- rbac.authorization.k8s.io
6652
resources:

config/samples/olm_v1_clusterextension.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ rules:
3333
resources: [clusterextensions/finalizers]
3434
verbs: [update]
3535
resourceNames: [argocd]
36+
# Allow ClusterExtensionRevisions to set blockOwnerDeletion ownerReferences
37+
- apiGroups: [olm.operatorframework.io]
38+
resources: [clusterextensionrevisions/finalizers]
39+
verbs: [update]
3640
# Manage ArgoCD CRDs
3741
- apiGroups: [apiextensions.k8s.io]
3842
resources: [customresourcedefinitions]

docs/api-reference/crd-ref-docs-gen-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
processor:
2-
ignoreTypes: []
2+
ignoreTypes: [ClusterExtensionRevision, ClusterExtensionRevisionList]
33
ignoreFields: []
44

55
render:

0 commit comments

Comments
 (0)