Skip to content

Commit c64f52f

Browse files
Merge pull request #1464 from ecordell/ofapi2
Switch api definitions to operator-framework/api
2 parents 573194a + cd9d8f8 commit c64f52f

File tree

2,009 files changed

+133101
-135472
lines changed

Some content is hidden

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

2,009 files changed

+133101
-135472
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM openshift/origin-release:golang-1.12 as builder
1+
FROM openshift/origin-release:golang-1.13 as builder
22
RUN yum update -y
33
RUN yum install -y make git
44

Makefile

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ undefine GOFLAGS
99
endif
1010

1111
SHELL := /bin/bash
12-
PKG := github.com/operator-framework/operator-lifecycle-manager
12+
ORG := github.com/operator-framework
13+
PKG := $(ORG)/operator-lifecycle-manager
14+
OS := $(shell go env GOOS)
15+
ARCH := $(shell go env GOARCH)
1316
MOD_FLAGS := $(shell (go version | grep -q -E "1\.1[1-9]") && echo -mod=vendor)
1417
CMDS := $(shell go list $(MOD_FLAGS) ./cmd/...)
1518
TCMDS := $(shell go list $(MOD_FLAGS) ./test/e2e/...)
@@ -39,8 +42,16 @@ all: test build
3942

4043
test: clean cover.out
4144

42-
unit:
43-
go test $(MOD_FLAGS) $(SPECIFIC_UNIT_TEST) -v -race -count=1 ./pkg/...
45+
unit: kubebuilder
46+
$(KUBEBUILDER_ENV) go test $(MOD_FLAGS) $(SPECIFIC_UNIT_TEST) -v -race -count=1 ./pkg/...
47+
48+
# Install kubebuilder if not found
49+
KUBEBUILDER_DIR := /tmp/kubebuilder_2.3.1_$(OS)_$(ARCH)/bin
50+
kubebuilder:
51+
ifeq (, $(shell which kubebuilder))
52+
[ ! -d "$(KUBEBUILDER_DIR)" ] && (curl -sL https://go.kubebuilder.io/dl/2.3.1/$(OS)/$(ARCH) | tar -xz -C /tmp/)
53+
KUBEBUILDER_ENV := KUBEBUILDER_ASSETS=$(KUBEBUILDER_DIR)
54+
endif
4455

4556
schema-check:
4657

@@ -117,7 +128,7 @@ setup-bare: clean e2e.namespace
117128

118129
# e2e test exculding the rh-operators directory which tests rh-operators and their metric cardinality.
119130
e2e:
120-
go test -v $(MOD_FLAGS) -failfast -timeout 70m ./test/e2e/... -namespace=openshift-operators -kubeconfig=${KUBECONFIG} -olmNamespace=openshift-operator-lifecycle-manager -dummyImage=bitnami/nginx:latest
131+
go test -v $(MOD_FLAGS) -failfast -timeout 150m ./test/e2e/... -namespace=openshift-operators -kubeconfig=${KUBECONFIG} -olmNamespace=openshift-operator-lifecycle-manager -dummyImage=bitnami/nginx:latest
121132

122133
e2e-local: build-linux build-wait build-util-linux
123134
. ./scripts/build_local.sh
@@ -154,17 +165,13 @@ clean:
154165
@rm -rf e2e.namespace
155166

156167

157-
# Generate manifests for CRDs
168+
# Copy CRD manifests
158169
manifests: vendor
159-
$(CONTROLLER_GEN) schemapatch:manifests=./deploy/chart/crds paths=./pkg/api/apis/operators/... output:dir=./deploy/chart/crds
160-
161-
$(YQ_INTERNAL) w --inplace deploy/chart/crds/0000_50_olm_03-clusterserviceversion.crd.yaml spec.validation.openAPIV3Schema.properties.spec.properties.install.properties.spec.properties.deployments.items.properties.spec.properties.template.properties.metadata.x-kubernetes-preserve-unknown-fields true
170+
./scripts/copy_crds.sh
162171

163172
# Generate deepcopy, conversion, clients, listers, and informers
164173
codegen:
165-
# Deepcopy
166-
$(CONTROLLER_GEN) object:headerFile=./boilerplate.go.txt paths=./pkg/api/apis/operators/...i
167-
# Conversion, clients, listers, and informers
174+
# Clients, listers, and informers
168175
$(CODEGEN)
169176

170177
# Generate mock types.
@@ -182,11 +189,10 @@ verify-mockgen: mockgen diff
182189
verify-manifests: manifests diff
183190
verify: verify-codegen verify-mockgen verify-manifests
184191

185-
186192
# before running release, bump the version in OLM_VERSION and push to master,
187193
# then tag those builds in quay with the version in OLM_VERSION
188194
release: ver=$(shell cat OLM_VERSION)
189-
release:
195+
release: manifests
190196
docker pull quay.io/operator-framework/olm:$(ver)
191197
$(MAKE) target=upstream ver=$(ver) quickstart=true package
192198
$(MAKE) target=ocp ver=$(ver) package
@@ -220,3 +226,4 @@ endif
220226
run-console-local:
221227
@echo Running script to run the OLM console locally:
222228
. ./scripts/run_console_local.sh
229+

cmd/olm/cleanup.go

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package main
22

33
import (
4+
"context"
45
"time"
56

6-
"k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset"
7-
87
"github.com/sirupsen/logrus"
98
rbacv1 "k8s.io/api/rbac/v1"
109
"k8s.io/apimachinery/pkg/api/errors"
@@ -14,8 +13,9 @@ import (
1413
"k8s.io/apimachinery/pkg/util/wait"
1514
"k8s.io/client-go/util/retry"
1615
apiregv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
16+
"k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset"
1717

18-
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators/v1alpha1"
18+
"github.com/operator-framework/api/pkg/operators/v1alpha1"
1919
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
2020
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm"
2121
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorclient"
@@ -88,53 +88,53 @@ func waitForDelete(checkResource checkResourceFunc, deleteResource deleteResourc
8888

8989
func checkClusterServiceVersion(crc versioned.Interface, name string) checkResourceFunc {
9090
return func() error {
91-
_, err := crc.OperatorsV1alpha1().ClusterServiceVersions(*namespace).Get(name, metav1.GetOptions{})
91+
_, err := crc.OperatorsV1alpha1().ClusterServiceVersions(*namespace).Get(context.TODO(), name, metav1.GetOptions{})
9292
return err
9393
}
9494
}
9595

9696
func deleteClusterServiceVersion(crc versioned.Interface, name string) deleteResourceFunc {
9797
return func() error {
98-
return crc.OperatorsV1alpha1().ClusterServiceVersions(*namespace).Delete(name, metav1.NewDeleteOptions(0))
98+
return crc.OperatorsV1alpha1().ClusterServiceVersions(*namespace).Delete(context.TODO(), name, *metav1.NewDeleteOptions(0))
9999
}
100100
}
101101

102102
func checkSubscription(crc versioned.Interface, name string) checkResourceFunc {
103103
return func() error {
104-
_, err := crc.OperatorsV1alpha1().Subscriptions(*namespace).Get(name, metav1.GetOptions{})
104+
_, err := crc.OperatorsV1alpha1().Subscriptions(*namespace).Get(context.TODO(), name, metav1.GetOptions{})
105105
return err
106106
}
107107
}
108108

109109
func deleteSubscription(crc versioned.Interface, name string) deleteResourceFunc {
110110
return func() error {
111-
return crc.OperatorsV1alpha1().Subscriptions(*namespace).Delete(name, metav1.NewDeleteOptions(0))
111+
return crc.OperatorsV1alpha1().Subscriptions(*namespace).Delete(context.TODO(), name, *metav1.NewDeleteOptions(0))
112112
}
113113
}
114114

115115
func checkConfigMap(c operatorclient.ClientInterface, name string) checkResourceFunc {
116116
return func() error {
117-
_, err := c.KubernetesInterface().CoreV1().ConfigMaps(*namespace).Get(name, metav1.GetOptions{})
117+
_, err := c.KubernetesInterface().CoreV1().ConfigMaps(*namespace).Get(context.TODO(), name, metav1.GetOptions{})
118118
return err
119119
}
120120
}
121121

122122
func deleteConfigMap(c operatorclient.ClientInterface, name string) deleteResourceFunc {
123123
return func() error {
124-
return c.KubernetesInterface().CoreV1().ConfigMaps(*namespace).Delete(name, metav1.NewDeleteOptions(0))
124+
return c.KubernetesInterface().CoreV1().ConfigMaps(*namespace).Delete(context.TODO(), name, *metav1.NewDeleteOptions(0))
125125
}
126126
}
127127

128128
func checkCatalogSource(crc versioned.Interface, name string) checkResourceFunc {
129129
return func() error {
130-
_, err := crc.OperatorsV1alpha1().CatalogSources(*namespace).Get(name, metav1.GetOptions{})
130+
_, err := crc.OperatorsV1alpha1().CatalogSources(*namespace).Get(context.TODO(), name, metav1.GetOptions{})
131131
return err
132132
}
133133
}
134134

135135
func deleteCatalogSource(crc versioned.Interface, name string) deleteResourceFunc {
136136
return func() error {
137-
return crc.OperatorsV1alpha1().CatalogSources(*namespace).Delete(name, metav1.NewDeleteOptions(0))
137+
return crc.OperatorsV1alpha1().CatalogSources(*namespace).Delete(context.TODO(), name, *metav1.NewDeleteOptions(0))
138138
}
139139
}
140140

@@ -145,7 +145,7 @@ func deleteCatalogSource(crc versioned.Interface, name string) deleteResourceFun
145145
// OwnerReference, and in cases where OLM is updated, they must be removed to prevent erroneous deletion of OLM's self-hosted components.
146146
func cleanupOwnerReferences(c operatorclient.ClientInterface, crc versioned.Interface) error {
147147
listOpts := metav1.ListOptions{}
148-
csvs, err := crc.OperatorsV1alpha1().ClusterServiceVersions(metav1.NamespaceAll).List(listOpts)
148+
csvs, err := crc.OperatorsV1alpha1().ClusterServiceVersions(metav1.NamespaceAll).List(context.TODO(), listOpts)
149149
if err != nil {
150150
return err
151151
}
@@ -162,26 +162,26 @@ func cleanupOwnerReferences(c operatorclient.ClientInterface, crc versioned.Inte
162162
objs = append(objs, &obj)
163163
}
164164

165-
clusterRoles, _ := c.KubernetesInterface().RbacV1().ClusterRoles().List(listOpts)
165+
clusterRoles, _ := c.KubernetesInterface().RbacV1().ClusterRoles().List(context.TODO(), listOpts)
166166
for _, obj := range clusterRoles.Items {
167167
objs = append(objs, &obj)
168168
}
169169

170-
clusterRoleBindings, _ := c.KubernetesInterface().RbacV1().ClusterRoleBindings().List(listOpts)
170+
clusterRoleBindings, _ := c.KubernetesInterface().RbacV1().ClusterRoleBindings().List(context.TODO(), listOpts)
171171
for _, obj := range clusterRoleBindings.Items {
172172
objs = append(objs, &obj)
173173
}
174174

175-
roles, _ := c.KubernetesInterface().RbacV1().Roles(metav1.NamespaceAll).List(listOpts)
175+
roles, _ := c.KubernetesInterface().RbacV1().Roles(metav1.NamespaceAll).List(context.TODO(), listOpts)
176176
for _, obj := range roles.Items {
177177
objs = append(objs, &obj)
178178
}
179-
roleBindings, _ := c.KubernetesInterface().RbacV1().RoleBindings(metav1.NamespaceAll).List(listOpts)
179+
roleBindings, _ := c.KubernetesInterface().RbacV1().RoleBindings(metav1.NamespaceAll).List(context.TODO(), listOpts)
180180
for _, obj := range roleBindings.Items {
181181
objs = append(objs, &obj)
182182
}
183183

184-
apiServices, _ := c.ApiregistrationV1Interface().ApiregistrationV1().APIServices().List(listOpts)
184+
apiServices, _ := c.ApiregistrationV1Interface().ApiregistrationV1().APIServices().List(context.TODO(), listOpts)
185185
for _, obj := range apiServices.Items {
186186
objs = append(objs, &obj)
187187
}
@@ -198,32 +198,32 @@ func cleanupOwnerReferences(c operatorclient.ClientInterface, crc versioned.Inte
198198
switch v := obj.(type) {
199199
case *v1alpha1.ClusterServiceVersion:
200200
update = func() error {
201-
_, err := crc.OperatorsV1alpha1().ClusterServiceVersions(v.GetNamespace()).Update(v)
201+
_, err := crc.OperatorsV1alpha1().ClusterServiceVersions(v.GetNamespace()).Update(context.TODO(), v, metav1.UpdateOptions{})
202202
return err
203203
}
204204
case *rbacv1.ClusterRole:
205205
update = func() error {
206-
_, err = c.KubernetesInterface().RbacV1().ClusterRoles().Update(v)
206+
_, err = c.KubernetesInterface().RbacV1().ClusterRoles().Update(context.TODO(), v, metav1.UpdateOptions{})
207207
return err
208208
}
209209
case *rbacv1.ClusterRoleBinding:
210210
update = func() error {
211-
_, err = c.KubernetesInterface().RbacV1().ClusterRoleBindings().Update(v)
211+
_, err = c.KubernetesInterface().RbacV1().ClusterRoleBindings().Update(context.TODO(), v, metav1.UpdateOptions{})
212212
return err
213213
}
214214
case *rbacv1.Role:
215215
update = func() error {
216-
_, err = c.KubernetesInterface().RbacV1().Roles(v.GetNamespace()).Update(v)
216+
_, err = c.KubernetesInterface().RbacV1().Roles(v.GetNamespace()).Update(context.TODO(), v, metav1.UpdateOptions{})
217217
return err
218218
}
219219
case *rbacv1.RoleBinding:
220220
update = func() error {
221-
_, err = c.KubernetesInterface().RbacV1().RoleBindings(v.GetNamespace()).Update(v)
221+
_, err = c.KubernetesInterface().RbacV1().RoleBindings(v.GetNamespace()).Update(context.TODO(), v, metav1.UpdateOptions{})
222222
return err
223223
}
224224
case *apiregv1.APIService:
225225
update = func() error {
226-
_, err = c.ApiregistrationV1Interface().ApiregistrationV1().APIServices().Update(v)
226+
_, err = c.ApiregistrationV1Interface().ApiregistrationV1().APIServices().Update(context.TODO(), v, metav1.UpdateOptions{})
227227
return err
228228
}
229229
}
@@ -263,7 +263,7 @@ func crossNamespaceOwnerReferenceRemoval(kind string, uidNamespaces map[types.UI
263263
// ensureAPIServiceLabels checks the labels of existing APIService objects to ensure ownership is set correctly.
264264
// If the APIService label does not correspond to the expected packageserver owner the APIService labels are updated
265265
func ensureAPIServiceLabels(c clientset.Interface) error {
266-
apiService, err := c.ApiregistrationV1().APIServices().Get(olm.PackageserverName, metav1.GetOptions{})
266+
apiService, err := c.ApiregistrationV1().APIServices().Get(context.TODO(), olm.PackageserverName, metav1.GetOptions{})
267267
if err != nil && !k8serrors.IsNotFound(err) {
268268
logrus.WithField("apiService", "packageserver").Debugf("get error: %s", err)
269269
return err
@@ -280,7 +280,7 @@ func ensureAPIServiceLabels(c clientset.Interface) error {
280280
if apiService.Labels[ownerutil.OwnerKey] != ownerutil.OwnerPackageServer {
281281
apiService.Labels[ownerutil.OwnerKey] = ownerutil.OwnerPackageServer
282282
update := func() error {
283-
_, err := c.ApiregistrationV1().APIServices().Update(apiService)
283+
_, err := c.ApiregistrationV1().APIServices().Update(context.TODO(), apiService, metav1.UpdateOptions{})
284284
return err
285285
}
286286
if err := retry.RetryOnConflict(retry.DefaultBackoff, update); err != nil {

cmd/olm/cleanup_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"context"
45
"testing"
56

67
"github.com/stretchr/testify/require"
@@ -13,7 +14,7 @@ import (
1314
apiregv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
1415
apiregistrationfake "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake"
1516

16-
"github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators/v1alpha1"
17+
"github.com/operator-framework/api/pkg/operators/v1alpha1"
1718
operatorsfake "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/fake"
1819
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorclient"
1920
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/ownerutil"
@@ -481,23 +482,23 @@ func TestCleanupOwnerReferences(t *testing.T) {
481482
require.NoError(t, err)
482483
require.ElementsMatch(t, tt.expected.csvs, csvs.Items)
483484

484-
clusterRoles, err := c.KubernetesInterface().RbacV1().ClusterRoles().List(listOpts)
485+
clusterRoles, err := c.KubernetesInterface().RbacV1().ClusterRoles().List(context.TODO(), listOpts)
485486
require.NoError(t, err)
486487
require.ElementsMatch(t, tt.expected.clusterRoles, clusterRoles.Items)
487488

488-
clusterRoleBindings, err := c.KubernetesInterface().RbacV1().ClusterRoleBindings().List(listOpts)
489+
clusterRoleBindings, err := c.KubernetesInterface().RbacV1().ClusterRoleBindings().List(context.TODO(), listOpts)
489490
require.NoError(t, err)
490491
require.ElementsMatch(t, tt.expected.clusterRoleBindings, clusterRoleBindings.Items)
491492

492-
roles, err := c.KubernetesInterface().RbacV1().Roles(metav1.NamespaceAll).List(listOpts)
493+
roles, err := c.KubernetesInterface().RbacV1().Roles(metav1.NamespaceAll).List(context.TODO(), listOpts)
493494
require.NoError(t, err)
494495
require.ElementsMatch(t, tt.expected.roles, roles.Items)
495496

496-
roleBindings, err := c.KubernetesInterface().RbacV1().RoleBindings(metav1.NamespaceAll).List(listOpts)
497+
roleBindings, err := c.KubernetesInterface().RbacV1().RoleBindings(metav1.NamespaceAll).List(context.TODO(), listOpts)
497498
require.NoError(t, err)
498499
require.ElementsMatch(t, tt.expected.roleBindings, roleBindings.Items)
499500

500-
apiService, err := c.ApiregistrationV1Interface().ApiregistrationV1().APIServices().List(listOpts)
501+
apiService, err := c.ApiregistrationV1Interface().ApiregistrationV1().APIServices().List(context.TODO(), listOpts)
501502
require.NoError(t, err)
502503
require.ElementsMatch(t, tt.expected.apiServices, apiService.Items)
503504
})
@@ -593,7 +594,7 @@ func TestCheckAPIServiceLabels(t *testing.T) {
593594
c := operatorclient.NewClient(k8sClient, apiextensionsfake.NewSimpleClientset(), apiregistrationfake.NewSimpleClientset(tt.fields.apiServices...))
594595
require.Equal(t, tt.expected.err, ensureAPIServiceLabels(c.ApiregistrationV1Interface()))
595596

596-
apiService, err := c.ApiregistrationV1Interface().ApiregistrationV1().APIServices().List(listOpts)
597+
apiService, err := c.ApiregistrationV1Interface().ApiregistrationV1().APIServices().List(context.TODO(), listOpts)
597598
require.NoError(t, err)
598599
require.ElementsMatch(t, tt.expected.apiServices, apiService.Items)
599600
})

0 commit comments

Comments
 (0)