Version 2.0.0

This commit is contained in:
2026-01-14 12:34:00 +03:00
parent 93f7f1da98
commit 727b2210af
53 changed files with 2631 additions and 994 deletions

View File

@@ -1,215 +1,170 @@
global:
siteUrl: "http://loop.example.com" # REQUIRED SETTING, PLEASE UPDATE: "https://loop.example.com"
# Use an existing secret for License credential (see secret-loop-license.yaml for required fields)
existingLicenseSecret: {}
# name: ""
# key: ""
# REQUIRED SETTING, if no existing secret is provided.
loopLicense: ""
# Settings for configuration of LOOP
# For more details: https://docs.loop.ru/administration/config-settings
siteName: ""
enableTeamCreation: true
enableUserCreation: true
enableOpenServer: true
enableLinkPreviews: true
enableCustomEmoji: true
# Settings to enable email notifications
sendEmailNotifications: false
requireEmailVerification: false
feedbackName: ""
feedbackEmail: ""
feedbackOrganization: ""
smtpUsername: ""
smtpPassword: ""
smtpServer: ""
smtpPort: ""
connectionSecurity: "" # empty, TLS, or STARTTLS
features:
database:
external:
driver: "postgres"
dataSource: "loopuser:looppassword@loop-database.loop-onprem.svc.cluster.local:5432/loopdb?sslmode=disable" # <username>:<password>@@loop-database.<namespace>.svc.cluster.local:5432/<dbname>?connect_timeout=10&sslmode=disable
existingDatabaseSecret: {}
jobserver:
name: jobserver
enabled: true
replicaCount: 1
strategy:
type: Recreate
rollingUpdate: null
revisionHistoryLimit: 2
service:
name: loop-app-jobserver
type: ClusterIP
nodeSelector: {}
affinity: {}
tolerations: []
extraEnv: {}
notifications:
# Push proxy must be configured or useHPNS must be true for push noticiations to work.
push:
enabled: true
useHPNS: true
initContainerImage:
repository: appropriate/curl
tag: latest
imagePullPolicy: IfNotPresent
# LOOP deployment section.
# Use to configure the deploymento the LOOP servers.
loop-enterprise-edition:
loopApp:
replicaCount: 1
image:
repository: registry.loop.ru/loop/server
tag: "2025-11-20-1"
pullPolicy: IfNotPresent
image:
registry: registry.loop.ru
repository: loop/server
tag: 2025-06-10-1
pullPolicy: IfNotPresent
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 2
name: loop-server
service:
name: loop-app
type: ClusterIP
externalPort: 8065
internalPort: 8065
metricsPort: 8067
clusterPort: 8075
gossipPort: 8074
metricsName: loop-app-metrics
appKind: Deployment
ingress:
# Used to create Ingress record (should be used with service.type: ClusterIP).
enabled: true
hosts:
- loop.example.com
tls:
# Secrets must be manually created in the namespace.
# - secretName: chart-example-tls
# hosts:
# - loop.example.com
annotations: {}
ingressClassName: nginx
containerPorts:
- name: api
containerPort: 8065
protocol: TCP
- name: metrics
containerPort: 8067
protocol: TCP
- name: cluster
containerPort: 8075
protocol: TCP
- name: gossip
containerPort: 8074
protocol: TCP
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 1
targetMemoryUtilizationPercentage: 50
targetCPUUtilizationPercentage: 50
service:
type: ClusterIP
port: 8065
targetPort: api
nodeSelector: {}
annotations: {}
labels: {}
affinity: {}
ports:
#- name: api
# port: 8065
# targetPort: api
- name: metrics
port: 8067
targetPort: metrics
tolerations: []
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
resources: {}
# limits:
# cpu: 100m
# memory: 300Mi
# requests:
# cpu: 100m
# memory: 300Mi
ingress:
enabled: true
certManager: false
apiVersion:
ingressClassName: traefik
hostname: loop.modo.local
path: /
pathType: ImplementationSpecific
annotations: {}
extraInitContainers: []
tls: false
resources: {}
## resources:
## limits:
## cpu: 100m
## memory: 128Mi
## requests:
## cpu: 100m
## memory: 128Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 10
# targetCPU: 50
# targetMemory: 50
envFrom:
- configMapRef:
name: '{{ template "app.fullname" . }}-configs'
- secretRef:
name: '{{ template "app.fullname" . }}-secrets'
checksums:
- secrets.yaml
- configmaps.yaml
livenessProbe:
enabled: true
initialDelaySeconds: 90
periodSeconds: 15
timeoutSeconds: 5
failureThreshold: 6
successThreshold: 1
httpGet:
path: /api/v4/system/ping
port: 8065
readinessProbe:
enabled: true
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
successThreshold: 1
httpGet:
path: /api/v4/system/ping
port: 8065
configMaps:
configs:
data:
MM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: "https://push.loop.ru" #Этот параметр указывает сервер, который отправляет push-уведомления
MM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true" # Включить email-уведомления
MM_EXPERIMENTALSETTINGS_ENABLEAPPBAR: "true" #Этот параметр указывает, включена ли панель приложения
MM_FEATUREFLAGS_AppsEnabled: "true" #Указывает на доступность и возможность использования определенных приложений или функций, например, доступ к галерее для загрузки изображений
MM_FILESETTINGS_AMAZONS3BUCKET: "looponprem-bucket" #Имя корзины S3, где хранятся файлы
MM_FILESETTINGS_AMAZONS3ENDPOINT: "loop-minio:9000" #URL конечной точки хранилища S3
MM_FILESETTINGS_AMAZONS3PATHPREFIX: "loop" #Эта опция позволяет указать путь к файлам на S3
MM_FILESETTINGS_AMAZONS3SSE: "false" #Параметр указывает, включено ли шифрование на стороне сервера (SSL) для S3
MM_FILESETTINGS_AMAZONS3SSL: "false" #Параметр указывает, должно ли подключение к Amazon S3 осуществляться через SSL
MM_FILESETTINGS_DRIVERNAME: "amazons3" #Имя драйвера для работы с файлами
MM_FILESETTINGS_MAXFILESIZE: "1048576000" #Максимальный размер файла для загрузки, указан в байтах
MM_JOBSETTINGS_RUNJOBS: "false" #Указывает, должны ли выполняться задания
MM_JOBSETTINGS_RUNSCHEDULER: "false" #Флаг указывает, должен ли быть запущен планировщик задач
MM_LOGSETTINGS_CONSOLEJSON: "false" #Флаг указывает, должен ли вывод в консоль быть в формате JSON
MM_LOGSETTINGS_CONSOLELEVEL: "DEBUG" #Уровень логирования для вывода в консоль
MM_LOGSETTINGS_FILELEVEL: "DEBUG" #Уровень логирования для записи в файл
MM_PLUGINSETTINGS_AUTOMATICPREPACKAGEDPLUGINS: "true" #Флаг указывает, разрешена ли автоматическая загрузка предустановленных плагинов
MM_PLUGINSETTINGS_ENABLEUPLOADS: "true" #Флаг указывает, разрешена ли загрузка плагинов
MM_SERVICEENVIRONMENT: "production" #Среда, в которой работает приложение (например, "production")
MM_SERVICESETTINGS_ENABLEBOTACCOUNTCREATION: "true" #Флаг указывает, разрешено ли создание аккаунтов ботов
MM_SERVICESETTINGS_ENABLETEAMCREATION: "true" # Разрешить создание команд
MM_SERVICESETTINGS_ENABLEUSERCREATION: "true" # Разрешить создание пользователей
MM_SERVICESETTINGS_ENABLEOPENSERVER: "true" # Открытый доступ к серверу
MM_SERVICESETTINGS_ENABLECUSTOMEMOJI: "true" # Поддержка пользовательских эмодзи
MM_SERVICESETTINGS_ENABLELINKPREVIEWS: "true" # Предпросмотр ссылок
MM_SERVICESETTINGS_ENABLEOAUTHSERVICEPROVIDER: "true" #Используется для определения, разрешено ли использование сторонних провайдеров OAuth-сервисов
MM_SERVICESETTINGS_ENABLETESTING: "true" #Флаг указывает, разрешены ли тесты
MM_SERVICESETTINGS_ENABLEUSERACCESSTOKENS: "true" #Флаг указывает, разрешены ли токены доступа пользователей
MM_SERVICESETTINGS_GIPHYSDKKEY: "<GiphySDKkey>" #Ключ Giphy SDK для интеграции с Giphy
MM_SERVICESETTINGS_LISTENADDRESS: ":8065" #Адрес и порт, на котором служба прослушивает
MM_SERVICESETTINGS_SITEURL: "https://loop.modo.local" #Публичный URL службы
MM_SQLSETTINGS_DRIVERNAME: "postgres" #Имя драйвера базы данных
MM_TEAMSETTINGS_MAXUSERSPERTEAM: "500" #Максимальное количество пользователей в команде
MM_EMAILSETTINGS_REQUIREMAILVERIFICATION: "true" # Требовать подтверждение email
MM_EMAILSETTINGS_FEEDBACKEMAIL: "" # Email-адрес для сбора отзывов и обратной связи от пользователей
MM_EMAILSETTINGS_FEEDBACKNAME: "" # Имя отправителя, которое будет отображаться в письмах с отзывами
MM_EMAILSETTINGS_FEEDBACKORGANIZATION: "" # Название организации/компании, от имени которой отправляются письма с отзывами
MM_EMAILSETTINGS_SMTPUSERNAME: "" # SMTP логин
MM_EMAILSETTINGS_CONNECTIONSECURITY: "" # тип подключения: пусто, TLS или STARTTLS
MM_EMAILSETTINGS_SMTPPASSWORD: "" # SMTP пароль для аутентификации
MM_EMAILSETTINGS_ENABLESMTPAUTH: "" # Включить SMTP-аутентификацию (true/false)
MM_EMAILSETTINGS_SMTPPORT: "" # SMTP порт для подключения (например, 25, 465, 587)
MM_EMAILSETTINGS_REPLYTOADDRESS: "" # Адрес для ответа (куда будут приходить ответы на письма)
MM_EMAILSETTINGS_SMTPSERVER: "" # SMTP сервер для отправки писем (например, smtp.gmail.com)
## The following environment variables are required to use Elasticsearch for searching in loop.
# MM_ELASTICSEARCHSETTINGS_CONNECTIONURL: ""
# MM_ELASTICSEARCHSETTINGS_ENABLEINDEXING: "false"
# MM_ELASTICSEARCHSETTINGS_ENABLESEARCHING: "false"
# Add additional volumes and mounts, for example to add SAML keys in the app or other files the app server may need to access
extraVolumes: []
# - hostPath:
# path: /var/log
# name: varlog
extraVolumeMounts: []
# - name: varlog
# mountPath: /host/var/log
# readOnly: true
## Allows the specification of additional environment variables for LOOP
extraEnv:
- name: MM_ELASTICSEARCHSETTINGS_USERNAME
value: "" # Username Elasticsearch
- name: MM_ELASTICSEARCHSETTINGS_PASSWORD
value: "" # Password Elasticsearch
- name: MM_ELASTICSEARCHSETTINGS_CONNECTIONURL
value: "" # Elasticsearch URL
- name: MM_ELASTICSEARCHSETTINGS_ENABLEINDEXING
value: "false" # Use Elasticsearch indexing
- name: MM_ELASTICSEARCHSETTINGS_ENABLESEARCHING
value: "false" # Use Elasticsearch for searching
- name: MM_FILESETTINGS_AMAZONS3SSE
value: "false" #Env indicates whether SSL (Server-Side Encryption) is enabled for S3
- name: MM_FILESETTINGS_AMAZONS3SSL
value: "false" #Env indicates whether the connection to Amazon S3 should take place over SSL
- name: MM_FILESETTINGS_DRIVERNAME
value: "amazons3" #The name of the driver for working with files
- name: MM_FILESETTINGS_AMAZONS3ACCESSKEYID
value: "accesskey-minio" # S3 access key
- name: MM_FILESETTINGS_AMAZONS3SECRETACCESSKEY
value: "secretkey-minio" # S3 secretaccess key
- name: MM_FILESETTINGS_AMAZONS3BUCKET
value: "loop-bucket" # S3 bucket name
- name: MM_FILESETTINGS_AMAZONS3ENDPOINT
value: "loop-minio:9000" # S3 endpoint url
- name: MM_FILESETTINGS_MAXFILESIZE
value: "1048576000" #The maximum file size to download, specified in bytes.
- name: MM_LOGSETTINGS_CONSOLEJSON
value: "false" #The flag indicates whether the output to the console should be in JSON format
- name: MM_LOGSETTINGS_CONSOLELEVEL
value: "DEBUG" #Logging level for console output
- name: MM_LOGSETTINGS_FILELEVEL
value: "DEBUG" #The logging level for writing to a file
- name: MM_PLUGINSETTINGS_AUTOMATICPREPACKAGEDPLUGINS
value: "true" #The flag indicates whether automatic loading of pre-packaged plugins is allowed
- name: MM_PLUGINSETTINGS_ENABLEUPLOADS
value: "true" #The flag indicates whether plugin downloads are allowed
- name: MM_SERVICEENVIRONMENT
value: "production" #The environment in which the application is running (for example, "production")
- name: MM_SERVICESETTINGS_ENABLEBOTACCOUNTCREATION
value: "true" #The flag indicates whether the creation of bot accounts is allowed
- name: MM_SERVICESETTINGS_ENABLEOAUTHSERVICEPROVIDER
value: "true" #It is used to determine whether the use of third-party OAuth service providers is allowed
- name: MM_SERVICESETTINGS_ENABLETESTING
value: "true" #The flag indicates whether testing is allowed
- name: MM_SERVICESETTINGS_ENABLEUSERACCESSTOKENS
value: "true" #The flag indicates whether user access tokens are allowed
- name: MM_SERVICESETTINGS_GIPHYSDKKEY
value: "" #Giphy SDK key for integration with Giphy
- name: MM_SQLSETTINGS_DATASOURCE
value: "postgres://loopuser:looppassword@loop-database.loop-onprem.svc.cluster.local:5432/loopdb?sslmode=disable"
- name: MM_SQLSETTINGS_DATASOURCEREPLICAS
value: "postgres://loopuser:looppassword@loop-database-1.loop-onprem.svc.cluster.local:5432/loopdb?sslmode=disable"
- name: MM_SQLSETTINGS_MAXIDLECONNS
value: "10"
- name: MM_SQLSETTINGS_DISABLEDATABASESEARCH
value: "true"
- name: MM_SQLSETTINGS_MAXOPENCONNS
value: "80"
- name: MM_SQLSETTINGS_QUERYTIMEOUT
value: "300"
## The following environment variables are required to run loop in clustered mode.
# - name: MM_CLUSTERSETTINGS_ENABLE
# value: "true"
# - name: MM_CLUSTERSETTINGS_CLUSTERNAME
# value: "loop-example-cluster"
# - name: MM_CLUSTERSETTINGS_ENABLEEXPERIMENTALGOSSIPENCRYPTION
# value: "true"
# - name: MM_CLUSTERSETTINGS_ENABLEGOSSIPCOMPRESSION
# value: "false"
# - name: MM_CLUSTERSETTINGS_READONLYCONFIG
# value: "false"
## Additional pod annotations
extraPodAnnotations: {}
# MM_CLUSTERSETTINGS_ENABLE: "true"
# MM_CLUSTERSETTINGS_CLUSTERNAME: "loop-example-cluster"
# MM_CLUSTERSETTINGS_ENABLEEXPERIMENTALGOSSIPENCRYPTION: "true"
# MM_CLUSTERSETTINGS_ENABLEGOSSIPCOMPRESSION: "false"
# MM_CLUSTERSETTINGS_READONLYCONFIG: "false"
# Postgresql Section. Use this to configure postgresql.
# If you want to use an external database, disable this.
@@ -233,7 +188,7 @@ postgresql:
storage:
requestedSize: 5Gi
className: ""
className: "microk8s-hostpath"
resources:
limits:
@@ -268,13 +223,8 @@ minio:
persistence:
enabled: true
storageClass: ""
size: 10Gi
storageClass: "microk8s-hostpath"
size: 1Gi
mcJob:
enabled: true
serviceAccount:
create: false
name:
annotations: {}