onprem-yonote-v2 #2

Merged
artem.drozdov merged 18 commits from onprem-yonote-v2 into main 2024-07-19 06:07:57 +00:00
8 changed files with 183 additions and 116 deletions
Showing only changes of commit f6a52984dd - Show all commits
+5 -5
View File
@@ -20,11 +20,11 @@ dependencies:
- name: redis - name: redis
repository: https://charts.bitnami.com/bitnami repository: https://charts.bitnami.com/bitnami
version: 16.12.1 version: 16.12.1
- name: keycloak - name: app
repository: https://charts.bitnami.com/bitnami repository: https://dysnix.github.io/charts
version: 21.6.1 version: 0.3.15
- name: minio - name: minio
repository: https://charts.bitnami.com/bitnami repository: https://charts.bitnami.com/bitnami
version: 14.6.20 version: 14.6.20
digest: sha256:f05d7ee9b89cf6aa733e8fccce0daf3f8a427a108248f39ccd4b01bdd83a4f1b digest: sha256:022c18f3135baeab718569f7118bbe95a3fe0171329f4617c2e8e99bbf5c5d6e
generated: "2024-07-12T16:09:51.328475497+03:00" generated: "2024-07-15T18:23:07.749459565+03:00"
+10 -3
View File
@@ -1,6 +1,13 @@
apiVersion: v2 apiVersion: v2
name: yonote-chart name: yonote-chart
version: 1.2.0 version: 1.2.0
description:
Generic application Helm chart.
This chart includes multiple dependencies. The base of this chart is derived from the Dynix app chart.
stuart.armstrong marked this conversation as resolved Outdated
Outdated
Review

Dy_s_nix

Dy_s_nix
Outdated
Review

fix

fix
maintainers:
- name: Dysnix
email: support@dysnix.com
url: https://github.com/dysnix/charts/tree/main/dysnix/app
dependencies: dependencies:
- name: app - name: app
@@ -40,9 +47,9 @@ dependencies:
condition: yonote-redis.enabled condition: yonote-redis.enabled
alias: yonote-redis alias: yonote-redis
- name: keycloak - name: app
version: "21.6.1" version: "0.3.15"
repository: https://charts.bitnami.com/bitnami repository: https://dysnix.github.io/charts
condition: keycloak.enabled condition: keycloak.enabled
alias: keycloak alias: keycloak
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+34
View File
@@ -0,0 +1,34 @@
global:
yonote:
config:
secret:
stringData:
DATABASE_URL: 'postgres://{{ .Values.global.postgresql.auth.username }}:{{ .Values.global.postgresql.auth.password }}@yonote-db/{{ .Values.global.postgresql.auth.database }}'
POSTGRES_PASSWORD: wsGZ6kXhr5
AWS_ACCESS_KEY_ID: "" # Ваш идентификатор ключа доступа к AWS. Поведение в SelfHosted: устанавливает логин сервис аккаунта для доступа приложения к Minio S3 хранилищу
AWS_SECRET_ACCESS_KEY: "" # Ваш секретный ключ доступа AWS. Поведение в SelfHosted: устанавливает пароль сервис аккаунта для доступа приложения к Minio S3 хранилищу
OIDC_CLIENT_SECRET: ""
SECRET_KEY: "" # Сгенерируйте 32-байтовый случайный ключ в шестнадцатеричном коде. Вам следует использовать `openssl rand -hex 32` в вашем терминале для генерации случайного значения.
SMTP_PASSWORD: ""
UTILS_SECRET: "" # Сгенерируйте уникальный случайный ключ. Формат не важен, но вы все равно можете использовать`openssl rand -hex 32` в вашем терминале, чтобы создать это.
TELEGRAM_BOT_TOKEN: ""
UNSPLASH_API_ACCESS_KEY: ""
LICENSE_KEY: "" # Обратитесь в отдел продаж для получения
SERVICE_WORKER_PUBLIC_KEY: ""
SERVICE_WORKER_PRIVATE_KEY: ""
# Генерация ключей (web-push) Service Worker
# 1) Установить Node.js и npm
# 2) Выполнить команду для генерации ключей
# npx web-push generate-vapid-keys
# 3) Полученные значения ввести в .env файл (SERVICE_WORKER_PUBLIC_KEY, SERVICE_WORKER_PRIVATE_KEY)
keycloak:
config:
secret:
stringData:
KEYCLOAK_ADMIN_PASSWORD: 12345
KC_DB_PASSWORD: 1234
postgresql:
auth:
password: wsGZ6kXhr5
postgresPassword: QQYw4UjOU
+134 -108
View File
@@ -1,16 +1,15 @@
global: global:
name: yonote-app
postgresql: postgresql:
auth: auth:
database: yonote database: yonote
username: yonote username: yonote
password: example_pass
postgresPassword: example_pass_postgres
yonote: yonote:
ingress: ingress:
ingressClassName: traefik ingressClassName: traefik
Review

change to nginx

change to nginx
dbMigrationEnv: production-ssl-disabled dbMigrationEnv: production-ssl-disabled # Режим подключения к базе данных при выполнении миграций. При использовании SSL подключения, установите значение `production`
keycloak: keycloak:
hostName: auth.example.com hostName: auth.example.com
@@ -21,22 +20,23 @@ global:
config: config:
plain: plain:
data: data:
DEPLOYMENT: undefined #Режим приложения NODE_ENV: production
FORCE_HTTPS: "false" FORCE_HTTPS: "false"
PGSSLMODE: disable PGSSLMODE: disable # Отключает SSL подключение к базе данных. Уберите эту строку, если вы используете SSL подключение к PostgreSQL
BIND_HOST: 0.0.0.0 #Хост по умолчанию BIND_HOST: 0.0.0.0 # Хост по умолчанию
PORT: "3000" #Порт по умолчанию PORT: "3000" # Порт по умолчанию
REDIS_URL: redis://yonote-redis-master:6379 REDIS_URL: redis://yonote-redis-master:6379
DEFAULT_LANGUAGE: ru_RU #Язык по умолчанию DEFAULT_LANGUAGE: ru_RU # Язык по умолчанию
ENABLE_UPDATES: "false" ENABLE_UPDATES: "false"
AI_URL: http://engate.wilix.dev:5001 AI_URL: 1234
AI_API_KEY: 1234
URL: 'http://app.{{ .Values.global.yonote.baseListenAddress }}' #Базовый url приложения URL: 'http://app.{{ .Values.global.yonote.baseListenAddress }}' # Базовый url приложения
COLLABORATION_URL: 'wss://app.{{ .Values.global.yonote.baseListenAddress }}' #сервер, для нормальной работы это не нужно устанавливать COLLABORATION_URL: 'wss://app.{{ .Values.global.yonote.baseListenAddress }}' # Cервер, для нормальной работы это не нужно устанавливать
OIDC_DISPLAY_NAME: email OIDC_DISPLAY_NAME: email
OIDC_SCOPES: openid email OIDC_SCOPES: openid email
@@ -47,15 +47,17 @@ global:
OIDC_USERINFO_URI: 'http://{{ .Values.global.yonote.keycloak.hostName }}/realms/{{ .Values.global.yonote.keycloak.realmName }}/protocol/openid-connect/userinfo' OIDC_USERINFO_URI: 'http://{{ .Values.global.yonote.keycloak.hostName }}/realms/{{ .Values.global.yonote.keycloak.realmName }}/protocol/openid-connect/userinfo'
AWS_S3_ACL: private AWS_S3_ACL: private
AWS_S3_UPLOAD_BUCKET_URL: example-url-s3 #Адрес S3 хранилища AWS_S3_UPLOAD_BUCKET_URL: example-url-s3 # Адрес S3 хранилища
AWS_S3_UPLOAD_BUCKET_NAME: yonote-bucket #Имя хранилища - полный URL = http://127.0.0.1:9000/yonote-bucket AWS_S3_UPLOAD_BUCKET_NAME: yonote-bucket # Имя хранилища - полный URL = http://127.0.0.1:9000/yonote-bucket
AWS_REGION: "" AWS_REGION: ""
AWS_S3_UPLOAD_MAX_SIZE: "226214400" #Максимальный размер хранилища AWS_S3_UPLOAD_MAX_SIZE: "226214400" # Максимальный размер хранилища
AWS_S3_FORCE_PATH_STYLE: "false" #Следует ли принудительно использовать URL-адреса стиля пути для объектов S3 AWS_S3_FORCE_PATH_STYLE: "false" # Следует ли принудительно использовать URL-адреса стиля пути для объектов S3
S3_PROXY_ENABLED: false # Включает или выключает проксирование загрузки/выгрузки файлов на S3 через бэкенд, принимает boolean
S3_MULTIPART_PART_SIZE: 1000 # Настройка размера частей для multipart загрузки на S3 хранилище, принимает число, по умолчанию 1000 (1GB), значение в мегабайтах.
SUBDOMAINS_ENABLED: "true" #Поддержка поддоменов для команд SUBDOMAINS_ENABLED: "true" # Поддержка поддоменов для команд
BASENAME_FOR_SUBDOMAIN: '{{ .Values.global.yonote.baseListenAddress }}' #Имя хоста BASENAME_FOR_SUBDOMAIN: '{{ .Values.global.yonote.baseListenAddress }}' # Имя хоста
NOT_ALLOWED_SUBDOMAINS: app,collaboration,auth,api,dev,docs,doc,admin,test,quota,billing,i,storage,host,updates #запрещенные поддомены NOT_ALLOWED_SUBDOMAINS: app,collaboration,auth,api,dev,docs,doc,admin,test,quota,billing,i,storage,host,updates # Запрещенные поддомены
TELEGRAM_API_URL: https://api.telegram.org TELEGRAM_API_URL: https://api.telegram.org
@@ -68,29 +70,9 @@ global:
SMTP_FROM_EMAIL: "" SMTP_FROM_EMAIL: ""
SMTP_REPLY_EMAIL: "" SMTP_REPLY_EMAIL: ""
SMTP_PORT: "" SMTP_PORT: ""
SMTP_SECURE: "" #connection will be upgraded: https://nodemailer.com/smtp/ SMTP_SECURE: "" # connection will be upgraded: https://nodemailer.com/smtp/
SMTP_REQUIRE_TLS: "" SMTP_REQUIRE_TLS: ""
secret:
stringData:
DATABASE_URL: 'postgres://{{ .Values.global.postgresql.auth.username }}:{{ .Values.global.postgresql.auth.password }}@yonote-db/{{ .Values.global.postgresql.auth.database }}'
POSTGRES_PASSWORD:
AI_API_KEY: ""
AWS_ACCESS_KEY_ID: "" #Ваш идентификатор ключа доступа к AWS. Поведение в SelfHosted: устанавливает логин сервис аккаунта для доступа приложения к Minio S3 хранилищу
AWS_SECRET_ACCESS_KEY: "" #Ваш секретный ключ доступа AWS. Поведение в SelfHosted: устанавливает пароль сервис аккаунта для доступа приложения к Minio S3 хранилищу
OIDC_CLIENT_SECRET: ""
SECRET_KEY: ""
SMTP_PASSWORD: ""
UTILS_SECRET: ""
YANDEX_METRIKA_ID: ""
TELEGRAM_BOT_TOKEN: ""
UNSPLASH_API_ACCESS_KEY: ""
REDIS_URL: "" #redis://username:password>@<redis>:6379
LICENSE_KEY: ""
SERVICE_WORKER_PUBLIC_KEY: ""
SERVICE_WORKER_PRIVATE_KEY: ""
QUOTA_TOKEN: ""
yonote_cron_calendar_events: yonote_cron_calendar_events:
cron_enabled: "true" cron_enabled: "true"
url: http://yonote-web/api/cron.calendar_events url: http://yonote-web/api/cron.calendar_events
@@ -99,8 +81,6 @@ global:
cron_enabled: "true" cron_enabled: "true"
url: http://yonote-web/api/cron.schedule url: http://yonote-web/api/cron.schedule
name: yonote
yonote-web: yonote-web:
fullnameOverride: yonote-web fullnameOverride: yonote-web
nameOverride: yonote-web nameOverride: yonote-web
@@ -112,9 +92,8 @@ yonote-web:
tag: 1.19.5 tag: 1.19.5
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
args: command: ["/bin/sh", "-c"]
#- ./build/server/index.js args: ['yarn start:selfhosted --services=web']
#- '--services=web'
initContainers: initContainers:
- name: yonote-migration - name: yonote-migration
1
@@ -205,9 +184,8 @@ yonote-websocket:
tag: 1.19.5 tag: 1.19.5
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
args: command: ["/bin/sh", "-c"]
#- ./build/server/index.js args: ['yarn start:selfhosted --services=websockets']
#- '--services=websockets'
resources: resources:
limits: limits:
@@ -283,9 +261,8 @@ yonote-whiteboard:
tag: 1.19.5 tag: 1.19.5
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
args: command: ["/bin/sh", "-c"]
#- ./build/server/index.js args: ['yarn start:selfhosted --services=whiteboard']
#- '--services=whiteboard'
resources: resources:
limits: limits:
@@ -361,9 +338,8 @@ yonote-worker:
tag: 1.19.5 tag: 1.19.5
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
args: command: ["/bin/sh", "-c"]
#- ./build/server/index.js args: ['yarn start:selfhosted --services=worker']
#- '--services=worker'
resources: resources:
limits: limits:
@@ -431,9 +407,8 @@ yonote-collaboration:
tag: 1.19.5 tag: 1.19.5
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
args: command: ["/bin/sh", "-c"]
#- ./build/server/index.js args: ['yarn start:selfhosted --services=collaboration']
#- '--services=collaboration'
checksums: null checksums: null
@@ -525,60 +500,10 @@ yonote-redis:
requests: requests:
cpu: 50m cpu: 50m
memory: 128Mi memory: 128Mi
keycloak:
enabled: true
fullnameOverride: yonote-keycloak
nameOverride: keycloak
hostName: auth.example.com
realmName: yonote
auth:
adminUser: admin
adminPassword: "12345"
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: traefik
hosts:
- host: keycloak.example.com
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: keycloak-tls
hosts:
- keycloak.example.com
postgresql:
name: postgresql
enabled: true
postgresqlUsername: keycloak
postgresqlPassword: keycloak
postgresqlDatabase: keycloak
persistence:
size: 500Mi
# externalDatabase: #Если используете не встроенную БД
# host: <your-external-db-host>
# port: 5432
# database: keycloak
# user: keycloak
# password: <your-external-db-password>
# existingSecret: app-postgresql
# existingSecretKey: postgresql-password
extraEnv: |
- name: KC_SPI_ADMIN_REALM
value: 'yonote'
service:
type: ClusterIP
port: 8080
minio: minio:
enabled: true enabled: true
name: minio
fullnameOverride: yonote-minio fullnameOverride: yonote-minio
nameOverride: minio nameOverride: minio
accessKey: "minioadmin" accessKey: "minioadmin"
@@ -614,4 +539,105 @@ minio:
- name: mybucket - name: mybucket
policy: none policy: none
- name: anotherbucket - name: anotherbucket
policy: none policy: none
keycloak-database:
name: keycloak-db
enabled: true
fullnameOverride: yonote-keycloak-db
nameOverride: db
primary:
persistence:
size: 512Mi
keycloak:
name: keycloack
enabled: true
nameOverride: keycloak
fullnameOverride: yonote-keycloak
image:
registry: images.updates.yonote.ru
repository: yonote-keycloak
tag: latest
command:
- /bin/sh
- -c
- |
"/opt/keycloak/bin/kc.sh" "start"
configMaps:
configs:
data:
KEYCLOAK_ADMIN: root
#KEYCLOAK_ADMIN_PASSWORD: ${KC_PASSWORD}
KC_PROXY: edge
KC_HOSTNAME_STRICT: "false"
KC_HOSTNAME_ADMIN: auth.yonote.develop.wilix.dev/admin
KC_HOSTNAME: auth.yonote.develop.wilix.dev
KC_DB: postgres
KC_DB_URL: postgres
KC_DB_URL_DATABASE: keycloak
KC_DB_USERNAME: keycloak
#KC_DB_PASSWORD: ${KC_DB_PASSWORD}
KC_HOSTNAME_STRICT_HTTPS: "false"
KC_HOSTNAME_PATH: "/"
envFrom:
- configMapRef:
name: '{{ template "app.fullname" . }}-configs'
- secretRef:
name: '{{ template "app.fullname" . }}-secrets'
checksums:
- secrets.yaml
- configmaps.yaml
containerPorts:
- containerPort: 8080
name: app
protocol: TCP
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 150m
memory: 128Mi
service:
service:
type: ClusterIP
port: 8080
targetPort: 8080
ingress:
enabled: true
certManager: true
pathType: ImplementationSpecific
hostname: auth.example.com
path: /
tls: true
livenessProbe:
enabled: true
failureThreshold: 6
initialDelaySeconds: 60
periodSeconds: 15
successThreshold: 1
timeoutSeconds: 5
httpGet:
path: /
port: app
readinessProbe:
enabled: true
failureThreshold: 6
initialDelaySeconds: 60
periodSeconds: 15
successThreshold: 1
timeoutSeconds: 5
httpGet:
path: /
port: app