Widen scratch iteration 011 with fixture-backed integrations QA

This commit is contained in:
master
2026-03-14 03:11:45 +02:00
parent 3b1b7dad80
commit bd78523564
40 changed files with 3478 additions and 2173 deletions

View File

@@ -8,6 +8,7 @@ Consolidated Docker Compose configuration for the StellaOps platform. All profil
|--------------|---------|
| Run the full platform | `docker compose -f docker-compose.stella-ops.yml up -d` |
| Add observability | `docker compose -f docker-compose.stella-ops.yml -f docker-compose.telemetry.yml up -d` |
| Start QA integration fixtures | `docker compose -f docker-compose.integration-fixtures.yml up -d` |
| Run CI/testing infrastructure | `docker compose -f docker-compose.testing.yml --profile ci up -d` |
| Deploy with China compliance | See [China Compliance](#china-compliance-sm2sm3sm4) |
| Deploy with Russia compliance | See [Russia Compliance](#russia-compliance-gost) |
@@ -22,6 +23,7 @@ Consolidated Docker Compose configuration for the StellaOps platform. All profil
| File | Purpose |
|------|---------|
| `docker-compose.stella-ops.yml` | **Main stack**: PostgreSQL 18.1, Valkey 9.0.1, RustFS, Rekor v2, all StellaOps services |
| `docker-compose.integration-fixtures.yml` | **QA success fixtures**: Harbor and GitHub App API fixtures for retained onboarding verification |
| `docker-compose.telemetry.yml` | **Observability**: OpenTelemetry collector, Prometheus, Tempo, Loki |
| `docker-compose.testing.yml` | **CI/Testing**: Test databases, mock services, Gitea for integration tests |
| `docker-compose.dev.yml` | **Minimal dev infrastructure**: PostgreSQL, Valkey, RustFS only |
@@ -203,6 +205,33 @@ docker compose -f docker-compose.testing.yml --profile all up -d
---
### QA Integration Success Fixtures
Use the fixture compose lane when you need a scratch stack to prove successful Integrations Hub onboarding for the providers currently exposed in the local UI (`Harbor`, `GitHub App`).
```bash
# Start the fixture services after the main stack is up
docker compose -f docker-compose.integration-fixtures.yml up -d
# Harbor success-path endpoint
curl http://harbor-fixture.stella-ops.local/api/v2.0/health
# GitHub App success-path endpoints
curl http://github-app-fixture.stella-ops.local/api/v3/app
curl http://github-app-fixture.stella-ops.local/api/v3/rate_limit
```
Fixture endpoints:
| Service | Hostname | Port | Contract |
|---------|----------|------|----------|
| Harbor fixture | `harbor-fixture.stella-ops.local` | 80 | `GET /api/v2.0/health` -> healthy JSON + `X-Harbor-Version` |
| GitHub App fixture | `github-app-fixture.stella-ops.local` | 80 | `GET /api/v3/app`, `GET /api/v3/rate_limit` |
These fixtures are deterministic QA aids only; they are not production dependencies and remain opt-in.
---
## Regional Compliance Deployments
### China Compliance (SM2/SM3/SM4)

View File

@@ -0,0 +1,59 @@
# =============================================================================
# STELLA OPS - QA INTEGRATION FIXTURES
# =============================================================================
# Deterministic external-service fixtures used to prove successful UI onboarding
# for the providers currently exposed in the local Integrations Hub.
#
# Usage:
# docker compose -f devops/compose/docker-compose.integration-fixtures.yml up -d
# =============================================================================
networks:
stellaops:
external: true
name: stellaops
services:
harbor-fixture:
image: nginx:1.27-alpine
container_name: stellaops-harbor-fixture
restart: unless-stopped
ports:
- "127.1.1.6:80:80"
volumes:
- ./fixtures/integration-fixtures/harbor/default.conf:/etc/nginx/conf.d/default.conf:ro
networks:
stellaops:
aliases:
- harbor-fixture.stella-ops.local
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1/api/v2.0/health | grep -q 'healthy'"]
interval: 15s
timeout: 5s
retries: 5
start_period: 5s
labels:
com.stellaops.profile: "qa-fixtures"
com.stellaops.environment: "local-qa"
github-app-fixture:
image: nginx:1.27-alpine
container_name: stellaops-github-app-fixture
restart: unless-stopped
ports:
- "127.1.1.7:80:80"
volumes:
- ./fixtures/integration-fixtures/github-app/default.conf:/etc/nginx/conf.d/default.conf:ro
networks:
stellaops:
aliases:
- github-app-fixture.stella-ops.local
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1/api/v3/app | grep -q 'Stella QA GitHub App'"]
interval: 15s
timeout: 5s
retries: 5
start_period: 5s
labels:
com.stellaops.profile: "qa-fixtures"
com.stellaops.environment: "local-qa"

View File

@@ -0,0 +1,19 @@
server {
listen 80;
server_name github-app-fixture.stella-ops.local;
location = /api/v3/app {
default_type application/json;
return 200 '{"id":424242,"name":"Stella QA GitHub App","slug":"stella-qa-app"}';
}
location = /api/v3/rate_limit {
default_type application/json;
return 200 '{"resources":{"core":{"limit":5000,"remaining":4991,"reset":1893456000}}}';
}
location / {
default_type text/plain;
return 200 'Stella Ops QA GitHub App fixture';
}
}

View File

@@ -0,0 +1,15 @@
server {
listen 80;
server_name harbor-fixture.stella-ops.local;
location = /api/v2.0/health {
default_type application/json;
add_header X-Harbor-Version 2.10.0 always;
return 200 '{"status":"healthy","components":[{"name":"core","status":"healthy"},{"name":"jobservice","status":"healthy"},{"name":"registry","status":"healthy"}]}';
}
location / {
default_type text/plain;
return 200 'Stella Ops QA Harbor fixture';
}
}

View File

@@ -59,3 +59,5 @@
127.1.1.3 s3.stella-ops.local
127.1.1.4 rekor.stella-ops.local
127.1.1.5 registry.stella-ops.local
127.1.1.6 harbor-fixture.stella-ops.local
127.1.1.7 github-app-fixture.stella-ops.local