Skip to content

Commit bfc2f94

Browse files
Merge pull request #834 from ecordell/semver-range
Support semver ranges of versions to skip in the head of a channel
2 parents 8ee9de6 + 96868b8 commit bfc2f94

Some content is hidden

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

45 files changed

+2003
-89
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ codegen:
130130
cp scripts/generate_internal_groups.sh vendor/k8s.io/code-generator/generate_internal_groups.sh
131131
mkdir -p vendor/k8s.io/code-generator/hack
132132
cp boilerplate.go.txt vendor/k8s.io/code-generator/hack/boilerplate.go.txt
133-
go run vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go --logtostderr -i ./vendor/k8s.io/apimachinery/pkg/runtime,./vendor/k8s.io/apimachinery/pkg/apis/meta/v1,./vendor/k8s.io/apimachinery/pkg/version,./pkg/package-server/apis/operators/v1,./pkg/package-server/apis/apps/v1alpha1,./pkg/api/apis/operators/v1alpha1 -p $(PKG)/pkg/package-server/apis/openapi -O zz_generated.openapi -h boilerplate.go.txt -r /dev/null
133+
go run vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go --logtostderr -i ./vendor/k8s.io/apimachinery/pkg/runtime,./vendor/k8s.io/apimachinery/pkg/apis/meta/v1,./vendor/k8s.io/apimachinery/pkg/version,./pkg/package-server/apis/operators/v1,./pkg/package-server/apis/apps/v1alpha1,./pkg/api/apis/operators/v1alpha1,./pkg/lib/version -p $(PKG)/pkg/package-server/apis/openapi -O zz_generated.openapi -h boilerplate.go.txt -r /dev/null
134134
$(CODEGEN) all $(PKG)/pkg/api/client $(PKG)/pkg/api/apis "operators:v1alpha1,v1"
135135
$(CODEGEN_INTERNAL) all $(PKG)/pkg/package-server/client $(PKG)/pkg/package-server/apis $(PKG)/pkg/package-server/apis "operators:v1 apps:v1alpha1"
136136

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.12
44

55
require (
66
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect
7+
github.com/blang/semver v3.5.1+incompatible
78
github.com/coreos/etcd v3.3.12+incompatible // indirect
89
github.com/coreos/go-semver v0.2.0
910
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e // indirect
@@ -38,6 +39,7 @@ require (
3839
github.com/sirupsen/logrus v1.4.1
3940
github.com/spf13/cobra v0.0.3
4041
github.com/stretchr/testify v1.2.2
42+
go.uber.org/zap v1.10.0 // indirect
4143
golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5 // indirect
4244
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db // indirect
4345
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf h1:eg0MeVzs
1717
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
1818
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0=
1919
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
20+
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
21+
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
2022
github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=
2123
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
2224
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
@@ -266,6 +268,8 @@ go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=
266268
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
267269
go.uber.org/zap v1.9.1 h1:XCJQEf3W6eZaVwhRBof6ImoYGJSITeKWsyeh3HFu/5o=
268270
go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
271+
go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM=
272+
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
269273
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
270274
golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
271275
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=

pkg/api/apis/operators/v1alpha1/clusterserviceversion_types.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ import (
77
"fmt"
88
"sort"
99

10-
"github.com/coreos/go-semver/semver"
1110
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
11+
12+
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/version"
1213
)
1314

1415
const (
@@ -136,7 +137,7 @@ type APIServiceDefinitions struct {
136137
// that can manage apps for a given version.
137138
type ClusterServiceVersionSpec struct {
138139
InstallStrategy NamedInstallStrategy `json:"install"`
139-
Version semver.Version `json:"version,omitempty"`
140+
Version version.OperatorVersion `json:"version,omitempty"`
140141
Maturity string `json:"maturity,omitempty"`
141142
CustomResourceDefinitions CustomResourceDefinitions `json:"customresourcedefinitions,omitempty"`
142143
APIServiceDefinitions APIServiceDefinitions `json:"apiservicedefinitions,omitempty"`

pkg/api/apis/operators/v1alpha1/zz_generated.deepcopy.go

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

pkg/controller/operators/catalog/operator.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,7 @@ func (o *Operator) ensureSubscriptionCSVState(logger *logrus.Entry, sub *v1alpha
779779
return sub, false, nil
780780
}
781781

782-
_, err := o.client.OperatorsV1alpha1().ClusterServiceVersions(sub.GetNamespace()).Get(sub.Status.CurrentCSV, metav1.GetOptions{})
782+
csv, err := o.client.OperatorsV1alpha1().ClusterServiceVersions(sub.GetNamespace()).Get(sub.Status.CurrentCSV, metav1.GetOptions{})
783783
out := sub.DeepCopy()
784784
if err != nil {
785785
logger.WithError(err).WithField("currentCSV", sub.Status.CurrentCSV).Debug("error fetching csv listed in subscription status")
@@ -789,7 +789,7 @@ func (o *Operator) ensureSubscriptionCSVState(logger *logrus.Entry, sub *v1alpha
789789
if err := querier.Queryable(); err != nil {
790790
return nil, false, err
791791
}
792-
bundle, _, _ := querier.FindReplacement(sub.Status.CurrentCSV, sub.Spec.Package, sub.Spec.Channel, resolver.CatalogKey{sub.Spec.CatalogSource, sub.Spec.CatalogSourceNamespace})
792+
bundle, _, _ := querier.FindReplacement(&csv.Spec.Version.Version, sub.Status.CurrentCSV, sub.Spec.Package, sub.Spec.Channel, resolver.CatalogKey{sub.Spec.CatalogSource, sub.Spec.CatalogSourceNamespace})
793793
if bundle != nil {
794794
out.Status.State = v1alpha1.SubscriptionStateUpgradeAvailable
795795
} else {

pkg/controller/operators/olm/operator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -752,7 +752,7 @@ func (a *Operator) transitionCSVState(in v1alpha1.ClusterServiceVersion) (out *v
752752
return
753753
}
754754

755-
operatorSurface, err := resolver.NewOperatorFromCSV(out)
755+
operatorSurface, err := resolver.NewOperatorFromV1Alpha1CSV(out)
756756
if err != nil {
757757
// TODO: Add failure status to CSV
758758
syncError = err

pkg/controller/operators/olm/operatorgroup.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func (a *Operator) providedAPIsFromCSVs(group *v1.OperatorGroup, logger *logrus.
171171
// TODO: Throw out CSVs that aren't members of the group due to group related failures?
172172

173173
// Union the providedAPIsFromCSVs from existing members of the group
174-
operatorSurface, err := resolver.NewOperatorFromCSV(csv)
174+
operatorSurface, err := resolver.NewOperatorFromV1Alpha1CSV(csv)
175175
if err != nil {
176176
logger.WithError(err).Warn("could not create OperatorSurface from csv")
177177
continue
@@ -763,7 +763,7 @@ func (a *Operator) findCSVsThatProvideAnyOf(provide resolver.APISet) ([]*v1alpha
763763
continue
764764
}
765765

766-
operatorSurface, err := resolver.NewOperatorFromCSV(csv)
766+
operatorSurface, err := resolver.NewOperatorFromV1Alpha1CSV(csv)
767767
if err != nil {
768768
continue
769769
}

pkg/controller/registry/resolver/evolver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func (e *NamespaceGenerationEvolver) checkForUpdates() error {
5757
continue
5858
}
5959

60-
bundle, key, err := e.querier.FindReplacement(op.Identifier(), op.SourceInfo().Package, op.SourceInfo().Channel, op.SourceInfo().Catalog)
60+
bundle, key, err := e.querier.FindReplacement(op.Version(), op.Identifier(), op.SourceInfo().Package, op.SourceInfo().Channel, op.SourceInfo().Catalog)
6161
if err != nil || bundle == nil {
6262
continue
6363
}

pkg/controller/registry/resolver/generation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func NewGenerationFromCluster(csvs []*v1alpha1.ClusterServiceVersion, subs []*v1
4747
}
4848
}
4949
for _, csv := range csvs {
50-
op, err := NewOperatorFromCSV(csv)
50+
op, err := NewOperatorFromV1Alpha1CSV(csv)
5151
if err != nil {
5252
return nil, err
5353
}

0 commit comments

Comments
 (0)