236 lines
4.7 KiB
YAML
236 lines
4.7 KiB
YAML
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: nexo-cloud
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: postgres-data
|
|
namespace: nexo-cloud
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 10Gi
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: nexo-cloud-storage
|
|
namespace: nexo-cloud
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteMany
|
|
resources:
|
|
requests:
|
|
storage: 5Gi
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: nexo-cloud
|
|
namespace: nexo-cloud
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels:
|
|
app: nexo-cloud
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nexo-cloud
|
|
spec:
|
|
containers:
|
|
- name: nexo-cloud
|
|
image: git.masscivicdynamic.com/masscivicdynamic/nexo-cloud:latest
|
|
ports:
|
|
- containerPort: 8000
|
|
env:
|
|
- name: APP_ENV
|
|
value: production
|
|
- name: APP_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: nexo-cloud-secret
|
|
key: app-key
|
|
- name: DB_HOST
|
|
value: postgres
|
|
- name: DB_PORT
|
|
value: "5432"
|
|
- name: DB_DATABASE
|
|
value: laravel
|
|
- name: DB_USERNAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: nexo-cloud-db-secret
|
|
key: username
|
|
- name: DB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: nexo-cloud-db-secret
|
|
key: password
|
|
- name: REDIS_HOST
|
|
value: redis
|
|
- name: REDIS_PORT
|
|
value: "6379"
|
|
volumeMounts:
|
|
- name: storage
|
|
mountPath: /var/www/html/storage
|
|
volumes:
|
|
- name: storage
|
|
persistentVolumeClaim:
|
|
claimName: nexo-cloud-storage
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: nexo-cloud-service
|
|
namespace: nexo-cloud
|
|
spec:
|
|
selector:
|
|
app: laravel
|
|
ports:
|
|
- protocol: TCP
|
|
port: 80
|
|
targetPort: 8000
|
|
type: LoadBalancer
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: postgres
|
|
namespace: nexo-cloud
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: postgres
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: postgres
|
|
spec:
|
|
containers:
|
|
- name: postgres
|
|
image: postgres:16
|
|
ports:
|
|
- containerPort: 5432
|
|
env:
|
|
- name: POSTGRES_DB
|
|
value: laravel
|
|
- name: POSTGRES_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: nexo-cloud-db-secret
|
|
key: username
|
|
- name: POSTGRES_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: nexo-cloud-db-secret
|
|
key: password
|
|
volumeMounts:
|
|
- name: postgres-data
|
|
mountPath: /var/lib/postgresql/data
|
|
volumes:
|
|
- name: postgres-data
|
|
persistentVolumeClaim:
|
|
claimName: postgres-data
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: postgres
|
|
namespace: nexo-cloud
|
|
spec:
|
|
selector:
|
|
app: postgres
|
|
ports:
|
|
- protocol: TCP
|
|
port: 5432
|
|
targetPort: 5432
|
|
type: ClusterIP
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: redis
|
|
namespace: nexo-cloud
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: redis
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: redis
|
|
spec:
|
|
containers:
|
|
- name: redis
|
|
image: redis:7.2
|
|
ports:
|
|
- containerPort: 6379
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: redis
|
|
namespace: nexo-cloud
|
|
spec:
|
|
selector:
|
|
app: redis
|
|
ports:
|
|
- protocol: TCP
|
|
port: 6379
|
|
targetPort: 6379
|
|
type: ClusterIP
|
|
|
|
---
|
|
apiVersion: batch/v1
|
|
kind: CronJob
|
|
metadata:
|
|
name: nexo-cloud-scheduler
|
|
namespace: nexo-cloud
|
|
spec:
|
|
schedule: "*/5 * * * *"
|
|
jobTemplate:
|
|
spec:
|
|
template:
|
|
spec:
|
|
containers:
|
|
- name: scheduler
|
|
image: git.masscivicdynamic.com/masscivicdynamic/nexo-cloud:latest
|
|
command: ["php", "/var/www/html/artisan", "schedule:run"]
|
|
restartPolicy: OnFailure
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: nexo-cloud-worker
|
|
namespace: nexo-cloud
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels:
|
|
app: nexo-cloud-worker
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: nexo-cloud-worker
|
|
spec:
|
|
containers:
|
|
- name: worker
|
|
image: git.masscivicdynamic.com/masscivicdynamic/nexo-cloud:latest
|
|
command: ["php", "/var/www/html/artisan", "queue:work", "--tries=3"]
|