Files
GitOps/postgres-tunnel/eu-central-1/deployment.yaml
T

65 lines
1.7 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres-tunnel
namespace: postgres-tunnel
spec:
replicas: 1
selector:
matchLabels:
app: postgres-tunnel
template:
metadata:
labels:
app: postgres-tunnel
spec:
containers:
- name: tunnel
image: alpine:3.21
command: [/bin/sh, -c]
args:
- |
apk add --no-cache openssh-client
exec ssh -N \
-o StrictHostKeyChecking=no \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=3 \
-o ExitOnForwardFailure=yes \
-L 0.0.0.0:5432:$(POSTGRES_REMOTE_HOST):$(POSTGRES_REMOTE_PORT) \
-i /ssh-key/id_rsa \
-p $(SSH_PORT) \
$(SSH_USER)@$(SSH_HOST)
envFrom:
- configMapRef:
name: postgres-tunnel-config
ports:
- containerPort: 5432
name: postgres
volumeMounts:
- name: ssh-key
mountPath: /ssh-key
readOnly: true
resources:
requests:
cpu: 10m
memory: 16Mi
limits:
cpu: 50m
memory: 32Mi
livenessProbe:
tcpSocket:
port: 5432
initialDelaySeconds: 15
periodSeconds: 20
readinessProbe:
tcpSocket:
port: 5432
initialDelaySeconds: 5
periodSeconds: 10
volumes:
- name: ssh-key
secret:
secretName: postgres-tunnel-ssh-key
defaultMode: 0400
restartPolicy: Always