Skip to content

Commit 0d602b3

Browse files
committed
feat(packageserver): support apps.redhat.com and operators.coreos.com
1 parent 69b2796 commit 0d602b3

30 files changed

+730
-171
lines changed

Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ PKG := github.com/operator-framework/operator-lifecycle-manager
77
MOD_FLAGS := $(shell (go version | grep -q -E "1\.(11|12)") && echo -mod=vendor)
88
CMDS := $(addprefix bin/, $(shell go list $(MOD_FLAGS) ./cmd/... | xargs -I{} basename {}))
99
CODEGEN := ./vendor/k8s.io/code-generator/generate_groups.sh
10+
CODEGEN_INTERNAL := ./vendor/k8s.io/code-generator/generate_internal_groups.sh
1011
MOCKGEN := ./scripts/generate_mocks.sh
1112
counterfeiter := $(GOBIN)/counterfeiter
1213
mockgen := $(GOBIN)/mockgen
@@ -125,11 +126,12 @@ gen-ci: $(CI)
125126
# use container-codegen
126127
codegen:
127128
cp scripts/generate_groups.sh vendor/k8s.io/code-generator/generate_groups.sh
129+
cp scripts/generate_internal_groups.sh vendor/k8s.io/code-generator/generate_internal_groups.sh
128130
mkdir -p vendor/k8s.io/code-generator/hack
129131
cp boilerplate.go.txt vendor/k8s.io/code-generator/hack/boilerplate.go.txt
130-
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/packagemanifest/v1,./pkg/api/apis/operators/v1alpha1 -p $(PKG)/pkg/package-server/apis/openapi -O zz_generated.openapi -h boilerplate.go.txt -r /dev/null
132+
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
131133
$(CODEGEN) all $(PKG)/pkg/api/client $(PKG)/pkg/api/apis "operators:v1alpha1,v1"
132-
$(CODEGEN) all $(PKG)/pkg/package-server/client $(PKG)/pkg/package-server/apis "packagemanifest:v1"
134+
$(CODEGEN_INTERNAL) all $(PKG)/pkg/package-server/client $(PKG)/pkg/package-server/apis $(PKG)/pkg/package-server/apis "operators:v1 apps:v1alpha1"
133135

134136
container-codegen:
135137
docker build -t olm:codegen -f codegen.Dockerfile .

codegen.Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ COPY Makefile Makefile
44
COPY pkg pkg
55
COPY vendor vendor
66
COPY scripts/generate_groups.sh scripts/generate_groups.sh
7+
COPY scripts/generate_internal_groups.sh scripts/generate_internal_groups.sh
78
COPY boilerplate.go.txt boilerplate.go.txt
89
RUN make codegen

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ func (csv ClusterServiceVersion) GetRequiredAPIServiceDescriptions() []APIServic
474474
func (csv ClusterServiceVersion) GetOwnedAPIServiceDescriptions() []APIServiceDescription {
475475
set := make(map[string]APIServiceDescription)
476476
for _, owned := range csv.Spec.APIServiceDefinitions.Owned {
477-
name := fmt.Sprintf("%s.%s", owned.Version, owned.Group)
477+
name := owned.GetName()
478478
set[name] = owned
479479
}
480480

pkg/package-server/apis/apps/doc.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// Package apps is the internal version of the API.
2+
package apps
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package install
2+
3+
import (
4+
"k8s.io/apimachinery/pkg/runtime"
5+
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
6+
7+
"github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/apps"
8+
"github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/apps/v1alpha1"
9+
)
10+
11+
// Install registers API groups and adds types to a scheme.
12+
func Install(scheme *runtime.Scheme) {
13+
utilruntime.Must(apps.AddToScheme(scheme))
14+
utilruntime.Must(v1alpha1.AddToScheme(scheme))
15+
utilruntime.Must(scheme.SetVersionPriority(v1alpha1.SchemeGroupVersion))
16+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package apps
2+
3+
import (
4+
"k8s.io/apimachinery/pkg/runtime"
5+
"k8s.io/apimachinery/pkg/runtime/schema"
6+
7+
"github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators"
8+
)
9+
10+
var (
11+
Group = "packages.apps.redhat.com"
12+
13+
// SchemeGroupVersion is the GroupVersion used to register this object
14+
SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: runtime.APIVersionInternal}
15+
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
16+
AddToScheme = SchemeBuilder.AddToScheme
17+
)
18+
19+
// Kind takes an unqualified kind and returns the group-qualified kind.
20+
func Kind(kind string) schema.GroupKind {
21+
return SchemeGroupVersion.WithKind(kind).GroupKind()
22+
}
23+
24+
// Resource takes an unqualified resource and returns the group-qualified resource.
25+
func Resource(resource string) schema.GroupResource {
26+
return SchemeGroupVersion.WithResource(resource).GroupResource()
27+
}
28+
29+
// addKnownTypes adds the set of types defined in this package to the supplied scheme.
30+
func addKnownTypes(scheme *runtime.Scheme) error {
31+
// Add types for each GroupVersion
32+
scheme.AddKnownTypes(SchemeGroupVersion,
33+
&operators.PackageManifest{},
34+
&operators.PackageManifestList{},
35+
)
36+
37+
return nil
38+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// +k8s:deepcopy-gen=package
2+
// +k8s:conversion-gen=github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators
3+
// +k8s:defaulter-gen=TypeMeta
4+
// +k8s:openapi-gen=true
5+
6+
// +groupName=apps.redhat.com
7+
package v1alpha1

pkg/package-server/apis/packagemanifest/v1/packagemanifest_types.go renamed to pkg/package-server/apis/apps/v1alpha1/packagemanifest_types.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
package v1
1+
package v1alpha1
22

33
import (
44
"github.com/coreos/go-semver/semver"
5-
operatorv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators/v1alpha1"
65
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
6+
7+
operatorv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators/v1alpha1"
78
)
89

910
// PackageManifestList is a list of PackageManifest objects.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package v1alpha1
2+
3+
import (
4+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
5+
"k8s.io/apimachinery/pkg/runtime"
6+
"k8s.io/apimachinery/pkg/runtime/schema"
7+
)
8+
9+
const (
10+
Group = "packages.apps.redhat.com"
11+
Version = "v1alpha1"
12+
PackageManifestKind = "PackageManifest"
13+
PackageManifestListKind = "PackageManifestList"
14+
)
15+
16+
// SchemeGroupVersion is the group version used to register these objects.
17+
var SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}
18+
19+
var (
20+
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
21+
localSchemeBuilder = &SchemeBuilder
22+
AddToScheme = localSchemeBuilder.AddToScheme
23+
)
24+
25+
// Resource takes an unqualified resource and returns a Group-qualified GroupResource.
26+
func Resource(resource string) schema.GroupResource {
27+
return SchemeGroupVersion.WithResource(resource).GroupResource()
28+
}
29+
30+
// addKnownTypes adds the set of types defined in this package to the supplied scheme.
31+
func addKnownTypes(scheme *runtime.Scheme) error {
32+
scheme.AddKnownTypeWithName(
33+
SchemeGroupVersion.WithKind(PackageManifestKind),
34+
&PackageManifest{},
35+
)
36+
scheme.AddKnownTypeWithName(
37+
SchemeGroupVersion.WithKind(PackageManifestListKind),
38+
&PackageManifestList{},
39+
)
40+
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
41+
42+
return nil
43+
}

pkg/package-server/apis/doc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package apis

0 commit comments

Comments
 (0)