provisioning/tests/integration/test_config.yaml

283 lines
5.2 KiB
YAML
Raw Normal View History

2025-10-07 11:12:02 +01:00
# Integration Test Configuration
# Defines test environment settings for OrbStack machine "provisioning"
version: "1.0.0"
# OrbStack connection details
orbstack:
machine_name: "provisioning"
connection:
type: "docker" # OrbStack uses Docker API
socket: "/var/run/docker.sock"
resources:
cpu_cores: 4
memory_mb: 8192
disk_gb: 100
network:
subnet: "172.20.0.0/16"
gateway: "172.20.0.1"
dns: ["172.20.0.2"] # CoreDNS
# Test workspace configuration
test_workspace:
name: "test-workspace"
path: "/tmp/provisioning-test-workspace"
auto_cleanup: true
config:
provider: "local"
region: "local"
environment: "test"
# Platform service endpoints (deployed on OrbStack)
services:
orchestrator:
host: "172.20.0.10"
port: 8080
health_endpoint: "/health"
coredns:
host: "172.20.0.2"
port: 53
protocol: "udp"
oci_registry:
# Zot for solo/multi-user modes
zot:
host: "172.20.0.20"
port: 5000
ui_port: 5001
# Harbor for enterprise mode
harbor:
host: "172.20.0.21"
port: 443
ui_port: 80
gitea:
host: "172.20.0.30"
port: 3000
ssh_port: 2222
postgres:
host: "172.20.0.40"
port: 5432
database: "provisioning"
username: "provisioning"
prometheus:
host: "172.20.0.50"
port: 9090
grafana:
host: "172.20.0.51"
port: 3001
# Test data definitions
test_data:
users:
- username: "admin"
email: "admin@test.local"
role: "admin"
password_hash: "test123"
- username: "developer"
email: "dev@test.local"
role: "developer"
password_hash: "test123"
- username: "viewer"
email: "viewer@test.local"
role: "viewer"
password_hash: "test123"
- username: "operator"
email: "ops@test.local"
role: "operator"
password_hash: "test123"
workspaces:
- name: "dev-workspace"
owner: "developer"
environment: "dev"
- name: "prod-workspace"
owner: "operator"
environment: "prod"
extensions:
taskservs:
- name: "kubernetes"
version: "1.28.0"
source: "oci"
- name: "containerd"
version: "1.7.0"
source: "oci"
- name: "postgres"
version: "15.0"
source: "gitea"
providers:
- name: "aws"
version: "1.0.0"
source: "local"
- name: "upcloud"
version: "1.0.0"
source: "local"
clusters:
- name: "buildkit"
version: "1.0.0"
source: "gitea"
# Test execution settings
test_execution:
parallel:
enabled: true
max_workers: 4
timeouts:
test_timeout_seconds: 300
setup_timeout_seconds: 600
teardown_timeout_seconds: 300
retries:
max_retries: 3
retry_delay_seconds: 5
retry_backoff_multiplier: 2.0
cleanup:
auto_cleanup_on_success: true
auto_cleanup_on_failure: false # Keep for debugging
cleanup_timeout_seconds: 120
# Test reporting
reporting:
output_dir: "/tmp/provisioning-test-reports"
formats:
- "junit"
- "html"
- "json"
junit:
filename: "junit-results.xml"
html:
filename: "test-report.html"
template: "default"
json:
filename: "test-results.json"
pretty: true
# Mode-specific configurations
modes:
solo:
services:
- "orchestrator"
- "coredns"
- "oci_registry" # Zot
features:
multi_user: false
rbac: false
audit_logging: false
kms: false
monitoring: false
multiuser:
services:
- "orchestrator"
- "coredns"
- "oci_registry" # Zot
- "gitea"
- "postgres"
features:
multi_user: true
rbac: true
audit_logging: false
kms: false
monitoring: false
cicd:
services:
- "orchestrator"
- "coredns"
- "oci_registry" # Zot
- "gitea"
- "postgres"
features:
multi_user: true
rbac: true
audit_logging: true
kms: false
monitoring: true
api_server: true
enterprise:
services:
- "orchestrator"
- "coredns"
- "oci_registry" # Harbor
- "gitea"
- "postgres"
- "prometheus"
- "grafana"
- "kms"
- "elasticsearch"
features:
multi_user: true
rbac: true
audit_logging: true
kms: true
monitoring: true
api_server: true
harbor_registry: true
# Performance test settings
performance:
concurrency_tests:
concurrent_server_creations: 10
concurrent_dns_registrations: 20
concurrent_workflow_submissions: 5
scalability_tests:
max_servers: 100
max_dns_records: 100
max_oci_artifacts: 1000
benchmarks:
server_creation_target_seconds: 30
taskserv_installation_target_seconds: 60
dns_registration_target_seconds: 5
# Security test settings
security:
rbac_tests:
test_unauthorized_access: true
test_role_permissions: true
test_workspace_isolation: true
kms_tests:
test_ssh_key_storage: true
test_key_rotation: true
test_audit_logging: true
# Logging configuration
logging:
level: "info" # debug, info, warn, error
output: "file" # file, stdout, both
file_path: "/tmp/provisioning-test.log"
rotation:
enabled: true
max_size_mb: 100
max_files: 5