@@ -83,12 +83,12 @@ export EXPERIMENTAL_RELEASE_INSTALL := install-experimental.sh
8383export RELEASE_CATALOGS := default-catalogs.yaml
8484
8585# List of manifests that are checked in
86- MANIFEST_HOME := ./ manifests
87- STANDARD_MANIFEST := ./manifests /standard.yaml
88- STANDARD_E2E_MANIFEST := ./manifests /standard-e2e.yaml
89- EXPERIMENTAL_MANIFEST := ./manifests /experimental.yaml
90- EXPERIMENTAL_E2E_MANIFEST := ./manifests /experimental-e2e.yaml
91- CATALOGS_MANIFEST := ./manifests /default-catalogs.yaml
86+ MANIFEST_HOME := manifests
87+ STANDARD_MANIFEST := $( MANIFEST_HOME ) /standard.yaml
88+ STANDARD_E2E_MANIFEST := $( MANIFEST_HOME ) /standard-e2e.yaml
89+ EXPERIMENTAL_MANIFEST := $( MANIFEST_HOME ) /experimental.yaml
90+ EXPERIMENTAL_E2E_MANIFEST := $( MANIFEST_HOME ) /experimental-e2e.yaml
91+ CATALOGS_MANIFEST := $( MANIFEST_HOME ) /default-catalogs.yaml
9292
9393# Disable -j flag for make
9494.NOTPARALLEL :
@@ -123,6 +123,10 @@ help-extended: #HELP Display extended help.
123123lint : lint-custom $(GOLANGCI_LINT ) # HELP Run golangci linter.
124124 $(GOLANGCI_LINT ) run --build-tags $(GO_BUILD_TAGS ) $(GOLANGCI_LINT_ARGS )
125125
126+ lint-helm : $(HELM ) # HELP Run helm linter
127+ helm lint helm/olmv1
128+ helm lint helm/prometheus
129+
126130.PHONY : custom-linter-build
127131custom-linter-build : # EXHELP Build custom linter
128132 go build -tags $(GO_BUILD_TAGS ) -o ./bin/custom-linter ./hack/ci/custom-linters/cmd
@@ -139,31 +143,39 @@ k8s-pin: #EXHELP Pin k8s staging modules based on k8s.io/kubernetes version (in
139143tidy :
140144 go mod tidy
141145
142- .PHONY : manifests
143- KUSTOMIZE_CATD_RBAC_DIR := config/base/catalogd/rbac
144- KUSTOMIZE_CATD_WEBHOOKS_DIR := config/base/catalogd/webhook
145- KUSTOMIZE_OPCON_RBAC_DIR := config/base/operator-controller/rbac
146146# Due to https://github.com/kubernetes-sigs/controller-tools/issues/837 we can't specify individual files
147147# So we have to generate them together and then move them into place
148- manifests : $( CONTROLLER_GEN ) $( KUSTOMIZE ) # EXHELP Generate WebhookConfiguration, ClusterRole, and CustomResourceDefinition objects.
149- # Generate CRDs via our own generator
148+ .PHONY : update-crds
149+ update-crds :
150150 hack/tools/update-crds.sh
151- # Generate the remaining operator-controller standard manifests
152- $(CONTROLLER_GEN ) --load-build-tags=$(GO_BUILD_TAGS ) ,standard rbac:roleName=manager-role paths=" ./internal/operator-controller/..." output:rbac:artifacts:config=$(KUSTOMIZE_OPCON_RBAC_DIR ) /standard
153- # Generate the remaining operator-controller experimental manifests
154- $(CONTROLLER_GEN ) --load-build-tags=$(GO_BUILD_TAGS ) rbac:roleName=manager-role paths=" ./internal/operator-controller/..." output:rbac:artifacts:config=$(KUSTOMIZE_OPCON_RBAC_DIR ) /experimental
155- # Generate the remaining catalogd standard manifests
156- $(CONTROLLER_GEN ) --load-build-tags=$(GO_BUILD_TAGS ) ,standard rbac:roleName=manager-role paths=" ./internal/catalogd/..." output:rbac:artifacts:config=$(KUSTOMIZE_CATD_RBAC_DIR ) /standard
157- $(CONTROLLER_GEN ) --load-build-tags=$(GO_BUILD_TAGS ) ,standard webhook paths=" ./internal/catalogd/..." output:webhook:artifacts:config=$(KUSTOMIZE_CATD_WEBHOOKS_DIR ) /standard
158- # Generate the remaining catalogd experimental manifests
159- $(CONTROLLER_GEN ) --load-build-tags=$(GO_BUILD_TAGS ) rbac:roleName=manager-role paths=" ./internal/catalogd/..." output:rbac:artifacts:config=$(KUSTOMIZE_CATD_RBAC_DIR ) /experimental
160- $(CONTROLLER_GEN ) --load-build-tags=$(GO_BUILD_TAGS ) webhook paths=" ./internal/catalogd/..." output:webhook:artifacts:config=$(KUSTOMIZE_CATD_WEBHOOKS_DIR ) /experimental
161- # Generate manifests stored in source-control
162- mkdir -p $(MANIFEST_HOME )
163- $(KUSTOMIZE ) build $(KUSTOMIZE_STANDARD_OVERLAY ) > $(STANDARD_MANIFEST )
164- $(KUSTOMIZE ) build $(KUSTOMIZE_STANDARD_E2E_OVERLAY ) > $(STANDARD_E2E_MANIFEST )
165- $(KUSTOMIZE ) build $(KUSTOMIZE_EXPERIMENTAL_OVERLAY ) > $(EXPERIMENTAL_MANIFEST )
166- $(KUSTOMIZE ) build $(KUSTOMIZE_EXPERIMENTAL_E2E_OVERLAY ) > $(EXPERIMENTAL_E2E_MANIFEST )
151+
152+ # The filename variables can be overridden on the command line if you want to change the set of values files:
153+ # e.g. make "manifests/standard.yaml=helm/cert-manager.yaml my-values-file.yaml" manifests
154+ #
155+ # The set of MANIFESTS to be generated can be changed; you can generate your own custom manifest
156+ # e.g. make MANIFESTS=test.yaml "test.yaml=helm/e2e.yaml" manifests
157+ #
158+ # Override HELM_SETTINGS on the command line to include additional Helm settings
159+ # e.g. make HELM_SETTINGS="options.openshift.enabled=true" manifests
160+ # e.g. make HELM_SETTINGS="operatorControllerFeatures={WebhookProviderCertManager}" manifests
161+ #
162+ MANIFESTS ?= $(STANDARD_MANIFEST ) $(STANDARD_E2E_MANIFEST ) $(EXPERIMENTAL_MANIFEST ) $(EXPERIMENTAL_E2E_MANIFEST )
163+ $(STANDARD_MANIFEST) ?= helm/cert-manager.yaml
164+ $(STANDARD_E2E_MANIFEST) ?= helm/cert-manager.yaml helm/e2e.yaml
165+ $(EXPERIMENTAL_MANIFEST) ?= helm/cert-manager.yaml helm/experimental.yaml
166+ $(EXPERIMENTAL_E2E_MANIFEST) ?= helm/cert-manager.yaml helm/experimental.yaml helm/e2e.yaml
167+ HELM_SETTINGS ?=
168+ .PHONY : $(MANIFESTS )
169+ $(MANIFESTS ) : $(HELM )
170+ @mkdir -p $(MANIFEST_HOME )
171+ $(HELM ) template olmv1 helm/olmv1 $(addprefix --values ,$($@ ) ) $(addprefix --set ,$(HELM_SETTINGS ) ) > $@
172+
173+ # Generate manifests stored in source-control
174+ .PHONY : manifests
175+ manifests : update-crds $(MANIFESTS ) $(HELM ) # EXHELP Generate OLMv1 manifests
176+ # These are testing existing manifest options without saving the results
177+ $(HELM ) template olmv1 helm/olmv1 --values helm/tilt.yaml $(addprefix --set ,$(HELM_SETTINGS ) ) > /dev/null
178+ $(HELM ) template olmv1 helm/olmv1 --set " options.openshift.enabled=true" > /dev/null
167179
168180.PHONY : generate
169181generate : $(CONTROLLER_GEN ) # EXHELP Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
@@ -288,8 +300,8 @@ test-experimental-e2e: run-internal image-registry prometheus experimental-e2e e
288300.PHONY : prometheus
289301prometheus : PROMETHEUS_NAMESPACE := olmv1-system
290302prometheus : PROMETHEUS_VERSION := v0.83.0
291- prometheus : # EXHELP Deploy Prometheus into specified namespace
292- ./hack/test/install-prometheus.sh $(PROMETHEUS_NAMESPACE ) $(PROMETHEUS_VERSION ) $(KUSTOMIZE ) $( VERSION )
303+ prometheus : $( KUSTOMIZE ) # EXHELP Deploy Prometheus into specified namespace
304+ ./hack/test/install-prometheus.sh $(PROMETHEUS_NAMESPACE ) $(PROMETHEUS_VERSION ) $(VERSION )
293305
294306.PHONY : test-extension-developer-e2e
295307test-extension-developer-e2e : SOURCE_MANIFEST := $(STANDARD_E2E_MANIFEST )
0 commit comments