Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7aa56dcb1e | |||
| cbb564ccf5 | |||
| be0508037a | |||
| 6f5d041440 |
@@ -29,11 +29,13 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
zstd \
|
zstd \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Node.js 20 LTS — required to execute Forgejo JS actions (checkout, upload-artifact, cache, etc.)
|
# Node.js 20 LTS via binary tarball (nodesource apt repo is unreliable on Ubuntu 24.04)
|
||||||
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
|
RUN NODE_VERSION=20.19.1 \
|
||||||
&& apt-get install -y nodejs \
|
&& curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" \
|
||||||
&& npm install -g yarn \
|
| tar -xJ -C /usr/local --strip-components=1 \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& node --version \
|
||||||
|
&& npm --version \
|
||||||
|
&& npm install -g yarn
|
||||||
|
|
||||||
# Python 3 + pip + venv
|
# Python 3 + pip + venv
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
|||||||
@@ -14,5 +14,6 @@ spec:
|
|||||||
services:
|
services:
|
||||||
- name: dharma
|
- name: dharma
|
||||||
port: 8765
|
port: 8765
|
||||||
tls:
|
# TLS terminates at Cloudflare; tunnel reaches Traefik with noTLSVerify.
|
||||||
certResolver: letsencrypt
|
# Traefik websecure entrypoint has its own default cert (no resolver
|
||||||
|
# configured in this cluster), matching every other neuron-prod IngressRoute.
|
||||||
|
|||||||
@@ -117,6 +117,32 @@ spec:
|
|||||||
matchLabels:
|
matchLabels:
|
||||||
kubernetes.io/metadata.name: neuron-prod
|
kubernetes.io/metadata.name: neuron-prod
|
||||||
---
|
---
|
||||||
|
# ── dharma: accept from Traefik (kube-system) and neuron-prod namespace ──────
|
||||||
|
# The dharma pod was healthy and the IngressRoute was correct, but cross-
|
||||||
|
# namespace ingress from kube-system (Traefik) was denied by default-deny-all,
|
||||||
|
# so every external request landed at Traefik and bounced back as 502. This
|
||||||
|
# allow rule mirrors `allow-mcp-ingress` and brings dharma into line with the
|
||||||
|
# other neuron-prod services.
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: allow-dharma-ingress
|
||||||
|
namespace: neuron-prod
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: dharma
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
ingress:
|
||||||
|
- from:
|
||||||
|
- namespaceSelector:
|
||||||
|
matchLabels:
|
||||||
|
kubernetes.io/metadata.name: kube-system
|
||||||
|
- namespaceSelector:
|
||||||
|
matchLabels:
|
||||||
|
kubernetes.io/metadata.name: neuron-prod
|
||||||
|
---
|
||||||
# ── Egress: all prod pods may reach platform (postgres/redis), vault,
|
# ── Egress: all prod pods may reach platform (postgres/redis), vault,
|
||||||
# monitoring (alloy OTLP), kube-dns, and the internet (external APIs) ─
|
# monitoring (alloy OTLP), kube-dns, and the internet (external APIs) ─
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
|
|||||||
Reference in New Issue
Block a user