Adds ushahidi app.

This commit is contained in:
2026-06-19 21:33:30 +00:00
parent da8dfe9196
commit 2b1db70090
12 changed files with 534 additions and 0 deletions

View File

@@ -0,0 +1,138 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: ushahidi-api
namespace: ushahidi
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
component: api
template:
metadata:
labels:
component: api
spec:
securityContext:
runAsUser: 0
runAsNonRoot: false
seccompProfile:
type: RuntimeDefault
initContainers:
- name: wait-for-db
image: mysql:9.1.0
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: false
env:
- name: DB_HOSTNAME
value: {{ .db.host }}
- name: DB_PORT
value: "{{ .db.port }}"
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: ushahidi-secrets
key: mysql.rootPassword
command:
- /bin/bash
- -c
- |
until mysql -h ${DB_HOSTNAME} -P ${DB_PORT} -u root -p${MYSQL_ROOT_PASSWORD} -e "SELECT 1" 2>/dev/null; do
echo "Waiting for MySQL..."
sleep 2
done
echo "MySQL is ready"
containers:
- name: ushahidi-api
image: ghcr.io/ushahidi/platform:v2025.04.1
ports:
- name: http
containerPort: 8080
protocol: TCP
env:
- name: APP_ENV
value: production
- name: APP_DEBUG
value: "false"
- name: APP_KEY
valueFrom:
secretKeyRef:
name: ushahidi-secrets
key: appKey
- name: ENABLE_NGINX
value: "true"
- name: ENABLE_PHPFPM
value: "true"
- name: ENABLE_PLATFORM_TASKS
value: "false"
- name: RUN_PLATFORM_MIGRATIONS
value: "true"
- name: DB_MIGRATIONS_HANDLED
value: "true"
- name: DB_CONNECTION
value: mysql
- name: DB_HOST
value: {{ .db.host }}
- name: DB_PORT
value: "{{ .db.port }}"
- name: DB_DATABASE
value: {{ .db.name }}
- name: DB_USERNAME
value: {{ .db.user }}
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: ushahidi-secrets
key: dbPassword
- name: REDIS_HOST
value: {{ .redis.host }}
- name: REDIS_PORT
value: "{{ .redis.port }}"
- name: CACHE_DRIVER
value: redis
- name: QUEUE_DRIVER
value: redis
- name: CLIENT_URL
value: https://{{ .domain }}
- name: HTTP_PORT
value: "8080"
resources:
limits:
cpu: "1"
ephemeral-storage: 1Gi
memory: 512Mi
requests:
cpu: 50m
ephemeral-storage: 100Mi
memory: 256Mi
volumeMounts:
- name: ushahidi-storage
mountPath: /var/www/storage/app/public
livenessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 120
timeoutSeconds: 10
periodSeconds: 30
failureThreshold: 6
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 60
timeoutSeconds: 5
periodSeconds: 15
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: true
readOnlyRootFilesystem: false
volumes:
- name: ushahidi-storage
persistentVolumeClaim:
claimName: ushahidi-storage
restartPolicy: Always