Skip to content

Commit 2412728

Browse files
Merge pull request #877 from njhale/internal-types
Add Internal types for operators.coreos.com API group
2 parents 41821c7 + 4cb8fc3 commit 2412728

Some content is hidden

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

65 files changed

+7542
-146
lines changed

Makefile

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ SHELL := /bin/bash
66
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 {}))
9-
CODEGEN := ./vendor/k8s.io/code-generator/generate_groups.sh
109
CODEGEN_INTERNAL := ./vendor/k8s.io/code-generator/generate_internal_groups.sh
1110
MOCKGEN := ./scripts/generate_mocks.sh
1211
# counterfeiter := $(GOBIN)/counterfeiter
@@ -127,12 +126,11 @@ gen-ci: $(CI)
127126
# Must be run in gopath: https://github.com/kubernetes/kubernetes/issues/67566
128127
# use container-codegen
129128
codegen:
130-
cp scripts/generate_groups.sh vendor/k8s.io/code-generator/generate_groups.sh
131129
cp scripts/generate_internal_groups.sh vendor/k8s.io/code-generator/generate_internal_groups.sh
132130
mkdir -p vendor/k8s.io/code-generator/hack
133131
cp boilerplate.go.txt vendor/k8s.io/code-generator/hack/boilerplate.go.txt
134132
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
135-
$(CODEGEN) all $(PKG)/pkg/api/client $(PKG)/pkg/api/apis "operators:v1alpha1,v1"
133+
$(CODEGEN_INTERNAL) deepcopy,conversion,client,lister,informer $(PKG)/pkg/api/client $(PKG)/pkg/api/apis $(PKG)/pkg/api/apis "operators:v1alpha1,v1"
136134
$(CODEGEN_INTERNAL) all $(PKG)/pkg/package-server/client $(PKG)/pkg/package-server/apis $(PKG)/pkg/package-server/apis "operators:v1 apps:v1alpha1"
137135

138136
container-codegen:

codegen.Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ WORKDIR /go/src/github.com/operator-framework/operator-lifecycle-manager
33
COPY Makefile Makefile
44
COPY pkg pkg
55
COPY vendor vendor
6-
COPY scripts/generate_groups.sh scripts/generate_groups.sh
76
COPY scripts/generate_internal_groups.sh scripts/generate_internal_groups.sh
87
COPY boilerplate.go.txt boilerplate.go.txt
98
RUN make codegen
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
package operators
2+
3+
import (
4+
"fmt"
5+
6+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
7+
"k8s.io/apimachinery/pkg/types"
8+
)
9+
10+
// CatalogSourceKind is the PascalCase name of a CatalogSource's kind.
11+
const CatalogSourceKind = "CatalogSource"
12+
13+
// SourceType indicates the type of backing store for a CatalogSource
14+
type SourceType string
15+
16+
const (
17+
// SourceTypeInternal (deprecated) specifies a CatalogSource of type SourceTypeConfigmap
18+
SourceTypeInternal SourceType = "internal"
19+
20+
// SourceTypeConfigmap specifies a CatalogSource that generates a configmap-server registry
21+
SourceTypeConfigmap SourceType = "configmap"
22+
23+
// SourceTypeGrpc specifies a CatalogSource that can use an operator registry image to generate a
24+
// registry-server or connect to a pre-existing registry at an address.
25+
SourceTypeGrpc SourceType = "grpc"
26+
)
27+
28+
type CatalogSourceSpec struct {
29+
// SourceType is the type of source
30+
SourceType SourceType
31+
32+
// ConfigMap is the name of the ConfigMap to be used to back a configmap-server registry.
33+
// Only used when SourceType = SourceTypeConfigmap or SourceTypeInternal.
34+
// +Optional
35+
ConfigMap string
36+
37+
// Address is a host that OLM can use to connect to a pre-existing registry.
38+
// Format: <registry-host or ip>:<port>
39+
// Only used when SourceType = SourceTypeGrpc.
40+
// Ignored when the Image field is set.
41+
// +Optional
42+
Address string
43+
44+
// Image is an operator-registry container image to instantiate a registry-server with.
45+
// Only used when SourceType = SourceTypeGrpc.
46+
// If present, the address field is ignored.
47+
// +Optional
48+
Image string
49+
50+
// Secrets represent set of secrets that can be used to access the contents of the catalog.
51+
// It is best to keep this list small, since each will need to be tried for every catalog entry.
52+
// +Optional
53+
Secrets []string
54+
55+
// Metadata
56+
DisplayName string
57+
Description string
58+
Publisher string
59+
Icon Icon
60+
}
61+
62+
type RegistryServiceStatus struct {
63+
Protocol string
64+
ServiceName string
65+
ServiceNamespace string
66+
Port string
67+
CreatedAt metav1.Time
68+
}
69+
70+
func (s *RegistryServiceStatus) Address() string {
71+
return fmt.Sprintf("%s.%s.svc.cluster.local:%s", s.ServiceName, s.ServiceNamespace, s.Port)
72+
}
73+
74+
type CatalogSourceStatus struct {
75+
ConfigMapResource *ConfigMapResourceReference
76+
RegistryServiceStatus *RegistryServiceStatus
77+
LastSync metav1.Time
78+
}
79+
80+
type ConfigMapResourceReference struct {
81+
Name string
82+
Namespace string
83+
84+
UID types.UID
85+
ResourceVersion string
86+
}
87+
88+
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
89+
// +genclient
90+
91+
// CatalogSource is a repository of CSVs, CRDs, and operator packages.
92+
type CatalogSource struct {
93+
metav1.TypeMeta
94+
metav1.ObjectMeta
95+
96+
Spec CatalogSourceSpec
97+
Status CatalogSourceStatus
98+
}
99+
100+
func (c *CatalogSource) Address() string {
101+
if c.Spec.Address != "" {
102+
return c.Spec.Address
103+
}
104+
return c.Status.RegistryServiceStatus.Address()
105+
}
106+
107+
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
108+
109+
// CatalogSourceList is a list of CatalogSource resources.
110+
type CatalogSourceList struct {
111+
metav1.TypeMeta
112+
metav1.ListMeta
113+
114+
Items []CatalogSource
115+
}

0 commit comments

Comments
 (0)