Merge branch 'master' of ssh://158-160-253-227.nip.io:2222/infra/iac
This commit is contained in:
commit
a70bc9b0e6
15
apps/cde/base/backend-service.yaml
Normal file
15
apps/cde/base/backend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: cde-svc
|
||||
namespace: faas
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: cde
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
40
apps/cde/base/cde-flowscallback.yaml
Normal file
40
apps/cde/base/cde-flowscallback.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: cde-flowscallback
|
||||
namespace: cde
|
||||
labels:
|
||||
app: cde-flowscallback
|
||||
service: cde-flowscallback
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cde-flowscallback
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: cde-flowscallback
|
||||
service: cde-flowscallback
|
||||
spec:
|
||||
containers:
|
||||
- name: cde-flowscallback
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/flowscallback-worker:prod_3.1.2
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: S3_IS_CONTOUR
|
||||
value: "true"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cde-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
40
apps/cde/base/cde-splitpdf.yaml
Normal file
40
apps/cde/base/cde-splitpdf.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: cde-splitpdf
|
||||
namespace: cde
|
||||
labels:
|
||||
app: cde-splitpdf
|
||||
service: cde-splitpdf
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cde-splitpdf
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: cde-splitpdf
|
||||
service: cde-splitpdf
|
||||
spec:
|
||||
containers:
|
||||
- name: cde-splitpdf
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/splitpdf-worker:prod_3.1.2
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: S3_IS_CONTOUR
|
||||
value: "true"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cde-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
40
apps/cde/base/cde-worker-copy.yaml
Normal file
40
apps/cde/base/cde-worker-copy.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: cde-worker-copy
|
||||
namespace: cde
|
||||
labels:
|
||||
app: cde-worker-copy
|
||||
service: cde-worker-copy
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cde-worker-copy
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: cde-worker-copy
|
||||
service: cde-worker-copy
|
||||
spec:
|
||||
containers:
|
||||
- name: cde-worker-copy
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/copy-worker:preprod_fd483601
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: S3_IS_CONTOUR
|
||||
value: "true"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cde-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
40
apps/cde/base/cde-worker-create-versions.yaml
Normal file
40
apps/cde/base/cde-worker-create-versions.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: cde-worker-create-versions
|
||||
namespace: cde
|
||||
labels:
|
||||
app: cde-worker-create-versions
|
||||
service: cde-worker-create-versions
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cde-worker-create-versions
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: cde-worker-create-versions
|
||||
service: cde-worker-create-versions
|
||||
spec:
|
||||
containers:
|
||||
- name: cde-worker-create-versions
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/createversions-worker:preprod_ec474ae7
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: S3_IS_CONTOUR
|
||||
value: "true"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cde-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
40
apps/cde/base/cde-worker-markings.yaml
Normal file
40
apps/cde/base/cde-worker-markings.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: cde-worker-markings
|
||||
namespace: cde
|
||||
labels:
|
||||
app: cde-worker-markings
|
||||
service: cde-worker-markings
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cde-worker-markings
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: cde-worker-markings
|
||||
service: cde-worker-markings
|
||||
spec:
|
||||
containers:
|
||||
- name: cde-worker-markings
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/markings-worker:preprod_eb50f30e
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: S3_IS_CONTOUR
|
||||
value: "true"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cde-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
40
apps/cde/base/cde-worker-sign.yaml
Normal file
40
apps/cde/base/cde-worker-sign.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: cde-worker-sign
|
||||
namespace: cde
|
||||
labels:
|
||||
app: cde-worker-sign
|
||||
service: cde-worker-sign
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cde-worker-sign
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: cde-worker-sign
|
||||
service: cde-worker-sign
|
||||
spec:
|
||||
containers:
|
||||
- name: cde-worker-sign
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/sign-worker:preprod_fd483601
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: S3_IS_CONTOUR
|
||||
value: "true"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cde-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
40
apps/cde/base/cde-worker-update-bundles.yaml
Normal file
40
apps/cde/base/cde-worker-update-bundles.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: cde-worker-update-bundles
|
||||
namespace: cde
|
||||
labels:
|
||||
app: cde-worker-update-bundles
|
||||
service: cde-worker-update-bundles
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cde-worker-update-bundles
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: cde-worker-update-bundles
|
||||
service: cde-worker-update-bundles
|
||||
spec:
|
||||
containers:
|
||||
- name: cde-worker-update-bundles
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/updatebundles-worker:prod_3.1.2
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: S3_IS_CONTOUR
|
||||
value: "true"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cde-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
40
apps/cde/base/cde.yaml
Normal file
40
apps/cde/base/cde.yaml
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: cde
|
||||
namespace: cde
|
||||
labels:
|
||||
app: cde
|
||||
service: cde
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cde
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: cde
|
||||
service: cde
|
||||
spec:
|
||||
containers:
|
||||
- name: api
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/cde:preprod_ec474ae7
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: S3_IS_CONTOUR
|
||||
value: "true"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cde-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/cde/base/kustomization.yaml
Normal file
15
apps/cde/base/kustomization.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: cde
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- cde.yaml
|
||||
- cde-splitpdf.yaml
|
||||
- backend-service.yaml
|
||||
- cde-flowscallback.yaml
|
||||
- cde-worker-copy.yaml
|
||||
- cde-worker-create-versions.yaml
|
||||
- cde-worker-markings.yaml
|
||||
- cde-worker-sign.yaml
|
||||
- cde-worker-update-bundles.yaml
|
||||
7
apps/cde/base/namespace.yaml
Normal file
7
apps/cde/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: cde
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
10
apps/cde/yc-k8s-test/kustomization.yaml
Normal file
10
apps/cde/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
patches: []
|
||||
# - path: replicas.yaml
|
||||
# target:
|
||||
# kind: Deployment
|
||||
# name: frontend
|
||||
8
apps/cde/yc-k8s-test/replicas.yaml
Normal file
8
apps/cde/yc-k8s-test/replicas.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: cde
|
||||
spec:
|
||||
replicas: 1
|
||||
33
apps/document-link/base/deployment.yaml
Normal file
33
apps/document-link/base/deployment.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: document-link
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: frontend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: frontend
|
||||
version: stable
|
||||
spec:
|
||||
containers:
|
||||
- name: frontend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/document-link-frontend:wb_cb2027ce
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
8
apps/document-link/base/kustomization.yaml
Normal file
8
apps/document-link/base/kustomization.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: document-link
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
7
apps/document-link/base/namespace.yaml
Normal file
7
apps/document-link/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: document-link
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
15
apps/document-link/base/service.yaml
Normal file
15
apps/document-link/base/service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: frontend-service
|
||||
namespace: document-link
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: frontend
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
protocol: TCP
|
||||
10
apps/document-link/yc-k8s-test/kustomization.yaml
Normal file
10
apps/document-link/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
patches: []
|
||||
# - path: replicas.yaml
|
||||
# target:
|
||||
# kind: Deployment
|
||||
# name: frontend
|
||||
8
apps/document-link/yc-k8s-test/replicas.yaml
Normal file
8
apps/document-link/yc-k8s-test/replicas.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: document-link
|
||||
spec:
|
||||
replicas: 1
|
||||
188
apps/documentations/base/api-deployment.yaml
Normal file
188
apps/documentations/base/api-deployment.yaml
Normal file
@ -0,0 +1,188 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: documentations-api
|
||||
namespace: documentations
|
||||
labels:
|
||||
app: documentations-api
|
||||
service: documentations-api
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: documentations-api
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: documentations-api
|
||||
service: documentations-api
|
||||
spec:
|
||||
volumes:
|
||||
- name: documentations-yc-s3-secret
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: documentations-yc-s3
|
||||
- name: zitadel-account
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: zitadel-account
|
||||
containers:
|
||||
- name: documentations-api
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/documentations:prod_a9990430
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: public-key
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value: "20"
|
||||
- name: ZITADEL_ACCOUNT
|
||||
value: /etc/sarex/zitadel/zitadel-account.json
|
||||
- name: ZITADEL_DOMAIN
|
||||
value: zitadel-srx.wb.ru
|
||||
- name: USE_ZITADEL
|
||||
value: "1"
|
||||
- name: FLOWS_URL
|
||||
value: http://backend-service.flows.svc.cluster.local:8000
|
||||
- name: LAST_MASTER_BIM
|
||||
value: "36311"
|
||||
- name: API_ADDRESS
|
||||
value: 0.0.0.0:8080
|
||||
- name: API_ADDRESS_FILE
|
||||
value: 0.0.0.0:8080
|
||||
- name: DOCUMENT_PUBLIC_LINK_JWT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: secret
|
||||
name: yc-jwt-secret
|
||||
- name: DOCUMENT_PUBLIC_LINK_JWT_EXPIRATION_MINUTES
|
||||
value: "5"
|
||||
- name: ENABLE_SQL_QUERY
|
||||
value: "0"
|
||||
- name: ENABLE_SSL
|
||||
value: "0"
|
||||
- name: WORKSPACE_V2_EXTERNAL_URL
|
||||
value: https://srx.wb.ru/workspaces-v2/
|
||||
- name: ENABLE_S3
|
||||
value: "1"
|
||||
- name: CONTAINER_REGISTRY
|
||||
value: cr.yandex/crp3ccidau046kdj8g9q
|
||||
- name: ENVIRONMENT
|
||||
value: production
|
||||
- name: LAST_SLAVE_1_BIM
|
||||
value: "1000000"
|
||||
- name: HOST
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080
|
||||
- name: FILE_STREAM_HOST
|
||||
value: srx.wb.ru
|
||||
- name: DOCUMENTATION_URL
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080/
|
||||
- name: WORKFLOW_URL
|
||||
value: http://workflows-api-service.workflow.svc.cluster.local:8000/
|
||||
- name: WORKSPACE_URL
|
||||
value: http://workspaces-service.workspaces.svc.cluster.local:8000/
|
||||
- name: BIM_API_URL
|
||||
value: http://bim-api-service.bim.svc.cluster.local:8080/
|
||||
- name: BIM_API_V2_URL
|
||||
value: http://backend-service.bim.svc.cluster.local:8000/
|
||||
- name: WORKSPACE_BUNDLE_VERSION
|
||||
value: v1
|
||||
- name: SYSTEM_LOG_URL
|
||||
value: http://api-service.system-log.svc.cluster.local:8000
|
||||
- name: DJANGO_HOST
|
||||
value: http://backend.django.svc.cluster.local:8000
|
||||
- name: MARKS_PROCESSING_URL
|
||||
value: http://marks-service:8000
|
||||
- name: PUBLIC_LINK_HOST
|
||||
value: https://document-link-srx.wb.ru
|
||||
- name: NAMESPACE
|
||||
value: documentations
|
||||
- name: DJANGO_ORIGINATOR
|
||||
value: docs_prod
|
||||
- name: WORKFLOW_IMAGES_VERSION
|
||||
value: master
|
||||
- name: WORKFLOWS_IMAGES_VERSION
|
||||
value: master
|
||||
- name: S3_SERVICE_ACCOUNT
|
||||
value: /etc/sarex/yc-s3-storage/yc-s3-service-account.json
|
||||
- name: READ_WRITE_TIMEOUT_FILE_STREAM
|
||||
value: 6h
|
||||
- name: CACHE_DEFAULT_EXPIRATION
|
||||
value: 60s
|
||||
- name: ENABLE_SMTP
|
||||
value: "True"
|
||||
- name: ENABLE_MAILGUN
|
||||
value: "False"
|
||||
- name: CACHE_CLEANUP_INTERVAL
|
||||
value: 60s
|
||||
- name: ENABLE_AUTH_JWT_IN_URL
|
||||
value: "false"
|
||||
- name: ENABLE_SIGNATURE_IN_URL
|
||||
value: "true"
|
||||
- name: USE_CACHE_IN_FILE_STREAMER
|
||||
value: "0"
|
||||
- name: VALKEY_ADDR
|
||||
value: redis:6379
|
||||
- name: VALKEY_HOST
|
||||
value: redis
|
||||
- name: VALKEY_PORT
|
||||
value: "6379"
|
||||
|
||||
- name: POSTGRES_DB
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_ADDRESS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret
|
||||
- name: DJANGO_BASIC_AUTH
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: django-auth
|
||||
- name: DJANGO_BASIC_AUTH_FOR_GET_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: django-auth
|
||||
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/sarex/yc-s3-storage
|
||||
name: documentations-yc-s3-secret
|
||||
readOnly: true
|
||||
- mountPath: /etc/sarex/zitadel
|
||||
name: zitadel-account
|
||||
readOnly: true
|
||||
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/documentations/base/api-service.yaml
Normal file
15
apps/documentations/base/api-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: backend-api-svc
|
||||
namespace: documentations
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: documentations-api
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
188
apps/documentations/base/filestream-deployment.yaml
Normal file
188
apps/documentations/base/filestream-deployment.yaml
Normal file
@ -0,0 +1,188 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: documentations-filestream
|
||||
namespace: documentations
|
||||
labels:
|
||||
app: documentations-filestream
|
||||
service: documentations-filestream
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: documentations-filestream
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: documentations-filestream
|
||||
service: documentations-filestream
|
||||
spec:
|
||||
volumes:
|
||||
- name: documentations-yc-s3-secret
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: documentations-yc-s3
|
||||
- name: zitadel-account
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: zitadel-account
|
||||
containers:
|
||||
- name: documentations-filestream
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/documentations-api-files:prod_a9990430
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: public-key
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value: "20"
|
||||
- name: ZITADEL_ACCOUNT
|
||||
value: /etc/sarex/zitadel/zitadel-account.json
|
||||
- name: ZITADEL_DOMAIN
|
||||
value: zitadel-srx.wb.ru
|
||||
- name: USE_ZITADEL
|
||||
value: "1"
|
||||
- name: FLOWS_URL
|
||||
value: http://backend-service.flows.svc.cluster.local:8000
|
||||
- name: LAST_MASTER_BIM
|
||||
value: "36311"
|
||||
- name: API_ADDRESS
|
||||
value: 0.0.0.0:8080
|
||||
- name: API_ADDRESS_FILE
|
||||
value: 0.0.0.0:8080
|
||||
- name: DOCUMENT_PUBLIC_LINK_JWT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: secret
|
||||
name: yc-jwt-secret
|
||||
- name: DOCUMENT_PUBLIC_LINK_JWT_EXPIRATION_MINUTES
|
||||
value: "5"
|
||||
- name: ENABLE_SQL_QUERY
|
||||
value: "0"
|
||||
- name: ENABLE_SSL
|
||||
value: "0"
|
||||
- name: WORKSPACE_V2_EXTERNAL_URL
|
||||
value: https://srx.wb.ru/workspaces-v2/
|
||||
- name: ENABLE_S3
|
||||
value: "1"
|
||||
- name: CONTAINER_REGISTRY
|
||||
value: cr.yandex/crp3ccidau046kdj8g9q
|
||||
- name: ENVIRONMENT
|
||||
value: production
|
||||
- name: LAST_SLAVE_1_BIM
|
||||
value: "1000000"
|
||||
- name: HOST
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080
|
||||
- name: FILE_STREAM_HOST
|
||||
value: srx.wb.ru
|
||||
- name: DOCUMENTATION_URL
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080/
|
||||
- name: WORKFLOW_URL
|
||||
value: http://workflows-api-service.workflow.svc.cluster.local:8000/
|
||||
- name: WORKSPACE_URL
|
||||
value: http://workspaces-service.workspaces.svc.cluster.local:8000/
|
||||
- name: BIM_API_URL
|
||||
value: http://bim-api-service.bim.svc.cluster.local:8080/
|
||||
- name: BIM_API_V2_URL
|
||||
value: http://backend-service.bim.svc.cluster.local:8000/
|
||||
- name: WORKSPACE_BUNDLE_VERSION
|
||||
value: v1
|
||||
- name: SYSTEM_LOG_URL
|
||||
value: http://api-service.system-log.svc.cluster.local:8000
|
||||
- name: DJANGO_HOST
|
||||
value: http://backend.django.svc.cluster.local:8000
|
||||
- name: MARKS_PROCESSING_URL
|
||||
value: http://marks-service:8000
|
||||
- name: PUBLIC_LINK_HOST
|
||||
value: https://document-link-srx.wb.ru
|
||||
- name: NAMESPACE
|
||||
value: documentations
|
||||
- name: DJANGO_ORIGINATOR
|
||||
value: docs_prod
|
||||
- name: WORKFLOW_IMAGES_VERSION
|
||||
value: master
|
||||
- name: WORKFLOWS_IMAGES_VERSION
|
||||
value: master
|
||||
- name: S3_SERVICE_ACCOUNT
|
||||
value: /etc/sarex/yc-s3-storage/yc-s3-service-account.json
|
||||
- name: READ_WRITE_TIMEOUT_FILE_STREAM
|
||||
value: 6h
|
||||
- name: CACHE_DEFAULT_EXPIRATION
|
||||
value: 60s
|
||||
- name: ENABLE_SMTP
|
||||
value: "True"
|
||||
- name: ENABLE_MAILGUN
|
||||
value: "False"
|
||||
- name: CACHE_CLEANUP_INTERVAL
|
||||
value: 60s
|
||||
- name: ENABLE_AUTH_JWT_IN_URL
|
||||
value: "false"
|
||||
- name: ENABLE_SIGNATURE_IN_URL
|
||||
value: "true"
|
||||
- name: USE_CACHE_IN_FILE_STREAMER
|
||||
value: "0"
|
||||
- name: VALKEY_ADDR
|
||||
value: redis:6379
|
||||
- name: VALKEY_HOST
|
||||
value: redis
|
||||
- name: VALKEY_PORT
|
||||
value: "6379"
|
||||
|
||||
- name: POSTGRES_DB
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_ADDRESS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret
|
||||
- name: DJANGO_BASIC_AUTH
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: django-auth
|
||||
- name: DJANGO_BASIC_AUTH_FOR_GET_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: django-auth
|
||||
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/sarex/yc-s3-storage
|
||||
name: documentations-yc-s3-secret
|
||||
readOnly: true
|
||||
- mountPath: /etc/sarex/zitadel
|
||||
name: zitadel-account
|
||||
readOnly: true
|
||||
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/documentations/base/filestream-service.yaml
Normal file
15
apps/documentations/base/filestream-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: backend-filestream-svc
|
||||
namespace: documentations
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: documentations-filestream
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
32
apps/documentations/base/frontend-deployment.yaml
Normal file
32
apps/documentations/base/frontend-deployment.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: documentations
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: frontend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
containers:
|
||||
- name: frontend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/documentation-frontend-app:brusnika_ce5555d3
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/documentations/base/frontend-service.yaml
Normal file
15
apps/documentations/base/frontend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: frontend-service
|
||||
namespace: documentations
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: frontend
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
protocol: TCP
|
||||
14
apps/documentations/base/kustomization.yaml
Normal file
14
apps/documentations/base/kustomization.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: documentations
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- api-deployment.yaml
|
||||
- pdm-deployment.yaml
|
||||
- filestream-deployment.yaml
|
||||
- frontend-deployment.yaml
|
||||
- api-service.yaml
|
||||
- pdm-service.yaml
|
||||
- filestream-service.yaml
|
||||
- frontend-service.yaml
|
||||
7
apps/documentations/base/namespace.yaml
Normal file
7
apps/documentations/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: documentations
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
198
apps/documentations/base/pdm-deployment.yaml
Normal file
198
apps/documentations/base/pdm-deployment.yaml
Normal file
@ -0,0 +1,198 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pdm-api
|
||||
namespace: documentations
|
||||
labels:
|
||||
app: pdm-api
|
||||
service: pdm-api
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: pdm-api
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: pdm-api
|
||||
service: pdm-api
|
||||
spec:
|
||||
volumes:
|
||||
- name: documentations-yc-s3-secret
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: documentations-yc-s3
|
||||
- name: zitadel-account
|
||||
secret:
|
||||
defaultMode: 420
|
||||
secretName: zitadel-account
|
||||
containers:
|
||||
- name: pdm-api
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/pdmv2:prod_38958427
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: USE_EXPERIMENTAL
|
||||
value: "true"
|
||||
- name: RELEASES_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: releases-token
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_ADDRESS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_DB
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value: "20"
|
||||
- name: TRANSMITTALS_BASE_URL
|
||||
value: mock
|
||||
- name: DJANGO_BASIC_AUTH
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: django-auth
|
||||
- name: PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: public-key
|
||||
- name: API_ADDRESS
|
||||
value: 0.0.0.0:8080
|
||||
- name: API_ADDRESS_FILE
|
||||
value: 0.0.0.0:8080
|
||||
- name: BUCKET_NAME
|
||||
value: attachments-storage
|
||||
- name: API_HOST_PREFIX
|
||||
value: /
|
||||
- name: APP_NAME
|
||||
value: pdm_v2
|
||||
- name: APP_VERSION
|
||||
value: 0.0.1
|
||||
- name: ENABLE_PERMISSIONS_FILTER
|
||||
value: "1"
|
||||
- name: PERMISSIONS_FILTER_COMPANIES
|
||||
value: '[1]'
|
||||
- name: TRANSMITTALS_ENABLE
|
||||
value: "false"
|
||||
- name: DRAWINGS_INTERNAL_URL
|
||||
value: http://drawings-api-service.drawings.svc.cluster.local:80
|
||||
- name: ATTACHMENTS_URL
|
||||
value: http://attachments-service.attachments.svc.cluster.local:8000
|
||||
- name: BIM_API_V2_URL
|
||||
value: http://backend-service.bim.svc.cluster.local:8000/
|
||||
- name: BIM_V2_HOST
|
||||
value: http://backend-service.bim.svc.cluster.local:8000/
|
||||
- name: CACHE_CLEANUP_INTERVAL
|
||||
value: 60s
|
||||
- name: CACHE_DEFAULT_EXPIRATION
|
||||
value: 60s
|
||||
- name: DJANGO_HOST
|
||||
value: http://backend.django.svc.cluster.local:8000
|
||||
- name: DJANGO_ORIGINATOR
|
||||
value: docs_prod
|
||||
- name: DOCUMENTATION_URL
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080/
|
||||
- name: EAV_URL
|
||||
value: http://eav-service.eav.svc.cluster.local:8000
|
||||
- name: ENABLE_OBSERVABILITY
|
||||
value: "false"
|
||||
- name: ENABLE_S3
|
||||
value: "1"
|
||||
- name: ENABLE_SSL
|
||||
value: "0"
|
||||
- name: ENVIRONMENT
|
||||
value: prod
|
||||
- name: FLOWS_URL
|
||||
value: http://backend-service.flows.svc.cluster.local:8000
|
||||
- name: HEIGHT_THUMB_ATTACHMENTS
|
||||
value: "300"
|
||||
- name: HEIGHT_THUMB_STATES
|
||||
value: "73"
|
||||
- name: HTTP_PORT
|
||||
value: "8080"
|
||||
- name: INSPECTIONS_URL
|
||||
value: http://inspections-service.inspections.svc.cluster.local:80
|
||||
- name: LOG_LEVEL
|
||||
value: INFO
|
||||
- name: NOTES_URL
|
||||
- name: OBSERVABILITY_COLLECTOR_ENDPOINT
|
||||
value: temp
|
||||
- name: READ_WRITE_TIMEOUT_FILE_STREAM
|
||||
value: 6h
|
||||
- name: RELEASES_URL
|
||||
value: https://gitlab.com
|
||||
- name: REMARKS_URL
|
||||
value: http://remarks-static-service.remarks.svc.cluster.local:8080/remarks
|
||||
- name: RESOURCES_URL
|
||||
value: http://resources-service.resources.svc.cluster.local:8000
|
||||
- name: S3_SERVICE_ACCOUNT
|
||||
value: /etc/sarex/yc-s3-storage/yc-s3-service-account.json
|
||||
- name: STATES_URL
|
||||
value: http://workspaces-service.workspaces.svc.cluster.local:8000/
|
||||
- name: SUBSCRIPTIONS_URL
|
||||
value: http://sarex-subscriptions-service.subscriptions.svc.cluster.local:80
|
||||
- name: SYSTEM_LOG_URL
|
||||
value: http://api-service.system-log.svc.cluster.local:8000
|
||||
- name: TARGET_URL
|
||||
value: http://backend.django.svc.cluster.local:8000
|
||||
- name: USE_CACHE_IN_FILE_STREAMER
|
||||
value: "1"
|
||||
- name: USE_SUBSCRIPTIONS
|
||||
value: "false"
|
||||
- name: WIDTH_THUMB_ATTACHMENTS
|
||||
value: "300"
|
||||
- name: WIDTH_THUMB_STATES
|
||||
value: "120"
|
||||
- name: WORKFLOWS_IMAGES_VERSION
|
||||
value: master
|
||||
- name: WORKFLOW_IMAGES_VERSION
|
||||
value: master
|
||||
- name: WORKFLOW_URL
|
||||
value: http://workflows-api-service.workflow.svc.cluster.local:8000/
|
||||
- name: WORKSPACE_BUNDLE_VERSION
|
||||
value: v1
|
||||
- name: WORKSPACE_URL
|
||||
value: http://workspaces-service.workspaces.svc.cluster.local:8000/
|
||||
|
||||
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
volumeMounts:
|
||||
- mountPath: /etc/sarex/yc-s3-storage
|
||||
name: documentations-yc-s3-secret
|
||||
readOnly: true
|
||||
- mountPath: /etc/sarex/zitadel
|
||||
name: zitadel-account
|
||||
readOnly: true
|
||||
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/documentations/base/pdm-service.yaml
Normal file
15
apps/documentations/base/pdm-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pdm-svc
|
||||
namespace: documentations
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: pdm-api
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
protocol: TCP
|
||||
7
apps/documentations/yc-k8s-test/kustomization.yaml
Normal file
7
apps/documentations/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
- postgresql.yaml
|
||||
patches: []
|
||||
110
apps/documentations/yc-k8s-test/postgresql.yaml
Normal file
110
apps/documentations/yc-k8s-test/postgresql.yaml
Normal file
@ -0,0 +1,110 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: postgresql
|
||||
namespace: documentations
|
||||
spec:
|
||||
interval: 5m
|
||||
timeout: 2h
|
||||
chart:
|
||||
spec:
|
||||
chart: postgresql-contour
|
||||
version: "17.0.2"
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: yc-oci-charts
|
||||
namespace: flux-system
|
||||
|
||||
install:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
upgrade:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
values:
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
defaultStorageClass: local-path
|
||||
postgresql:
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
image:
|
||||
registry: cr.yandex/crp3ccidau046kdj8g9q
|
||||
repository: contour/postgresql
|
||||
tag: 17.0.2
|
||||
pullPolicy: Always
|
||||
metrics:
|
||||
enabled: false
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
primary:
|
||||
containerSecurityContext:
|
||||
readOnlyRootFilesystem: false
|
||||
persistence:
|
||||
storageClass: local-path
|
||||
size: 20Gi
|
||||
customLivenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customReadinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customStartupProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
nodeSelector:
|
||||
dedicated: db
|
||||
tolerations:
|
||||
- key: dedicated
|
||||
operator: Equal
|
||||
value: db
|
||||
effect: NoSchedule
|
||||
contour:
|
||||
enabled: true
|
||||
adminUser: ""
|
||||
adminPasswordSecretKey: ""
|
||||
sharedPreloadLibraries: "pg_stat_statements,ltree,timescaledb,uuid-ossp"
|
||||
databases:
|
||||
- name: documentations_db
|
||||
user: documentations
|
||||
extensions: []
|
||||
restoreFromDump: false
|
||||
s3-proxy:
|
||||
endpointUrl: "s3-proxy-service.postgresql.svc.cluster.local"
|
||||
126
apps/eav/base/backend-deployment.yaml
Normal file
126
apps/eav/base/backend-deployment.yaml
Normal file
@ -0,0 +1,126 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: eav
|
||||
labels:
|
||||
app: backend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: backend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: backend
|
||||
spec:
|
||||
volumes:
|
||||
- name: django-configmap
|
||||
configMap:
|
||||
name: django-configmap
|
||||
items:
|
||||
- key: production.py
|
||||
path: production.py
|
||||
defaultMode: 420
|
||||
|
||||
containers:
|
||||
- name: backend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/eav:prod_0fb73247
|
||||
imagePullPolicy: IfNotPresent
|
||||
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
|
||||
env:
|
||||
- name: KAFKA_ENABLED
|
||||
value: "False"
|
||||
- name: ASSETS_TOPIC
|
||||
value: sarex
|
||||
- name: DJANGO_SETTINGS_MODULE
|
||||
value: config.settings.production
|
||||
- name: DJANGO_POSTGRES_DATABASE
|
||||
value: eav_db
|
||||
- name: YC_S3_ENDPOINT_URL
|
||||
value: http://minio-svc.minio.svc.cluster.local:9000
|
||||
- name: YC_S3_BUCKET_NAME
|
||||
value: eav
|
||||
|
||||
- name: DJANGO_POSTGRES_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgresql-secret
|
||||
key: hostname
|
||||
|
||||
- name: DJANGO_POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgresql-secret
|
||||
key: username
|
||||
|
||||
- name: DJANGO_POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgresql-secret
|
||||
key: password
|
||||
|
||||
- name: DJANGO_POSTGRES_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgresql-secret
|
||||
key: port
|
||||
|
||||
- name: JWT_PRIVATE_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: backend-secret
|
||||
key: ssh_private.key
|
||||
|
||||
- name: JWT_PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: backend-secret
|
||||
key: ssh_public.key
|
||||
|
||||
- name: YC_S3_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: s3-secret
|
||||
key: username
|
||||
|
||||
- name: YC_S3_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: s3-secret
|
||||
key: password
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
|
||||
volumeMounts:
|
||||
- name: django-configmap
|
||||
mountPath: /server/config/settings/production.py
|
||||
subPath: production.py
|
||||
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /ping
|
||||
port: 8000
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 60
|
||||
failureThreshold: 10
|
||||
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /ping
|
||||
port: 8000
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
failureThreshold: 20
|
||||
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/eav/base/backend-service.yaml
Normal file
15
apps/eav/base/backend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: backend-service
|
||||
namespace: eav
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: backend
|
||||
ports:
|
||||
- name: http
|
||||
port: 8000
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
171
apps/eav/base/django-configmap.yaml
Normal file
171
apps/eav/base/django-configmap.yaml
Normal file
@ -0,0 +1,171 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: django-configmap
|
||||
namespace: eav
|
||||
data:
|
||||
production.py: |
|
||||
# production.py
|
||||
|
||||
|
||||
from .base import *
|
||||
|
||||
from datetime import timedelta
|
||||
|
||||
import os
|
||||
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
|
||||
INSTALLED_APPS.append("corsheaders")
|
||||
|
||||
#MIDDLEWARE = ["corsheaders.middleware.CorsMiddleware"] + MIDDLEWARE
|
||||
|
||||
|
||||
# DEBUG SETTINGS START
|
||||
|
||||
DEBUG = True
|
||||
|
||||
ALLOWED_HOSTS = ['*']
|
||||
|
||||
# DEBUG SETTINGS END
|
||||
|
||||
|
||||
# DATABASE SETTINGS START
|
||||
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.postgresql",
|
||||
"NAME": os.getenv("DJANGO_POSTGRES_DATABASE"),
|
||||
"USER": os.getenv("DJANGO_POSTGRES_USER"),
|
||||
"PASSWORD": os.getenv("DJANGO_POSTGRES_PASSWORD"),
|
||||
"HOST": os.getenv("DJANGO_POSTGRES_HOST"),
|
||||
"PORT": "5432",
|
||||
}
|
||||
}
|
||||
|
||||
# DATABASE SETTINGS END
|
||||
|
||||
|
||||
# RESPONSE HEADERS START
|
||||
|
||||
|
||||
CORS_ORIGIN_ALLOW_ALL = True
|
||||
|
||||
|
||||
CORS_ALLOWED_ORIGINS = [
|
||||
"https://srx.wb.ru",
|
||||
]
|
||||
|
||||
|
||||
CORS_TRUSTED_ORIGINS = [
|
||||
"https://srx.wb.ru",
|
||||
]
|
||||
|
||||
|
||||
CSRF_TRUSTED_ORIGINS = [
|
||||
"https://srx.wb.ru",
|
||||
]
|
||||
|
||||
|
||||
CORS_ALLOW_METHODS = (
|
||||
'DELETE',
|
||||
'GET',
|
||||
'OPTIONS',
|
||||
'PATCH',
|
||||
'POST',
|
||||
'PUT',
|
||||
)
|
||||
|
||||
|
||||
CORS_ALLOW_HEADERS = (
|
||||
'accept',
|
||||
'accept-encoding',
|
||||
'authorization',
|
||||
'content-type',
|
||||
'user-agent',
|
||||
'x-csrftoken',
|
||||
'x-requested-with',
|
||||
'x-token',
|
||||
'Bearer'
|
||||
)
|
||||
|
||||
# RESPONSE HEADERS END
|
||||
|
||||
|
||||
REST_FRAMEWORK = {
|
||||
"DEFAULT_PAGINATION_CLASS": (
|
||||
"rest_framework.pagination.LimitOffsetPagination"
|
||||
),
|
||||
"DEFAULT_SCHEMA_CLASS": "rest_framework.schemas.coreapi.AutoSchema",
|
||||
"PAGE_SIZE": 10000,
|
||||
"DEFAULT_FILTER_BACKENDS": [
|
||||
"django_filters.rest_framework.DjangoFilterBackend"
|
||||
],
|
||||
"DEFAULT_AUTHENTICATION_CLASSES": [
|
||||
"core.auth.ZitadelJWTAuthentication",
|
||||
"rest_framework_simplejwt.authentication.JWTAuthentication",
|
||||
"rest_framework.authentication.SessionAuthentication",
|
||||
"rest_framework.authentication.BasicAuthentication",
|
||||
],
|
||||
"DEFAULT_PERMISSION_CLASSES": [
|
||||
"rest_framework.permissions.AllowAny",
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
# JWT SETTINGS START
|
||||
|
||||
def get_env_variable(var_name, default=None):
|
||||
try:
|
||||
return os.getenv(var_name, default)
|
||||
except KeyError:
|
||||
error_msg = f"Set the {var_name} environment variable"
|
||||
if default:
|
||||
return default
|
||||
raise ImproperlyConfigured(error_msg)
|
||||
|
||||
SIMPLE_JWT_ISSUER = get_env_variable("SIMPLE_JWT_ISSUER", default="django")
|
||||
|
||||
|
||||
SIMPLE_JWT = {
|
||||
"ACCESS_TOKEN_LIFETIME": timedelta(minutes=5),
|
||||
"REFRESH_TOKEN_LIFETIME": timedelta(days=1),
|
||||
"ROTATE_REFRESH_TOKENS": False,
|
||||
"UPDATE_LAST_LOGIN": False,
|
||||
|
||||
"ALGORITHM": "RS512",
|
||||
"SIGNING_KEY": get_env_variable("JWT_PRIVATE_KEY").replace("\\\n", "\n"),
|
||||
"VERIFYING_KEY": get_env_variable("JWT_PUBLIC_KEY").replace("\\\n", "\n"),
|
||||
"AUDIENCE": None,
|
||||
"ISSUER": SIMPLE_JWT_ISSUER,
|
||||
|
||||
"AUTH_HEADER_TYPES": ("Bearer",),
|
||||
"AUTH_HEADER_NAME": "HTTP_AUTHORIZATION",
|
||||
"USER_ID_FIELD": "id",
|
||||
"USER_ID_CLAIM": "user_id",
|
||||
|
||||
"AUTH_TOKEN_CLASSES": ("rest_framework_simplejwt.tokens.AccessToken",),
|
||||
"TOKEN_TYPE_CLAIM": "token_type",
|
||||
|
||||
"JTI_CLAIM": "jti",
|
||||
|
||||
"SLIDING_TOKEN_REFRESH_EXP_CLAIM": "refresh_exp",
|
||||
"SLIDING_TOKEN_LIFETIME": timedelta(minutes=5),
|
||||
"SLIDING_TOKEN_REFRESH_LIFETIME": timedelta(days=1),
|
||||
}
|
||||
|
||||
|
||||
# JWT SETTINGS END
|
||||
|
||||
|
||||
STATIC_ROOT = '/static/'
|
||||
|
||||
STATIC_URL = '/static/'
|
||||
|
||||
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
|
||||
|
||||
|
||||
SESSION_COOKIE_NAME = 'eav-sessionid'
|
||||
|
||||
CSRF_COOKIE_NAME = 'eav-csrftoken'
|
||||
9
apps/eav/base/kustomization.yaml
Normal file
9
apps/eav/base/kustomization.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: eav
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- backend-deployment.yaml
|
||||
- backend-service.yaml
|
||||
- django-configmap.yaml
|
||||
7
apps/eav/base/namespace.yaml
Normal file
7
apps/eav/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: eav
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
11
apps/eav/yc-k8s-test/kustomization.yaml
Normal file
11
apps/eav/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
- postgresql.yaml
|
||||
patches:
|
||||
- path: replicas.yaml
|
||||
target:
|
||||
kind: Deployment
|
||||
name: comparisons
|
||||
113
apps/eav/yc-k8s-test/postgresql.yaml
Normal file
113
apps/eav/yc-k8s-test/postgresql.yaml
Normal file
@ -0,0 +1,113 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: postgresql
|
||||
namespace: eav
|
||||
spec:
|
||||
interval: 5m
|
||||
timeout: 2h
|
||||
chart:
|
||||
spec:
|
||||
chart: postgresql-contour
|
||||
version: "17.0.2"
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: yc-oci-charts
|
||||
namespace: flux-system
|
||||
|
||||
install:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
upgrade:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
values:
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
defaultStorageClass: local-path
|
||||
postgresql:
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
image:
|
||||
registry: cr.yandex/crp3ccidau046kdj8g9q
|
||||
repository: contour/postgresql
|
||||
tag: 17.0.2
|
||||
pullPolicy: Always
|
||||
metrics:
|
||||
enabled: false
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
primary:
|
||||
containerSecurityContext:
|
||||
readOnlyRootFilesystem: false
|
||||
persistence:
|
||||
storageClass: local-path
|
||||
size: 20Gi
|
||||
customLivenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customReadinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customStartupProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
resources:
|
||||
requests:
|
||||
memory: 512Mi
|
||||
nodeSelector:
|
||||
dedicated: db
|
||||
tolerations:
|
||||
- key: dedicated
|
||||
operator: Equal
|
||||
value: db
|
||||
effect: NoSchedule
|
||||
contour:
|
||||
enabled: true
|
||||
adminUser: ""
|
||||
adminPasswordSecretKey: ""
|
||||
sharedPreloadLibraries: "pg_stat_statements,uuid-ossp,ltree,postgis"
|
||||
databases:
|
||||
- name: eav_db
|
||||
user: eav
|
||||
extensions: []
|
||||
restoreFromDump: false
|
||||
s3-proxy:
|
||||
endpointUrl: "s3-proxy-service.postgresql.svc.cluster.local"
|
||||
8
apps/eav/yc-k8s-test/replicas.yaml
Normal file
8
apps/eav/yc-k8s-test/replicas.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: eav
|
||||
spec:
|
||||
replicas: 1
|
||||
15
apps/faas/base/backend-service.yaml
Normal file
15
apps/faas/base/backend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: export-reviews-svc
|
||||
namespace: faas
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: export-reviews
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
64
apps/faas/base/export-reviews.yaml
Normal file
64
apps/faas/base/export-reviews.yaml
Normal file
@ -0,0 +1,64 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: export-reviews
|
||||
namespace: faas
|
||||
labels:
|
||||
app: export-reviews
|
||||
service: export-reviews
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: export-reviews
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: export-reviews
|
||||
service: export-reviews
|
||||
spec:
|
||||
containers:
|
||||
- name: api
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/export-reviews:prod_c4cae4ee
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: BASE_HOST
|
||||
value: https://sarex.contour.infra.sarex.tech
|
||||
- name: DJANGO_HOST
|
||||
value: https://sarex.contour.infra.sarex.tech
|
||||
- name: REVIEWS_HOST
|
||||
value: https://sarex.contour.infra.sarex.tech/flows
|
||||
- name: GATEWAY_HOST
|
||||
value: https://sarex.contour.infra.sarex.tech/gateway
|
||||
- name: DOCUMENTATIONS_HOST
|
||||
value: https://sarex.contour.infra.sarex.tech/documentations
|
||||
- name: EAV_HOST
|
||||
value: http://eav-service.eav.svc.cluster.local:8000
|
||||
- name: TRANSMITTALS_INTERNAL_HOST
|
||||
value: http://transmittal-service.transmittal.svc.cluster.local:80/internal/v1
|
||||
- name: DJANGO_TIMEOUT
|
||||
value: "180"
|
||||
- name: REVIEWS_TIMEOUT
|
||||
value: "180"
|
||||
- name: GATEWAY_TIMEOUT
|
||||
value: "60"
|
||||
- name: DOCUMENTATIONS_TIMEOUT
|
||||
value: "60"
|
||||
- name: EAV_TIMEOUT
|
||||
value: "30"
|
||||
- name: TRANSMITTALS_TIMEOUT
|
||||
value: "30"
|
||||
- name: TIMEOUT
|
||||
value: "180"
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
8
apps/faas/base/kustomization.yaml
Normal file
8
apps/faas/base/kustomization.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: faas
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- export-reviews.yaml
|
||||
- backend-service.yaml
|
||||
7
apps/faas/base/namespace.yaml
Normal file
7
apps/faas/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: faas
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
10
apps/faas/yc-k8s-test/kustomization.yaml
Normal file
10
apps/faas/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
patches: []
|
||||
# - path: replicas.yaml
|
||||
# target:
|
||||
# kind: Deployment
|
||||
# name: frontend
|
||||
8
apps/faas/yc-k8s-test/replicas.yaml
Normal file
8
apps/faas/yc-k8s-test/replicas.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: faas
|
||||
spec:
|
||||
replicas: 1
|
||||
177
apps/flows/base/backend-deployment.yaml
Normal file
177
apps/flows/base/backend-deployment.yaml
Normal file
@ -0,0 +1,177 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: flows
|
||||
labels:
|
||||
app: backend
|
||||
service: backend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: backend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: backend
|
||||
service: backend
|
||||
spec:
|
||||
containers:
|
||||
- name: backend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/flows-backend:production_2a439111
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: ADMIN_PANEL_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: admin-secret
|
||||
- name: JWT_PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: public_key
|
||||
name: jwt-secret
|
||||
- name: LOG_LEVEL
|
||||
value: DEBUG
|
||||
- name: BASE_HOST
|
||||
value: https://srx.wb.ru
|
||||
- name: CELERY_QUEUE
|
||||
value: flow
|
||||
- name: EAV_HOST
|
||||
value: http://eav-service.eav.svc.cluster.local:8000
|
||||
- name: DJANGO_HOST
|
||||
value: http://backend.django.svc.cluster.local:8000/api
|
||||
- name: PLANNING_HOST
|
||||
value: http://backend-service.pm.svc.cluster.local:8000/api/pm/msp
|
||||
- name: PLANNING_USE
|
||||
value: "True"
|
||||
- name: DOCUMENTATION_HOST
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080/internal/v1
|
||||
- name: DOCUMENTATION_EXTERNAL_HOST
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080/api/v1
|
||||
- name: ENABLE_ANALYTICS
|
||||
value: "1"
|
||||
- name: ENABLE_CELERY
|
||||
value: "1"
|
||||
- name: ENABLE_MAILGUN
|
||||
value: "0"
|
||||
- name: ENABLE_METRICS
|
||||
value: "0"
|
||||
- name: FROM_EMAIL
|
||||
value: sarex@rwb.ru
|
||||
- name: GATEWAY_URL
|
||||
value: http://pdm-api.documentations.svc.cluster.local:8080
|
||||
- name: RESOURCE_URL
|
||||
value: http://resources-service.resources.svc.cluster.local:8000
|
||||
- name: SERVICE_HOST
|
||||
value: https://srx.wb.ru/flows/api/v1
|
||||
- name: SMTP_HOST
|
||||
value: mail.rwb.ru
|
||||
|
||||
- name: DOCUMENTATION_PG_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret-documentations
|
||||
- name: DOCUMENTATION_PG_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret-documentations
|
||||
- name: DOCUMENTATION_PG_DATABASE
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret-documentations
|
||||
- name: DOCUMENTATION_PG_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret-documentations
|
||||
- name: DOCUMENTATION_PG_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret-documentations
|
||||
- name: CHECKLIST_HOST
|
||||
value: http://checklists-backend-service.checklists.svc.cluster.local:80
|
||||
- name: SMTP_PORT
|
||||
value: "465"
|
||||
- name: SYNC_RESOURCE_ID
|
||||
value: "1"
|
||||
- name: TIMEOUT
|
||||
value: "120"
|
||||
- name: WORKFLOWS_HOST
|
||||
value: http://workflows-api-service.workflow.svc.cluster.local:8000/api/v1
|
||||
- name: WORKFLOWS_TIMEOUT
|
||||
value: "60"
|
||||
- name: DOCUMENTATION_TIMEOUT
|
||||
value: "60"
|
||||
- name: DJANGO_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: token
|
||||
name: django-secret
|
||||
- name: PG_DB
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret
|
||||
- name: PG_LOGIN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret
|
||||
- name: PG_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret
|
||||
- name: PG_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret
|
||||
- name: PG_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret
|
||||
- name: RABBITMQ_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_VHOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: vhost
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: rabbitmq-secret
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/flows/base/backend-service.yaml
Normal file
15
apps/flows/base/backend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: backend-svc
|
||||
namespace: flows
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: backend
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
185
apps/flows/base/celery-deployment.yaml
Normal file
185
apps/flows/base/celery-deployment.yaml
Normal file
@ -0,0 +1,185 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: celery
|
||||
namespace: flows
|
||||
labels:
|
||||
app: celery
|
||||
service: celery
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: celery
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: celery
|
||||
service: celery
|
||||
spec:
|
||||
containers:
|
||||
- name: celery
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/flows-backend_worker:production_2a439111
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- uv
|
||||
args:
|
||||
- run
|
||||
- celery
|
||||
- -A
|
||||
- config
|
||||
- worker
|
||||
- -l
|
||||
- info
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: ADMIN_PANEL_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: admin-secret
|
||||
- name: JWT_PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: public_key
|
||||
name: jwt-secret
|
||||
- name: LOG_LEVEL
|
||||
value: DEBUG
|
||||
- name: BASE_HOST
|
||||
value: https://srx.wb.ru
|
||||
- name: CELERY_QUEUE
|
||||
value: flow
|
||||
- name: EAV_HOST
|
||||
value: http://eav-service.eav.svc.cluster.local:8000
|
||||
- name: DJANGO_HOST
|
||||
value: http://backend.django.svc.cluster.local:8000/api
|
||||
- name: PLANNING_HOST
|
||||
value: http://backend-service.pm.svc.cluster.local:8000/api/pm/msp
|
||||
- name: PLANNING_USE
|
||||
value: "True"
|
||||
- name: DOCUMENTATION_HOST
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080/internal/v1
|
||||
- name: DOCUMENTATION_EXTERNAL_HOST
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080/api/v1
|
||||
- name: ENABLE_ANALYTICS
|
||||
value: "1"
|
||||
- name: ENABLE_CELERY
|
||||
value: "1"
|
||||
- name: ENABLE_MAILGUN
|
||||
value: "0"
|
||||
- name: ENABLE_METRICS
|
||||
value: "0"
|
||||
- name: FROM_EMAIL
|
||||
value: sarex@rwb.ru
|
||||
- name: GATEWAY_URL
|
||||
value: http://pdm-api.documentations.svc.cluster.local:8080
|
||||
- name: RESOURCE_URL
|
||||
value: http://resources-service.resources.svc.cluster.local:8000
|
||||
- name: SERVICE_HOST
|
||||
value: https://srx.wb.ru/flows/api/v1
|
||||
- name: SMTP_HOST
|
||||
value: mail.rwb.ru
|
||||
- name: DOCUMENTATION_PG_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret-documentations
|
||||
- name: DOCUMENTATION_PG_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret-documentations
|
||||
- name: DOCUMENTATION_PG_DATABASE
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret-documentations
|
||||
- name: DOCUMENTATION_PG_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret-documentations
|
||||
- name: DOCUMENTATION_PG_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret-documentations
|
||||
- name: CHECKLIST_HOST
|
||||
value: http://checklists-backend-service.checklists.svc.cluster.local:80
|
||||
- name: SMTP_PORT
|
||||
value: "465"
|
||||
- name: SYNC_RESOURCE_ID
|
||||
value: "1"
|
||||
- name: TIMEOUT
|
||||
value: "120"
|
||||
- name: WORKFLOWS_HOST
|
||||
value: http://workflows-api-service.workflow.svc.cluster.local:8000/api/v1
|
||||
- name: WORKFLOWS_TIMEOUT
|
||||
value: "60"
|
||||
- name: DOCUMENTATION_TIMEOUT
|
||||
value: "60"
|
||||
- name: DJANGO_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: token
|
||||
name: django-secret
|
||||
- name: PG_DB
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret
|
||||
- name: PG_LOGIN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret
|
||||
- name: PG_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret
|
||||
- name: PG_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret
|
||||
- name: PG_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret
|
||||
- name: RABBITMQ_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_VHOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: vhost
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: rabbitmq-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
32
apps/flows/base/frontend-deployment.yaml
Normal file
32
apps/flows/base/frontend-deployment.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: flows
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: frontend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
containers:
|
||||
- name: frontend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/flows-frontend:contour_5b2bd144
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/flows/base/frontend-service.yaml
Normal file
15
apps/flows/base/frontend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: frontend-service
|
||||
namespace: flows
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: frontend
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
protocol: TCP
|
||||
11
apps/flows/base/kustomization.yaml
Normal file
11
apps/flows/base/kustomization.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: flows
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- backend-deployment.yaml
|
||||
- celery-deployment.yaml
|
||||
- frontend-deployment.yaml
|
||||
- backend-service.yaml
|
||||
- frontend-service.yaml
|
||||
7
apps/flows/base/namespace.yaml
Normal file
7
apps/flows/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: flows
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
7
apps/flows/yc-k8s-test/kustomization.yaml
Normal file
7
apps/flows/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
- postgresql.yaml
|
||||
patches: []
|
||||
110
apps/flows/yc-k8s-test/postgresql.yaml
Normal file
110
apps/flows/yc-k8s-test/postgresql.yaml
Normal file
@ -0,0 +1,110 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: postgresql
|
||||
namespace: flows
|
||||
spec:
|
||||
interval: 5m
|
||||
timeout: 2h
|
||||
chart:
|
||||
spec:
|
||||
chart: postgresql-contour
|
||||
version: "17.0.2"
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: yc-oci-charts
|
||||
namespace: flux-system
|
||||
|
||||
install:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
upgrade:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
values:
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
defaultStorageClass: local-path
|
||||
postgresql:
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
image:
|
||||
registry: cr.yandex/crp3ccidau046kdj8g9q
|
||||
repository: contour/postgresql
|
||||
tag: 17.0.2
|
||||
pullPolicy: Always
|
||||
metrics:
|
||||
enabled: false
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
primary:
|
||||
containerSecurityContext:
|
||||
readOnlyRootFilesystem: false
|
||||
persistence:
|
||||
storageClass: local-path
|
||||
size: 20Gi
|
||||
customLivenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customReadinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customStartupProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
nodeSelector:
|
||||
dedicated: db
|
||||
tolerations:
|
||||
- key: dedicated
|
||||
operator: Equal
|
||||
value: db
|
||||
effect: NoSchedule
|
||||
contour:
|
||||
enabled: true
|
||||
adminUser: ""
|
||||
adminPasswordSecretKey: ""
|
||||
sharedPreloadLibraries: "pg_stat_statements"
|
||||
databases:
|
||||
- name: flows_db
|
||||
user: flows
|
||||
extensions: []
|
||||
restoreFromDump: false
|
||||
s3-proxy:
|
||||
endpointUrl: "s3-proxy-service.postgresql.svc.cluster.local"
|
||||
165
apps/issues/base/backend-deployment.yaml
Normal file
165
apps/issues/base/backend-deployment.yaml
Normal file
@ -0,0 +1,165 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: issues
|
||||
labels:
|
||||
app: backend
|
||||
service: backend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: backend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: backend
|
||||
service: backend
|
||||
spec:
|
||||
volumes:
|
||||
- name: production-configmap
|
||||
configMap:
|
||||
name: production-configmap
|
||||
items:
|
||||
- key: production.py
|
||||
path: production.py
|
||||
defaultMode: 420
|
||||
containers:
|
||||
- name: backend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/issues:production_17c438aa
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: ENVIRONMENT
|
||||
value: production
|
||||
- name: AERO_PUBLIC_HOST
|
||||
value: https://srx.wb.ru
|
||||
- name: AERO_HOST
|
||||
value: https://srx.wb.ru
|
||||
- name: BASE_AERO_URL
|
||||
value: https://srx.wb.ru
|
||||
- name: BASE_AUTH_URL
|
||||
value: http://backend.django.svc.cluster.local:8000
|
||||
- name: WORKFLOWS_HOST
|
||||
value: http://workflows-api-service.workflow.svc.cluster.local:8000
|
||||
- name: WORKFLOWS_URL
|
||||
value: http://workflows-api-service.workflow.svc.cluster.local:8000
|
||||
- name: RESOURCES_API_HOST
|
||||
value: http://resources-service.resources.svc.cluster.local:8000
|
||||
- name: EAV_HOST
|
||||
value: http://eav-service.eav.svc.cluster.local:8000
|
||||
- name: SAREX_API
|
||||
value: https://srx.wb.ru
|
||||
- name: DOCUMENTATIONS_URL
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080
|
||||
- name: DJANGO_SETTINGS_MODULE
|
||||
value: config.settings.production
|
||||
- name: API_ADDRESS
|
||||
value: "8000"
|
||||
- name: YC_S3_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: s3-secret
|
||||
- name: YC_S3_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: s3-secret
|
||||
- name: YC_S3_BUCKET_NAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: bucket
|
||||
name: s3-secret
|
||||
- name: YC_S3_ENDPOINT_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: host
|
||||
name: s3-secret
|
||||
- name: DJANGO_BASIC_AUTH
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: django-auth
|
||||
- name: SAREX_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: sarex-auth
|
||||
- name: SAREX_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: sarex-auth
|
||||
- name: DATABASE_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_NAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret
|
||||
- name: RABBITMQ_VHOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: vhost
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_HOSTNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: host
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: rabbitmq-secret
|
||||
- name: JWT_PRIVATE_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: ssh_private.key
|
||||
name: backend-secret
|
||||
- name: JWT_PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: ssh_public.key
|
||||
name: backend-secret
|
||||
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
volumeMounts:
|
||||
- name: production-configmap
|
||||
mountPath: /src/config/settings/production.py
|
||||
subPath: production.py
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/issues/base/backend-service.yaml
Normal file
15
apps/issues/base/backend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: backend-svc
|
||||
namespace: issues
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: backend
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
165
apps/issues/base/celery-deployment.yaml
Normal file
165
apps/issues/base/celery-deployment.yaml
Normal file
@ -0,0 +1,165 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: celery
|
||||
namespace: issues
|
||||
labels:
|
||||
app: celery
|
||||
service: celery
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: celery
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: celery
|
||||
service: celery
|
||||
spec:
|
||||
volumes:
|
||||
- name: production-configmap
|
||||
configMap:
|
||||
name: production-configmap
|
||||
items:
|
||||
- key: production.py
|
||||
path: production.py
|
||||
defaultMode: 420
|
||||
containers:
|
||||
- name: celery
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/issues:production_17c438aa
|
||||
imagePullPolicy: IfNotPresent
|
||||
command: ["celery", "-A", "config", "worker", "-l", "info", "-E"]
|
||||
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: ENVIRONMENT
|
||||
value: production
|
||||
- name: AERO_PUBLIC_HOST
|
||||
value: https://srx.wb.ru
|
||||
- name: AERO_HOST
|
||||
value: https://srx.wb.ru
|
||||
- name: BASE_AERO_URL
|
||||
value: https://srx.wb.ru
|
||||
- name: BASE_AUTH_URL
|
||||
value: http://backend.django.svc.cluster.local:8000
|
||||
- name: WORKFLOWS_HOST
|
||||
value: http://workflows-api-service.workflow.svc.cluster.local:8000
|
||||
- name: WORKFLOWS_URL
|
||||
value: http://workflows-api-service.workflow.svc.cluster.local:8000
|
||||
- name: RESOURCES_API_HOST
|
||||
value: http://resources-service.resources.svc.cluster.local:8000
|
||||
- name: EAV_HOST
|
||||
value: http://eav-service.eav.svc.cluster.local:8000
|
||||
- name: SAREX_API
|
||||
value: https://srx.wb.ru
|
||||
- name: DOCUMENTATIONS_URL
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080
|
||||
- name: DJANGO_SETTINGS_MODULE
|
||||
value: config.settings.production
|
||||
- name: API_ADDRESS
|
||||
value: "8000"
|
||||
- name: YC_S3_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: s3-secret
|
||||
- name: YC_S3_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: s3-secret
|
||||
- name: YC_S3_BUCKET_NAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: bucket
|
||||
name: s3-secret
|
||||
- name: YC_S3_ENDPOINT_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: host
|
||||
name: s3-secret
|
||||
- name: DJANGO_BASIC_AUTH
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: django-auth
|
||||
- name: SAREX_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: sarex-auth
|
||||
- name: SAREX_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: sarex-auth
|
||||
- name: DATABASE_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_NAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret
|
||||
- name: RABBITMQ_VHOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: vhost
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_HOSTNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: host
|
||||
name: rabbitmq-secret
|
||||
- name: RABBITMQ_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: rabbitmq-secret
|
||||
- name: JWT_PRIVATE_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: ssh_private.key
|
||||
name: backend-secret
|
||||
- name: JWT_PUBLIC_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: ssh_public.key
|
||||
name: backend-secret
|
||||
resources:
|
||||
requests:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
volumeMounts:
|
||||
- name: production-configmap
|
||||
mountPath: /src/config/settings/production.py
|
||||
subPath: production.py
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
32
apps/issues/base/frontend-deployment.yaml
Normal file
32
apps/issues/base/frontend-deployment.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: issues
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: frontend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
containers:
|
||||
- name: frontend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/contour_issues-frontend:716a2b73
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/issues/base/frontend-service.yaml
Normal file
15
apps/issues/base/frontend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: frontend-service
|
||||
namespace: issues
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: frontend
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
protocol: TCP
|
||||
12
apps/issues/base/kustomization.yaml
Normal file
12
apps/issues/base/kustomization.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: issues
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- backend-deployment.yaml
|
||||
- celery-deployment.yaml
|
||||
- frontend-deployment.yaml
|
||||
- backend-service.yaml
|
||||
- frontend-service.yaml
|
||||
- production-configmap.yaml
|
||||
7
apps/issues/base/namespace.yaml
Normal file
7
apps/issues/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: issues
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
140
apps/issues/base/production-configmap.yaml
Normal file
140
apps/issues/base/production-configmap.yaml
Normal file
@ -0,0 +1,140 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: production-configmap
|
||||
namespace: issues
|
||||
data:
|
||||
production.py: |
|
||||
from datetime import timedelta
|
||||
import os
|
||||
from .base import *
|
||||
|
||||
# DEBUG SETTINGS START
|
||||
# -----------------------------------------------------------------------------
|
||||
DEBUG = True
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
TEST_MODE = False
|
||||
|
||||
# SECRETS SETTINGS START
|
||||
# -----------------------------------------------------------------------------
|
||||
SECRET_KEY = "FromToMuchLoveOfLiving" # Delete after Test
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
DJANGO_TOKEN="aGFnZW4wMTM6emVhbG90MDk2"
|
||||
|
||||
# ALLOWED HOSTS START
|
||||
# -----------------------------------------------------------------------------
|
||||
ALLOWED_HOSTS = ["*"]
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# APPS SETTINGS START
|
||||
# -----------------------------------------------------------------------------
|
||||
# INSTALLED_APPS += [
|
||||
# "django_extensions",
|
||||
# ]
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# DEBUG SETTINGS START
|
||||
# -----------------------------------------------------------------------------
|
||||
DEBUG = False
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
REVIEW_HOST='http://backend-service.flows.svc.cluster.local:8000'
|
||||
# -----------------------------------------------------------------------------
|
||||
# EXTERNAL SERVICES END
|
||||
|
||||
WORKFLOWS_HOST = "http://workflows-api-service.workflow.svc.cluster.local:8000"
|
||||
WORKFLOWS_URL = "http://workflows-api-service.workflow.svc.cluster.local:8000"
|
||||
DOCUMENTATIONS_URL = "http://documentations-api.documentations.svc.cluster.local:8080"
|
||||
RESOURCES_API_HOST = os.getenv("RESOURCES_API_HOST", default="http://resources-service.resources.svc.cluster:8000")
|
||||
KAFKA_HOST = "wb-stage-kafka-bootstrap.kafka.svc.cluster.local:9093"
|
||||
KAFKA_USERNAME = "sarex"
|
||||
KAFKA_PASSWORD = "nK36sasvSfoItJnXQ4qxav2OUWIPX5ZC"
|
||||
KAFKA_SSL_CAFILE = os.getenv("KAFKA_SSL_CAFILE", "/usr/local/share/ca-certificates/kafka.crt")
|
||||
KAFKA_EAV_ASSETS_TOPIC = os.getenv("KAFKA_EAV_ASSETS_TOPIC", "sarex")
|
||||
KAFKA_ISSUES_TOPIC = os.getenv("KAFKA_ISSUES_TOPIC", "sarex-issues")
|
||||
|
||||
|
||||
USE_ASYNC_FUNCTIONS = True
|
||||
USE_NOTIFICATIONS = True
|
||||
|
||||
# JWT SETTINGS START
|
||||
# ---------------------------------------------------------------------------------------------------------------------
|
||||
SIMPLE_JWT_ISSUER = os.getenv("SIMPLE_JWT_ISSUER", default="default_issuer")
|
||||
|
||||
SIMPLE_JWT = {
|
||||
"ACCESS_TOKEN_LIFETIME": timedelta(minutes=5),
|
||||
"REFRESH_TOKEN_LIFETIME": timedelta(days=1),
|
||||
"ROTATE_REFRESH_TOKENS": False,
|
||||
"UPDATE_LAST_LOGIN": False,
|
||||
|
||||
"ALGORITHM": "RS512",
|
||||
"SIGNING_KEY": os.getenv("JWT_PRIVATE_KEY", default="").replace("\\n", "\n"),
|
||||
"VERIFYING_KEY": os.getenv("JWT_PUBLIC_KEY").replace("\\n", "\n"),
|
||||
"AUDIENCE": None,
|
||||
"ISSUER": SIMPLE_JWT_ISSUER,
|
||||
|
||||
"AUTH_HEADER_TYPES": ("Bearer",),
|
||||
"AUTH_HEADER_NAME": "HTTP_AUTHORIZATION",
|
||||
"USER_ID_FIELD": "id",
|
||||
"USER_ID_CLAIM": "user_id",
|
||||
|
||||
"AUTH_TOKEN_CLASSES": ("rest_framework_simplejwt.tokens.AccessToken",),
|
||||
"TOKEN_TYPE_CLAIM": "token_type",
|
||||
|
||||
"JTI_CLAIM": "jti",
|
||||
|
||||
"SLIDING_TOKEN_REFRESH_EXP_CLAIM": "refresh_exp",
|
||||
"SLIDING_TOKEN_LIFETIME": timedelta(minutes=5),
|
||||
"SLIDING_TOKEN_REFRESH_LIFETIME": timedelta(days=1),
|
||||
}
|
||||
# ---------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
CORS_ALLOWED_ORIGINS = [
|
||||
"https://lk.srx.wb.ru:30443",
|
||||
]
|
||||
|
||||
CORS_TRUSTED_ORIGINS = [
|
||||
"https://lk.srx.wb.ru:30443",
|
||||
]
|
||||
|
||||
CSRF_TRUSTED_ORIGINS = [
|
||||
"https://lk.srx.wb.ru:30443",
|
||||
]
|
||||
|
||||
CORS_ALLOW_ALL_ORIGINS = True
|
||||
ENABLE_MAILGUN=False
|
||||
SMTP_PORT=465
|
||||
SMTP_HOST="mail.rwb.ru"
|
||||
EMAIL_FROM="sarex@rwb.ru"
|
||||
|
||||
CORS_ALLOW_METHODS = [
|
||||
"DELETE",
|
||||
"GET",
|
||||
"OPTIONS",
|
||||
"PATCH",
|
||||
"POST",
|
||||
"PUT",
|
||||
]
|
||||
|
||||
SAREX_API = "https://srx.wb.ru"
|
||||
|
||||
AERO_PUBLIC_HOST = os.getenv("AERO_PUBLIC_HOST", default=SAREX_API)
|
||||
|
||||
BASE_AERO_URL = "http://backend.django.svc.cluster.local:8000"
|
||||
|
||||
ENVIRONMENT = "production"
|
||||
|
||||
SESSION_COOKIE_NAME = "issues-sessionid"
|
||||
CSRF_COOKIE_NAME = "issues-csrftoken"
|
||||
STATIC_URL = "/static/"
|
||||
STORAGES = {
|
||||
'default': {
|
||||
'BACKEND': "storages.backends.s3boto3.S3Boto3Storage",
|
||||
},
|
||||
'staticfiles': {
|
||||
# Leave whatever setting you already have here, e.g.:
|
||||
'BACKEND': "storages.backends.s3boto3.S3Boto3Storage",
|
||||
}
|
||||
}
|
||||
7
apps/issues/yc-k8s-test/kustomization.yaml
Normal file
7
apps/issues/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
- postgresql.yaml
|
||||
patches: []
|
||||
110
apps/issues/yc-k8s-test/postgresql.yaml
Normal file
110
apps/issues/yc-k8s-test/postgresql.yaml
Normal file
@ -0,0 +1,110 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: postgresql
|
||||
namespace: issues
|
||||
spec:
|
||||
interval: 5m
|
||||
timeout: 2h
|
||||
chart:
|
||||
spec:
|
||||
chart: postgresql-contour
|
||||
version: "17.0.2"
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: yc-oci-charts
|
||||
namespace: flux-system
|
||||
|
||||
install:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
upgrade:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
values:
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
defaultStorageClass: local-path
|
||||
postgresql:
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
image:
|
||||
registry: cr.yandex/crp3ccidau046kdj8g9q
|
||||
repository: contour/postgresql
|
||||
tag: 17.0.2
|
||||
pullPolicy: Always
|
||||
metrics:
|
||||
enabled: false
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
primary:
|
||||
containerSecurityContext:
|
||||
readOnlyRootFilesystem: false
|
||||
persistence:
|
||||
storageClass: local-path
|
||||
size: 20Gi
|
||||
customLivenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customReadinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customStartupProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
nodeSelector:
|
||||
dedicated: db
|
||||
tolerations:
|
||||
- key: dedicated
|
||||
operator: Equal
|
||||
value: db
|
||||
effect: NoSchedule
|
||||
contour:
|
||||
enabled: true
|
||||
adminUser: ""
|
||||
adminPasswordSecretKey: ""
|
||||
sharedPreloadLibraries: "pg_stat_statements"
|
||||
databases:
|
||||
- name: issues_db
|
||||
user: issues
|
||||
extensions: []
|
||||
restoreFromDump: false
|
||||
s3-proxy:
|
||||
endpointUrl: "s3-proxy-service.postgresql.svc.cluster.local"
|
||||
116
apps/resources/base/backend-deployment.yaml
Normal file
116
apps/resources/base/backend-deployment.yaml
Normal file
@ -0,0 +1,116 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: resources
|
||||
labels:
|
||||
app: backend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: backend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: backend
|
||||
spec:
|
||||
volumes:
|
||||
- name: django-configmap
|
||||
configMap:
|
||||
name: django-configmap
|
||||
items:
|
||||
- key: production.py
|
||||
path: production.py
|
||||
defaultMode: 420
|
||||
|
||||
containers:
|
||||
- name: backend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/sarex-resources:prod_d642ef88
|
||||
imagePullPolicy: IfNotPresent
|
||||
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
|
||||
env:
|
||||
- name: DJANGO_SETTINGS_MODULE
|
||||
value: config.settings.production
|
||||
- name: API_ADDRESS
|
||||
value: "8000"
|
||||
- name: DATABASE_NAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_HOST
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret
|
||||
- name: DATABASE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret
|
||||
- name: YC_S3_ACCESS_KEY_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: s3-secret
|
||||
- name: YC_S3_ENDPOINT_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: host
|
||||
name: s3-secret
|
||||
- name: YC_S3_SECRET_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: s3-secret
|
||||
- name: YC_S3_BUCKET_NAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: bucket
|
||||
name: s3-secret
|
||||
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
|
||||
volumeMounts:
|
||||
- name: django-configmap
|
||||
mountPath: /server/config/settings/production.py
|
||||
subPath: production.py
|
||||
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /ping
|
||||
port: 8000
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 60
|
||||
failureThreshold: 10
|
||||
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /ping
|
||||
port: 8000
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
failureThreshold: 20
|
||||
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/resources/base/backend-service.yaml
Normal file
15
apps/resources/base/backend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: backend-service
|
||||
namespace: resources
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: backend
|
||||
ports:
|
||||
- name: http
|
||||
port: 8000
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
93
apps/resources/base/django-configmap.yaml
Normal file
93
apps/resources/base/django-configmap.yaml
Normal file
@ -0,0 +1,93 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: django-configmap
|
||||
namespace: resources
|
||||
data:
|
||||
production.py: |
|
||||
import os
|
||||
from .base import *
|
||||
|
||||
# DEBUG SETTINGS
|
||||
# -----------------------------------------------------------------------------
|
||||
DEBUG = False
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# ALLOWED HOSTS
|
||||
# -----------------------------------------------------------------------------
|
||||
ALLOWED_HOSTS = ['*']
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# SERVICE ACCOUNTS HOST
|
||||
# -----------------------------------------------------------------------------
|
||||
SERVICE_ACCOUNTS_HOST = os.getenv(
|
||||
"SERVICE_ACCOUNTS_HOST",
|
||||
default="http://backend.django.svc.cluster.local:8000/api/core"
|
||||
)
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# DATABASE CONFIGURATION
|
||||
# -----------------------------------------------------------------------------
|
||||
POSTGRES_DATABASE = os.getenv("DATABASE_NAME")
|
||||
POSTGRES_USER = os.getenv("DATABASE_USER")
|
||||
POSTGRES_PASSWORD = os.getenv("DATABASE_PASSWORD")
|
||||
POSTGRES_HOST = os.getenv("DATABASE_HOST")
|
||||
POSTGRES_PORT = os.getenv("DATABASE_PORT")
|
||||
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.contrib.gis.db.backends.postgis",
|
||||
"NAME": POSTGRES_DATABASE,
|
||||
"USER": POSTGRES_USER,
|
||||
"PASSWORD": POSTGRES_PASSWORD,
|
||||
"HOST": POSTGRES_HOST,
|
||||
"PORT": POSTGRES_PORT,
|
||||
}
|
||||
}
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# CORS SETTINGS
|
||||
SAREX_ADMIN_USERNAME = "hagen013"
|
||||
SAREX_ADMIN_PASSWORD = "zealot096"
|
||||
SAREX_BASE_HOST = "http://backend.django.svc.cluster.local:8000"
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
CORS_ALLOWED_ORIGINS = [
|
||||
"https://localhost:8000",
|
||||
"https://localhost:8080",
|
||||
"https://wb.sarex.ru",
|
||||
"https://wb.sarex.ru.lonsdaleites.ru",
|
||||
"https://srx.wb.ru",
|
||||
]
|
||||
|
||||
CSRF_TRUSTED_ORIGINS = [
|
||||
'https://localhost:8000',
|
||||
'https://localhost:8080',
|
||||
'https://wb.sarex.ru',
|
||||
"https://wb.sarex.ru",
|
||||
]
|
||||
|
||||
CORS_ALLOW_ALL_ORIGINS = True
|
||||
|
||||
CORS_ALLOW_METHODS = [
|
||||
"DELETE",
|
||||
"GET",
|
||||
"OPTIONS",
|
||||
"PATCH",
|
||||
"POST",
|
||||
"PUT",
|
||||
]
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# STATIC FILES
|
||||
# -----------------------------------------------------------------------------
|
||||
STATIC_ROOT = "/static/"
|
||||
STATIC_URL = "/static/"
|
||||
STATICFILES_STORAGE = "django.contrib.staticfiles.storage.StaticFilesStorage"
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# COOKIE SETTINGS
|
||||
# -----------------------------------------------------------------------------
|
||||
SESSION_COOKIE_NAME = "resource-sessionid"
|
||||
CSRF_COOKIE_NAME = "resource-csrftoken"
|
||||
# -----------------------------------------------------------------------------
|
||||
9
apps/resources/base/kustomization.yaml
Normal file
9
apps/resources/base/kustomization.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: resources
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- backend-deployment.yaml
|
||||
- backend-service.yaml
|
||||
- django-configmap.yaml
|
||||
7
apps/resources/base/namespace.yaml
Normal file
7
apps/resources/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: resources
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
11
apps/resources/yc-k8s-test/kustomization.yaml
Normal file
11
apps/resources/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
- postgresql.yaml
|
||||
patches:
|
||||
- path: replicas.yaml
|
||||
target:
|
||||
kind: Deployment
|
||||
name: comparisons
|
||||
113
apps/resources/yc-k8s-test/postgresql.yaml
Normal file
113
apps/resources/yc-k8s-test/postgresql.yaml
Normal file
@ -0,0 +1,113 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: postgresql
|
||||
namespace: resources
|
||||
spec:
|
||||
interval: 5m
|
||||
timeout: 2h
|
||||
chart:
|
||||
spec:
|
||||
chart: postgresql-contour
|
||||
version: "17.0.2"
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: yc-oci-charts
|
||||
namespace: flux-system
|
||||
|
||||
install:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
upgrade:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
values:
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
defaultStorageClass: local-path
|
||||
postgresql:
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
image:
|
||||
registry: cr.yandex/crp3ccidau046kdj8g9q
|
||||
repository: contour/postgresql
|
||||
tag: 17.0.2
|
||||
pullPolicy: Always
|
||||
metrics:
|
||||
enabled: false
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
primary:
|
||||
containerSecurityContext:
|
||||
readOnlyRootFilesystem: false
|
||||
persistence:
|
||||
storageClass: local-path
|
||||
size: 20Gi
|
||||
customLivenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customReadinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customStartupProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
resources:
|
||||
requests:
|
||||
memory: 512Mi
|
||||
nodeSelector:
|
||||
dedicated: db
|
||||
tolerations:
|
||||
- key: dedicated
|
||||
operator: Equal
|
||||
value: db
|
||||
effect: NoSchedule
|
||||
contour:
|
||||
enabled: true
|
||||
adminUser: ""
|
||||
adminPasswordSecretKey: ""
|
||||
sharedPreloadLibraries: "pg_stat_statements,uuid-ossp,ltree,postgis"
|
||||
databases:
|
||||
- name: resources_db
|
||||
user: resources
|
||||
extensions: []
|
||||
restoreFromDump: false
|
||||
s3-proxy:
|
||||
endpointUrl: "s3-proxy-service.postgresql.svc.cluster.local"
|
||||
8
apps/resources/yc-k8s-test/replicas.yaml
Normal file
8
apps/resources/yc-k8s-test/replicas.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: resources
|
||||
spec:
|
||||
replicas: 1
|
||||
33
apps/stamp-verification/base/deployment.yaml
Normal file
33
apps/stamp-verification/base/deployment.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: stamp-verification
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: frontend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: frontend
|
||||
version: stable
|
||||
spec:
|
||||
containers:
|
||||
- name: frontend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/stamp-verification-frontend:e11a8f90be462fc325ff99c8c35a8a418815c27b
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
8
apps/stamp-verification/base/kustomization.yaml
Normal file
8
apps/stamp-verification/base/kustomization.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: stamp-verification
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
7
apps/stamp-verification/base/namespace.yaml
Normal file
7
apps/stamp-verification/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: stamp-verification
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
15
apps/stamp-verification/base/service.yaml
Normal file
15
apps/stamp-verification/base/service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: frontend-service
|
||||
namespace: stamp-verification
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: frontend
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
protocol: TCP
|
||||
10
apps/stamp-verification/yc-k8s-test/kustomization.yaml
Normal file
10
apps/stamp-verification/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
patches: []
|
||||
# - path: replicas.yaml
|
||||
# target:
|
||||
# kind: Deployment
|
||||
# name: frontend
|
||||
8
apps/stamp-verification/yc-k8s-test/replicas.yaml
Normal file
8
apps/stamp-verification/yc-k8s-test/replicas.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: stamp-verification
|
||||
spec:
|
||||
replicas: 1
|
||||
104
apps/workspaces/base/backend-deployment.yaml
Normal file
104
apps/workspaces/base/backend-deployment.yaml
Normal file
@ -0,0 +1,104 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: workspaces-api
|
||||
namespace: workspaces
|
||||
labels:
|
||||
app: workspaces-api
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: workspaces-api
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: workspaces-api
|
||||
spec:
|
||||
containers:
|
||||
- name: workspaces-api
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/workspaces:prod_4961b1f1
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: POSTGRES_POOL_SIZE
|
||||
value: "3"
|
||||
- name: BUNDLES_RETRY_COUNT
|
||||
value: "5"
|
||||
- name: BUNDLES_NJOBS
|
||||
value: "5"
|
||||
- name: API_ADDRESS
|
||||
value: 0.0.0.0:8000
|
||||
- name: NAMESPACE
|
||||
value: workspaces
|
||||
- name: ENABLE_SQL_QUERY
|
||||
value: "0"
|
||||
- name: ENABLE_SSL
|
||||
value: "0"
|
||||
- name: DOCUMENTATION_HOST
|
||||
value: http://documentations-api.documentations.svc.cluster.local:8080
|
||||
- name: DOCUMENTATION_LOGGER_FEATURE
|
||||
value: "0"
|
||||
- name: DOCUMENTATION_ORIGINATOR
|
||||
value: prod_ws
|
||||
- name: ENVIRONMENT
|
||||
value: prod
|
||||
- name: DJANGO_HOST
|
||||
value: http://backend.django.svc.cluster.local:8000
|
||||
- name: DJANGO_ORIGINATOR
|
||||
value: docs_prod
|
||||
- name: POSTGRES_DB
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: database
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_PORT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: port
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_ADDRESS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: hostname
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: username
|
||||
name: postgresql-secret
|
||||
- name: POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: password
|
||||
name: postgresql-secret
|
||||
- name: DJANGO_BASIC_AUTH
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: key
|
||||
name: django-auth
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /ping
|
||||
port: 8000
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 60
|
||||
failureThreshold: 10
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /ping
|
||||
port: 8000
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
failureThreshold: 20
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/workspaces/base/backend-service.yaml
Normal file
15
apps/workspaces/base/backend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: backend-service
|
||||
namespace: workspaces
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: backend
|
||||
ports:
|
||||
- name: http
|
||||
port: 8000
|
||||
targetPort: 8000
|
||||
protocol: TCP
|
||||
46
apps/workspaces/base/frontend-deployment.yaml
Normal file
46
apps/workspaces/base/frontend-deployment.yaml
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: frontend
|
||||
namespace: workspaces
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: frontend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: frontend
|
||||
spec:
|
||||
containers:
|
||||
- name: frontend
|
||||
image: cr.yandex/crp3ccidau046kdj8g9q/workspaces-v2-frontend:contour_7f95769f
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 100Mi
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /ping
|
||||
port: 80
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
failureThreshold: 10
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /ping
|
||||
port: 80
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
failureThreshold: 20
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
15
apps/workspaces/base/frontend-service.yaml
Normal file
15
apps/workspaces/base/frontend-service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: frontend-service
|
||||
namespace: workspaces
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: frontend
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
protocol: TCP
|
||||
10
apps/workspaces/base/kustomization.yaml
Normal file
10
apps/workspaces/base/kustomization.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: workspaces
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- backend-deployment.yaml
|
||||
- backend-service.yaml
|
||||
- frontend-deployment.yaml
|
||||
- frontend-service.yaml
|
||||
7
apps/workspaces/base/namespace.yaml
Normal file
7
apps/workspaces/base/namespace.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: workspaces
|
||||
labels:
|
||||
istio-injection: enabled
|
||||
11
apps/workspaces/yc-k8s-test/kustomization.yaml
Normal file
11
apps/workspaces/yc-k8s-test/kustomization.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
- postgresql.yaml
|
||||
patches:
|
||||
- path: replicas.yaml
|
||||
target:
|
||||
kind: Deployment
|
||||
name: comparisons
|
||||
113
apps/workspaces/yc-k8s-test/postgresql.yaml
Normal file
113
apps/workspaces/yc-k8s-test/postgresql.yaml
Normal file
@ -0,0 +1,113 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: postgresql
|
||||
namespace: workspaces
|
||||
spec:
|
||||
interval: 5m
|
||||
timeout: 2h
|
||||
chart:
|
||||
spec:
|
||||
chart: postgresql-contour
|
||||
version: "17.0.2"
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: yc-oci-charts
|
||||
namespace: flux-system
|
||||
|
||||
install:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
upgrade:
|
||||
timeout: 2h
|
||||
remediation:
|
||||
retries: 3
|
||||
|
||||
values:
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
defaultStorageClass: local-path
|
||||
postgresql:
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
auth:
|
||||
username: ""
|
||||
database: ""
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
image:
|
||||
registry: cr.yandex/crp3ccidau046kdj8g9q
|
||||
repository: contour/postgresql
|
||||
tag: 17.0.2
|
||||
pullPolicy: Always
|
||||
metrics:
|
||||
enabled: false
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
primary:
|
||||
containerSecurityContext:
|
||||
readOnlyRootFilesystem: false
|
||||
persistence:
|
||||
storageClass: local-path
|
||||
size: 20Gi
|
||||
customLivenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customReadinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
customStartupProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- exec pg_isready -U "sarex" -d postgres -h 127.0.0.1 -p 5432
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
successThreshold: 1
|
||||
failureThreshold: 6
|
||||
resources:
|
||||
requests:
|
||||
memory: 512Mi
|
||||
nodeSelector:
|
||||
dedicated: db
|
||||
tolerations:
|
||||
- key: dedicated
|
||||
operator: Equal
|
||||
value: db
|
||||
effect: NoSchedule
|
||||
contour:
|
||||
enabled: true
|
||||
adminUser: ""
|
||||
adminPasswordSecretKey: ""
|
||||
sharedPreloadLibraries: "pg_stat_statements,uuid-ossp"
|
||||
databases:
|
||||
- name: workspaces_db
|
||||
user: workspaces
|
||||
extensions: []
|
||||
restoreFromDump: false
|
||||
s3-proxy:
|
||||
endpointUrl: "s3-proxy-service.postgresql.svc.cluster.local"
|
||||
8
apps/workspaces/yc-k8s-test/replicas.yaml
Normal file
8
apps/workspaces/yc-k8s-test/replicas.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend
|
||||
namespace: workspaces
|
||||
spec:
|
||||
replicas: 1
|
||||
@ -24,3 +24,12 @@ resources:
|
||||
- ../../apps/remarks/yc-k8s-test
|
||||
- ../../apps/notes/yc-k8s-test
|
||||
- ../../apps/pm/yc-k8s-test
|
||||
- ../../apps/faas/yc-k8s-test
|
||||
- ../../apps/stamp-verification/yc-k8s-test
|
||||
- ../../apps/eav/yc-k8s-test
|
||||
- ../../apps/resources/yc-k8s-test
|
||||
- ../../apps/workspaces/yc-k8s-test
|
||||
- ../../apps/cde/yc-k8s-test
|
||||
- ../../apps/flows/yc-k8s-test
|
||||
- ../../apps/issues/yc-k8s-test
|
||||
- ../../apps/documentations/yc-k8s-test
|
||||
Loading…
Reference in New Issue
Block a user