Enable Erlang clustering for APRS app with 3 replicas

This commit is contained in:
Graham McIntire 2025-07-25 10:32:10 -05:00
parent bfdecc805b
commit bbebb51532
No known key found for this signature in database
4 changed files with 80 additions and 4 deletions

View file

@ -4,7 +4,7 @@ metadata:
name: aprs
namespace: aprs
spec:
replicas: 2
replicas: 3
selector:
matchLabels:
app: aprs
@ -13,11 +13,18 @@ spec:
labels:
app: aprs
spec:
imagePullSecrets:
- name: ghcr-pull-secret
containers:
- name: aprs
image: ghcr.io/gmcintire/aprs:latest
image: ghcr.io/aprsme/aprs.me:latest
imagePullPolicy: Always
ports:
- containerPort: 4000
- containerPort: 4369
name: epmd
- containerPort: 9100
name: erlang
env:
- name: PHX_HOST
value: "aprs.me"
@ -37,6 +44,39 @@ spec:
value: "true"
- name: MIX_ENV
value: "prod"
- name: APRS_CALLSIGN
value: "W5ISP-3"
- name: APRS_FILTER
value: "r/33/-96/1000000000000"
- name: APRS_PASSCODE
value: "15748"
- name: APRS_PORT
value: "10152"
- name: APRS_SERVER
value: "dallas.aprs2.net"
- name: PACKET_RETENTION_DAYS
value: "7"
- name: CLUSTER_ENABLED
value: "true"
- name: RELEASE_NODE
value: "aprs@$(POD_NAME).aprs-headless.aprs.svc.cluster.local"
- name: RELEASE_COOKIE
valueFrom:
secretKeyRef:
name: aprs-secret
key: erlang-cookie
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
resources:
limits:
memory: "512Mi"

View file

@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
name: aprs-headless
namespace: aprs
spec:
clusterIP: None
selector:
app: aprs
ports:
- name: epmd
port: 4369
targetPort: 4369
- name: erlang
port: 9100
targetPort: 9100
publishNotReadyAddresses: true

View file

@ -6,8 +6,8 @@ namespace: aprs
resources:
- namespace.yaml
- secrets.yaml
- postgis-pvc.yaml
- postgis-deployment.yaml
- postgis-service.yaml
- aprs-deployment.yaml
- aprs-service.yaml
- aprs-headless-service.yaml

View file

@ -16,3 +16,22 @@ type: Opaque
stringData:
database-url: "ecto://aprs:mjBipckSZfNOoSOWLMRsfZEqJ9I5Of21@postgis:5432/aprs"
secret-key-base: "GJxzOUW3YXBAF7xB4mH5VcXY6BN1NYLnoJYadlZyiCxcRUGBw65w4Sco7+sNiW2t"
erlang-cookie: "aprs-cluster-cookie-ksdf8934jfklsdjf983jfklsdf"
---
apiVersion: v1
kind: Secret
metadata:
name: ghcr-pull-secret
namespace: aprs
type: kubernetes.io/dockerconfigjson
stringData:
.dockerconfigjson: |
{
"auths": {
"ghcr.io": {
"username": "gmcintire",
"password": "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",
"auth": "Z21jaW50aXJlOmdocF9rOFhBZkJMSmhHdzExMDZiZkZXQVhkYjdYN1E4OUkxdjlhQWk="
}
}
}