1
EXAMPLE_DATAPLANE_MESH ?= default
2
EXAMPLE_DATAPLANE_NAME ?= example
3
EXAMPLE_DATAPLANE_INBOUND_PORT ?= 8000
4
EXAMPLE_DATAPLANE_SERVICE_PORT ?= 10011
5
EXAMPLE_DATAPLANE_SERVICE_TAG ?= echo-service
6
ENVOY_ADMIN_PORT = $(shell expr $(EXAMPLE_DATAPLANE_INBOUND_PORT) - 8000 + 9901)
8
define EXAMPLE_DATAPLANE_RESOURCE
10
mesh: $(EXAMPLE_DATAPLANE_MESH)
11
name: $(EXAMPLE_DATAPLANE_NAME)
15
port: $(ENVOY_ADMIN_PORT)
17
- port: $(EXAMPLE_DATAPLANE_INBOUND_PORT)
18
servicePort: $(EXAMPLE_DATAPLANE_SERVICE_PORT)
22
kuma.io/service: $(EXAMPLE_DATAPLANE_SERVICE_TAG)
23
kuma.io/protocol: http
26
POSTGRES_MODE = standard
28
CP_ENV += KUMA_ENVIRONMENT=universal KUMA_MULTIZONE_ZONE_NAME=zone-1 KUMA_STORE_TYPE=$(CP_STORE)
29
ifeq ($(CP_STORE),postgres)
30
CP_ENV += KUMA_STORE_POSTGRES_HOST=localhost \
31
KUMA_STORE_POSTGRES_PORT=15432 \
32
KUMA_STORE_POSTGRES_USER=kuma \
33
KUMA_STORE_POSTGRES_PASSWORD=kuma \
34
KUMA_STORE_POSTGRES_DB_NAME=kuma
36
ifeq ($(POSTGRES_MODE),tls)
37
CP_ENV += KUMA_STORE_POSTGRES_TLS_MODE=verifyCa \
38
KUMA_STORE_POSTGRES_TLS_CERT_PATH=$(TOOLS_DIR)/postgres/certs/postgres.client.crt \
39
KUMA_STORE_POSTGRES_TLS_KEY_PATH=$(TOOLS_DIR)/postgres/certs/postgres.client.key \
40
KUMA_STORE_POSTGRES_TLS_CA_PATH=$(TOOLS_DIR)/postgres/certs/rootCA.crt
42
CP_ENV += $(EXTRA_CP_ENV)
44
export EXAMPLE_DATAPLANE_RESOURCE
46
NUM_OF_DATAPLANES ?= 100
48
KUMA_CP_ADDRESS ?= grpcs://localhost:5678
50
.PHONY: run/postgres/start
51
run/postgres/start: ## Dev: start Postgres for Control Plane with initial schema (Use POSTGRES_MODE=tls to enable TLS)
52
$(CP_ENV) POSTGRES_MODE=$(POSTGRES_MODE) docker-compose -f $(TOOLS_DIR)/postgres/docker-compose.yaml up -d --build
54
.PHONY: run/postgres/stop
55
run/postgres/stop: ## Dev: stop Postgres
56
docker-compose -f $(TOOLS_DIR)/postgres/docker-compose.yaml down
59
run/kuma-cp: $(DISTRIBUTION_FOLDER) ## Dev: Run `kuma-cp` locally (use CP_STORE=postgres to use postgres as a store and POSTGRES_MODE=tls to enabled TLS, use EXTRA_CP_ENV to add extra Kuma env vars)
60
ifeq ($(CP_STORE),postgres)
61
$(CP_ENV) $(DISTRIBUTION_FOLDER)/bin/kuma-cp migrate up --log-level=debug
63
$(CP_ENV) $(DISTRIBUTION_FOLDER)/bin/kuma-cp run --log-level=debug
66
run/kuma-dp: $(DISTRIBUTION_FOLDER) ## Dev: Run `kuma-dp` locally
67
$(DISTRIBUTION_FOLDER)/bin/kumactl generate dataplane-token --name=$(EXAMPLE_DATAPLANE_NAME) --mesh=$(EXAMPLE_DATAPLANE_MESH) --valid-for=24h > /tmp/kuma-dp-$(EXAMPLE_DATAPLANE_NAME)-$(EXAMPLE_DATAPLANE_MESH)-token
68
echo "$$EXAMPLE_DATAPLANE_RESOURCE" > /tmp/kuma-dp-$(EXAMPLE_DATAPLANE_NAME)-$(EXAMPLE_DATAPLANE_MESH).yaml
69
$(DISTRIBUTION_FOLDER)/bin/kuma-dp run --log-level=debug --dataplane-token-file /tmp/kuma-dp-$(EXAMPLE_DATAPLANE_NAME)-$(EXAMPLE_DATAPLANE_MESH)-token --dataplane-file /tmp/kuma-dp-$(EXAMPLE_DATAPLANE_NAME)-$(EXAMPLE_DATAPLANE_MESH).yaml
73
go run ./tools/xds-client/... run --dps "${NUM_OF_DATAPLANES}" --services "${NUM_OF_SERVICES}" --xds-server-address "${KUMA_CP_ADDRESS}"
75
.PHONY: run/echo-server
76
run/echo-server: build/test-server
77
$(BUILD_ARTIFACTS_DIR)/test-server/test-server echo --port=$(EXAMPLE_DATAPLANE_SERVICE_PORT)
79
.PHONY: run/envoy/config_dump
80
run/envoy/config_dump: ## Dev: Dump effective configuration of example Envoy
81
curl -s localhost:$(ENVOY_ADMIN_PORT)/config_dump