@@ -76,8 +76,10 @@ KUSTOMIZE_STANDARD_E2E_OVERLAY := config/overlays/standard-e2e
76
76
KUSTOMIZE_EXPERIMENTAL_OVERLAY := config/overlays/experimental
77
77
KUSTOMIZE_EXPERIMENTAL_E2E_OVERLAY := config/overlays/experimental-e2e
78
78
79
- export RELEASE_MANIFEST := operator-controller.yaml
80
- export RELEASE_INSTALL := install.sh
79
+ export STANDARD_RELEASE_MANIFEST := operator-controller.yaml
80
+ export STANDARD_RELEASE_INSTALL := install.sh
81
+ export EXPERIMENTAL_RELEASE_MANIFEST := operator-controller-experimental.yaml
82
+ export EXPERIMENTAL_RELEASE_INSTALL := install-experimental.sh
81
83
export RELEASE_CATALOGS := default-catalogs.yaml
82
84
83
85
# List of manifests that are checked in
@@ -172,15 +174,9 @@ generate: $(CONTROLLER_GEN) #EXHELP Generate code containing DeepCopy, DeepCopyI
172
174
$(CONTROLLER_GEN ) --load-build-tags=$(GO_BUILD_TAGS ) object:headerFile=" hack/boilerplate.go.txt" paths=" ./..."
173
175
174
176
.PHONY : verify
175
- verify : k8s-pin kind-verify-versions fmt generate manifests crd-ref-docs generate-test-data # HELP Verify all generated code is up-to-date. Runs k8s-pin instead of just tidy.
177
+ verify : k8s-pin kind-verify-versions fmt generate manifests crd-ref-docs # HELP Verify all generated code is up-to-date. Runs k8s-pin instead of just tidy.
176
178
git diff --exit-code
177
179
178
- # Renders registry+v1 bundles in test/convert
179
- # Used by CI in verify to catch regressions in the registry+v1 -> plain conversion code
180
- .PHONY : generate-test-data
181
- generate-test-data :
182
- go run test/convert/generate-manifests.go
183
-
184
180
.PHONY : fix-lint
185
181
fix-lint : $(GOLANGCI_LINT ) # EXHELP Fix lint issues
186
182
$(GOLANGCI_LINT ) run --fix --build-tags $(GO_BUILD_TAGS ) $(GOLANGCI_LINT_ARGS )
@@ -209,7 +205,7 @@ verify-crd-compatibility: $(CRD_DIFF) manifests
209
205
# SECTION Test
210
206
211
207
.PHONY : test
212
- test : manifests generate fmt lint test-unit test-e2e # HELP Run all tests.
208
+ test : manifests generate fmt lint test-unit test-e2e test-regression # HELP Run all tests.
213
209
214
210
.PHONY : e2e
215
211
e2e : # EXHELP Run the e2e tests.
@@ -223,14 +219,14 @@ E2E_REGISTRY_NAME := docker-registry
223
219
E2E_REGISTRY_NAMESPACE := operator-controller-e2e
224
220
225
221
export REG_PKG_NAME := registry-operator
226
- export LOCAL_REGISTRY_HOST := $(E2E_REGISTRY_NAME ) .$(E2E_REGISTRY_NAMESPACE ) .svc:5000
227
- export CLUSTER_REGISTRY_HOST := localhost:30000
222
+ export CLUSTER_REGISTRY_HOST := $(E2E_REGISTRY_NAME ) .$(E2E_REGISTRY_NAMESPACE ) .svc:5000
223
+ export LOCAL_REGISTRY_HOST := localhost:30000
228
224
export E2E_TEST_CATALOG_V1 := e2e/test-catalog:v1
229
225
export E2E_TEST_CATALOG_V2 := e2e/test-catalog:v2
230
- export CATALOG_IMG := $(LOCAL_REGISTRY_HOST ) /$(E2E_TEST_CATALOG_V1 )
231
- .PHONY : test-ext-dev -e2e
232
- test-ext-dev- e2e : $(OPERATOR_SDK ) $(KUSTOMIZE ) $( KIND ) # HELP Run extension create, upgrade and delete tests.
233
- test/extension-developer-e2e/setup.sh $(OPERATOR_SDK ) $(CONTAINER_RUNTIME ) $(KUSTOMIZE ) $( KIND ) $( KIND_CLUSTER_NAME ) $( E2E_REGISTRY_NAMESPACE )
226
+ export CATALOG_IMG := $(CLUSTER_REGISTRY_HOST ) /$(E2E_TEST_CATALOG_V1 )
227
+ .PHONY : extension-developer -e2e
228
+ extension-developer- e2e : $(OPERATOR_SDK ) $(KUSTOMIZE ) # EXHELP Run extension create, upgrade and delete tests.
229
+ test/extension-developer-e2e/setup.sh $(OPERATOR_SDK ) $(CONTAINER_RUNTIME ) $(KUSTOMIZE ) ${LOCAL_REGISTRY_HOST} ${CLUSTER_REGISTRY_HOST}
234
230
go test -count=1 -v ./test/extension-developer-e2e/...
235
231
236
232
UNIT_TEST_DIRS := $(shell go list ./... | grep -v /test/)
@@ -252,6 +248,12 @@ test-unit: $(SETUP_ENVTEST) envtest-k8s-bins #HELP Run the unit tests
252
248
$(UNIT_TEST_DIRS ) \
253
249
-test.gocoverdir=$(COVERAGE_UNIT_DIR )
254
250
251
+ COVERAGE_REGRESSION_DIR := $(ROOT_DIR ) /coverage/regression
252
+ .PHONY : test-regression
253
+ test-regression : # HELP Run regression test
254
+ rm -rf $(COVERAGE_REGRESSION_DIR ) && mkdir -p $(COVERAGE_REGRESSION_DIR )
255
+ go test -count=1 -v ./test/regression/... -cover -coverprofile ${ROOT_DIR} /coverage/regression.out -test.gocoverdir=$(COVERAGE_REGRESSION_DIR )
256
+
255
257
.PHONY : image-registry
256
258
E2E_REGISTRY_IMAGE =localhost/e2e-test-registry:devel
257
259
image-registry : export GOOS=linux
@@ -274,34 +276,30 @@ image-registry: ## Build the testdata catalog used for e2e tests and push it to
274
276
test-e2e : SOURCE_MANIFEST := $(STANDARD_E2E_MANIFEST )
275
277
test-e2e : KIND_CLUSTER_NAME := operator-controller-e2e
276
278
test-e2e : GO_BUILD_EXTRA_FLAGS := -cover
277
- test-e2e : run image-registry prometheus e2e e2e-metrics e2e-coverage kind-clean # HELP Run e2e test suite on local kind cluster
279
+ test-e2e : COVERAGE_NAME := e2e
280
+ test-e2e : run image-registry prometheus e2e e2e-coverage kind-clean # HELP Run e2e test suite on local kind cluster
278
281
279
282
.PHONY : test-experimental-e2e
280
283
test-experimental-e2e : SOURCE_MANIFEST := $(EXPERIMENTAL_E2E_MANIFEST )
281
284
test-experimental-e2e : KIND_CLUSTER_NAME := operator-controller-e2e
282
285
test-experimental-e2e : GO_BUILD_EXTRA_FLAGS := -cover
283
- test-experimental-e2e : run image-registry prometheus experimental-e2e e2e e2e-metrics e2e-coverage kind-clean # HELP Run experimental e2e test suite on local kind cluster
286
+ test-experimental-e2e : COVERAGE_NAME := experimental-e2e
287
+ test-experimental-e2e : run image-registry prometheus experimental-e2e e2e e2e-coverage kind-clean # HELP Run experimental e2e test suite on local kind cluster
284
288
285
289
.PHONY : prometheus
286
290
prometheus : PROMETHEUS_NAMESPACE := olmv1-system
287
291
prometheus : PROMETHEUS_VERSION := v0.83.0
288
292
prometheus : # EXHELP Deploy Prometheus into specified namespace
289
293
./hack/test/install-prometheus.sh $(PROMETHEUS_NAMESPACE ) $(PROMETHEUS_VERSION ) $(KUSTOMIZE ) $(VERSION )
290
294
291
- # The output alerts.out file contains any alerts, pending or firing, collected during a test run in json format.
292
- .PHONY : e2e-metrics
293
- e2e-metrics : ALERTS_FILE_PATH := $(if $(ARTIFACT_PATH ) ,$(ARTIFACT_PATH ) ,.) /alerts.out
294
- e2e-metrics : # EXHELP Request metrics from prometheus; place in ARTIFACT_PATH if set
295
- curl -X GET http://localhost:30900/api/v1/alerts | jq ' if (.data.alerts | length) > 0 then .data.alerts.[] else empty end' > $(ALERTS_FILE_PATH )
296
-
297
- .PHONY : extension-developer-e2e
298
- extension-developer-e2e : KIND_CLUSTER_NAME := operator-controller-ext-dev-e2e
299
- extension-developer-e2e : export INSTALL_DEFAULT_CATALOGS := false
300
- extension-developer-e2e : run image-registry test-ext-dev-e2e kind-clean # EXHELP Run extension-developer e2e on local kind cluster
295
+ .PHONY : test-extension-developer-e2e
296
+ test-extension-developer-e2e : KIND_CLUSTER_NAME := operator-controller-ext-dev-e2e
297
+ test-extension-developer-e2e : export INSTALL_DEFAULT_CATALOGS := false
298
+ test-extension-developer-e2e : run image-registry extension-developer-e2e kind-clean # HELP Run extension-developer e2e on local kind cluster
301
299
302
300
.PHONY : run-latest-release
303
301
run-latest-release :
304
- curl -L -s https://github.com/operator-framework/operator-controller/releases/latest/download/$(notdir $(RELEASE_INSTALL ) ) | bash -s
302
+ curl -L -s https://github.com/operator-framework/operator-controller/releases/latest/download/$(notdir $(STANDARD_RELEASE_INSTALL ) ) | bash -s
305
303
306
304
.PHONY : pre-upgrade-setup
307
305
pre-upgrade-setup :
@@ -319,7 +317,7 @@ test-upgrade-e2e: kind-cluster run-latest-release image-registry pre-upgrade-set
319
317
320
318
.PHONY : e2e-coverage
321
319
e2e-coverage :
322
- COVERAGE_OUTPUT=./coverage/e2e.out ./hack/test/e2e-coverage.sh
320
+ COVERAGE_NAME= $( COVERAGE_NAME ) ./hack/test/e2e-coverage.sh
323
321
324
322
# SECTION KIND Cluster Operations
325
323
@@ -329,7 +327,7 @@ kind-load: $(KIND) #EXHELP Loads the currently constructed images into the KIND
329
327
$(CONTAINER_RUNTIME ) save $(CATD_IMG ) | $(KIND ) load image-archive /dev/stdin --name $(KIND_CLUSTER_NAME )
330
328
331
329
.PHONY : kind-deploy
332
- kind-deploy : export MANIFEST := $(RELEASE_MANIFEST )
330
+ kind-deploy : export MANIFEST := $(STANDARD_RELEASE_MANIFEST )
333
331
kind-deploy : export DEFAULT_CATALOG := $(RELEASE_CATALOGS )
334
332
kind-deploy : manifests
335
333
@echo -e " \n\U1F4D8 Using $( SOURCE_MANIFEST) as source manifest\n"
@@ -436,13 +434,16 @@ release: $(GORELEASER) #EXHELP Runs goreleaser for the operator-controller. By d
436
434
OPCON_IMAGE_REPO=$(OPCON_IMAGE_REPO ) CATD_IMAGE_REPO=$(CATD_IMAGE_REPO ) $(GORELEASER ) $(GORELEASER_ARGS )
437
435
438
436
.PHONY : quickstart
439
- quickstart : export MANIFEST := "https://github.com/operator-framework/operator-controller/releases/download/$(VERSION ) /$(notdir $(RELEASE_MANIFEST ) ) "
437
+ quickstart : export STANDARD_MANIFEST_URL := "https://github.com/operator-framework/operator-controller/releases/download/$(VERSION ) /$(notdir $(STANDARD_RELEASE_MANIFEST ) ) "
438
+ quickstart : export EXPERIMENTAL_MANIFEST_URL := "https://github.com/operator-framework/operator-controller/releases/download/$(VERSION ) /$(notdir $(EXPERIMENTAL_RELEASE_MANIFEST ) ) "
440
439
quickstart : export DEFAULT_CATALOG := "https://github.com/operator-framework/operator-controller/releases/download/$(VERSION ) /$(notdir $(RELEASE_CATALOGS ) ) "
441
440
quickstart : manifests # EXHELP Generate the unified installation release manifests and scripts.
442
441
# Update the stored standard manifests for distribution
443
- sed " s/:devel/:$( VERSION) /g" $(STANDARD_MANIFEST ) | sed " s/cert-git-version/cert-$( VERSION) /g" > $(RELEASE_MANIFEST )
442
+ sed " s/:devel/:$( VERSION) /g" $(STANDARD_MANIFEST ) | sed " s/cert-git-version/cert-$( VERSION) /g" > $(STANDARD_RELEASE_MANIFEST )
443
+ sed " s/:devel/:$( VERSION) /g" $(EXPERIMENTAL_MANIFEST ) | sed " s/cert-git-version/cert-$( VERSION) /g" > $(EXPERIMENTAL_RELEASE_MANIFEST )
444
444
cp $(CATALOGS_MANIFEST ) $(RELEASE_CATALOGS )
445
- envsubst ' $$DEFAULT_CATALOG,$$CERT_MGR_VERSION,$$INSTALL_DEFAULT_CATALOGS,$$MANIFEST' < scripts/install.tpl.sh > $(RELEASE_INSTALL )
445
+ MANIFEST=$(STANDARD_MANIFEST_URL ) envsubst ' $$DEFAULT_CATALOG,$$CERT_MGR_VERSION,$$INSTALL_DEFAULT_CATALOGS,$$MANIFEST' < scripts/install.tpl.sh > $(STANDARD_RELEASE_INSTALL )
446
+ MANIFEST=$(EXPERIMENTAL_MANIFEST_URL ) envsubst ' $$DEFAULT_CATALOG,$$CERT_MGR_VERSION,$$INSTALL_DEFAULT_CATALOGS,$$MANIFEST' < scripts/install.tpl.sh > $(EXPERIMENTAL_RELEASE_INSTALL )
446
447
447
448
# #@ Docs
448
449
0 commit comments