Eliminate legacy gateway container (consolidate into router-gateway)

The gateway service was a redundant deployment of the same
StellaOps.Gateway.WebService binary already running as router-gateway.
It served no unique purpose — all traffic is handled by router-gateway
(slot 0). This removes the container, its route table entries, nginx
proxy blocks, health/quota stubs, and redirects STELLAOPS_GATEWAY_URL
to router.stella-ops.local so the Angular frontend resolves API base
URLs through the canonical frontdoor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
master
2026-03-10 03:50:16 +02:00
parent 109f119a65
commit 6578c82602
19 changed files with 15 additions and 94 deletions

View File

@@ -56,17 +56,6 @@ server {
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Gateway API (strips /gateway/ prefix for release-orchestrator clients)
location /gateway/ {
set \$gateway_upstream http://gateway.stella-ops.local;
rewrite ^/gateway/(.*)\$ /\$1 break;
proxy_pass \$gateway_upstream;
proxy_set_header Host gateway.stella-ops.local;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
# Platform service (preserves /platform/ prefix for envsettings, admin)
location /platform/ {
proxy_pass http://platform.stella-ops.local/platform/;
@@ -250,7 +239,7 @@ server {
sub_filter '"http://stella-ops.local/connect/token"' '"/connect/token"';
sub_filter '"http://stella-ops.local/connect/logout"' '"/connect/logout"';
sub_filter '"http://stella-ops.local"' '""';
sub_filter '"http://gateway.stella-ops.local"' '"/gateway"';
sub_filter '"http://router.stella-ops.local"' '""';
sub_filter '"http://platform.stella-ops.local"' '"/platform"';
sub_filter '"http://authority.stella-ops.local"' '"/authority"';
sub_filter '"http://scanner.stella-ops.local"' '"/scanner"';
@@ -307,7 +296,7 @@ server {
sub_filter '"http://stella-ops.local/connect/token"' '"/connect/token"';
sub_filter '"http://stella-ops.local/connect/logout"' '"/connect/logout"';
sub_filter '"http://stella-ops.local"' '""';
sub_filter '"http://gateway.stella-ops.local"' '"/gateway"';
sub_filter '"http://router.stella-ops.local"' '""';
sub_filter '"http://platform.stella-ops.local"' '"/platform"';
sub_filter '"http://authority.stella-ops.local"' '"/authority"';
sub_filter '"http://scanner.stella-ops.local"' '"/scanner"';

View File

@@ -22,14 +22,6 @@ server {
proxy_pass http://platform.stella-ops.local/api/;
}
# Gateway API (strips /gateway/ prefix)
location /gateway/ {
set $gateway_upstream http://gateway.stella-ops.local;
rewrite ^/gateway/(.*)$ /$1 break;
proxy_pass $gateway_upstream;
proxy_set_header Host gateway.stella-ops.local;
}
# Platform envsettings.json with URL rewriting
location = /platform/envsettings.json {
proxy_pass http://platform.stella-ops.local/platform/envsettings.json;
@@ -41,7 +33,7 @@ server {
sub_filter '"http://stella-ops.local/connect/token"' '"/connect/token"';
sub_filter '"http://stella-ops.local/connect/logout"' '"/connect/logout"';
sub_filter '"http://stella-ops.local"' '""';
sub_filter '"http://gateway.stella-ops.local"' '"/gateway"';
sub_filter '"http://router.stella-ops.local"' '""';
sub_filter '"http://platform.stella-ops.local"' '"/platform"';
sub_filter '"http://authority.stella-ops.local"' '"/authority"';
sub_filter '"http://scanner.stella-ops.local"' '"/scanner"';
@@ -412,7 +404,7 @@ server {
sub_filter '"http://stella-ops.local/connect/token"' '"/connect/token"';
sub_filter '"http://stella-ops.local/connect/logout"' '"/connect/logout"';
sub_filter '"http://stella-ops.local"' '""';
sub_filter '"http://gateway.stella-ops.local"' '"/gateway"';
sub_filter '"http://router.stella-ops.local"' '""';
sub_filter '"http://platform.stella-ops.local"' '"/platform"';
sub_filter '"http://authority.stella-ops.local"' '"/authority"';
sub_filter '"http://scanner.stella-ops.local"' '"/scanner"';

View File

@@ -26,17 +26,6 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
}
# Gateway API (strips /gateway/ prefix for release-orchestrator clients)
location /gateway/ {
set $gateway_upstream http://gateway.stella-ops.local;
rewrite ^/gateway/(.*)$ /$1 break;
proxy_pass $gateway_upstream;
proxy_set_header Host gateway.stella-ops.local;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Platform service (preserves /platform/ prefix for envsettings, admin)
location /platform/ {
proxy_pass http://platform.stella-ops.local/platform/;
@@ -215,7 +204,7 @@ server {
proxy_set_header Accept-Encoding "";
sub_filter_types application/json;
sub_filter_once off;
sub_filter '"http://gateway.stella-ops.local"' '"/gateway"';
sub_filter '"http://router.stella-ops.local"' '""';
sub_filter '"http://platform.stella-ops.local"' '"/platform"';
sub_filter '"http://authority.stella-ops.local"' '"/authority"';
sub_filter '"http://scanner.stella-ops.local"' '"/scanner"';

View File

@@ -9,8 +9,7 @@ router-gateway|devops/docker/Dockerfile.hardened.template|src/Router/StellaOps.G
platform|devops/docker/Dockerfile.hardened.template|src/Platform/StellaOps.Platform.WebService/StellaOps.Platform.WebService.csproj|StellaOps.Platform.WebService|8080
# ── Slot 2: Authority ───────────────────────────────────────────────────────────
authority|devops/docker/Dockerfile.hardened.template|src/Authority/StellaOps.Authority/StellaOps.Authority/StellaOps.Authority.csproj|StellaOps.Authority|8440
# ── Slot 3: Gateway (legacy alias -> Router Gateway) ───────────────────────────
gateway|devops/docker/Dockerfile.hardened.template|src/Router/StellaOps.Gateway.WebService/StellaOps.Gateway.WebService.csproj|StellaOps.Gateway.WebService|8080
# ── Slot 3: (removed — Gateway consolidated into Router Gateway, slot 0) ───────
# ── Slot 4: Attestor ────────────────────────────────────────────────────────────
attestor|devops/docker/Dockerfile.hardened.template|src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/StellaOps.Attestor.WebService.csproj|StellaOps.Attestor.WebService|8442
# ── Slot 5: Attestor TileProxy ──────────────────────────────────────────────────