Adicionar kube-deploy.yaml

This commit is contained in:
wallaceosmar 2024-11-23 16:34:30 +00:00
parent d33f506219
commit 0c243d6bb1

235
kube-deploy.yaml Normal file
View File

@ -0,0 +1,235 @@
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"]