11# Makefile for Kite project
2- .PHONY : help dev build clean test docker-build docker-run frontend backend install deps e2e-install e2e-kind-up e2e-kind-down e2e-stop-app e2e-test e2e-test-headed
2+ .PHONY : help dev build clean test docker-build docker-run frontend backend install deps e2e-install e2e-kind-up e2e-kind-down e2e-stop-app e2e-setup-ldap e2e-setup-dex e2e- test e2e-test-headed
33
44# Variables
55BINARY_NAME =kite
@@ -10,6 +10,11 @@ DOCKER_TAG=latest
1010E2E_KIND_NAME ?= kite-e2e
1111E2E_PORT ?= 38080
1212E2E_KUBECONFIG ?= $(shell printf '% s' "$${TMPDIR:-/tmp/}kite-e2e.kubeconfig")
13+ E2E_AUTH_NETWORK ?= kite-e2e-auth
14+ E2E_LDAP_CONTAINER ?= kite-e2e-ldap
15+ E2E_LDAP_PORT ?= 3389
16+ E2E_DEX_CONTAINER ?= kite-e2e-dex
17+ E2E_OAUTH_PORT ?= 5556
1318SPEC ?=
1419
1520# Version information
@@ -172,6 +177,44 @@ e2e-stop-app: ## Stop any local e2e app process listening on the e2e port
172177 sleep 1; \
173178 fi
174179
180+ e2e-setup-ldap : # # Start the OpenLDAP service used by external-auth e2e
181+ @docker network inspect " $( E2E_AUTH_NETWORK) " > /dev/null 2>&1 || docker network create " $( E2E_AUTH_NETWORK) " > /dev/null
182+ @docker rm -f " $( E2E_LDAP_CONTAINER) " > /dev/null 2>&1 || true
183+ docker run -d --name " $( E2E_LDAP_CONTAINER) " \
184+ --network " $( E2E_AUTH_NETWORK) " \
185+ --network-alias ldap \
186+ -p " $( E2E_LDAP_PORT) :389" \
187+ -e LDAP_ORGANISATION=" Kite E2E" \
188+ -e LDAP_DOMAIN=" kite.test" \
189+ -e LDAP_ADMIN_PASSWORD=" admin" \
190+ -e LDAP_CONFIG_PASSWORD=" admin" \
191+ -e LDAP_TLS=" false" \
192+ -v " $( CURDIR) /e2e/fixtures/openldap:/container/service/slapd/assets/config/bootstrap/ldif/custom:ro" \
193+ osixia/openldap:1.5.0 --copy-service
194+ @for i in $$(seq 1 60 ) ; do \
195+ if docker exec " $( E2E_LDAP_CONTAINER) " ldapsearch -x -H ldap://localhost:389 -b dc=kite,dc=test -D " cn=admin,dc=kite,dc=test" -w admin > /dev/null 2>&1 ; then \
196+ break ; \
197+ fi ; \
198+ sleep 1; \
199+ done
200+ docker exec " $( E2E_LDAP_CONTAINER) " ldapsearch -x -H ldap://localhost:389 -b dc=kite,dc=test -D " cn=admin,dc=kite,dc=test" -w admin > /dev/null
201+
202+ e2e-setup-dex : # # Start the Dex service used by external-auth e2e
203+ @docker network inspect " $( E2E_AUTH_NETWORK) " > /dev/null 2>&1 || docker network create " $( E2E_AUTH_NETWORK) " > /dev/null
204+ @docker rm -f " $( E2E_DEX_CONTAINER) " > /dev/null 2>&1 || true
205+ docker run -d --name " $( E2E_DEX_CONTAINER) " \
206+ --network " $( E2E_AUTH_NETWORK) " \
207+ -p " $( E2E_OAUTH_PORT) :5556" \
208+ -v " $( CURDIR) /e2e/fixtures/dex/config.yaml:/etc/dex/config.yaml:ro" \
209+ ghcr.io/dexidp/dex:v2.45.1 dex serve /etc/dex/config.yaml
210+ @for i in $$(seq 1 60 ) ; do \
211+ if curl -fsS " http://127.0.0.1:$( E2E_OAUTH_PORT) /.well-known/openid-configuration" > /dev/null; then \
212+ break ; \
213+ fi ; \
214+ sleep 1; \
215+ done
216+ curl -fsS " http://127.0.0.1:$( E2E_OAUTH_PORT) /.well-known/openid-configuration" > /dev/null
217+
175218e2e-test : e2e-install e2e-kind-up e2e-stop-app # # Run e2e tests against the local kind cluster
176219 @echo " 🧪 Running e2e tests..."
177220 cd $(E2E_DIR ) && KUBECONFIG=" $( E2E_KUBECONFIG) " KITE_E2E_CLUSTER_NAME=" $( E2E_KIND_NAME) " KITE_E2E_PORT=" $( E2E_PORT) " pnpm exec playwright test $(SPEC )
0 commit comments