infctl-cli/k8s-manifests/ctl/deployment.yaml

299 lines
8.3 KiB
YAML
Raw Normal View History

apiVersion: apps/v1
kind: Deployment
metadata:
name: infctl-deployment
namespace: infctl
labels:
app: nginx-sl
spec:
replicas: 1
selector:
matchLabels:
app: nginx-sl
template:
metadata:
labels:
app: nginx-sl
spec:
imagePullSecrets:
- name: registry-credentials
initContainers:
- name: init-data-s3
image: amazon/aws-cli:latest
imagePullPolicy: IfNotPresent
# command: ["/bin/bash", "-c", "trap : TERM INT; sleep infinity & wait"]
# command: ["/bin/bash", "-c", "/scripts/init-data.sh && echo 'Script completed, sleeping for debugging' && sleep 3600"]
command: ["/bin/bash", "/scripts/init-data.sh"]
volumeMounts:
- name: init-script
mountPath: /scripts
- name: infctl-public-data
mountPath: /var/www/public
- name: infctl-storage-data
mountPath: /var/www/storage
- name: infctl-database-data
mountPath: /var/www/database
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: aws-credentials
key: access-key
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: aws-credentials
key: secret-key
- name: AWS_DEFAULT_REGION
value: "eu-west-2"
- name: merge-data
image: busybox
imagePullPolicy: IfNotPresent
# command: ["/bin/sh", "-c", "trap : TERM INT; sleep infinity & wait"]
command: ["/bin/sh", "/scripts/merge_data_inf.sh"]
volumeMounts:
- name: merge-script
mountPath: /scripts
- name: infctl-public-data
mountPath: /var/www/public
- name: infctl-storage-data
mountPath: /var/www/storage
- name: infctl-database-data
mountPath: /var/www/database
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: aws-credentials
key: access-key
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: aws-credentials
key: secret-key
- name: AWS_DEFAULT_REGION
value: "eu-west-2"
containers:
- name: php-fpm
image: $APP_CONTAINER
command: ["/bin/sh", "-c"]
args:
- |
cd /var/www
php artisan config:clear
npm install && npm run build
php-fpm
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "500m"
env:
- name: APP_NAME
value: "infctl"
- name: APP_ENV
value: production
- name: APP_KEY
valueFrom:
secretKeyRef:
name: app-key-secret
key: app_key
- name: APP_DEBUG
value: "false"
- name: APP_URL
value: "https://ctl.headshed.dev/"
- name: APP_LOCAL
value: "en"
- name: APP_FALLBACK_LOCALE
value: "en"
- name: APP_FAKER_LOCALE
value: "en_US"
- name: APP_MAINTENANCE_DRIVER
value: "file"
- name: PHP_CLI_SERVER_WORKERS
value: "4"
- name: BCRYPT_ROUNDS
value: "12"
- name: LOG_CHANNEL
value: "stack"
- name: LOG_STACK
value: "single"
- name: LOG_DEPRECATIONS_CHANNEL
value: ""
- name: LOG_LEVEL
value: "debug"
- name: DB_CONNECTION
value: pgsql
- name: DB_HOST
valueFrom:
secretKeyRef:
name: pg-credentials
key: host
- name: DB_PORT
value: "5432"
- name: DB_DATABASE
valueFrom:
secretKeyRef:
name: pg-credentials
key: dbname
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: pg-credentials
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: pg-credentials
key: password
- name: SESSION_DRIVER
value: "database"
- name: SESSION_LIFETIME
value: "120"
- name: SESSION_ENCRYPT
value: "false"
- name: SESSION_PATH
value: "/"
- name: SESSION_DOMAIN
value: ""
- name: BROADCAST_CONNECTION
value: "log"
- name: FILESYSTEM_DISK
value: "s3"
- name: FILAMENT_FILESYSTEM_DISK
value: "s3"
- name: QUEUE_CONNECTION
value: "redis"
- name: CACHE_STORE
value: "database"
- name: MEMCACHED_HOST
value: "127.0.0.1"
- name: REDIS_CLIENT
value: "phpredis"
- name: REDIS_HOST
value: "redis.redis.svc.cluster.local"
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: redis-auth
key: password
- name: REDIS_PORT
value: "6379"
- name: MAIL_MAILER
value: "smtp"
- name: MAIL_HOST
value: "smtp.fastmail.com"
- name: MAIL_PORT
value: "465"
- name: MAIL_USERNAME
valueFrom:
secretKeyRef:
name: smtp-credentials
key: user
- name: MAIL_PASSWORD
valueFrom:
secretKeyRef:
name: smtp-credentials
key: password
- name: MAIL_ENCRYPTION
value: "ssl"
- name: MAIL_FROM_ADDRESS
value: "info@headshed.dev"
- name: MAIL_FROM_NAME
value: "Headshed"
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: aws-credentials
key: access-key
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: aws-credentials
key: secret-key
- name: AWS_DEFAULT_REGION
value: "eu-west-2"
- name: AWS_BUCKET
value: "headsheddev-sharelt-cust-data"
- name: AWS_USE_PATH_STYLE_ENDPOINT
value: "false"
- name: VITE_APP_NAME
value: "infctl"
tty: true
workingDir: /var/www
volumeMounts:
- name: infctl-public-data
mountPath: /var/www/public
- name: infctl-storage-data
mountPath: /var/www/storage
- name: infctl-database-data
mountPath: /var/www/database
- mountPath: /usr/local/etc/php/conf.d/local.ini
name: php-config
subPath: local.ini
- name: nginx
image: nginx:1.28
imagePullPolicy: IfNotPresent
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "128Mi"
cpu: "100m"
ports:
- containerPort: 80
volumeMounts:
- name: infctl-public-data
mountPath: /var/www/public
- name: infctl-storage-data
mountPath: /var/www/storage
- name: infctl-database-data
mountPath: /var/www/database
- name: nginx-config
mountPath: /etc/nginx/conf.d
volumes:
- name: init-script
configMap:
name: init-data-script
- name: merge-script
configMap:
name: merge-data-script
- name: nginx-config
configMap:
name: nginx-config
# - name: nginx-content
# configMap:
# name: nginx-content
- name: infctl-public-data
persistentVolumeClaim:
claimName: infctl-public-data-pvc
- name: infctl-storage-data
persistentVolumeClaim:
claimName: infctl-storage-data-pvc
- name: infctl-database-data
persistentVolumeClaim:
claimName: infctl-database-data-pvc
- name: php-config
configMap:
name: php-config