Skip to content

Commit 7bc5831

Browse files
Merge pull request openshift#370 from perdasilva/csv_ns_labeler_plugin
OLM-2695: Adds downstream only CSV Namespace Labeler Plug-In
2 parents 97782e6 + 9ba1819 commit 7bc5831

File tree

25 files changed

+1797
-62
lines changed

25 files changed

+1797
-62
lines changed

go.mod

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/maxbrunsfeld/counterfeiter/v6 v6.4.1
1313
github.com/mikefarah/yq/v3 v3.0.0-20201202084205-8846255d1c37
1414
github.com/onsi/ginkgo/v2 v2.1.3
15-
github.com/openshift/api v0.0.0-20200331152225-585af27e34fd
15+
github.com/openshift/api v0.0.0-20220525145417-ee5b62754c68
1616
github.com/operator-framework/api v0.16.0
1717
github.com/operator-framework/operator-lifecycle-manager v0.0.0-00010101000000-000000000000
1818
github.com/operator-framework/operator-registry v1.17.5
@@ -176,7 +176,8 @@ require (
176176
github.com/onsi/gomega v1.18.1 // indirect
177177
github.com/opencontainers/go-digest v1.0.0 // indirect
178178
github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 // indirect
179-
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0 // indirect
179+
github.com/openshift/client-go v0.0.0-20220525160904-9e1acff93e4a // indirect
180+
github.com/openshift/cluster-policy-controller v0.0.0-20220825134653-523e4104074f // indirect
180181
github.com/otiai10/copy v1.2.0 // indirect
181182
github.com/pbnjay/strptime v0.0.0-20140226051138-5c05b0d668c9 // indirect
182183
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
@@ -223,7 +224,7 @@ require (
223224
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
224225
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect
225226
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 // indirect
226-
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect
227+
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 // indirect
227228
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
228229
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad // indirect
229230
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect

go.sum

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -989,6 +989,8 @@ github.com/openshift/api v0.0.0-20210517065120-b325f58df679/go.mod h1:dZ4kytOo3s
989989
github.com/openshift/build-machinery-go v0.0.0-20210209125900-0da259a2c359/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE=
990990
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0 h1:kMiuiZXH1GdfbiMwsuAQOqGaMxlo9NCUk0wT4XAdfNM=
991991
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0/go.mod h1:uUQ4LClRO+fg5MF/P6QxjMCb1C9f7Oh4RKepftDnEJE=
992+
github.com/openshift/cluster-policy-controller v0.0.0-20220825134653-523e4104074f h1:ll0eE7rgGHsFlrI6ksr6nXL2ur8GYBe8Jj0GwNQ/1+o=
993+
github.com/openshift/cluster-policy-controller v0.0.0-20220825134653-523e4104074f/go.mod h1:r9ZZT5wjwoS2heBfYR26uJhhkGYwgmFqomu9ww0y9Qw=
992994
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
993995
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
994996
github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k=
@@ -1435,8 +1437,9 @@ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ
14351437
golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
14361438
golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
14371439
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
1438-
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg=
14391440
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
1441+
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 h1:OSnWWcOd/CtWQC2cYSBgbTSJv3ciqd8r54ySIW2y3RE=
1442+
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
14401443
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
14411444
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
14421445
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

staging/operator-lifecycle-manager/go.mod

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ require (
2222
github.com/mitchellh/mapstructure v1.4.1
2323
github.com/onsi/ginkgo/v2 v2.1.3
2424
github.com/onsi/gomega v1.18.1
25-
github.com/openshift/api v0.0.0-20200331152225-585af27e34fd
26-
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0
25+
github.com/openshift/api v0.0.0-20220525145417-ee5b62754c68
26+
github.com/openshift/client-go v0.0.0-20220525160904-9e1acff93e4a
2727
github.com/operator-framework/api v0.16.0
2828
github.com/operator-framework/operator-registry v1.17.5
2929
github.com/otiai10/copy v1.2.0
@@ -221,7 +221,7 @@ require (
221221
golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd // indirect
222222
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
223223
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect
224-
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect
224+
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 // indirect
225225
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
226226
golang.org/x/sys v0.0.0-20220209214540-3681064d5158 // indirect
227227
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
@@ -258,3 +258,6 @@ replace (
258258
go.opentelemetry.io/otel => go.opentelemetry.io/otel v0.20.0
259259
go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk v0.20.0
260260
)
261+
262+
// downstream only
263+
require github.com/openshift/cluster-policy-controller v0.0.0-20220825134653-523e4104074f

staging/operator-lifecycle-manager/go.sum

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1075,6 +1075,8 @@ github.com/openshift/api v0.0.0-20211014063134-be2a7fb8aa44/go.mod h1:RsQCVJu4qh
10751075
github.com/openshift/build-machinery-go v0.0.0-20210712174854-1bb7fd1518d3/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE=
10761076
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0 h1:kMiuiZXH1GdfbiMwsuAQOqGaMxlo9NCUk0wT4XAdfNM=
10771077
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0/go.mod h1:uUQ4LClRO+fg5MF/P6QxjMCb1C9f7Oh4RKepftDnEJE=
1078+
github.com/openshift/cluster-policy-controller v0.0.0-20220825134653-523e4104074f h1:ll0eE7rgGHsFlrI6ksr6nXL2ur8GYBe8Jj0GwNQ/1+o=
1079+
github.com/openshift/cluster-policy-controller v0.0.0-20220825134653-523e4104074f/go.mod h1:r9ZZT5wjwoS2heBfYR26uJhhkGYwgmFqomu9ww0y9Qw=
10781080
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
10791081
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
10801082
github.com/operator-framework/api v0.7.1/go.mod h1:L7IvLd/ckxJEJg/t4oTTlnHKAJIP/p51AvEslW3wYdY=
@@ -1550,8 +1552,9 @@ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ
15501552
golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
15511553
golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
15521554
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
1553-
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg=
15541555
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
1556+
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 h1:OSnWWcOd/CtWQC2cYSBgbTSJv3ciqd8r54ySIW2y3RE=
1557+
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
15551558
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
15561559
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
15571560
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

staging/operator-lifecycle-manager/pkg/controller/operators/olm/config.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,26 @@ type operatorConfig struct {
3737
configClient configv1client.Interface
3838
}
3939

40+
func (o *operatorConfig) OperatorClient() operatorclient.ClientInterface {
41+
return o.operatorClient
42+
}
43+
44+
func (o *operatorConfig) ExternalClient() versioned.Interface {
45+
return o.externalClient
46+
}
47+
48+
func (o *operatorConfig) ResyncPeriod() func() time.Duration {
49+
return o.resyncPeriod
50+
}
51+
52+
func (o *operatorConfig) WatchedNamespaces() []string {
53+
return o.watchedNamespaces
54+
}
55+
56+
func (o *operatorConfig) Logger() *logrus.Logger {
57+
return o.logger
58+
}
59+
4060
func (o *operatorConfig) apply(options []OperatorOption) {
4161
for _, option := range options {
4262
option(o)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package olm
2+
3+
import (
4+
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/plugins"
5+
)
6+
7+
func init() {
8+
operatorPlugInFactoryFuncs = []plugins.OperatorPlugInFactoryFunc{
9+
// labels unlabeled non-payload openshift-* csv namespaces with
10+
// security.openshift.io/scc.podSecurityLabelSync: true
11+
plugins.NewCsvNamespaceLabelerPluginFunc,
12+
}
13+
}

staging/operator-lifecycle-manager/pkg/controller/operators/olm/operator.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"strings"
88
"time"
99

10+
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/plugins"
1011
"github.com/sirupsen/logrus"
1112
admissionregistrationv1 "k8s.io/api/admissionregistration/v1"
1213
corev1 "k8s.io/api/core/v1"
@@ -61,6 +62,10 @@ var (
6162
ErrAPIServiceOwnerConflict = errors.New("unable to adopt APIService")
6263
)
6364

65+
// this unexported operator plugin slice provides an entrypoint for
66+
// downstream to inject its own plugins to augment the controller behavior
67+
var operatorPlugInFactoryFuncs []plugins.OperatorPlugInFactoryFunc
68+
6469
type Operator struct {
6570
queueinformer.Operator
6671

@@ -91,6 +96,7 @@ type Operator struct {
9196
clientAttenuator *scoped.ClientAttenuator
9297
serviceAccountQuerier *scoped.UserDefinedServiceAccountQuerier
9398
clientFactory clients.Factory
99+
plugins []plugins.OperatorPlugin
94100
}
95101

96102
func NewOperator(ctx context.Context, options ...OperatorOption) (*Operator, error) {
@@ -588,6 +594,31 @@ func newOperatorWithConfig(ctx context.Context, config *operatorConfig) (*Operat
588594
OverridesBuilderFunc: overridesBuilderFunc.GetDeploymentInitializer,
589595
}
590596

597+
// initialize plugins
598+
for _, makePlugIn := range operatorPlugInFactoryFuncs {
599+
plugin, err := makePlugIn(ctx, config, op)
600+
if err != nil {
601+
return nil, fmt.Errorf("error creating plugin: %s", err)
602+
}
603+
op.plugins = append(op.plugins, plugin)
604+
}
605+
606+
if len(operatorPlugInFactoryFuncs) > 0 {
607+
go func() {
608+
// block until operator is done
609+
<-op.Done()
610+
611+
// shutdown plug-ins
612+
for _, plugin := range op.plugins {
613+
if err := plugin.Shutdown(); err != nil {
614+
if op.logger != nil {
615+
op.logger.Warnf("error shutting down plug-in: %s", err)
616+
}
617+
}
618+
}
619+
}()
620+
}
621+
591622
return op, nil
592623
}
593624

0 commit comments

Comments
 (0)