Files
infrastructure/servers/legion/k8s/neuron-technologies/marketing/deployment.yaml
T
Will Anderson 714a7c7a8d launch: deploy daemon StatefulSet, fix neuron-rest security context, add daemon Argo CD app
- Add neuron-daemon Argo CD Application (apps/neuron-daemon.yaml) pointing to
  k8s/neuron-technologies/daemon/ on main — daemon will deploy once image is built
- Add daemon k8s manifests: StatefulSet (2 replicas, imagePullPolicy: Always),
  Service (ClusterIP :7749, session affinity), ExternalSecret (Anthropic API key from Vault)
- Fix neuron-rest runAsNonRoot: remove constraint since v0.15.3 image runs as root,
  clears the CreateContainerConfigError on the 11h-old stale pod
- Add NEURON_DAEMON_WS_URL env var to marketing deployment for chat UI connectivity
- Add neuron.neurontechnologies.ai Cloudflare DNS record and tunnel ingress rule (Terraform)
2026-04-26 10:13:48 -05:00

69 lines
1.8 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: neuron-marketing
namespace: neuron-prod
labels:
app: neuron-marketing
env: prod
spec:
replicas: 2
selector:
matchLabels:
app: neuron-marketing
template:
metadata:
labels:
app: neuron-marketing
env: prod
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1001
seccompProfile:
type: RuntimeDefault
containers:
- name: neuron-marketing
image: registry.neuralplatform.ai/neuron-technologies/marketing:1e94e8ae
imagePullPolicy: Always
ports:
- name: http
containerPort: 3000
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false # Next.js writes .next/cache at runtime
runAsNonRoot: true
capabilities:
drop: ["ALL"]
env:
- name: NODE_ENV
value: production
- name: NEURON_LICENSE_API_URL
value: http://neuron-license.neuron-prod.svc.cluster.local:8082
- name: NEURON_DAEMON_WS_URL
value: ws://neuron-daemon.neuron-prod.svc.cluster.local:7749/ws
envFrom:
- secretRef:
name: neuron-marketing-secrets
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
livenessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 15
periodSeconds: 30
failureThreshold: 3
readinessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3