Add Vault, Consul, eBPF connector plugins and thorough integration e2e tests
Backend: - Add SecretsManager=9 type, Vault=550 and Consul=551 providers to IntegrationEnums - Create VaultConnectorPlugin (GET /v1/sys/health), ConsulConnectorPlugin (GET /v1/status/leader), EbpfAgentConnectorPlugin (GET /api/v1/health) - Register all 3 plugins in Program.cs and WebService.csproj - Extend Concelier JobRegistrationExtensions with 20 additional advisory source connectors (ghsa, kev, epss, debian, ubuntu, alpine, suse, etc.) - Add connector project references to Concelier WebService.csproj so Type.GetType() can resolve job classes at runtime - Fix job kind names to match SourceDefinitions IDs (jpcert not jvn, oracle not vndr-oracle, etc.) Infrastructure: - Add Consul service to docker-compose.integrations.yml (127.1.2.8:8500) - Add runtime-host nginx fixture to docker-compose.integration-fixtures.yml (127.1.1.9:80) Frontend: - Mirror SecretsManager/Vault/Consul enum additions in integration.models.ts - Fix Secrets tab route type from RepoSource to SecretsManager - Add SecretsManager to parseType() and TYPE_DISPLAY_NAMES E2E tests (117/117 passing): - vault-consul-secrets.e2e.spec.ts: compose health, probes, CRUD, UI - runtime-hosts.e2e.spec.ts: fixture probe, CRUD, hosts tab - advisory-sync.e2e.spec.ts: 21 sources sync accepted, catalog, management - ui-onboarding-wizard.e2e.spec.ts: wizard steps for registry/scm/ci - ui-integration-detail.e2e.spec.ts: detail tabs, health data - ui-crud-operations.e2e.spec.ts: search, sort, delete - helpers.ts: shared configs, API helpers, screenshot util - Updated playwright.integrations.config.ts with reporter and CI retries Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -79,3 +79,25 @@ services:
|
||||
labels:
|
||||
com.stellaops.profile: "qa-fixtures"
|
||||
com.stellaops.environment: "local-qa"
|
||||
|
||||
runtime-host-fixture:
|
||||
image: nginx:1.27-alpine
|
||||
container_name: stellaops-runtime-host-fixture
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.1.1.9:80:80"
|
||||
volumes:
|
||||
- ./fixtures/integration-fixtures/runtime-host/default.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
networks:
|
||||
stellaops:
|
||||
aliases:
|
||||
- runtime-host-fixture.stella-ops.local
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1/api/v1/health | grep -q 'healthy'"]
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 5s
|
||||
labels:
|
||||
com.stellaops.profile: "qa-fixtures"
|
||||
com.stellaops.environment: "local-qa"
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
# 127.1.2.5 registry.stella-ops.local
|
||||
# 127.1.2.6 minio.stella-ops.local
|
||||
# 127.1.2.7 gitlab.stella-ops.local
|
||||
# 127.1.2.8 consul.stella-ops.local
|
||||
#
|
||||
# Default credentials (all services):
|
||||
# See the environment variables below or docs/integrations/LOCAL_SERVICES.md
|
||||
@@ -291,6 +292,36 @@ services:
|
||||
com.stellaops.provider: "s3"
|
||||
com.stellaops.profile: "integrations"
|
||||
|
||||
# ===========================================================================
|
||||
# HASHICORP CONSUL — Service Discovery & KV Configuration
|
||||
# ===========================================================================
|
||||
# Integration type: Secrets Manager (Consul provider)
|
||||
# URL: http://consul.stella-ops.local:8500
|
||||
# No auth (dev mode)
|
||||
# API: http://consul.stella-ops.local:8500/v1/status/leader
|
||||
# ===========================================================================
|
||||
consul:
|
||||
image: hashicorp/consul:1.19
|
||||
container_name: stellaops-consul
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.1.2.8:8500:8500"
|
||||
command: agent -dev -client=0.0.0.0
|
||||
networks:
|
||||
stellaops:
|
||||
aliases:
|
||||
- consul.stella-ops.local
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "consul members || exit 1"]
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
labels:
|
||||
com.stellaops.integration: "secrets"
|
||||
com.stellaops.provider: "consul"
|
||||
com.stellaops.profile: "integrations"
|
||||
|
||||
# ===========================================================================
|
||||
# GITLAB CE — Full Git SCM + CI/CD + Container Registry (optional, heavy)
|
||||
# ===========================================================================
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
|
||||
location /api/v1/health {
|
||||
default_type application/json;
|
||||
return 200 '{"status":"healthy","agent":"ebpf","version":"0.9.0","pid":1,"uptime_seconds":3600,"kernel":"6.1.0","probes_loaded":12,"events_per_second":450}';
|
||||
}
|
||||
|
||||
location /api/v1/info {
|
||||
default_type application/json;
|
||||
return 200 '{"agent_type":"ebpf","hostname":"stellaops-runtime-host","os":"linux","arch":"amd64","kernel_version":"6.1.0","probes":["syscall_open","syscall_exec","net_connect","file_access","process_fork","mmap_exec","ptrace_attach","module_load","bpf_prog_load","cgroup_attach","namespace_create","capability_use"]}';
|
||||
}
|
||||
|
||||
location / {
|
||||
return 404 '{"error":"not_found"}';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user