|
1 | 1 |
|
2 | 2 | # Image URL to use all building/pushing image targets |
3 | 3 | IMG ?= controller:latest |
| 4 | +# customize overlay to be used in the build, DEFAULT or HELM |
| 5 | +KUSTOMIZE_OVERLAY ?= DEFAULT |
4 | 6 | # ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary. |
5 | | -FLAGD_VERSION=v0.2.5 |
6 | | -CHART_VERSION=v0.2.17# x-release-please-version |
7 | | -ENVTEST_K8S_VERSION = 1.23 |
| 7 | +FLAGD_VERSION=v0.2.7 |
| 8 | +CHART_VERSION=v0.2.20# x-release-please-version |
| 9 | +ENVTEST_K8S_VERSION = 1.25 |
8 | 10 |
|
9 | 11 | # Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) |
10 | 12 | ifeq (,$(shell go env GOBIN)) |
@@ -64,6 +66,13 @@ vet: ## Run go vet against code. |
64 | 66 | test: manifests generate fmt vet envtest ## Run tests. |
65 | 67 | KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) -p path)" go test ./... -coverprofile cover.out |
66 | 68 |
|
| 69 | +## Requires the operator to be deployed |
| 70 | +.PHONY: e2e-test |
| 71 | +e2e-test: manifests generate fmt vet |
| 72 | + kubectl -n open-feature-operator-system apply -f ./test/e2e/e2e.yml |
| 73 | + kubectl wait --for=condition=Available=True deploy --all -n 'open-feature-operator-system' |
| 74 | + ./test/e2e/run.sh |
| 75 | + |
67 | 76 | .PHONY: lint |
68 | 77 | lint: |
69 | 78 | go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@latest |
@@ -105,7 +114,14 @@ uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified |
105 | 114 | release-manifests: manifests kustomize |
106 | 115 | cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} |
107 | 116 | mkdir -p config/rendered/ |
108 | | - $(KUSTOMIZE) build config/default > config/rendered/release.yaml |
| 117 | + @if [ ${KUSTOMIZE_OVERLAY} = DEFAULT ]; then\ |
| 118 | + echo building default overlay;\ |
| 119 | + $(KUSTOMIZE) build config/default > config/rendered/release.yaml;\ |
| 120 | + fi |
| 121 | + @if [ ${KUSTOMIZE_OVERLAY} = HELM ]; then\ |
| 122 | + echo building helm overlay;\ |
| 123 | + $(KUSTOMIZE) build config/overlays/helm > chart/open-feature-operator/templates/rendered.yaml;\ |
| 124 | + fi |
109 | 125 |
|
110 | 126 | .PHONY: deploy |
111 | 127 | deploy: generate manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config. |
@@ -138,7 +154,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest |
138 | 154 |
|
139 | 155 | ## Tool Versions |
140 | 156 | KUSTOMIZE_VERSION ?= v4.5.7 |
141 | | -CONTROLLER_TOOLS_VERSION ?= v0.8.0 |
| 157 | +CONTROLLER_TOOLS_VERSION ?= v0.10.0 |
142 | 158 |
|
143 | 159 | KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" |
144 | 160 | .PHONY: kustomize |
@@ -166,9 +182,12 @@ $(HELM): $(LOCALBIN) |
166 | 182 | [ -e "$(HELM)" ] && rm -rf "$(HELM)" || true |
167 | 183 | cd $(LOCALBIN) && curl -s $(HELM_INSTALLER) | tar -xzf - -C $(LOCALBIN) |
168 | 184 |
|
169 | | -helm-package: generate release-manifests helm |
170 | | - cp config/rendered/release.yaml chart/templates/rendered.yaml |
171 | | - $(HELM) package --version $(CHART_VERSION) chart |
172 | | - mkdir -p charts && mv ofo-*.tgz charts |
| 185 | +.PHONY: set-helm-overlay |
| 186 | +set-helm-overlay: |
| 187 | + ${eval KUSTOMIZE_OVERLAY = HELM} |
| 188 | + |
| 189 | +helm-package: set-helm-overlay generate release-manifests helm |
| 190 | + $(HELM) package --version $(CHART_VERSION) chart/open-feature-operator |
| 191 | + mkdir -p charts && mv open-feature-operator-*.tgz charts |
173 | 192 | $(HELM) repo index --url https://open-feature.github.io/open-feature-operator/charts charts |
174 | 193 | mv charts/index.yaml index.yaml |
0 commit comments