@@ -76,8 +76,10 @@ KUSTOMIZE_STANDARD_E2E_OVERLAY := config/overlays/standard-e2e
7676KUSTOMIZE_EXPERIMENTAL_OVERLAY := config/overlays/experimental
7777KUSTOMIZE_EXPERIMENTAL_E2E_OVERLAY := config/overlays/experimental-e2e
7878
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
8183export RELEASE_CATALOGS := default-catalogs.yaml
8284
8385# List of manifests that are checked in
@@ -172,15 +174,9 @@ generate: $(CONTROLLER_GEN) #EXHELP Generate code containing DeepCopy, DeepCopyI
172174 $(CONTROLLER_GEN ) --load-build-tags=$(GO_BUILD_TAGS ) object:headerFile=" hack/boilerplate.go.txt" paths=" ./..."
173175
174176.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.
176178 git diff --exit-code
177179
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-
184180.PHONY : fix-lint
185181fix-lint : $(GOLANGCI_LINT ) # EXHELP Fix lint issues
186182 $(GOLANGCI_LINT ) run --fix --build-tags $(GO_BUILD_TAGS ) $(GOLANGCI_LINT_ARGS )
@@ -209,7 +205,7 @@ verify-crd-compatibility: $(CRD_DIFF) manifests
209205# SECTION Test
210206
211207.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.
213209
214210.PHONY : e2e
215211e2e : # EXHELP Run the e2e tests.
@@ -223,14 +219,14 @@ E2E_REGISTRY_NAME := docker-registry
223219E2E_REGISTRY_NAMESPACE := operator-controller-e2e
224220
225221export 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
228224export E2E_TEST_CATALOG_V1 := e2e/test-catalog:v1
229225export 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}
234230 go test -count=1 -v ./test/extension-developer-e2e/...
235231
236232UNIT_TEST_DIRS := $(shell go list ./... | grep -v /test/)
@@ -252,6 +248,12 @@ test-unit: $(SETUP_ENVTEST) envtest-k8s-bins #HELP Run the unit tests
252248 $(UNIT_TEST_DIRS ) \
253249 -test.gocoverdir=$(COVERAGE_UNIT_DIR )
254250
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+
255257.PHONY : image-registry
256258E2E_REGISTRY_IMAGE =localhost/e2e-test-registry:devel
257259image-registry : export GOOS=linux
@@ -274,34 +276,30 @@ image-registry: ## Build the testdata catalog used for e2e tests and push it to
274276test-e2e : SOURCE_MANIFEST := $(STANDARD_E2E_MANIFEST )
275277test-e2e : KIND_CLUSTER_NAME := operator-controller-e2e
276278test-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
278281
279282.PHONY : test-experimental-e2e
280283test-experimental-e2e : SOURCE_MANIFEST := $(EXPERIMENTAL_E2E_MANIFEST )
281284test-experimental-e2e : KIND_CLUSTER_NAME := operator-controller-e2e
282285test-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
284288
285289.PHONY : prometheus
286290prometheus : PROMETHEUS_NAMESPACE := olmv1-system
287291prometheus : PROMETHEUS_VERSION := v0.83.0
288292prometheus : # EXHELP Deploy Prometheus into specified namespace
289293 ./hack/test/install-prometheus.sh $(PROMETHEUS_NAMESPACE ) $(PROMETHEUS_VERSION ) $(KUSTOMIZE ) $(VERSION )
290294
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
301299
302300.PHONY : run-latest-release
303301run-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
305303
306304.PHONY : pre-upgrade-setup
307305pre-upgrade-setup :
@@ -319,7 +317,7 @@ test-upgrade-e2e: kind-cluster run-latest-release image-registry pre-upgrade-set
319317
320318.PHONY : e2e-coverage
321319e2e-coverage :
322- COVERAGE_OUTPUT=./coverage/e2e.out ./hack/test/e2e-coverage.sh
320+ COVERAGE_NAME= $( COVERAGE_NAME ) ./hack/test/e2e-coverage.sh
323321
324322# SECTION KIND Cluster Operations
325323
@@ -329,7 +327,7 @@ kind-load: $(KIND) #EXHELP Loads the currently constructed images into the KIND
329327 $(CONTAINER_RUNTIME ) save $(CATD_IMG ) | $(KIND ) load image-archive /dev/stdin --name $(KIND_CLUSTER_NAME )
330328
331329.PHONY : kind-deploy
332- kind-deploy : export MANIFEST := $(RELEASE_MANIFEST )
330+ kind-deploy : export MANIFEST := $(STANDARD_RELEASE_MANIFEST )
333331kind-deploy : export DEFAULT_CATALOG := $(RELEASE_CATALOGS )
334332kind-deploy : manifests
335333 @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
436434 OPCON_IMAGE_REPO=$(OPCON_IMAGE_REPO ) CATD_IMAGE_REPO=$(CATD_IMAGE_REPO ) $(GORELEASER ) $(GORELEASER_ARGS )
437435
438436.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 ) ) "
440439quickstart : export DEFAULT_CATALOG := "https://github.com/operator-framework/operator-controller/releases/download/$(VERSION ) /$(notdir $(RELEASE_CATALOGS ) ) "
441440quickstart : manifests # EXHELP Generate the unified installation release manifests and scripts.
442441 # 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 )
444444 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 )
446447
447448# #@ Docs
448449
0 commit comments