woodpecker-mcp/k8s-deploy.yaml
Kaien 00d84f3a8d
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Pin deployment to amd64 nodes
The image is built for linux/amd64, but without a nodeSelector the pod
scheduled onto the ARM64 node (deg-pi) and died with 'exec format
error'. Select nodes by the architecture label instead of a hostname.
2026-08-08 02:14:49 +03:00

62 lines
1.7 KiB
YAML

apiVersion: v1
kind: Service
metadata:
name: woodpecker-mcp
namespace: mcp-servers
spec:
type: ClusterIP
ports:
- port: 8080
targetPort: 8080
name: mcp
selector:
app: woodpecker-mcp
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: woodpecker-mcp
namespace: mcp-servers
labels:
app: woodpecker-mcp
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: woodpecker-mcp
template:
metadata:
labels:
app: woodpecker-mcp
annotations:
# Immutable-deploy provenance: this changes on every commit, so the pod
# template changes and Kubernetes rolls out automatically (no manual restart).
deployment.l-ai/commit: "${CI_COMMIT_SHA}"
deployment.l-ai/repository: "woodpecker-mcp"
spec:
imagePullSecrets:
- name: registry-secret
# Our image is built for linux/amd64 only; pin to x86 nodes so the pod
# never lands on ARM nodes (e.g. deg-pi) with an exec format error.
nodeSelector:
kubernetes.io/arch: amd64
containers:
- name: woodpecker-mcp
# Immutable per-commit tag (rendered by envsubst in CI from CI_COMMIT_SHA).
# Changing this string is what triggers a rollout on every deploy.
image: registry.be.kaien.ru/woodpecker_mcp/woodpecker_mcp:${CI_COMMIT_SHA}
imagePullPolicy: IfNotPresent
args:
- --transport=http
envFrom:
- secretRef:
name: woodpecker-mcp
env:
- name: WOODPECKER_URL
value: "https://ci.be.kaien.ru/"
ports:
- containerPort: 8080
name: mcp