Skip to content

Commit d0b2fe9

Browse files
authored
Merge branch 'master' into catsrc_weighting
2 parents b029c95 + 163608d commit d0b2fe9

File tree

17 files changed

+664
-204
lines changed

17 files changed

+664
-204
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ require (
2323
github.com/openshift/api v0.0.0-20200331152225-585af27e34fd
2424
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0
2525
github.com/operator-framework/api v0.3.11
26-
github.com/operator-framework/operator-registry v1.13.3
26+
github.com/operator-framework/operator-registry v1.13.6
2727
github.com/otiai10/copy v1.2.0
2828
github.com/pkg/errors v0.9.1
2929
github.com/prometheus/client_golang v1.2.1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -576,8 +576,8 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJ
576576
github.com/operator-framework/api v0.3.7-0.20200602203552-431198de9fc2/go.mod h1:Xbje9x0SHmh0nihE21kpesB38vk3cyxnE6JdDS8Jo1Q=
577577
github.com/operator-framework/api v0.3.11 h1:+fyck2pcr+vVGnVxM4UNoi7qOSMVCTQOWW2xsJtLSq0=
578578
github.com/operator-framework/api v0.3.11/go.mod h1:Xbje9x0SHmh0nihE21kpesB38vk3cyxnE6JdDS8Jo1Q=
579-
github.com/operator-framework/operator-registry v1.13.3 h1:SaZ1IKLKGizVgTtT8AlDgaMXFYOiIPxRf8KLve0/DXM=
580-
github.com/operator-framework/operator-registry v1.13.3/go.mod h1:YhnIzOVjRU2ZwZtzt+fjcjW8ujJaSFynBEu7QVKaSdU=
579+
github.com/operator-framework/operator-registry v1.13.6 h1:h/dIjQQS7uneQNRifrSz7h0xg4Xyjg6C9f6XZofbMPg=
580+
github.com/operator-framework/operator-registry v1.13.6/go.mod h1:YhnIzOVjRU2ZwZtzt+fjcjW8ujJaSFynBEu7QVKaSdU=
581581
github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k=
582582
github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
583583
github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=

pkg/controller/registry/resolver/cache.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,9 @@ type OperatorPredicate func(*Operator) bool
392392
func (s *CatalogSnapshot) Find(p ...OperatorPredicate) []*Operator {
393393
s.m.RLock()
394394
defer s.m.RUnlock()
395+
if len(p) > 0 {
396+
p = append(p, WithoutDeprecatedProperty())
397+
}
395398
return Filter(s.operators, p...)
396399
}
397400

@@ -437,12 +440,42 @@ func WithPackage(pkg string) OperatorPredicate {
437440
}
438441
}
439442

443+
func WithoutDeprecatedProperty() OperatorPredicate {
444+
return func(o *Operator) bool {
445+
for _, p := range o.bundle.GetProperties() {
446+
if p.GetType() == string(opregistry.DeprecatedType) {
447+
return false
448+
}
449+
}
450+
return true
451+
}
452+
}
453+
440454
func WithVersionInRange(r semver.Range) OperatorPredicate {
441455
return func(o *Operator) bool {
442456
return o.version != nil && r(*o.version)
443457
}
444458
}
445459

460+
func WithLabel(label string) OperatorPredicate {
461+
return func(o *Operator) bool {
462+
for _, p := range o.Properties() {
463+
if p.Type != opregistry.LabelType {
464+
continue
465+
}
466+
var prop opregistry.LabelProperty
467+
err := json.Unmarshal([]byte(p.Value), &prop)
468+
if err != nil {
469+
continue
470+
}
471+
if prop.Label == label {
472+
return true
473+
}
474+
}
475+
return false
476+
}
477+
}
478+
446479
func ProvidingAPI(api opregistry.APIKey) OperatorPredicate {
447480
return func(o *Operator) bool {
448481
for _, p := range o.Properties() {

pkg/controller/registry/resolver/cache_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ func TestStripPluralRequiredAndProvidedAPIKeys(t *testing.T) {
317317
Kind: "K",
318318
Plural: "ks",
319319
}: {},
320-
}, nil),
320+
}, nil, false),
321321
Dependencies: apiSetToDependencies(map[opregistry.APIKey]struct{}{
322322
{
323323
Group: "g2",

pkg/controller/registry/resolver/operators.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,7 @@ func PredicateForDependency(dependency *api.Dependency) (OperatorPredicate, erro
443443
var predicates = map[string]func(string) (OperatorPredicate, error){
444444
opregistry.GVKType: predicateForGVKDependency,
445445
opregistry.PackageType: predicateForPackageDependency,
446+
opregistry.LabelType: predicateForLabelDependency,
446447
}
447448

448449
func predicateForGVKDependency(value string) (OperatorPredicate, error) {
@@ -470,6 +471,15 @@ func predicateForPackageDependency(value string) (OperatorPredicate, error) {
470471
return And(WithPackage(pkg.PackageName), WithVersionInRange(ver)), nil
471472
}
472473

474+
func predicateForLabelDependency(value string) (OperatorPredicate, error) {
475+
var label opregistry.LabelDependency
476+
if err := json.Unmarshal([]byte(value), &label); err != nil {
477+
return nil, err
478+
}
479+
480+
return WithLabel(label.Label), nil
481+
}
482+
473483
func apisToDependencies(apis APISet) (out []*api.Dependency, err error) {
474484
if len(apis) == 0 {
475485
return

pkg/controller/registry/resolver/resolver.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,7 @@ func (r *SatResolver) getBundleInstallables(catalog registry.CatalogKey, predica
298298
errs = append(errs, err)
299299
continue
300300
}
301+
301302
for _, d := range dependencyPredicates {
302303
// errors ignored; this will build an empty/unsatisfiable dependency if no candidates are found
303304
candidateBundles, _ := AtLeast(1, namespacedCache.FindPreferred(&bundle.sourceInfo.Catalog, d))

pkg/controller/registry/resolver/resolver_test.go

Lines changed: 285 additions & 129 deletions
Large diffs are not rendered by default.

pkg/controller/registry/resolver/util_test.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ func apiSetToDependencies(crds, apis APISet) (out []*api.Dependency) {
215215
return
216216
}
217217

218-
func apiSetToProperties(crds, apis APISet) (out []*api.Property) {
218+
func apiSetToProperties(crds, apis APISet, deprecated bool) (out []*api.Property) {
219219
out = make([]*api.Property, 0)
220220
for a := range crds {
221221
val, err := json.Marshal(opregistry.GVKProperty{
@@ -245,6 +245,16 @@ func apiSetToProperties(crds, apis APISet) (out []*api.Property) {
245245
Value: string(val),
246246
})
247247
}
248+
if deprecated {
249+
val, err := json.Marshal(opregistry.DeprecatedProperty{})
250+
if err != nil {
251+
panic(err)
252+
}
253+
out = append(out, &api.Property{
254+
Type: opregistry.DeprecatedType,
255+
Value: string(val),
256+
})
257+
}
248258
if len(out) == 0 {
249259
return nil
250260
}
@@ -297,7 +307,7 @@ func bundle(name, pkg, channel, replaces string, providedCRDs, requiredCRDs, pro
297307
RequiredApis: apiSetToGVK(requiredCRDs, requiredAPIServices),
298308
Replaces: replaces,
299309
Dependencies: apiSetToDependencies(requiredCRDs, requiredAPIServices),
300-
Properties: apiSetToProperties(providedCRDs, providedAPIServices),
310+
Properties: apiSetToProperties(providedCRDs, providedAPIServices, false),
301311
}
302312
for _, f := range opts {
303313
f(b)

test/e2e/installplan_e2e_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
"github.com/operator-framework/operator-lifecycle-manager/test/e2e/ctx"
87
"strings"
98
"sync"
109
"time"
1110

11+
"github.com/operator-framework/operator-lifecycle-manager/test/e2e/ctx"
12+
1213
"github.com/blang/semver"
1314
. "github.com/onsi/ginkgo"
1415
"github.com/onsi/ginkgo/extensions/table"

vendor/github.com/operator-framework/operator-registry/pkg/lib/bundle/generate.go

Lines changed: 2 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/operator-framework/operator-registry/pkg/lib/bundle/validate.go

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/operator-framework/operator-registry/pkg/registry/interface.go

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/operator-framework/operator-registry/pkg/registry/types.go

Lines changed: 43 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)