infra/old/cluster/wavelog/wavelog-deployment.yaml

176 lines
No EOL
5.5 KiB
YAML

---
apiVersion: v1
kind: ConfigMap
metadata:
name: wavelog-config
namespace: wavelog
data:
# PHP configuration overrides
php.ini: |
upload_max_filesize = 50M
post_max_size = 50M
memory_limit = 256M
max_execution_time = 300
---
apiVersion: v1
kind: Service
metadata:
name: wavelog
namespace: wavelog
spec:
type: ClusterIP
selector:
app: wavelog
ports:
- port: 80
targetPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wavelog
namespace: wavelog
spec:
replicas: 1
selector:
matchLabels:
app: wavelog
template:
metadata:
labels:
app: wavelog
spec:
initContainers:
- name: fix-permissions
image: busybox:latest
command: ["sh", "-c"]
args:
- |
echo "Fixing permissions for Wavelog directories..."
# Create all required directories
mkdir -p /var/www/html/application/config
mkdir -p /var/www/html/application/logs
mkdir -p /var/www/html/backup
mkdir -p /var/www/html/updates
mkdir -p /var/www/html/uploads
mkdir -p /var/www/html/images/eqsl_card_images
mkdir -p /var/www/html/assets/qslcard
# Set ownership to www-data (UID 33)
chown -R 33:33 /var/www/html/application/config
chown -R 33:33 /var/www/html/application/logs
chown -R 33:33 /var/www/html/backup
chown -R 33:33 /var/www/html/updates
chown -R 33:33 /var/www/html/uploads
chown -R 33:33 /var/www/html/images/eqsl_card_images
chown -R 33:33 /var/www/html/assets/qslcard
# Set directory permissions
find /var/www/html/application/config -type d -exec chmod 755 {} \;
find /var/www/html/application/logs -type d -exec chmod 755 {} \;
find /var/www/html/backup -type d -exec chmod 755 {} \;
find /var/www/html/updates -type d -exec chmod 755 {} \;
find /var/www/html/uploads -type d -exec chmod 755 {} \;
find /var/www/html/images/eqsl_card_images -type d -exec chmod 755 {} \;
find /var/www/html/assets/qslcard -type d -exec chmod 755 {} \;
# Set file permissions
find /var/www/html/application/config -type f -exec chmod 664 {} \;
find /var/www/html/application/logs -type f -exec chmod 664 {} \;
find /var/www/html/backup -type f -exec chmod 664 {} \;
find /var/www/html/updates -type f -exec chmod 664 {} \;
find /var/www/html/uploads -type f -exec chmod 664 {} \;
find /var/www/html/images/eqsl_card_images -type f -exec chmod 664 {} \;
find /var/www/html/assets/qslcard -type f -exec chmod 664 {} \;
echo "Permissions fixed!"
volumeMounts:
- name: wavelog-data
mountPath: /var/www/html/application/config
subPath: config
- name: wavelog-data
mountPath: /var/www/html/application/logs
subPath: logs
- name: wavelog-data
mountPath: /var/www/html/backup
subPath: backup-root
- name: wavelog-data
mountPath: /var/www/html/updates
subPath: updates
- name: wavelog-data
mountPath: /var/www/html/uploads
subPath: uploads-root
- name: wavelog-data
mountPath: /var/www/html/images/eqsl_card_images
subPath: eqsl_card_images
- name: wavelog-data
mountPath: /var/www/html/assets/qslcard
subPath: qslcard
containers:
- name: wavelog
image: ghcr.io/wavelog/wavelog:latest
ports:
- containerPort: 80
env:
- name: MYSQL_HOST
value: "mariadb.data.svc.cluster.local"
- name: MYSQL_PORT
value: "3306"
- name: MYSQL_DATABASE
value: "wavelog"
- name: MYSQL_USER
value: "wavelog"
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: wavelog-secret
key: database-password
volumeMounts:
- name: wavelog-data
mountPath: /var/www/html/application/config
subPath: config
- name: wavelog-data
mountPath: /var/www/html/application/logs
subPath: logs
- name: wavelog-data
mountPath: /var/www/html/backup
subPath: backup-root
- name: wavelog-data
mountPath: /var/www/html/updates
subPath: updates
- name: wavelog-data
mountPath: /var/www/html/uploads
subPath: uploads-root
- name: wavelog-data
mountPath: /var/www/html/images/eqsl_card_images
subPath: eqsl_card_images
- name: wavelog-data
mountPath: /var/www/html/assets/qslcard
subPath: qslcard
- name: php-config
mountPath: /usr/local/etc/php/conf.d/custom.ini
subPath: php.ini
livenessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 30
periodSeconds: 30
readinessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 10
periodSeconds: 10
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "512Mi"
cpu: "500m"
volumes:
- name: wavelog-data
persistentVolumeClaim:
claimName: wavelog-data
- name: php-config
configMap:
name: wavelog-config