feat(demo): add complete TSYS developer support stack demo implementation
Add full demo environment with 13 services across 4 categories: - Infrastructure: Homepage, Docker Socket Proxy, Pi-hole, Portainer - Monitoring: InfluxDB, Grafana - Documentation: Draw.io, Kroki - Developer Tools: Atomic Tracker, ArchiveBox, Tube Archivist, Wakapi, MailHog, Atuin Includes: - Docker Compose templates with dynamic environment configuration - Deployment orchestration scripts with user ID detection - Comprehensive test suite (unit, integration, e2e) - Pre-deployment validation with yamllint, shellcheck - Full documentation (PRD, AGENTS, README) - Service configurations for all components All services configured for demo purposes with: - Dynamic UID/GID mapping - Docker socket proxy security - Health checks and monitoring - Service discovery via Homepage labels Ports allocated 4000-4099 range with sequential assignment. 💘 Generated with Crush Assisted-by: GLM-4.7 via Crush <crush@charm.land>
This commit is contained in:
45
demo/tests/integration/test_service_communication.sh
Executable file
45
demo/tests/integration/test_service_communication.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
# Integration test: Service-to-service communication
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
test_grafana_influxdb_integration() {
|
||||
# Test Grafana can reach InfluxDB
|
||||
# This would be executed after stack deployment
|
||||
if docker exec tsysdevstack-supportstack-demo-grafana wget -q --spider http://influxdb:8086/ping; then
|
||||
echo "PASS: Grafana-InfluxDB integration"
|
||||
return 0
|
||||
else
|
||||
echo "FAIL: Grafana-InfluxDB integration"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
test_portainer_docker_integration() {
|
||||
# Test Portainer can reach Docker socket
|
||||
if docker exec tsysdevstack-supportstack-demo-portainer docker version >/dev/null 2>&1; then
|
||||
echo "PASS: Portainer-Docker integration"
|
||||
return 0
|
||||
else
|
||||
echo "FAIL: Portainer-Docker integration"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
test_homepage_discovery() {
|
||||
# Test Homepage discovers all services
|
||||
local discovered_services
|
||||
discovered_services=$(curl -s http://localhost:4000 | grep -c "service" || echo "0")
|
||||
if [[ $discovered_services -ge 14 ]]; then
|
||||
echo "PASS: Homepage service discovery"
|
||||
return 0
|
||||
else
|
||||
echo "FAIL: Homepage service discovery (found $discovered_services, expected >=14)"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Run integration tests
|
||||
test_grafana_influxdb_integration
|
||||
test_portainer_docker_integration
|
||||
test_homepage_discovery
|
||||
Reference in New Issue
Block a user