@@ -3,34 +3,110 @@ include Makefile
33LOCAL_ENDPOINT ?= host.k3d.internal
44SO_NAME ?= otel-example
55
6+ # # helpers
7+ check_defined = \
8+ $(strip $(foreach 1,$1, \
9+ $(call __check_defined,$1,$(strip $(value 2) ) ) ) )
10+ __check_defined = \
11+ $(if $(value $1) ,, \
12+ $(error Undefined $1$(if $2, ($2) ) ) )
13+ check_k3d = \
14+ @if [ -z $$(kubectl config current-context | grep "^k3d-" ) ]; then \
15+ echo "Create k3d cluster first!" ;\
16+ exit 1 ;\
17+ fi
18+
19+ # #@ Dev
620.PHONY : dev-k3d
7- dev-k3d : build-image # # Builds the container image for current arch, imports it to running k3d and restarts the scaler.
21+ dev-k3d : # # Builds the container image for current arch, imports it to running k3d and restarts the scaler.
822 @$(call say,Doing the dev cycle)
9- k3d image import ghcr.io/kedify/otel-add-on:latest
23+ @$(call check_k3d)
24+ k3d image import -c $(shell kubectl config current-context | sed -e "s/^k3d-//") ghcr.io/kedify/otel-add-on:latest
1025 helm upgrade --reuse-values \
11- kedify-otel helmchart/otel-add-on \
12- --set image.tag=latest \
26+ keda-otel-scaler helmchart/otel-add-on \
27+ -nkeda \
28+ --set image.tag=latest \
1329 --set image.pullPolicy=IfNotPresent \
14- --set settings.logs.logLvl=debug \
15- kubectl rollout restart deploy/otel-add-on -scaler
30+ --set settings.logs.logLvl=debug
31+ kubectl -nkeda rollout restart deploy/keda-otel -scaler
1632
1733.PHONY : dev-local
1834dev-local : # # Prepare the SO and otel collector for local debug
1935 @$(call say,Prepare the conditions for local debug)
36+ @$(call check_k3d)
2037 helm upgrade --reuse-values \
21- kedify-otel helmchart/otel-add-on \
22- --set replicaCount=1 \
23- --set opentelemetry-collector.config.exporters.otlp.endpoint=$(LOCAL_ENDPOINT ) :4317
38+ keda-otel-scaler helmchart/otel-add-on \
39+ -nkeda \
40+ --set replicaCount=1 \
41+ --set opentelemetry-collector.config.exporters.otlp.endpoint=$(LOCAL_ENDPOINT ) :4317
2442 kubectl patch so $(SO_NAME ) --type=json -p ' [{"op":"replace","path":"/spec/triggers/0/metadata/scalerAddress","value":"$(LOCAL_ENDPOINT):4318"}]'
25- @$(call say,Continue by running the scaler locally from your favorite IDE outsice of K8s)
43+ @$(call say,Continue by running the scaler locally from your favorite IDE outside of K8s)
2644 @echo " Make sure $( LOCAL_ENDPOINT) :4317 and $( LOCAL_ENDPOINT) :4318 are listening.."
2745
2846.PHONY : undo-dev-local
2947undo-dev-local : # # Revers the SO and otel collector for local debug
3048 @$(call say,Revert the conditions for local debug)
49+ @$(call check_k3d)
3150 helm upgrade --reuse-values \
32- kedify-otel helmchart/otel-add-on \
33- --set replicaCount=1 \
34- --set opentelemetry-collector.config.exporters.otlp.endpoint=keda-otel-scaler :4317
35- kubectl patch so $(SO_NAME ) --type=json -p '[{"op" :"replace","path":"/spec/triggers/0/metadata/scalerAddress","value":"keda-otel-scaler:4318"}]'
36- kubectl scale deploy/otel-add-on-scaler --replicas=1
51+ keda-otel-scaler helmchart/otel-add-on \
52+ -nkeda \
53+ --set replicaCount=1 \
54+ --set opentelemetry-collector.config.exporters.otlp.endpoint=keda-otel-scaler.keda.svc:4317
55+ kubectl patch so $(SO_NAME ) --type=json -p ' [{"op":"replace","path":"/spec/triggers/0/metadata/scalerAddress","value":"keda-otel-scaler.keda.svc:4318"}]'
56+ kubectl scale -nkeda deploy/keda-otel-scaler --replicas=1
57+
58+ .PHONY : k8s-certs
59+ k8s-certs : test-certs # # Creates k8s secrets from the generated certificates
60+ @$(call say,Preparing certs)
61+ @$(call check_k3d)
62+ kubectl -nkeda delete secret --ignore-not-found server-tls client-tls root-ca
63+ kubectl -nkeda create secret tls server-tls --cert=certs/server.crt --key=certs/server.key
64+ kubectl -nkeda create secret tls client-tls --cert=certs/client.crt --key=certs/client.key
65+ kubectl -nkeda create secret generic root-ca --from-file=rootCA.crt=certs/rootCA.crt
66+
67+ # #@ Demos
68+ .PHONY : demo-podinfo
69+ demo-podinfo : # # setup ./examples/metric-pull
70+ ./examples/metric-pull/setup.sh
71+ $(MAKE ) -f dev.Makefile dev-k3d
72+
73+ .PHONY : demo-podinfo-tls
74+ demo-podinfo-tls : # # setup ./examples/metric-pull with TLS
75+ SETUP_ONLY=true ./examples/metric-pull/setup.sh
76+ $(MAKE ) -f dev.Makefile k8s-certs
77+ helm upgrade -i -nkeda keda-otel-scaler ./helmchart/otel-add-on -f ./examples/metric-pull/scaler-with-collector-pull-tls-values.yaml
78+ $(MAKE ) -f dev.Makefile dev-k3d
79+ kubectl apply -f ./examples/metric-pull/podinfo-so.yaml
80+ @$(call say,Done)
81+ @echo " Continue with: (hey -n 7000 -z 180s http://localhost:8181/delay/2 &> /dev/null)&"
82+
83+ .PHONY : demo-otel-upstream
84+ demo-otel-upstream : # # setup ./examples/metric-push
85+ ./examples/metric-push/setup.sh
86+ $(MAKE ) -f dev.Makefile dev-k3d
87+
88+ .PHONY : demo-operator
89+ demo-operator : # # setup ./examples/otel-operator
90+ @:$(call check_defined, PR_BRANCH GH_PAT)
91+ $(call check_k3d)
92+ ./examples/otel-operator/setup.sh
93+ $(MAKE ) -f dev.Makefile dev-k3d
94+
95+ .PHONY : demo-operator-tls
96+ demo-operator-tls : # # setup ./examples/otel-operator with TLS
97+ SETUP_ONLY=true ./examples/otel-operator/setup.sh
98+ $(MAKE ) -f dev.Makefile k8s-certs
99+ # helm cant merge correctly value files when the later overrides an item in an array (w/ unique name)
100+ rm -rf values_tmp && ./hack/mergeValues.sh \
101+ examples/otel-operator/scaler-with-operator-with-collector-values.yaml \
102+ examples/otel-operator/tls-overlay-values.yaml > values_tmp
103+ @$(call say,Merged values:)
104+ yq values_tmp
105+ helm upgrade -i \
106+ keda-otel-scaler helmchart/otel-add-on \
107+ -nkeda \
108+ -f ./values_tmp
109+ rm -rf values_tmp
110+ $(MAKE ) -f dev.Makefile dev-k3d
111+ @$(call say,Creating SO)
112+ kubectl apply -f <( cat ./examples/otel-operator/so.yaml | envsubst)
0 commit comments