Widen scratch iteration 011 with fixture-backed integrations QA
This commit is contained in:
@@ -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)
|
||||
|
||||
59
devops/compose/docker-compose.integration-fixtures.yml
Normal file
59
devops/compose/docker-compose.integration-fixtures.yml
Normal 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"
|
||||
@@ -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';
|
||||
}
|
||||
}
|
||||
@@ -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';
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user