refactor(jobengine): delete TaskRunner service
- Remove TaskRunner source, tests, libraries (3 directories) - Remove from compose, services-matrix, nginx, hosts, smoke tests - Remove CLI commands, UI references, Authority scopes - Remove docs, OpenAPI spec, QA state files - Leave task_runner_id DB columns as nullable legacy - PacksRegistry preserved (independent service) - Eliminates 2 containers (taskrunner-web + taskrunner-worker) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -162,7 +162,7 @@ volumes:
|
||||
advisory-ai-plans:
|
||||
advisory-ai-outputs:
|
||||
evidence-data:
|
||||
taskrunner-artifacts-data:
|
||||
|
||||
|
||||
services:
|
||||
# ===========================================================================
|
||||
@@ -435,7 +435,7 @@ services:
|
||||
STELLAOPS_RISKENGINE_URL: "http://riskengine.stella-ops.local"
|
||||
# STELLAOPS_JOBENGINE_URL removed: WebService retired; audit/first-signal now served by release-orchestrator
|
||||
STELLAOPS_RELEASE_ORCHESTRATOR_URL: "http://release-orchestrator.stella-ops.local"
|
||||
STELLAOPS_TASKRUNNER_URL: "http://taskrunner.stella-ops.local"
|
||||
# STELLAOPS_TASKRUNNER_URL removed: TaskRunner service deleted
|
||||
STELLAOPS_SCHEDULER_URL: "http://scheduler.stella-ops.local"
|
||||
STELLAOPS_GRAPH_URL: "http://graph.stella-ops.local"
|
||||
STELLAOPS_CARTOGRAPHER_URL: "http://cartographer.stella-ops.local"
|
||||
@@ -1194,70 +1194,8 @@ services:
|
||||
# Workflow orchestration → workflow service (Slot 46)
|
||||
# Scheduler remains in Slot 14 (scheduler-web / scheduler-worker)
|
||||
|
||||
# --- Slot 18: TaskRunner ---------------------------------------------------
|
||||
taskrunner-web:
|
||||
<<: *resources-light
|
||||
image: stellaops/taskrunner-web:dev
|
||||
container_name: stellaops-taskrunner-web
|
||||
restart: unless-stopped
|
||||
depends_on: *depends-infra
|
||||
environment:
|
||||
ASPNETCORE_URLS: "http://+:8080"
|
||||
<<: [*kestrel-cert, *router-microservice-defaults, *gc-light]
|
||||
ConnectionStrings__Default: *postgres-connection
|
||||
ConnectionStrings__Redis: "cache.stella-ops.local:6379"
|
||||
TASKRUNNER__STORAGE__DRIVER: "postgres"
|
||||
TASKRUNNER__STORAGE__POSTGRES__CONNECTIONSTRING: *postgres-connection
|
||||
TASKRUNNER__STORAGE__OBJECTSTORE__DRIVER: "seed-fs"
|
||||
TASKRUNNER__STORAGE__OBJECTSTORE__SEEDFS__ROOTPATH: "/app/artifacts"
|
||||
Router__Enabled: "${TASKRUNNER_ROUTER_ENABLED:-true}"
|
||||
Router__Messaging__ConsumerGroup: "taskrunner"
|
||||
volumes:
|
||||
- *cert-volume
|
||||
- taskrunner-artifacts-data:/app/artifacts
|
||||
ports:
|
||||
- "127.1.0.18:80:80"
|
||||
networks:
|
||||
stellaops:
|
||||
aliases:
|
||||
- taskrunner.stella-ops.local
|
||||
frontdoor: {}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c 'echo > /dev/tcp/$(hostname)/80'"]
|
||||
<<: *healthcheck-tcp
|
||||
labels: *release-labels
|
||||
|
||||
taskrunner-worker:
|
||||
<<: *resources-light
|
||||
image: stellaops/taskrunner-worker:dev
|
||||
container_name: stellaops-taskrunner-worker
|
||||
restart: unless-stopped
|
||||
depends_on: *depends-infra
|
||||
environment:
|
||||
<<: [*kestrel-cert, *gc-light]
|
||||
ConnectionStrings__Default: *postgres-connection
|
||||
ConnectionStrings__Redis: "cache.stella-ops.local:6379"
|
||||
TASKRUNNER__STORAGE__DRIVER: "postgres"
|
||||
TASKRUNNER__STORAGE__POSTGRES__CONNECTIONSTRING: *postgres-connection
|
||||
TASKRUNNER__STORAGE__OBJECTSTORE__DRIVER: "seed-fs"
|
||||
TASKRUNNER__STORAGE__OBJECTSTORE__SEEDFS__ROOTPATH: "/app/artifacts"
|
||||
# AirGap egress policy (disable for dev)
|
||||
AirGap__Egress__Enabled: "false"
|
||||
volumes:
|
||||
- *cert-volume
|
||||
tmpfs:
|
||||
- /app/artifacts:mode=1777
|
||||
- /app/queue:mode=1777
|
||||
- /app/state:mode=1777
|
||||
- /app/approvals:mode=1777
|
||||
- /app/logs:mode=1777
|
||||
networks:
|
||||
stellaops:
|
||||
aliases:
|
||||
- taskrunner-worker.stella-ops.local
|
||||
healthcheck:
|
||||
<<: *healthcheck-worker
|
||||
labels: *release-labels
|
||||
# --- Slot 18: TaskRunner (REMOVED) ------------------------------------------
|
||||
# taskrunner-web and taskrunner-worker deleted; task_runner_id DB columns left as nullable legacy
|
||||
|
||||
# --- Slot 19: Scheduler ----------------------------------------------------
|
||||
scheduler-web:
|
||||
|
||||
@@ -141,7 +141,7 @@ volumes:
|
||||
advisory-ai-plans:
|
||||
advisory-ai-outputs:
|
||||
evidence-data:
|
||||
taskrunner-artifacts-data:
|
||||
|
||||
|
||||
services:
|
||||
# ===========================================================================
|
||||
@@ -269,7 +269,7 @@ services:
|
||||
STELLAOPS_RISKENGINE_URL: "http://riskengine.stella-ops.local"
|
||||
# STELLAOPS_JOBENGINE_URL removed: WebService retired; audit/first-signal now served by release-orchestrator
|
||||
STELLAOPS_RELEASE_ORCHESTRATOR_URL: "http://release-orchestrator.stella-ops.local"
|
||||
STELLAOPS_TASKRUNNER_URL: "http://taskrunner.stella-ops.local"
|
||||
# STELLAOPS_TASKRUNNER_URL removed: TaskRunner service deleted
|
||||
STELLAOPS_SCHEDULER_URL: "http://scheduler.stella-ops.local"
|
||||
STELLAOPS_GRAPH_URL: "http://graph.stella-ops.local"
|
||||
STELLAOPS_CARTOGRAPHER_URL: "http://cartographer.stella-ops.local"
|
||||
@@ -985,68 +985,8 @@ services:
|
||||
# Workflow orchestration -> workflow service (Slot 46)
|
||||
# Scheduler remains in Slot 14 (scheduler-web / scheduler-worker)
|
||||
|
||||
# --- Slot 18: TaskRunner ---------------------------------------------------
|
||||
taskrunner-web:
|
||||
<<: *resources-light
|
||||
image: stellaops/taskrunner-web:dev
|
||||
container_name: stellaops-taskrunner-web
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
ASPNETCORE_URLS: "http://+:8080"
|
||||
<<: [*kestrel-cert, *router-microservice-defaults, *gc-light]
|
||||
ConnectionStrings__Default: "${STELLAOPS_POSTGRES_CONNECTION}"
|
||||
ConnectionStrings__Redis: "cache.stella-ops.local:6379"
|
||||
TASKRUNNER__STORAGE__DRIVER: "postgres"
|
||||
TASKRUNNER__STORAGE__POSTGRES__CONNECTIONSTRING: "${STELLAOPS_POSTGRES_CONNECTION}"
|
||||
TASKRUNNER__STORAGE__OBJECTSTORE__DRIVER: "seed-fs"
|
||||
TASKRUNNER__STORAGE__OBJECTSTORE__SEEDFS__ROOTPATH: "/app/artifacts"
|
||||
Router__Enabled: "${TASKRUNNER_ROUTER_ENABLED:-true}"
|
||||
Router__Messaging__ConsumerGroup: "taskrunner"
|
||||
volumes:
|
||||
- ${STELLAOPS_CERT_VOLUME}
|
||||
- taskrunner-artifacts-data:/app/artifacts
|
||||
ports:
|
||||
- "127.1.0.18:80:80"
|
||||
networks:
|
||||
stellaops:
|
||||
aliases:
|
||||
- taskrunner.stella-ops.local
|
||||
frontdoor: {}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c 'echo > /dev/tcp/$(hostname)/80'"]
|
||||
<<: *healthcheck-tcp
|
||||
labels: *release-labels
|
||||
|
||||
taskrunner-worker:
|
||||
<<: *resources-light
|
||||
image: stellaops/taskrunner-worker:dev
|
||||
container_name: stellaops-taskrunner-worker
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
<<: [*kestrel-cert, *gc-light]
|
||||
ConnectionStrings__Default: "${STELLAOPS_POSTGRES_CONNECTION}"
|
||||
ConnectionStrings__Redis: "cache.stella-ops.local:6379"
|
||||
TASKRUNNER__STORAGE__DRIVER: "postgres"
|
||||
TASKRUNNER__STORAGE__POSTGRES__CONNECTIONSTRING: "${STELLAOPS_POSTGRES_CONNECTION}"
|
||||
TASKRUNNER__STORAGE__OBJECTSTORE__DRIVER: "seed-fs"
|
||||
TASKRUNNER__STORAGE__OBJECTSTORE__SEEDFS__ROOTPATH: "/app/artifacts"
|
||||
# AirGap egress policy (disable for dev)
|
||||
AirGap__Egress__Enabled: "false"
|
||||
volumes:
|
||||
- ${STELLAOPS_CERT_VOLUME}
|
||||
tmpfs:
|
||||
- /app/artifacts:mode=1777
|
||||
- /app/queue:mode=1777
|
||||
- /app/state:mode=1777
|
||||
- /app/approvals:mode=1777
|
||||
- /app/logs:mode=1777
|
||||
networks:
|
||||
stellaops:
|
||||
aliases:
|
||||
- taskrunner-worker.stella-ops.local
|
||||
healthcheck:
|
||||
<<: *healthcheck-worker
|
||||
labels: *release-labels
|
||||
# --- Slot 18: TaskRunner (REMOVED) ------------------------------------------
|
||||
# taskrunner-web and taskrunner-worker deleted; task_runner_id DB columns left as nullable legacy
|
||||
|
||||
# --- Slot 19: Scheduler ----------------------------------------------------
|
||||
scheduler-web:
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"airgapController": "https://stella-ops.local",
|
||||
"gateway": "https://stella-ops.local",
|
||||
"doctor": "https://stella-ops.local",
|
||||
"taskrunner": "https://stella-ops.local",
|
||||
|
||||
"timelineindexer": "https://stella-ops.local",
|
||||
"timeline": "https://stella-ops.local",
|
||||
"packsregistry": "https://stella-ops.local",
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
127.1.0.14 policy-gateway.stella-ops.local # backwards-compat alias (merged into policy-engine)
|
||||
127.1.0.16 riskengine.stella-ops.local
|
||||
127.1.0.17 orchestrator.stella-ops.local
|
||||
127.1.0.18 taskrunner.stella-ops.local
|
||||
# 127.1.0.18 taskrunner.stella-ops.local # REMOVED: TaskRunner service deleted
|
||||
127.1.0.19 scheduler.stella-ops.local
|
||||
127.1.0.20 graph.stella-ops.local
|
||||
127.1.0.21 cartographer.stella-ops.local
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
"Microservice","/vexhub","https://vexhub.stella-ops.local","/vexhub/api/v1/vex/index","200"
|
||||
"Microservice","/vexlens","http://vexlens.stella-ops.local","/vexlens/api/v1/vexlens/stats","200"
|
||||
"Microservice","/orchestrator","http://orchestrator.stella-ops.local","/orchestrator/scale/load","200"
|
||||
"Microservice","/taskrunner","http://taskrunner.stella-ops.local","/taskrunner","302"
|
||||
|
||||
"Microservice","/cartographer","http://cartographer.stella-ops.local",,
|
||||
"Microservice","/reachgraph","http://reachgraph.stella-ops.local","/reachgraph/v1/cve-mappings/stats","400"
|
||||
"Microservice","/doctor","http://doctor.stella-ops.local","/doctor/api/v1/doctor/checks","401"
|
||||
|
||||
|
@@ -92,7 +92,7 @@
|
||||
"ReverseProxy","/vexhub","https://vexhub.stella-ops.local",,
|
||||
"ReverseProxy","/vexlens","http://vexlens.stella-ops.local",,
|
||||
"ReverseProxy","/orchestrator","http://orchestrator.stella-ops.local",,
|
||||
"ReverseProxy","/taskrunner","http://taskrunner.stella-ops.local",,
|
||||
|
||||
"ReverseProxy","/cartographer","http://cartographer.stella-ops.local",,
|
||||
"ReverseProxy","/reachgraph","http://reachgraph.stella-ops.local",,
|
||||
"ReverseProxy","/doctor","http://doctor.stella-ops.local",,
|
||||
|
||||
|
@@ -332,7 +332,7 @@ server {
|
||||
sub_filter '"http://airgap-controller.stella-ops.local"' '"/airgap"';
|
||||
sub_filter '"http://integrations.stella-ops.local"' '"/integrations"';
|
||||
sub_filter '"http://smremote.stella-ops.local"' '"/smremote"';
|
||||
sub_filter '"http://taskrunner.stella-ops.local"' '"/taskrunner"';
|
||||
|
||||
sub_filter '"http://sbomservice.stella-ops.local"' '"/sbomservice"';
|
||||
sub_filter '"http://timelineindexer.stella-ops.local"' '"/timelineindexer"';
|
||||
sub_filter '"http://issuerdirectory.stella-ops.local"' '"/issuerdirectory"';
|
||||
|
||||
@@ -55,7 +55,7 @@ server {
|
||||
sub_filter '"http://airgap-controller.stella-ops.local"' '"/airgap"';
|
||||
sub_filter '"http://integrations.stella-ops.local"' '"/integrations"';
|
||||
sub_filter '"http://smremote.stella-ops.local"' '"/smremote"';
|
||||
sub_filter '"http://taskrunner.stella-ops.local"' '"/taskrunner"';
|
||||
|
||||
sub_filter '"http://sbomservice.stella-ops.local"' '"/sbomservice"';
|
||||
sub_filter '"http://timelineindexer.stella-ops.local"' '"/timelineindexer"';
|
||||
sub_filter '"http://issuerdirectory.stella-ops.local"' '"/issuerdirectory"';
|
||||
@@ -261,12 +261,6 @@ server {
|
||||
proxy_pass $upstream;
|
||||
}
|
||||
|
||||
location /taskrunner/ {
|
||||
set $upstream http://taskrunner.stella-ops.local;
|
||||
rewrite ^/taskrunner/(.*)$ /$1 break;
|
||||
proxy_pass $upstream;
|
||||
}
|
||||
|
||||
location /sbomservice/ {
|
||||
set $upstream http://sbomservice.stella-ops.local;
|
||||
rewrite ^/sbomservice/(.*)$ /$1 break;
|
||||
|
||||
@@ -40,9 +40,7 @@ riskengine-web|devops/docker/Dockerfile.hardened.template|src/Findings/StellaOps
|
||||
riskengine-worker|devops/docker/Dockerfile.hardened.template|src/Findings/StellaOps.RiskEngine.Worker/StellaOps.RiskEngine.Worker.csproj|StellaOps.RiskEngine.Worker|8080
|
||||
# ── Slot 17: Orchestrator (DECOMPOSED — see release-orchestrator + workflow) ──
|
||||
# orchestrator and orchestrator-worker removed; replaced by release-orchestrator (Slot 47) + workflow (Slot 46)
|
||||
# ── Slot 18: TaskRunner ─────────────────────────────────────────────────────────
|
||||
taskrunner-web|devops/docker/Dockerfile.hardened.template|src/JobEngine/StellaOps.TaskRunner/StellaOps.TaskRunner.WebService/StellaOps.TaskRunner.WebService.csproj|StellaOps.TaskRunner.WebService|8080
|
||||
taskrunner-worker|devops/docker/Dockerfile.hardened.template|src/JobEngine/StellaOps.TaskRunner/StellaOps.TaskRunner.Worker/StellaOps.TaskRunner.Worker.csproj|StellaOps.TaskRunner.Worker|8080
|
||||
# ── Slot 18: TaskRunner (REMOVED) ───────────────────────────────────────────────
|
||||
# ── Slot 19: Scheduler ──────────────────────────────────────────────────────────
|
||||
scheduler-web|devops/docker/Dockerfile.hardened.template|src/JobEngine/StellaOps.Scheduler.WebService/StellaOps.Scheduler.WebService.csproj|StellaOps.Scheduler.WebService|8080
|
||||
scheduler-worker|devops/docker/Dockerfile.hardened.template|src/JobEngine/StellaOps.Scheduler.Worker.Host/StellaOps.Scheduler.Worker.Host.csproj|StellaOps.Scheduler.Worker.Host|8080
|
||||
|
||||
Reference in New Issue
Block a user