mirror of
https://github.com/ngrok/ngrok-operator.git
synced 2026-05-17 16:50:44 +00:00
156 lines
6.2 KiB
Makefile
156 lines
6.2 KiB
Makefile
##@ Deploying
|
|
|
|
ifneq ($(CODESPACE_NAME),)
|
|
HELM_DESCRIPTION_FLAG = --set-string description="codespace: $(CODESPACE_NAME)"
|
|
endif
|
|
|
|
.PHONY: run
|
|
run: manifests generate fmt vet ## Run a controller from your host.
|
|
go run ./cmd/api/main.go
|
|
|
|
|
|
.PHONY: deploy
|
|
deploy: _deploy-check-env-vars docker-build manifests _helm_setup kind-load-image ## Deploy controller to the K8s cluster specified in ~/.kube/config.
|
|
helm upgrade $(HELM_RELEASE_NAME) $(HELM_CHART_DIR) --install \
|
|
--namespace $(KUBE_NAMESPACE) \
|
|
--create-namespace \
|
|
--set image.repository=$(IMG) \
|
|
--set image.tag="latest" \
|
|
--set-string podAnnotations."redeployTimestamp"="$(DEPLOY_ROLLOUT_TIMESTAMP)" \
|
|
--set podAnnotations."k8s\.ngrok\.com/test"="\{\"env\": \"local\"\}" \
|
|
--set credentials.apiKey=$(NGROK_API_KEY) \
|
|
--set credentials.authtoken=$(NGROK_AUTHTOKEN) \
|
|
--set log.format=console \
|
|
--set-string log.level="8" \
|
|
--set log.stacktraceLevel=panic \
|
|
--set metaData.env=local,metaData.from=makefile \
|
|
--set drainPolicy="Delete" \
|
|
$(HELM_DESCRIPTION_FLAG)
|
|
|
|
.PHONY: deploy_gateway
|
|
deploy_gateway: _deploy-check-env-vars docker-build manifests _helm_setup kind-load-image ## Deploy controller to the K8s cluster specified in ~/.kube/config.
|
|
helm upgrade $(HELM_RELEASE_NAME) $(HELM_CHART_DIR) --install \
|
|
--namespace $(KUBE_NAMESPACE) \
|
|
--create-namespace \
|
|
--set image.repository=$(IMG) \
|
|
--set image.tag="latest" \
|
|
--set-string podAnnotations."redeployTimestamp"="$(DEPLOY_ROLLOUT_TIMESTAMP)" \
|
|
--set podAnnotations."k8s\.ngrok\.com/test"="\{\"env\": \"local\"\}" \
|
|
--set credentials.apiKey=$(NGROK_API_KEY) \
|
|
--set credentials.authtoken=$(NGROK_AUTHTOKEN) \
|
|
--set log.format=console \
|
|
--set-string log.level="8" \
|
|
--set log.stacktraceLevel=panic \
|
|
--set metaData.env=local,metaData.from=makefile \
|
|
--set gateway.enabled=true \
|
|
--set drainPolicy="Delete" \
|
|
$(HELM_DESCRIPTION_FLAG)
|
|
|
|
.PHONY: deploy_with_bindings
|
|
deploy_with_bindings: _deploy-check-env-vars docker-build manifests _helm_setup kind-load-image ## Deploy controller to the K8s cluster specified in ~/.kube/config.
|
|
helm upgrade $(HELM_RELEASE_NAME) $(HELM_CHART_DIR) --install \
|
|
--namespace $(KUBE_NAMESPACE) \
|
|
--create-namespace \
|
|
--set image.repository=$(IMG) \
|
|
--set image.tag="latest" \
|
|
--set-string podAnnotations."redeployTimestamp"="$(DEPLOY_ROLLOUT_TIMESTAMP)" \
|
|
--set podAnnotations."k8s\.ngrok\.com/test"="\{\"env\": \"local\"\}" \
|
|
--set credentials.apiKey=$(NGROK_API_KEY) \
|
|
--set credentials.authtoken=$(NGROK_AUTHTOKEN) \
|
|
--set log.format=console \
|
|
--set log.level=debug \
|
|
--set log.stacktraceLevel=panic \
|
|
--set metaData.env=local,metaData.from=makefile \
|
|
--set bindings.enabled=true \
|
|
--set drainPolicy="Delete" \
|
|
$(HELM_DESCRIPTION_FLAG)
|
|
|
|
.PHONY: deploy_for_e2e
|
|
deploy_for_e2e: _deploy-check-env-vars docker-build manifests _helm_setup kind-load-image ## Deploy controller to the K8s cluster specified in ~/.kube/config.
|
|
helm upgrade $(HELM_RELEASE_NAME) $(HELM_CHART_DIR) --install \
|
|
--namespace $(KUBE_NAMESPACE) \
|
|
--create-namespace \
|
|
--set oneClickDemoMode=$(DEPLOY_ONE_CLICK_DEMO_MODE) \
|
|
--set image.repository=$(IMG) \
|
|
--set image.tag="latest" \
|
|
--set image.pullPolicy="Never" \
|
|
--set-string podAnnotations."redeployTimestamp"="$(DEPLOY_ROLLOUT_TIMESTAMP)" \
|
|
--set podAnnotations."k8s\.ngrok\.com/test"="\{\"env\": \"e2e\"\}" \
|
|
--set credentials.apiKey=$(NGROK_API_KEY) \
|
|
--set credentials.authtoken=$(NGROK_AUTHTOKEN) \
|
|
--set log.format=console \
|
|
--set log.level=debug \
|
|
--set log.stacktraceLevel=panic \
|
|
--set metaData.env=local,metaData.from=makefile \
|
|
--set bindings.enabled=true \
|
|
--set bindings.serviceAnnotations.annotation1="val1" \
|
|
--set bindings.serviceAnnotations.annotation2="val2" \
|
|
--set bindings.serviceLabels.label1="val1" \
|
|
--set drainPolicy="Delete"
|
|
|
|
.PHONY: deploy_multi_namespace
|
|
## 1. We want to install the CRDs only once at the beginning
|
|
## 2. We want to make a namespace-a and namespace-b
|
|
## 3. We want to install the helm chart twice, watching only the namespace belonging to each one
|
|
deploy_multi_namespace: _deploy-check-env-vars docker-build manifests _helm_setup kind-load-image ## Deploy multiple copies of the controller to the K8s cluster specified in ~/.kube/config.
|
|
helm upgrade ngrok-operator-crds $(CRD_CHART_DIR) --install \
|
|
--kube-context=kind-$(KIND_CLUSTER_NAME) \
|
|
--namespace kube-system \
|
|
--create-namespace
|
|
|
|
helm upgrade ngrok-operator-a $(HELM_CHART_DIR) --install \
|
|
--kube-context=kind-$(KIND_CLUSTER_NAME) \
|
|
--namespace namespace-a \
|
|
--create-namespace \
|
|
--set installCRDs=false \
|
|
--set image.repository=$(IMG) \
|
|
--set image.tag="latest" \
|
|
--set ingress.controllerName="k8s.ngrok.com/ingress-controller-a" \
|
|
--set ingress.ingressClass.name="ngrok-a" \
|
|
--set ingress.watchNamespace="namespace-a" \
|
|
--set watchNamespace=namespace-a \
|
|
--set credentials.apiKey=$(NGROK_API_KEY) \
|
|
--set credentials.authtoken=$(NGROK_AUTHTOKEN) \
|
|
--set log.format=console \
|
|
--set-string log.level="8" \
|
|
--set log.stacktraceLevel=panic \
|
|
--set metaData.env=local,metaData.from=makefile \
|
|
$(HELM_DESCRIPTION_FLAG)
|
|
|
|
helm upgrade ngrok-operator-b $(HELM_CHART_DIR) --install \
|
|
--kube-context=kind-$(KIND_CLUSTER_NAME) \
|
|
--namespace namespace-b \
|
|
--create-namespace \
|
|
--set installCRDs=false \
|
|
--set ingress.controllerName="k8s.ngrok.com/ingress-controller-b" \
|
|
--set ingress.ingressClass.name="ngrok-b" \
|
|
--set ingress.watchNamespace="namespace-b" \
|
|
--set image.repository=$(IMG) \
|
|
--set image.tag="latest" \
|
|
--set watchNamespace=namespace-b \
|
|
--set credentials.apiKey=$(NGROK_API_KEY) \
|
|
--set credentials.authtoken=$(NGROK_AUTHTOKEN) \
|
|
--set log.format=console \
|
|
--set-string log.level="8" \
|
|
--set log.stacktraceLevel=panic \
|
|
--set metaData.env=local,metaData.from=makefile \
|
|
$(HELM_DESCRIPTION_FLAG)
|
|
|
|
.PHONY: kind-load-image
|
|
kind-load-image: ## Load the locally built image into the kind cluster.
|
|
kind load docker-image $(IMG) --name $(KIND_CLUSTER_NAME)
|
|
|
|
.PHONY: _deploy-check-env-vars
|
|
_deploy-check-env-vars:
|
|
ifndef NGROK_API_KEY
|
|
$(error An NGROK_API_KEY must be set)
|
|
endif
|
|
ifndef NGROK_AUTHTOKEN
|
|
$(error An NGROK_AUTHTOKEN must be set)
|
|
endif
|
|
|
|
|
|
.PHONY: undeploy
|
|
undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/config.
|
|
helm uninstall ngrok-operator --namespace $(KUBE_NAMESPACE)
|