2 Commits

Author SHA1 Message Date
Valery Petrov 31a0ae75d5 issues/27: docs.test.sova.local ingress on test contour 2026-06-04 13:19:02 +03:00
Valery Petrov e8c1a194a9 issues/27: autotesting hooks documentation 2026-06-04 12:52:28 +03:00
23 changed files with 45 additions and 194 deletions
-11
View File
@@ -77,19 +77,8 @@ kind: Ingress
metadata:
name: adminpanel
namespace: {{ .Values.namespace }}
{{- if .Values.ingress.tls.enabled }}
annotations:
cert-manager.io/cluster-issuer: {{ .Values.ingress.tls.clusterIssuer | quote }}
nginx.ingress.kubernetes.io/ssl-redirect: "true"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress.className }}
{{- if .Values.ingress.tls.enabled }}
tls:
- hosts:
- {{ .Values.ingress.host }}
secretName: {{ .Values.ingress.tls.secretName }}
{{- end }}
rules:
- host: {{ .Values.ingress.host }}
http:
+3 -7
View File
@@ -1,13 +1,9 @@
ingress:
host: adm.dev.sovamed.ru
tls:
enabled: true
clusterIssuer: letsencrypt-prod
secretName: adminpanel-tls
host: admin.test.sova.local
runtimeEnv:
API_BASE_URL: https://api.dev.sovamed.ru
API_BASE_URL: http://api.test.sova.local
image:
tag: adminpanel-v1.0.12-test
tag: adminpanel-v1.0.4-test
pullPolicy: IfNotPresent
repository: git.sova.local/sova/adminpanel
imagePullSecrets:
-11
View File
@@ -193,19 +193,8 @@ kind: Ingress
metadata:
name: backend
namespace: {{ .Values.namespace }}
{{- if .Values.ingress.tls.enabled }}
annotations:
cert-manager.io/cluster-issuer: {{ .Values.ingress.tls.clusterIssuer | quote }}
nginx.ingress.kubernetes.io/ssl-redirect: "true"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress.className }}
{{- if .Values.ingress.tls.enabled }}
tls:
- hosts:
- {{ .Values.ingress.host }}
secretName: {{ .Values.ingress.tls.secretName }}
{{- end }}
rules:
- host: {{ .Values.ingress.host }}
http:
+4 -8
View File
@@ -1,15 +1,11 @@
ingress:
host: api.dev.sovamed.ru
tls:
enabled: true
clusterIssuer: letsencrypt-prod
secretName: backend-tls
host: api.test.sova.local
image:
tag: backend-v1.0.12-test
tag: backend-v1.0.4-test
pullPolicy: IfNotPresent
repository: git.sova.local/sova/backend
imagePullSecrets:
- name: gitea-registry
env:
API_PUBLIC_URL: https://api.dev.sovamed.ru
API_BASE_URL: https://api.dev.sovamed.ru
API_PUBLIC_URL: http://api.test.sova.local
API_BASE_URL: http://api.test.sova.local
+6 -6
View File
@@ -50,13 +50,13 @@ env:
CORS_ALLOW_ORIGIN: "['http://admin.test.sova.local','https://admin.test.sova.local']"
secrets:
APP_SECRET: In-brrZjIpzgCNAMq_CqBv-1VxOiS7h_1gDAUd7OkpI
DATABASE_URL: postgresql://sova_test:c%%25EDQxAr91khfvhle3CV4Mxg@postgresql-test.sova-data-test.svc.cluster.local:5432/sova_backend_test?serverVersion=16&charset=utf8
DATABASE_CABINET_URL: postgresql://sova_test:c%%25EDQxAr91khfvhle3CV4Mxg@postgresql-test.sova-data-test.svc.cluster.local:5432/sova_cabinet_test?serverVersion=16&charset=utf8
DATABASE_BITRIX_URL: mysql://bitrix_test:xEpMvDAaCb%%21U1U%%2AwBOg8GAk%%2B@mysql-bitrix-test.sova-data-test.svc.cluster.local:3306/sova_bitrix_test?serverVersion=8.0
REDIS_URL: redis://:u96%%3Dbi6a%%21weD6xW3n%%23GGZQTZ@redis-test-master.sova-data-test.svc.cluster.local:6379/0
APP_SECRET: change-me-test-secret
DATABASE_URL: postgresql://sova_test:sova_test_pass@postgresql-test.sova-data-test.svc.cluster.local:5432/sova_backend_test?serverVersion=16&charset=utf8
DATABASE_CABINET_URL: postgresql://sova_test:sova_test_pass@postgresql-test.sova-data-test.svc.cluster.local:5432/sova_cabinet_test?serverVersion=16&charset=utf8
DATABASE_BITRIX_URL: mysql://bitrix_test:bitrix_test_pass@mysql-bitrix-test.sova-data-test.svc.cluster.local:3306/sova_bitrix_test?serverVersion=8.0
REDIS_URL: redis://:redis_test_pass@redis-test-master.sova-data-test.svc.cluster.local:6379/0
JWT_PASSPHRASE: ""
AES_SECRET_KEY: o*HTus#3tw^%#sT*z_ZvY#!Uf46AFXRg
AES_SECRET_KEY: test-aes-secret-key-32bytes-min!!
MAILER_ACCESS_TOKEN: test-mailer-token
SMSRU_URL: http://noop.invalid
SMSRU_TOKEN: noop
-11
View File
@@ -177,19 +177,8 @@ kind: Ingress
metadata:
name: cabinet
namespace: {{ .Values.namespace }}
{{- if .Values.ingress.tls.enabled }}
annotations:
cert-manager.io/cluster-issuer: {{ .Values.ingress.tls.clusterIssuer | quote }}
nginx.ingress.kubernetes.io/ssl-redirect: "true"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress.className }}
{{- if .Values.ingress.tls.enabled }}
tls:
- hosts:
- {{ .Values.ingress.host }}
secretName: {{ .Values.ingress.tls.secretName }}
{{- end }}
rules:
- host: {{ .Values.ingress.host }}
http:
+2 -6
View File
@@ -1,11 +1,7 @@
ingress:
host: cabinet.dev.sovamed.ru
tls:
enabled: true
clusterIssuer: letsencrypt-prod
secretName: cabinet-tls
host: cabinet.test.sova.local
image:
tag: cabinet-v1.0.12-test
tag: cabinet-v1.0.3-test
pullPolicy: IfNotPresent
repository: git.sova.local/sova/cabinet
imagePullSecrets:
+4 -4
View File
@@ -44,10 +44,10 @@ env:
CORS_ALLOW_ORIGIN: "^https?://(cabinet\\.test\\.sova\\.local|localhost)(:[0-9]+)?$"
secrets:
APP_SECRET: sUkQq2K4-57_woq1NgLTuApbRZNGayc41QY3j5CI1Y4
DATABASE_URL: postgresql://sova_test:c%%25EDQxAr91khfvhle3CV4Mxg@postgresql-test.sova-data-test.svc.cluster.local:5432/sova_cabinet_test?serverVersion=16&charset=utf8
DATABASE_BITRIX_URL: mysql://bitrix_test:xEpMvDAaCb%%21U1U%%2AwBOg8GAk%%2B@mysql-bitrix-test.sova-data-test.svc.cluster.local:3306/sova_bitrix_test?serverVersion=8.0
REDIS_URL: redis://:u96%%3Dbi6a%%21weD6xW3n%%23GGZQTZ@redis-test-master.sova-data-test.svc.cluster.local:6379/1
APP_SECRET: change-me-cabinet-test-secret
DATABASE_URL: postgresql://sova_test:sova_test_pass@postgresql-test.sova-data-test.svc.cluster.local:5432/sova_cabinet_test?serverVersion=16&charset=utf8
DATABASE_BITRIX_URL: mysql://bitrix_test:bitrix_test_pass@mysql-bitrix-test.sova-data-test.svc.cluster.local:3306/sova_bitrix_test?serverVersion=8.0
REDIS_URL: redis://:redis_test_pass@redis-test-master.sova-data-test.svc.cluster.local:6379/1
MAILER_DSN: smtp://mailpit.sova-mocks.svc.cluster.local:1025
SMSRU_KEY_API: noop
SMSRU_FROM_SOVAMED: noop
-11
View File
@@ -47,19 +47,8 @@ kind: Ingress
metadata:
name: docs
namespace: {{ .Values.namespace }}
{{- if .Values.ingress.tls.enabled }}
annotations:
cert-manager.io/cluster-issuer: {{ .Values.ingress.tls.clusterIssuer | quote }}
nginx.ingress.kubernetes.io/ssl-redirect: "true"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress.className }}
{{- if .Values.ingress.tls.enabled }}
tls:
- hosts:
- {{ .Values.ingress.host }}
secretName: {{ .Values.ingress.tls.secretName }}
{{- end }}
rules:
- host: {{ .Values.ingress.host }}
http:
+2 -6
View File
@@ -1,11 +1,7 @@
ingress:
host: docs.dev.sovamed.ru
tls:
enabled: true
clusterIssuer: letsencrypt-prod
secretName: docs-tls
host: docs.test.sova.local
image:
tag: docs-v1.0.12-test
tag: docs-v1.0.8-test
pullPolicy: IfNotPresent
repository: git.sova.local/sova/docs
imagePullSecrets:
+1 -1
View File
@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/sova/sova-deploy.git
targetRevision: prod
targetRevision: main
path: argocd/apps
destination:
server: https://kubernetes.default.svc
@@ -1,4 +1,3 @@
# Только для локальной фермы (Multipass). На удалённом test — не применять.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
@@ -8,7 +7,7 @@ spec:
project: sova
source:
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/sova/sova-deploy.git
targetRevision: prod
targetRevision: main
path: apps/redmine
helm:
valueFiles:
+1 -1
View File
@@ -7,7 +7,7 @@ spec:
project: default
source:
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/sova/sova-deploy.git
targetRevision: prod
targetRevision: main
path: argocd/projects
destination:
server: https://kubernetes.default.svc
+6 -6
View File
@@ -7,7 +7,7 @@ spec:
project: sova
source:
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/sova/sova-deploy.git
targetRevision: test
targetRevision: main
path: data/test
helm:
valueFiles:
@@ -31,7 +31,7 @@ spec:
project: sova
source:
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/sova/sova-mocks.git
targetRevision: prod
targetRevision: main
path: charts/mocks
destination:
server: https://kubernetes.default.svc
@@ -52,7 +52,7 @@ spec:
project: sova
source:
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/sova/sova-deploy.git
targetRevision: test
targetRevision: main
path: apps/backend
helm:
valueFiles:
@@ -77,7 +77,7 @@ spec:
project: sova
source:
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/sova/sova-deploy.git
targetRevision: test
targetRevision: main
path: apps/adminpanel
helm:
valueFiles:
@@ -102,7 +102,7 @@ spec:
project: sova
source:
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/sova/sova-deploy.git
targetRevision: test
targetRevision: main
path: apps/docs
helm:
valueFiles:
@@ -127,7 +127,7 @@ spec:
project: sova
source:
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/sova/sova-deploy.git
targetRevision: test
targetRevision: main
path: apps/cabinet
helm:
valueFiles:
+2 -2
View File
@@ -3,10 +3,10 @@ namespace: sova-data-test
postgres:
host: postgresql-test.sova-data-test.svc.cluster.local
user: sova_test
password: c%EDQxAr91khfvhle3CV4Mxg
password: sova_test_pass
mysql:
host: mysql-bitrix-test.sova-data-test.svc.cluster.local
user: bitrix_test
password: xEpMvDAaCb!U1U*wBOg8GAk+
password: bitrix_test_pass
database: sova_bitrix_test
@@ -1,2 +1,4 @@
SELECT 'CREATE DATABASE sova_cabinet_test OWNER sova_test'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'sova_cabinet_test')\gexec
SELECT 'CREATE DATABASE redmine_test OWNER sova_test'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'redmine_test')\gexec
+4 -4
View File
@@ -5,7 +5,7 @@ postgresql:
fullnameOverride: postgresql-test
auth:
username: sova_test
password: c%EDQxAr91khfvhle3CV4Mxg
password: sova_test_pass
database: sova_backend_test
primary:
persistence:
@@ -28,9 +28,9 @@ mysql:
enabled: true
fullnameOverride: mysql-bitrix-test
auth:
rootPassword: NTv$fys*Y$m1sKcH+@F^^77F
rootPassword: bitrix_root_test
username: bitrix_test
password: xEpMvDAaCb!U1U*wBOg8GAk+
password: bitrix_test_pass
database: sova_bitrix_test
primary:
persistence:
@@ -46,7 +46,7 @@ redis:
enabled: true
fullnameOverride: redis-test
auth:
password: u96=bi6a!weD6xW3n#GGZQTZ
password: redis_test_pass
master:
persistence:
enabled: false
+7
View File
@@ -0,0 +1,7 @@
# Autotesting (issues/27-test)
Pre-deploy tests run in app repos on tags `*-test` and `*-stage` only.
Post-deploy E2E: repository `sova/sova-e2e`, workflow `e2e-tests.yml` after Argo CD sync.
See `sova/docs` → [Автотестирование](http://git.sova.local:30300/sova/docs/src/branch/issues/27-test/infrastructure/autotesting).
@@ -1,14 +0,0 @@
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: devops@sovamed.ru
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx
@@ -1,14 +0,0 @@
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-staging
spec:
acme:
server: https://acme-staging-v02.api.letsencrypt.org/directory
email: devops@sovamed.ru
privateKeySecretRef:
name: letsencrypt-staging
solvers:
- http01:
ingress:
class: nginx
-20
View File
@@ -1,20 +0,0 @@
# Single-node test (812 GB): SQLite, без PostgreSQL HA
postgresql:
enabled: false
postgresql-ha:
enabled: false
gitea:
config:
database:
DB_TYPE: sqlite3
actions:
ENABLED: true
packages:
ENABLED: true
resources:
requests:
memory: 128Mi
limits:
memory: 512Mi
-25
View File
@@ -1,25 +0,0 @@
# Remote test server — 12 GB RAM (kube-prometheus-stack)
grafana:
enabled: true
resources:
requests:
memory: 128Mi
limits:
memory: 256Mi
prometheus:
prometheusSpec:
retention: 3d
scrapeInterval: 60s
evaluationInterval: 60s
resources:
requests:
memory: 512Mi
limits:
memory: 1Gi
# Раскомментировать при нехватке RAM:
# kubeStateMetrics:
# enabled: false
# nodeExporter:
# enabled: false
-24
View File
@@ -1,24 +0,0 @@
---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: sova-critical
value: 1000000
globalDefault: false
description: "API, PostgreSQL, MySQL — не убивать при OOM"
---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: sova-normal
value: 100000
globalDefault: true
description: "Gitea, ArgoCD, ingress"
---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: sova-low
value: 10000
globalDefault: false
description: "Runner, Grafana, Loki — жертвы OOM"