Files
bluejay-infra/apps/asterisk/deployment.yaml

151 lines
4.6 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: asterisk
namespace: telephony
labels:
app: asterisk
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: asterisk
template:
metadata:
labels:
app: asterisk
spec:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
securityContext:
fsGroup: 0
initContainers:
- name: install-sounds
image: busybox:latest
command:
- sh
- -c
- |
mkdir -p /sounds/en &&
wget -qO- http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-ulaw-current.tar.gz | tar xz -C /sounds/en/ &&
wget -qO- http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-ulaw-current.tar.gz | tar xz -C /sounds/en/ &&
echo "Sound files installed: $(find /sounds/en -type f | wc -l) files"
volumeMounts:
- name: sounds
mountPath: /sounds/en
containers:
- name: asterisk
image: localhost/andrius/asterisk:latest
imagePullPolicy: Never
ports:
- name: sip-udp
containerPort: 5060
protocol: UDP
- name: sip-tcp
containerPort: 5060
protocol: TCP
- name: ari
containerPort: 8088
protocol: TCP
volumeMounts:
- name: config-modules
mountPath: /etc/asterisk/modules.conf
subPath: modules.conf
- name: config-http
mountPath: /etc/asterisk/http.conf
subPath: http.conf
- name: config-ari
mountPath: /etc/asterisk/ari.conf
subPath: ari.conf
- name: config-manager
mountPath: /etc/asterisk/manager.conf
subPath: manager.conf
- name: config-pjsip
mountPath: /etc/asterisk/pjsip.conf
subPath: pjsip.conf
- name: config-extensions
mountPath: /etc/asterisk/extensions.conf
subPath: extensions.conf
- name: config-rtp
mountPath: /etc/asterisk/rtp.conf
subPath: rtp.conf
- name: asterisk-data
mountPath: /var/spool/asterisk
- name: asterisk-logs
mountPath: /var/log/asterisk
- name: sounds
mountPath: /var/lib/asterisk/sounds/en
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: "1"
memory: 512Mi
livenessProbe:
tcpSocket:
port: 8088
initialDelaySeconds: 15
periodSeconds: 10
readinessProbe:
httpGet:
path: /ari/asterisk/info
port: 8088
httpHeaders:
- name: Authorization
value: "Basic Zmxvd2VyY29yZTpibHVlamF5LWFzdGVyaXNrLWFyaQ=="
initialDelaySeconds: 10
periodSeconds: 5
volumes:
- name: config-modules
configMap:
name: asterisk-config
items:
- key: modules.conf
path: modules.conf
- name: config-http
configMap:
name: asterisk-config
items:
- key: http.conf
path: http.conf
- name: config-ari
configMap:
name: asterisk-config
items:
- key: ari.conf
path: ari.conf
- name: config-manager
configMap:
name: asterisk-config
items:
- key: manager.conf
path: manager.conf
- name: config-pjsip
configMap:
name: asterisk-config
items:
- key: pjsip.conf
path: pjsip.conf
- name: config-extensions
configMap:
name: asterisk-config
items:
- key: extensions.conf
path: extensions.conf
- name: config-rtp
configMap:
name: asterisk-config
items:
- key: rtp.conf
path: rtp.conf
- name: asterisk-data
persistentVolumeClaim:
claimName: asterisk-data
- name: asterisk-logs
emptyDir: {}
- name: sounds
emptyDir: {}