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:
master
2026-04-08 14:11:20 +03:00
parent 80c33d3c59
commit 0e25344bd7
208 changed files with 57 additions and 29942 deletions

View File

@@ -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:

View File

@@ -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:

View File

@@ -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",

View File

@@ -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

View File

@@ -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"
1 RouteType RoutePath RouteTarget SelectedOpenApiPath StatusCode
89 Microservice /vexhub https://vexhub.stella-ops.local /vexhub/api/v1/vex/index 200
90 Microservice /vexlens http://vexlens.stella-ops.local /vexlens/api/v1/vexlens/stats 200
91 Microservice /orchestrator http://orchestrator.stella-ops.local /orchestrator/scale/load 200
92 Microservice /taskrunner /cartographer http://taskrunner.stella-ops.local http://cartographer.stella-ops.local /taskrunner 302
93 Microservice /cartographer /reachgraph http://cartographer.stella-ops.local http://reachgraph.stella-ops.local /reachgraph/v1/cve-mappings/stats 400
94 Microservice /reachgraph /doctor http://reachgraph.stella-ops.local http://doctor.stella-ops.local /reachgraph/v1/cve-mappings/stats /doctor/api/v1/doctor/checks 400 401
95 Microservice /doctor /integrations http://doctor.stella-ops.local http://integrations.stella-ops.local /doctor/api/v1/doctor/checks /integrations/api/v1/integrations 401

View File

@@ -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",,
1 RouteType RoutePath RouteTarget SelectedOpenApiPath StatusCode
92 ReverseProxy /vexhub https://vexhub.stella-ops.local
93 ReverseProxy /vexlens http://vexlens.stella-ops.local
94 ReverseProxy /orchestrator http://orchestrator.stella-ops.local
95 ReverseProxy /taskrunner /cartographer http://taskrunner.stella-ops.local http://cartographer.stella-ops.local
96 ReverseProxy /cartographer /reachgraph http://cartographer.stella-ops.local http://reachgraph.stella-ops.local
97 ReverseProxy /reachgraph /doctor http://reachgraph.stella-ops.local http://doctor.stella-ops.local
98 ReverseProxy /doctor /integrations http://doctor.stella-ops.local http://integrations.stella-ops.local