Kubernetes deployment
Helm chart values
values.yaml
replicaCount: 2
image:
repository: ghcr.io/akhester-technologies/jambridge
tag: "1.0.0"
pullPolicy: IfNotPresent
service:
https:
type: ClusterIP
port: 8443
mllp:
type: LoadBalancer
ports: [2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582]
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
hosts:
- host: jambridge.example.com
paths: [{path: /, pathType: Prefix}]
tls:
- secretName: jambridge-tls
hosts: [jambridge.example.com]
resources:
requests: {cpu: 500m, memory: 1Gi}
limits: {cpu: 2, memory: 4Gi}
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 70
podDisruptionBudget:
minAvailable: 1
bridgeConfig: |
bridge:
facility-code: BRANCH-01
hapi-fhir-url: http://hapi:8080/fhir
consent:
enabled: true
fail-closed: true
MLLP in Kubernetes
MLLP is a raw TCP protocol — it does not work through HTTP ingress controllers. Use a LoadBalancer service for the MLLP ports, or expose them via NodePort if a LoadBalancer is not available.
For multi-branch deployments where each branch needs a dedicated MLLP endpoint, create a separate Service per port range, or use a TCP load balancer (AWS NLB, GCP TCP proxy) with port routing rules.