Some checks failed
		
		
	
	Docs CI / lint-and-preview (push) Has been cancelled
				
			- Introduced RunnerBackgroundService to handle execution of runner segments. - Added RunnerExecutionService for processing segments and aggregating results. - Implemented PlannerQueueDispatchService to manage dispatching of planner messages. - Created PlannerQueueDispatcherBackgroundService for leasing and processing planner queue messages. - Developed ScannerReportClient for interacting with the scanner service. - Enhanced observability with SchedulerWorkerMetrics for tracking planner and runner performance. - Added comprehensive documentation for the new runner execution pipeline and observability metrics. - Implemented event emission for rescan activity and scanner report readiness.
		
			
				
	
	
		
			248 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			248 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| x-release-labels: &release-labels
 | |
|   com.stellaops.release.version: "2025.10.0-edge"
 | |
|   com.stellaops.release.channel: "edge"
 | |
|   com.stellaops.profile: "dev"
 | |
| 
 | |
| networks:
 | |
|   stellaops:
 | |
|     driver: bridge
 | |
| 
 | |
| volumes:
 | |
|   mongo-data:
 | |
|   minio-data:
 | |
|   rustfs-data:
 | |
|   concelier-jobs:
 | |
|   nats-data:
 | |
| 
 | |
| services:
 | |
|   mongo:
 | |
|     image: docker.io/library/mongo@sha256:c258b26dbb7774f97f52aff52231ca5f228273a84329c5f5e451c3739457db49
 | |
|     command: ["mongod", "--bind_ip_all"]
 | |
|     restart: unless-stopped
 | |
|     environment:
 | |
|       MONGO_INITDB_ROOT_USERNAME: "${MONGO_INITDB_ROOT_USERNAME}"
 | |
|       MONGO_INITDB_ROOT_PASSWORD: "${MONGO_INITDB_ROOT_PASSWORD}"
 | |
|     volumes:
 | |
|       - mongo-data:/data/db
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   minio:
 | |
|     image: docker.io/minio/minio@sha256:14cea493d9a34af32f524e538b8346cf79f3321eff8e708c1e2960462bd8936e
 | |
|     command: ["server", "/data", "--console-address", ":9001"]
 | |
|     restart: unless-stopped
 | |
|     environment:
 | |
|       MINIO_ROOT_USER: "${MINIO_ROOT_USER}"
 | |
|       MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD}"
 | |
|     volumes:
 | |
|       - minio-data:/data
 | |
|     ports:
 | |
|       - "${MINIO_CONSOLE_PORT:-9001}:9001"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   rustfs:
 | |
|     image: registry.stella-ops.org/stellaops/rustfs:2025.10.0-edge
 | |
|     command: ["serve", "--listen", "0.0.0.0:8080", "--root", "/data"]
 | |
|     restart: unless-stopped
 | |
|     environment:
 | |
|       RUSTFS__LOG__LEVEL: info
 | |
|       RUSTFS__STORAGE__PATH: /data
 | |
|     volumes:
 | |
|       - rustfs-data:/data
 | |
|     ports:
 | |
|       - "${RUSTFS_HTTP_PORT:-8080}:8080"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   nats:
 | |
|     image: docker.io/library/nats@sha256:c82559e4476289481a8a5196e675ebfe67eea81d95e5161e3e78eccfe766608e
 | |
|     command:
 | |
|       - "-js"
 | |
|       - "-sd"
 | |
|       - /data
 | |
|     restart: unless-stopped
 | |
|     ports:
 | |
|       - "${NATS_CLIENT_PORT:-4222}:4222"
 | |
|     volumes:
 | |
|       - nats-data:/data
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   authority:
 | |
|     image: registry.stella-ops.org/stellaops/authority@sha256:a8e8faec44a579aa5714e58be835f25575710430b1ad2ccd1282a018cd9ffcdd
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - mongo
 | |
|     environment:
 | |
|       STELLAOPS_AUTHORITY__ISSUER: "${AUTHORITY_ISSUER}"
 | |
|       STELLAOPS_AUTHORITY__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017"
 | |
|       STELLAOPS_AUTHORITY__PLUGINDIRECTORIES__0: "/app/plugins"
 | |
|       STELLAOPS_AUTHORITY__PLUGINS__CONFIGURATIONDIRECTORY: "/app/etc/authority.plugins"
 | |
|     volumes:
 | |
|       - ../../etc/authority.yaml:/etc/authority.yaml:ro
 | |
|       - ../../etc/authority.plugins:/app/etc/authority.plugins:ro
 | |
|     ports:
 | |
|       - "${AUTHORITY_PORT:-8440}:8440"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   signer:
 | |
|     image: registry.stella-ops.org/stellaops/signer@sha256:8bfef9a75783883d49fc18e3566553934e970b00ee090abee9cb110d2d5c3298
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - authority
 | |
|     environment:
 | |
|       SIGNER__AUTHORITY__BASEURL: "https://authority:8440"
 | |
|       SIGNER__POE__INTROSPECTURL: "${SIGNER_POE_INTROSPECT_URL}"
 | |
|       SIGNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017"
 | |
|     ports:
 | |
|       - "${SIGNER_PORT:-8441}:8441"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   attestor:
 | |
|     image: registry.stella-ops.org/stellaops/attestor@sha256:5cc417948c029da01dccf36e4645d961a3f6d8de7e62fe98d845f07cd2282114
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - signer
 | |
|     environment:
 | |
|       ATTESTOR__SIGNER__BASEURL: "https://signer:8441"
 | |
|       ATTESTOR__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017"
 | |
|     ports:
 | |
|       - "${ATTESTOR_PORT:-8442}:8442"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   concelier:
 | |
|     image: registry.stella-ops.org/stellaops/concelier@sha256:dafef3954eb4b837e2c424dd2d23e1e4d60fa83794840fac9cd3dea1d43bd085
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - mongo
 | |
|       - minio
 | |
|     environment:
 | |
|       CONCELIER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017"
 | |
|       CONCELIER__STORAGE__S3__ENDPOINT: "http://minio:9000"
 | |
|       CONCELIER__STORAGE__S3__ACCESSKEYID: "${MINIO_ROOT_USER}"
 | |
|       CONCELIER__STORAGE__S3__SECRETACCESSKEY: "${MINIO_ROOT_PASSWORD}"
 | |
|       CONCELIER__AUTHORITY__BASEURL: "https://authority:8440"
 | |
|     volumes:
 | |
|       - concelier-jobs:/var/lib/concelier/jobs
 | |
|     ports:
 | |
|       - "${CONCELIER_PORT:-8445}:8445"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   scanner-web:
 | |
|     image: registry.stella-ops.org/stellaops/scanner-web@sha256:e0dfdb087e330585a5953029fb4757f5abdf7610820a085bd61b457dbead9a11
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - concelier
 | |
|       - rustfs
 | |
|       - nats
 | |
|     environment:
 | |
|       SCANNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017"
 | |
|       SCANNER__ARTIFACTSTORE__DRIVER: "rustfs"
 | |
|       SCANNER__ARTIFACTSTORE__ENDPOINT: "http://rustfs:8080/api/v1"
 | |
|       SCANNER__ARTIFACTSTORE__BUCKET: "scanner-artifacts"
 | |
|       SCANNER__ARTIFACTSTORE__TIMEOUTSECONDS: "30"
 | |
|       SCANNER__QUEUE__BROKER: "${SCANNER_QUEUE_BROKER}"
 | |
|       SCANNER__EVENTS__ENABLED: "${SCANNER_EVENTS_ENABLED:-false}"
 | |
|       SCANNER__EVENTS__DRIVER: "${SCANNER_EVENTS_DRIVER:-redis}"
 | |
|       SCANNER__EVENTS__DSN: "${SCANNER_EVENTS_DSN:-}"
 | |
|       SCANNER__EVENTS__STREAM: "${SCANNER_EVENTS_STREAM:-stella.events}"
 | |
|       SCANNER__EVENTS__PUBLISHTIMEOUTSECONDS: "${SCANNER_EVENTS_PUBLISH_TIMEOUT_SECONDS:-5}"
 | |
|       SCANNER__EVENTS__MAXSTREAMLENGTH: "${SCANNER_EVENTS_MAX_STREAM_LENGTH:-10000}"
 | |
|     ports:
 | |
|       - "${SCANNER_WEB_PORT:-8444}:8444"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   scanner-worker:
 | |
|     image: registry.stella-ops.org/stellaops/scanner-worker@sha256:92dda42f6f64b2d9522104a5c9ffb61d37b34dd193132b68457a259748008f37
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - scanner-web
 | |
|       - rustfs
 | |
|       - nats
 | |
|     environment:
 | |
|       SCANNER__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017"
 | |
|       SCANNER__ARTIFACTSTORE__DRIVER: "rustfs"
 | |
|       SCANNER__ARTIFACTSTORE__ENDPOINT: "http://rustfs:8080/api/v1"
 | |
|       SCANNER__ARTIFACTSTORE__BUCKET: "scanner-artifacts"
 | |
|       SCANNER__ARTIFACTSTORE__TIMEOUTSECONDS: "30"
 | |
|       SCANNER__QUEUE__BROKER: "${SCANNER_QUEUE_BROKER}"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   scheduler-worker:
 | |
|     image: registry.stella-ops.org/stellaops/scheduler-worker:2025.10.0-edge
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - mongo
 | |
|       - nats
 | |
|       - scanner-web
 | |
|     command:
 | |
|       - "dotnet"
 | |
|       - "StellaOps.Scheduler.Worker.Host.dll"
 | |
|     environment:
 | |
|       SCHEDULER__QUEUE__KIND: "${SCHEDULER_QUEUE_KIND:-Nats}"
 | |
|       SCHEDULER__QUEUE__NATS__URL: "${SCHEDULER_QUEUE_NATS_URL:-nats://nats:4222}"
 | |
|       SCHEDULER__STORAGE__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017"
 | |
|       SCHEDULER__STORAGE__DATABASE: "${SCHEDULER_STORAGE_DATABASE:-stellaops_scheduler}"
 | |
|       SCHEDULER__WORKER__RUNNER__SCANNER__BASEADDRESS: "${SCHEDULER_SCANNER_BASEADDRESS:-http://scanner-web:8444}"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   notify-web:
 | |
|     image: ${NOTIFY_WEB_IMAGE:-registry.stella-ops.org/stellaops/notify-web:2025.10.0-edge}
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - mongo
 | |
|       - authority
 | |
|     environment:
 | |
|       DOTNET_ENVIRONMENT: Development
 | |
|     volumes:
 | |
|       - ../../etc/notify.dev.yaml:/app/etc/notify.yaml:ro
 | |
|     ports:
 | |
|       - "${NOTIFY_WEB_PORT:-8446}:8446"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   excititor:
 | |
|     image: registry.stella-ops.org/stellaops/excititor@sha256:d9bd5cadf1eab427447ce3df7302c30ded837239771cc6433b9befb895054285
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - concelier
 | |
|     environment:
 | |
|       EXCITITOR__CONCELIER__BASEURL: "https://concelier:8445"
 | |
|       EXCITITOR__STORAGE__MONGO__CONNECTIONSTRING: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 | |
| 
 | |
|   web-ui:
 | |
|     image: registry.stella-ops.org/stellaops/web-ui@sha256:38b225fa7767a5b94ebae4dae8696044126aac429415e93de514d5dd95748dcf
 | |
|     restart: unless-stopped
 | |
|     depends_on:
 | |
|       - scanner-web
 | |
|     environment:
 | |
|       STELLAOPS_UI__BACKEND__BASEURL: "https://scanner-web:8444"
 | |
|     ports:
 | |
|       - "${UI_PORT:-8443}:8443"
 | |
|     networks:
 | |
|       - stellaops
 | |
|     labels: *release-labels
 |