Bot commit: Добавлен файл k8s/kultmost.yaml
This commit is contained in:
parent
ceccb8bafc
commit
ee23ef1a1d
483
k8s/kultmost.yaml
Normal file
483
k8s/kultmost.yaml
Normal file
@ -0,0 +1,483 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: kultmost-api
|
||||
namespace: kultmost
|
||||
spec:
|
||||
replicas: 2
|
||||
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: 1
|
||||
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: 1
|
||||
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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user