484 lines
11 KiB
YAML
484 lines
11 KiB
YAML
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: kultmost-api
|
|
namespace: kultmost
|
|
spec:
|
|
replicas: 0
|
|
selector:
|
|
matchLabels:
|
|
app: kultmost-api
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: kultmost-api
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: regcred
|
|
containers:
|
|
- name: kultmost-api-container
|
|
image: registry.spiritofweb.ru/avtopost-api:latest
|
|
command: ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080","--workers","8"]
|
|
envFrom:
|
|
- secretRef:
|
|
name: kultmost
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: 8080
|
|
initialDelaySeconds: 5
|
|
timeoutSeconds: 10
|
|
periodSeconds: 2
|
|
failureThreshold: 2
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: 8080
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: email-celery
|
|
namespace: kultmost
|
|
spec:
|
|
replicas: 0
|
|
selector:
|
|
matchLabels:
|
|
app: email-celery
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: email-celery
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: regcred
|
|
containers:
|
|
- name: email
|
|
image: registry.spiritofweb.ru/avtopost-api:latest
|
|
command: ["celery", "-A", "email_task.celery_app_email", "worker", "--loglevel=info"]
|
|
envFrom:
|
|
- secretRef:
|
|
name: kultmost
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: vk-celery
|
|
namespace: kultmost
|
|
spec:
|
|
replicas: 0
|
|
selector:
|
|
matchLabels:
|
|
app: vk-celery
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: vk-celery
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: regcred
|
|
containers:
|
|
- name: vk
|
|
image: registry.spiritofweb.ru/avtopost-api:latest
|
|
command: ["celery", "-A", "vk.celery_app_vk", "worker", "--loglevel=info"]
|
|
envFrom:
|
|
- secretRef:
|
|
name: kultmost
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: kultmost-api
|
|
spec:
|
|
type: NodePort
|
|
selector:
|
|
app: kultmost-api
|
|
ports:
|
|
- protocol: TCP
|
|
port: 80
|
|
targetPort: 8080
|
|
nodePort: 30080
|
|
---
|
|
kind: Ingress
|
|
apiVersion: networking.k8s.io/v1
|
|
metadata:
|
|
name: kultmost
|
|
namespace: kultmost
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt
|
|
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
|
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
|
|
# nginx.ingress.kubernetes.io/proxy-buffering: "on"
|
|
nginx.ingress.kubernetes.io/proxy-set-headers: |
|
|
Host: $http_host
|
|
X-Forwarded-For: $proxy_add_x_forwarded_for
|
|
X-Forwarded-Proto: $scheme
|
|
Upgrade: $http_upgrade
|
|
Connection: $connection_upgrade
|
|
nginx.ingress.kubernetes.io/proxy-buffering: "on"
|
|
spec:
|
|
ingressClassName: public
|
|
tls:
|
|
- hosts:
|
|
- kultmost.spiritofweb.ru
|
|
secretName: kultmost-tls-cert
|
|
rules:
|
|
- host: kultmost.spiritofweb.ru
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: kultmost-api
|
|
port:
|
|
number: 80
|
|
# ---
|
|
# kind: Ingress
|
|
# apiVersion: networking.k8s.io/v1
|
|
# metadata:
|
|
# name: kultmost
|
|
# namespace: kultmost
|
|
# annotations:
|
|
# cert-manager.io/cluster-issuer: letsencrypt
|
|
# nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
|
# nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
|
|
# nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
|
|
# # nginx.ingress.kubernetes.io/proxy-buffering: "on"
|
|
# nginx.ingress.kubernetes.io/proxy-set-headers: |
|
|
# Host: $http_host
|
|
# X-Forwarded-For: $proxy_add_x_forwarded_for
|
|
# X-Forwarded-Proto: $scheme
|
|
# Upgrade: $http_upgrade
|
|
# Connection: $connection_upgrade
|
|
# nginx.ingress.kubernetes.io/proxy-buffering: "on"
|
|
# spec:
|
|
# ingressClassName: public
|
|
# tls:
|
|
# - hosts:
|
|
# - avtopost.kultmost.ru
|
|
# secretName: kultmost-tls-cert
|
|
# rules:
|
|
# - host: avtopost.kultmost.ru
|
|
# http:
|
|
# paths:
|
|
# - path: /
|
|
# pathType: Prefix
|
|
# backend:
|
|
# service:
|
|
# name: kultmost-api
|
|
# port:
|
|
# number: 80
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: redis-kultmost-pvc
|
|
namespace: kultmost
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 5Gi
|
|
# apiVersion: v1
|
|
# kind: PersistentVolume
|
|
# metadata:
|
|
# name: redis-kultmost-pv
|
|
# namespace: kultmost
|
|
# spec:
|
|
# capacity:
|
|
# storage: 50Gi
|
|
# accessModes:
|
|
# - ReadWriteOnce
|
|
# persistentVolumeReclaimPolicy: Retain
|
|
# storageClassName: manual
|
|
# hostPath:
|
|
# path: /mnt/nfs/storage/db/redis-kultmost
|
|
# ---
|
|
# apiVersion: v1
|
|
# kind: PersistentVolumeClaim
|
|
# metadata:
|
|
# name: redis-kultmost-pvc
|
|
# namespace: kultmost
|
|
# spec:
|
|
# accessModes:
|
|
# - ReadWriteOnce
|
|
# resources:
|
|
# requests:
|
|
# storage: 50Gi
|
|
# storageClassName: manual
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: redis
|
|
namespace: kultmost
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: redis
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: redis
|
|
spec:
|
|
containers:
|
|
- name: redis
|
|
image: redis:latest
|
|
ports:
|
|
- containerPort: 6379
|
|
volumeMounts:
|
|
- name: redis-data
|
|
mountPath: /data
|
|
livenessProbe:
|
|
tcpSocket:
|
|
port: 6379
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 10
|
|
readinessProbe:
|
|
tcpSocket:
|
|
port: 6379
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 5
|
|
volumes:
|
|
- name: redis-data
|
|
persistentVolumeClaim:
|
|
claimName: redis-kultmost-pvc
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: redis
|
|
namespace: kultmost
|
|
spec:
|
|
selector:
|
|
app: ssh-reverse-tunnel
|
|
ports:
|
|
- name: redis-tcp
|
|
protocol: TCP
|
|
port: 6379
|
|
targetPort: 6379
|
|
type: ClusterIP
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: redis-stage
|
|
namespace: kultmost
|
|
spec:
|
|
selector:
|
|
app: redis
|
|
ports:
|
|
- name: redis
|
|
port: 6379
|
|
targetPort: 6379
|
|
nodePort: 30003
|
|
type: NodePort
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: mongodb-kultmost-pvc
|
|
namespace: kultmost
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 50Gi
|
|
|
|
# apiVersion: v1
|
|
# kind: PersistentVolume
|
|
# metadata:
|
|
# name: mongo-kultmost-pv
|
|
# namespace: kultmost
|
|
# spec:
|
|
# capacity:
|
|
# storage: 50Gi
|
|
# accessModes:
|
|
# - ReadWriteOnce
|
|
# persistentVolumeReclaimPolicy: Retain
|
|
# storageClassName: manual
|
|
# hostPath:
|
|
# path: /mnt/nfs/storage/db/mongodb-kultmost
|
|
# ---
|
|
# apiVersion: v1
|
|
# kind: PersistentVolumeClaim
|
|
# metadata:
|
|
# name: mongodb-kultmost-pvc
|
|
# namespace: kultmost
|
|
# spec:
|
|
# accessModes:
|
|
# - ReadWriteOnce
|
|
# resources:
|
|
# requests:
|
|
# storage: 50Gi
|
|
# storageClassName: manual
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: mongodb
|
|
namespace: kultmost
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: mongodb
|
|
replicas: 1
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: mongodb
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: regcred
|
|
containers:
|
|
- name: mongodb
|
|
image: registry.spiritofweb.ru/mongo:latest
|
|
ports:
|
|
- containerPort: 27017
|
|
env:
|
|
- name: MONGO_INITDB_ROOT_USERNAME
|
|
value: admin
|
|
- name: MONGO_INITDB_ROOT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: kultmost
|
|
key: MONGO_INITDB_ROOT_PASSWORD
|
|
volumeMounts:
|
|
- name: mongodb-persistent-storage
|
|
mountPath: /data/db
|
|
livenessProbe:
|
|
tcpSocket:
|
|
port: 27017
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 10
|
|
readinessProbe:
|
|
tcpSocket:
|
|
port: 27017
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 5
|
|
volumes:
|
|
- name: mongodb-persistent-storage
|
|
persistentVolumeClaim:
|
|
claimName: mongodb-kultmost-pvc
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: mongodb
|
|
namespace: kultmost
|
|
spec:
|
|
selector:
|
|
app: ssh-reverse-tunnel
|
|
ports:
|
|
- name: mongo-tcp
|
|
protocol: TCP
|
|
port: 27017
|
|
targetPort: 27017
|
|
nodePort: 30670
|
|
type: NodePort
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: mongodb-stage
|
|
namespace: kultmost
|
|
spec:
|
|
selector:
|
|
app: mongodb
|
|
ports:
|
|
- name: mongodb
|
|
port: 27017
|
|
targetPort: 27017
|
|
nodePort: 30002
|
|
type: NodePort
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: kultmost
|
|
namespace: kultmost
|
|
type: Opaque
|
|
stringData:
|
|
MONGO_INITDB_ROOT_PASSWORD: $MONGO_INITDB_ROOT_PASSWORD
|
|
SECRET_KEY: $SECRET_KEY
|
|
FROM_EMAIL: $FROM_EMAIL
|
|
RABBITMQ_PASS: $RABBITMQ_PASS
|
|
RABBITMQ_HOST: $RABBITMQ_HOST
|
|
EMAIL_PASS: $EMAIL_PASS
|
|
ENC_KEY_B64: $ENC_KEY_B64
|
|
EMAIL_SMTP_SERVER: $EMAIL_SMTP_SERVER
|
|
EMAIL_SMTP_PORT: "$EMAIL_SMTP_PORT"
|
|
FULL_PATH_DOMAIN: $FULL_PATH_DOMAIN
|
|
ATOKEN: "$ATOKEN"
|
|
WEB_CONCURRENCY: "8"
|
|
BOT_TOKEN: "$BOT_TOKEN"
|
|
---
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: ssh-creds
|
|
namespace: kultmost
|
|
type: Opaque
|
|
stringData:
|
|
username: "root"
|
|
password: "$ROOT_PASS"
|
|
remote_host: "$REMOTE_HOST"
|
|
---
|
|
apiVersion: batch/v1
|
|
kind: CronJob
|
|
metadata:
|
|
name: cron-day
|
|
namespace: kultmost
|
|
spec:
|
|
schedule: "0 0 * * *" # every day
|
|
jobTemplate:
|
|
spec:
|
|
template:
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: regcred
|
|
restartPolicy: OnFailure
|
|
containers:
|
|
- name: cron-day
|
|
image: registry.spiritofweb.ru/alpine/curl
|
|
command: ["sh","-c","curl -sS http://kultmost-api.kultmost/cron/day -H \"Authorization: Bearer ${ATOKEN}\""]
|
|
env:
|
|
- name: ATOKEN
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: kultmost
|
|
key: ATOKEN
|
|
---
|
|
apiVersion: batch/v1
|
|
kind: CronJob
|
|
metadata:
|
|
name: cron-five-minutes
|
|
namespace: kultmost
|
|
spec:
|
|
schedule: "*/5 * * * *" # every 5 min
|
|
jobTemplate:
|
|
spec:
|
|
template:
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: regcred
|
|
restartPolicy: OnFailure
|
|
containers:
|
|
- name: cron-five
|
|
image: registry.spiritofweb.ru/alpine/curl
|
|
command: ["sh","-c","curl -sS http://kultmost-api.kultmost/cron/5 -H \"Authorization: Bearer ${ATOKEN}\""]
|
|
env:
|
|
- name: ATOKEN
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: kultmost
|
|
key: ATOKEN
|
|
|