Aller au contenu principal

ONLYOFFICE Docs pour Kubernetes

Introduction​

Important

Ce guide est valable uniquement pour la solution de licence cluster payante.

  • Vous devez disposer d'un cluster Kubernetes ou OpenShift installé :
  • Vous devez également disposer d'une copie locale configurée de kubectl. Consultez ce guide pour savoir comment installer et configurer kubectl.
  • Vous devez installer Helm v3.7+. Veuillez suivre les instructions ici pour l'installer.
  • Si vous utilisez OpenShift, vous pouvez utiliser oc et kubectl pour gérer le déploiement.
  • Si l'installation de composants externes à « Docs » est effectuée depuis Helm Chart dans un cluster OpenShift, il est recommandé de les installer depuis un utilisateur ayant le rôle cluster-admin afin d'éviter d'éventuels problèmes de droits d'accès. Consultez ce guide pour ajouter les rôles nécessaires à l'utilisateur.

Composants prérequis de déploiement​

remarque

Il peut être nécessaire d'appliquer la politique SecurityContextConstraints lors de l'installation dans un cluster OpenShift, ce qui ajoute la permission d'exécuter des conteneurs depuis un utilisateur dont l'ID = 1001.

Pour ce faire, exécutez les commandes suivantes :

$ oc apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/scc/helm-components.yaml
$ oc adm policy add-scc-to-group scc-helm-components system:authenticated

Vous pouvez également spécifier la plage d'utilisateurs et de groupes autorisés à partir du namespace cible, voir les paramètres runAsUser et fsGroup lors de l'installation des dépendances, telles que RabbitMQ, Redis, PostgreSQL, etc.

1. Ajouter les référentiels Helm​

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$ helm repo add nfs-server-provisioner https://kubernetes-sigs.github.io/nfs-ganesha-server-and-external-provisioner
$ helm repo add onlyoffice https://download.onlyoffice.com/charts/stable
$ helm repo update

2. Installer le stockage persistant​

Important

Si vous souhaitez utiliser Amazon S3 comme cache, veuillez ignorer cette étape.

Installer NFS Server Provisioner

remarque

Lors de l'installation de NFS Server Provisioner, des classes de stockage - NFS sont créées. Lors de l'installation dans un cluster OpenShift, l'utilisateur doit avoir un rôle lui permettant de créer des classes de stockage dans le cluster. En savoir plus ici.

$ helm install nfs-server nfs-server-provisioner/nfs-server-provisioner \
--set persistence.enabled=true \
--set persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set persistence.size=PERSISTENT_SIZE
  • PERSISTENT_STORAGE_CLASS est une classe de stockage persistant disponible dans votre cluster Kubernetes.

    Classes de stockage persistant pour différents fournisseurs :

  • PERSISTENT_SIZE est la taille totale de tous les stockages persistants pour la classe de stockage persistant nfs. Vous pouvez exprimer la taille sous forme d'entier simple avec l'un de ces suffixes : T, G, M, Ti, Gi, Mi. Par exemple : 9Gi.

Consultez plus de détails sur l'installation de NFS Server Provisioner via Helm ici.

Configurer une demande de volume persistant

La demande de volume persistant nfs par défaut est de 8Gi. Vous pouvez la modifier dans le fichier values.yaml, dans la section persistence.storageClass et persistence.size. Elle doit être inférieure à PERSISTENT_SIZE d'au moins 5 % environ. Il est recommandé d'utiliser 8Gi ou plus de stockage persistant pour chaque tranche de 100 utilisateurs actifs d'ONLYOFFICE Docs.

Important

Le type PersistentVolume à utiliser pour le placement PVC doit prendre en charge le mode d'accès ReadWriteMany. De plus, le PersistentVolume doit avoir comme propriétaire l'utilisateur depuis lequel ONLYOFFICE Docs sera démarré. Par défaut, il s'agit de ds (101:101).

Si vous souhaitez activer WOPI, veuillez définir le paramètre wopi.enabled=true. Dans ce cas, le stockage persistant doit être connecté aux nœuds du cluster avec les attributs de mise en cache désactivés pour le répertoire monté pour les clients. Pour NFS Server Provisioner, cela peut être réalisé en ajoutant l'option noac au paramètre storageClass.mountOptions. Veuillez trouver plus d'informations ici.

3. Déployer RabbitMQ​

Pour installer RabbitMQ dans votre cluster, exécutez la commande suivante :

$ helm install rabbitmq --version 16.0.14 bitnami/rabbitmq \
--set persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set resourcesPreset=none \
--set image.repository=bitnamilegacy/rabbitmq \
--set image.tag=4.1.3-debian-12-r1 \
--set global.security.allowInsecureImages=true \
--set metrics.enabled=false
remarque

Définissez metrics.enabled=true pour activer l'exposition des métriques RabbitMQ à collecter par Prometheus.

Consultez plus de détails sur l'installation de RabbitMQ via Helm ici.

4. Déployer Redis​

Pour installer Redis dans votre cluster, exécutez la commande suivante :

$ helm install redis --version 22.0.7 bitnami/redis \
--set architecture=standalone \
--set master.persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set master.resourcesPreset=none \
--set global.security.allowInsecureImages=true \
--set image.repository=bitnamilegacy/redis \
--set image.tag=8.2.1-debian-12-r0 \
--set metrics.enabled=false
remarque

Définissez metrics.enabled=true pour activer l'exposition des métriques Redis à collecter par Prometheus. Ajoutez également les paramètres suivants : metrics.image.repository=bitnamilegacy/redis-exporter et metrics.image.tag=1.76.0-debian-12-r0.

Consultez plus de détails sur l'installation de Redis via Helm ici.

5. Déployer une base de données​

En tant que serveur de base de données, vous pouvez utiliser PostgreSQL, MySQL ou MariaDB.

Pour installer PostgreSQL dans votre cluster, exécutez la commande suivante :

$ helm install postgresql --version 16.7.27 bitnami/postgresql \
--set auth.database=postgres \
--set primary.persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set primary.persistence.size=PERSISTENT_SIZE \
--set primary.resourcesPreset=none \
--set image.repository=bitnamilegacy/postgresql \
--set global.security.allowInsecureImages=true \
--set image.tag=17.6.0-debian-12-r2 \
--set metrics.enabled=false
remarque

Définissez metrics.enabled=true pour activer l'exposition des métriques de base de données à collecter par Prometheus. Ajoutez également les paramètres suivants : metrics.image.repository=bitnamilegacy/postgres-exporter et metrics.image.tag=0.17.1-debian-12-r16.

Consultez plus de détails sur l'installation de PostgreSQL via Helm ici.

6. Déployer l'exportateur StatsD​

Important

Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous ne souhaitez pas exécuter l'exportateur StatsD.

  1. Ajouter les référentiels Helm

    $ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    $ helm repo add kube-state-metrics https://kubernetes.github.io/kube-state-metrics
    $ helm repo update
  2. Installer Prometheus

    Pour installer Prometheus dans votre cluster, exécutez la commande suivante :

    $ helm install prometheus -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/extraScrapeConfigs.yaml prometheus-community/prometheus \
    --set server.global.scrape_interval=1m

    Pour modifier l'intervalle de scrape, spécifiez le paramètre server.global.scrape_interval.

    Consultez plus de détails sur l'installation de Prometheus via Helm ici.

  3. Installer l'exportateur StatsD

    Pour installer l'exportateur StatsD dans votre cluster, exécutez la commande suivante :

    $ helm install statsd-exporter prometheus-community/prometheus-statsd-exporter \
    --set statsd.udpPort=8125 \
    --set statsd.tcpPort=8126 \
    --set statsd.eventFlushInterval=30000ms

    Consultez plus de détails sur l'installation de l'exportateur Prometheus StatsD via Helm ici.

    Pour autoriser les métriques StatsD dans ONLYOFFICE Docs, suivez cette étape.

7. Apporter des modifications aux fichiers de configuration Node-config​

Important

Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous n'avez pas besoin de modifier les fichiers de configuration.

  1. Créer un ConfigMap contenant un fichier json

    Pour créer un ConfigMap à partir d'un fichier contenant la structure local.json, vous devez exécuter la commande suivante :

    $ kubectl create configmap local-config \
    --from-file=./local.json
    remarque

    Tout nom peut être utilisé à la place de local-config.

  2. Spécifier les paramètres lors de l'installation d'ONLYOFFICE Docs

    Lors de l'installation d'ONLYOFFICE Docs, spécifiez les paramètres extraConf.configMap=local-config et extraConf.filename=local.json.

    remarque

    Si vous devez ajouter un fichier de configuration après l'installation d'ONLYOFFICE Docs, vous devez exécuter l'étape 7.1 puis exécuter la commande

    helm upgrade documentserver onlyoffice/docs --set extraConf.configMap=local-config --set extraConf.filename=local.json --no-hooks

    ou

    helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks

    si les paramètres sont spécifiés dans le fichier values.yaml.

8. Ajouter des polices personnalisées​

Important

Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous n'avez pas besoin d'ajouter vos polices.

Pour ajouter des polices aux images, vous devez reconstruire les images. Référez-vous aux étapes pertinentes dans ce manuel. Ensuite, spécifiez vos images lors de l'installation d'ONLYOFFICE Docs.

9. Ajouter des plugins​

Important

Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous n'avez pas besoin d'ajouter des plugins.

Pour ajouter des plugins aux images, vous devez reconstruire les images. Référez-vous aux étapes pertinentes dans ce manuel. Ensuite, spécifiez vos images lors de l'installation d'ONLYOFFICE Docs.

10. Ajouter des dictionnaires personnalisés​

Important

Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous n'avez pas besoin d'ajouter vos dictionnaires.

Pour ajouter vos dictionnaires personnalisés aux images, vous devez reconstruire les images. Référez-vous aux étapes pertinentes dans ce manuel. Ensuite, spécifiez vos images lors de l'installation d'ONLYOFFICE Docs.

11. Modifier les thèmes d'interface​

Important

Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous n'avez pas besoin de modifier les thèmes d'interface.

  1. Créer un ConfigMap contenant un fichier json

    Pour créer un ConfigMap avec un fichier json contenant les thèmes d'interface, vous devez exécuter la commande suivante :

    $ kubectl create configmap custom-themes \
    --from-file=./custom-themes.json
    remarque

    Au lieu de custom-themes et custom-themes.json, vous pouvez utiliser d'autres noms.

  2. Spécifier les paramètres lors de l'installation d'ONLYOFFICE Docs

    Lors de l'installation d'ONLYOFFICE Docs, spécifiez les paramètres extraThemes.configMap=custom-themes et extraThemes.filename=custom-themes.json.

    remarque

    Si vous devez ajouter des thèmes d'interface après l'installation d'ONLYOFFICE Docs, vous devez exécuter l'étape 11.1 puis exécuter la commande helm upgrade documentserver onlyoffice/docs --set extraThemes.configMap=custom-themes --set extraThemes.filename=custom-themes.json --no-hooks ou helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks si les paramètres sont spécifiés dans le fichier values.yaml.

12. Connecter un compartiment Amazon S3 en tant que cache à ONLYOFFICE Helm Docs​

Important

Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous ne souhaitez pas utiliser Amazon S3 comme stockage de cache.

Pour connecter un compartiment Amazon S3 comme cache, vous devez créer un fichier de configuration ou modifier celui existant conformément à ce guide et changer la valeur du paramètre persistence.storageS3 en true.

Déployer ONLYOFFICE Docs​

remarque

Il peut être nécessaire d'appliquer la politique SecurityContextConstraints lors de l'installation dans un cluster OpenShift, ce qui ajoute la permission d'exécuter des conteneurs depuis un utilisateur dont l'ID = 101.

Pour ce faire, exécutez les commandes suivantes :

$ oc apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/scc/docs-components.yaml
$ oc adm policy add-scc-to-group scc-docs-components system:authenticated

Vous pouvez également appliquer la politique nonroot-v2 SecurityContextConstraints (SCC) dans les commonAnnotations ou annotations pour toutes les ressources décrivant le podTemplate. Assurez-vous que l'utilisateur et le compte de service disposent des autorisations nécessaires pour utiliser cette SCC. Pour vérifier qui a la permission d'utiliser nonroot-v2, exécutez la commande suivante :

oc adm policy who-can use scc nonroot-v2
helm install documentserver onlyoffice/docs --set commonAnnotations."openshift\.io/required-scc"="nonroot-v2"

Si nécessaire, définissez podSecurityContext.enabled et <resources>.containerSecurityContext.enabled à true.

1. Déployer la licence ONLYOFFICE Docs​

  1. Créer un secret

    Si vous disposez d'une licence ONLYOFFICE Docs valide, créez un secret license à partir du fichier :

    $ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.lic

    Où SECRET_LICENSE_NAME est le nom d'un futur secret contenant une licence.

    remarque

    Le nom du fichier de licence source doit être 'license.lic' car ce nom sera utilisé comme champ dans le secret créé.

    remarque

    Si l'installation est effectuée sans créer de secret avec le fichier de licence existant, un secret vide license sera automatiquement créé. Pour savoir comment mettre à jour un secret existant avec une licence, voir ici.

  2. Spécifier les paramètres lors de l'installation d'ONLYOFFICE Docs

    Lors de l'installation d'ONLYOFFICE Docs, spécifiez le paramètre license.existingSecret=[SECRET_LICENSE_NAME].

    $ helm install documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME]
    remarque

    Si vous devez ajouter une licence après l'installation d'ONLYOFFICE Docs, vous devez exécuter l'étape 1.1 puis exécuter la commande helm upgrade documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME] --no-hooks ou helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks si les paramètres sont spécifiés dans le fichier values.yaml.

2. Déployer ONLYOFFICE Docs​

Pour déployer ONLYOFFICE Docs avec le nom de version documentserver :

$ helm install documentserver onlyoffice/docs

La commande déploie ONLYOFFICE Docs sur le cluster Kubernetes dans la configuration par défaut. La section Paramètres répertorie les paramètres pouvant être configurés lors de l'installation.

remarque

Lors de l'installation d'ONLYOFFICE Docs dans un cluster k8s privé derrière un proxy Web ou sans accès Internet, consultez les notes ci-dessous.

3. Désinstaller ONLYOFFICE Docs​

Pour désinstaller/supprimer le déploiement documentserver :

$ helm delete documentserver

L'exécution de la commande helm delete lance des hooks qui effectuent des actions préparatoires avant de supprimer complètement ONLYOFFICE Docs, notamment l'arrêt du serveur, le nettoyage des PVC utilisés et des tables de base de données. Le temps d'exécution des hooks par défaut est de 300 s. Le temps d'exécution peut être modifié avec --timeout [time], par exemple :

$ helm delete documentserver --timeout 25m
remarque

Lors de la suppression d'ONLYOFFICE Docs dans un cluster k8s privé derrière un proxy Web ou sans accès Internet, consultez les notes ci-dessous.

Si vous souhaitez supprimer ONLYOFFICE Docs sans actions préparatoires, exécutez la commande suivante :

$ helm delete documentserver --no-hooks

La commande helm delete supprime tous les composants Kubernetes associés au chart et supprime la version.

4. Paramètres​

Spécifiez chaque paramètre en utilisant l'argument --set key=value[,key=value] pour helm install. Par exemple :

$ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.ssl.enabled=true,ingress.host=example.com

Cette commande expose ONLYOFFICE Docs via HTTPS.

Vous pouvez également fournir un fichier YAML spécifiant les valeurs des paramètres lors de l'installation du chart :

$ helm install documentserver -f values.yaml onlyoffice/docs
remarque

Vous pouvez utiliser le fichier values.yaml par défaut.

Afficher tous les paramètres
ParamètreDescriptionPar défaut
connections.dbTypeLe type de base de données. Les valeurs possibles sont postgres, mariadb, mysql, oracle, mssql ou damengpostgres
connections.dbHostL'adresse IP ou le nom de l'hôte de la base de donnéespostgresql
connections.dbUserUtilisateur de la base de donnéespostgres
connections.dbPortNuméro de port du serveur de base de données5432
connections.dbNameNom de la base de données à laquelle l'application sera connectéepostgres
connections.dbPasswordMot de passe de l'utilisateur de la base de données. S'il est défini, il a priorité sur connections.dbExistingSecret""
connections.dbSecretKeyNameLe nom de la clé contenant le mot de passe de l'utilisateur de la base de donnéespostgres-password
connections.dbExistingSecretNom du secret existant à utiliser pour les mots de passe de la base de données. Doit contenir la clé spécifiée dans connections.dbSecretKeyNamepostgresql
connections.redisConnectorNameDéfinit le connecteur à utiliser pour se connecter à Redis. Si vous devez vous connecter à Redis Sentinel, définissez la valeur ioredisredis
connections.redisHostL'adresse IP ou le nom de l'hôte Redis. Non utilisé si les valeurs sont définies dans connections.redisClusterNodes et connections.redisSentinelNodesredis-master
connections.redisPortLe numéro de port du serveur Redis. Non utilisé si les valeurs sont définies dans connections.redisClusterNodes et connections.redisSentinelNodes6379
connections.redisUserLe nom d'utilisateur Redis. La valeur de ce paramètre remplace la valeur définie dans l'objet options de local.json si vous ajoutez un fichier de configuration personnalisédefault
connections.redisDBNumNuméro de la base de données logique Redis à sélectionner. La valeur de ce paramètre remplace la valeur définie dans l'objet options de local.json si vous ajoutez un fichier de configuration personnalisé0
connections.redisClusterNodesListe des nœuds du cluster Redis. Il n'est pas nécessaire de spécifier chaque nœud du cluster, 3 suffisent. Vous pouvez spécifier plusieurs valeurs. Il doit être spécifié au format host:port[]
connections.redisPasswordLe mot de passe défini pour le compte Redis. S'il est défini, il a priorité sur connections.redisExistingSecret. La valeur de ce paramètre remplace la valeur définie dans l'objet options de local.json si vous ajoutez un fichier de configuration personnalisé""
connections.redisSecretKeyNameLe nom de la clé contenant le mot de passe de l'utilisateur Redisredis-password
connections.redisExistingSecretNom du secret existant à utiliser pour les mots de passe Redis. Doit contenir la clé spécifiée dans connections.redisSecretKeyName. Le mot de passe de ce secret remplace le mot de passe défini dans l'objet options de local.jsonredis
connections.redisNoPassDéfinit si l'authentification Redis sans mot de passe doit être utilisée. Si la connexion au serveur Redis ne nécessite pas de mot de passe, définissez la valeur à truefalse
connections.redisSentinelNodesListe des nœuds Redis Sentinel. Il n'est pas nécessaire de spécifier chaque nœud, 3 suffisent. Vous pouvez spécifier plusieurs valeurs. Il doit être spécifié au format host:port. Utilisé si connections.redisConnectorName est défini sur ioredis[]
connections.redisSentinelGroupNameNom d'un groupe d'instances Redis composé d'un maître et d'un ou plusieurs esclaves. Utilisé si connections.redisConnectorName est défini sur ioredismymaster
connections.redisSentinelExistingSecretNom du secret existant à utiliser pour le mot de passe Redis Sentinel. Doit contenir la clé spécifiée dans connections.redisSentinelSecretKeyName. Le mot de passe de ce secret remplace la valeur du mot de passe défini dans l'objet iooptions de local.json""
connections.redisSentinelSecretKeyNameLe nom de la clé contenant le mot de passe de l'utilisateur Redis Sentinel. Si vous définissez un mot de passe dans redisSentinelPassword, un secret sera automatiquement créé dont le nom de clé sera la valeur définie icisentinel-password
connections.redisSentinelPasswordLe mot de passe défini pour le compte Redis Sentinel. S'il est défini, il a priorité sur connections.redisSentinelExistingSecret. La valeur de ce paramètre remplace la valeur définie dans l'objet iooptions de local.json""
connections.redisSentinelNoPassDéfinit si l'authentification Redis Sentinel sans mot de passe doit être utilisée. Si la connexion à Redis Sentinel ne nécessite pas de mot de passe, définissez la valeur à truetrue
connections.amqpTypeDéfinit le type de serveur AMQP. Les valeurs possibles sont rabbitmq ou activemqrabbitmq
connections.amqpHostL'adresse IP ou le nom du serveur AMQPrabbitmq
connections.amqpPortLe port de connexion au serveur AMQP5672
connections.amqpVhostL'hôte virtuel pour la connexion au serveur AMQP/
connections.amqpUserLe nom d'utilisateur du compte serveur AMQPuser
connections.amqpProtoLe protocole de connexion au serveur AMQPamqp
connections.amqpPasswordMot de passe de l'utilisateur du serveur AMQP. S'il est défini, il a priorité sur connections.amqpExistingSecret""
connections.amqpSecretKeyNameLe nom de la clé contenant le mot de passe de l'utilisateur du serveur AMQPrabbitmq-password
connections.amqpExistingSecretLe nom du secret existant à utiliser pour les mots de passe du serveur AMQP. Doit contenir la clé spécifiée dans connections.amqpSecretKeyNamerabbitmq
persistence.existingClaimNom d'un PVC existant à utiliser. Si non spécifié, un PVC nommé "ds-files" sera créé""
persistence.annotationsDéfinit les annotations qui seront ajoutées en supplément au PVC "ds-files". S'il est défini, il a priorité sur commonAnnotations{}
persistence.storageClassClasse de stockage PVC pour les données ONLYOFFICE Docs et les volumes de configuration d'exécutionnfs
persistence.sizeDemande de stockage PVC pour le volume ONLYOFFICE Docs8Gi
persistence.storageS3Définit si S3 sera utilisé comme stockage de cache. Définissez à true si vous utilisez S3 comme stockage de cachefalse
persistence.runtimeConfig.enabledDéfinit si le PVC doit être utilisé et s'il doit être monté dans les conteneurstrue
persistence.runtimeConfig.existingClaimLe nom du PVC existant utilisé pour stocker la configuration d'exécution. Si non spécifié, un PVC nommé "ds-runtime-config" sera créé""
persistence.runtimeConfig.annotationsDéfinit les annotations qui seront ajoutées en supplément au PVC "ds-runtime-config". S'il est défini, il a priorité sur commonAnnotations{}
persistence.runtimeConfig.sizeDemande de stockage PVC pour le volume de configuration d'exécution1Gi
commonNameSuffixLe nom qui sera ajouté comme suffixe au nom de toutes les ressources créées""
namespaceOverrideLe nom du namespace dans lequel ONLYOFFICE Docs sera déployé. S'il n'est pas défini, le nom sera pris depuis .Release.Namespace""
commonLabelsDéfinit les étiquettes qui seront ajoutées en supplément à toutes les ressources déployées. Vous pouvez également utiliser tpl comme valeur pour la clé{}
commonAnnotationsDéfinit les annotations qui seront ajoutées en supplément à toutes les ressources déployées. Vous pouvez également utiliser tpl comme valeur pour la clé. Certaines ressources peuvent remplacer les valeurs spécifiées ici par les leurs{}
serviceAccount.createActiver la création du ServiceAccountfalse
serviceAccount.nameNom du ServiceAccount à utiliser. S'il n'est pas défini et que serviceAccount.create est true, le nom sera pris depuis .Release.Name ; si serviceAccount.create est false, le nom sera "default"""
serviceAccount.annotationsMap d'annotations à ajouter au ServiceAccount. S'il est défini, il a priorité sur commonAnnotations{}
serviceAccount.automountServiceAccountTokenActiver le montage automatique du ServiceAccountToken sur le serviceAccount créé. Utilisé uniquement si serviceAccount.create est truetrue
license.existingSecretNom du secret existant contenant la licence. Doit contenir la clé license.lic""
license.existingClaimNom du PVC existant dans lequel la licence est stockée. Doit contenir le fichier license.lic""
log.levelDéfinit le type et la gravité d'un événement journalisé. Les valeurs possibles sont ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, MARK, OFFWARN
log.typeDéfinit le format d'un événement journalisé. Les valeurs possibles sont pattern, json, basic, coloured, messagePassThrough, dummypattern
log.patternDéfinit le modèle de journal si log.type=pattern[%d] [%p] %c - %.10000m
wopi.enabledDéfinit si WOPI est activé. Si ce paramètre est activé, les attributs de mise en cache pour le répertoire monté (PVC) doivent être désactivés pour le clientfalse
wopi.keys.generationDéfinit si des clés API doivent être générées. Utilisé si vous définissez wopi.enabled à truetrue
wopi.keys.newKeysExistingSecretNom du secret existant contenant les clés WOPI. Doit contenir les clés WOPI_PRIVATE_KEY, WOPI_PUBLIC_KEY, WOPI_MODULUS_KEY et WOPI_EXPONENT_KEY. Si non défini, de nouvelles clés seront générées et un secret sera créé à partir d'elles""
wopi.keys.oldKeysExistingSecretNom du secret existant contenant les anciennes clés WOPI. Doit contenir les clés WOPI_PRIVATE_KEY_OLD, WOPI_PUBLIC_KEY_OLD, WOPI_MODULUS_KEY_OLD et WOPI_EXPONENT_KEY_OLD. Si non défini, de nouvelles clés seront générées et un secret sera créé à partir d'elles""
metrics.enabledSpécifie si StatsD est activé pour ONLYOFFICE Docsfalse
metrics.hostDéfinit l'hôte d'écoute StatsDstatsd-exporter-prometheus-statsd-exporter
metrics.portDéfinit le port d'écoute StatsD8125
metrics.prefixDéfinit le préfixe des métriques StatsD pour les services backendds.
extraConf.configMapLe nom du ConfigMap contenant le fichier json qui remplace les valeurs par défaut""
extraConf.filenameLe nom du fichier json contenant les valeurs personnalisées. Doit être identique au nom de key dans extraConf.ConfigMaplocal.json
extraThemes.configMapLe nom du ConfigMap contenant le fichier json contenant les thèmes d'interface""
extraThemes.filenameLe nom du fichier json contenant les thèmes d'interface personnalisés. Doit être identique au nom de key dans extraThemes.configMapcustom-themes.json
podAntiAffinity.typeTypes d'anti-affinité de Pod. Valeurs autorisées : soft ou hardsoft
podAntiAffinity.topologyKeyClé d'étiquette de nœud à faire correspondrekubernetes.io/hostname
podAntiAffinity.weightPriorité lors de la sélection du nœud. Elle est comprise entre 1 et 100100
nodeSelectorÉtiquettes de nœuds pour l'attribution des pods. Chaque service ONLYOFFICE Docs peut remplacer les valeurs spécifiées ici par les siennes{}
tolerationsTolérances pour l'attribution des pods. Chaque service ONLYOFFICE Docs peut remplacer les valeurs spécifiées ici par les siennes[]
imagePullSecretsNom du secret du registre d'images de conteneur""
requestFilteringAgent.allowPrivateIPAddressDéfinit si la connexion à une adresse IP privée est autorisée ou non. Les paramètres requestFilteringAgent sont utilisés si JWT est désactivé : jwt.enabled=falsefalse
requestFilteringAgent.allowMetaIPAddressDéfinit si la connexion à une adresse méta est autorisée ou nonfalse
requestFilteringAgent.allowIPAddressListDéfinit la liste des adresses IP autorisées à se connecter. Ces valeurs sont préférées à requestFilteringAgent.denyIPAddressList[]
requestFilteringAgent.denyIPAddressListDéfinit la liste des adresses IP autorisées à se connecter[]
docservice.annotationsDéfinit les annotations qui seront ajoutées en supplément au déploiement Docservice. S'il est défini, il a priorité sur commonAnnotations{}
docservice.podAnnotationsMap d'annotations à ajouter aux pods du déploiement Docservicerollme: "{{ randAlphaNum 5 | quote }}"
docservice.replicasQuantité de réplicas Docservice. Si le paramètre docservice.autoscaling.enabled est activé, il est ignoré2
docservice.updateStrategy.typeType de stratégie de mise à jour du déploiement DocserviceRecreate
docservice.customPodAntiAffinityInterdiction de la planification des pods Docservice par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
docservice.podAffinityDéfinit les règles d'affinité de Pod pour la planification des pods Docservice par nœuds par rapport aux autres pods{}
docservice.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification des pods Docservice par nœuds{}
docservice.nodeSelectorÉtiquettes de nœuds pour l'attribution des pods Docservice. S'il est défini, il a priorité sur nodeSelector{}
docservice.tolerationsTolérances pour l'attribution des pods Docservice. S'il est défini, il a priorité sur tolerations[]
docservice.terminationGracePeriodSecondsLe délai d'arrêt progressif pendant lequel le pod Docservice aura le statut Terminating30
docservice.hostAliasesAjoute des entrées supplémentaires au fichier hosts dans les conteneurs Docservice et Proxy[]
docservice.initContainersDéfinit les conteneurs qui s'exécutent avant les conteneurs docservice et proxy dans le pod de déploiement Docservice. Par exemple, un conteneur qui change le propriétaire du PersistentVolume[]
docservice.image.repositoryDépôt d'images de conteneur Docservice*onlyoffice/docs-docservice-de
docservice.image.tagTag d'image de conteneur Docservice9.0.4-1
docservice.image.pullPolicyPolitique de téléchargement d'image de conteneur DocserviceIfNotPresent
docservice.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur Docservicefalse
docservice.lifecycleHooksDéfinit les hooks de cycle de vie du conteneur Docservice. Il est utilisé pour déclencher des événements à des moments spécifiques du cycle de vie d'un conteneur{}
docservice.resources.requestsLes ressources demandées pour le conteneur Docservice{}
docservice.resources.limitsLes limites de ressources pour le conteneur Docservice{}
docservice.extraEnvVarsUn tableau avec des variables d'environnement supplémentaires pour le conteneur Docservice[]
docservice.extraVolumesUn tableau avec des volumes supplémentaires pour le pod Docservice[]
docservice.extraVolumeMountsUn tableau avec des montages de volumes supplémentaires pour le conteneur Docservice[]
docservice.readinessProbe.enabledActiver readinessProbe pour le conteneur Docservicetrue
docservice.livenessProbe.enabledActiver livenessProbe pour le conteneur Docservicetrue
docservice.startupProbe.enabledActiver startupProbe pour le conteneur Docservicetrue
docservice.autoscaling.enabledActiver la mise à l'échelle automatique du déploiement Docservicefalse
docservice.autoscaling.annotationsDéfinit les annotations qui seront ajoutées en supplément au HPA du déploiement Docservice. S'il est défini, il a priorité sur commonAnnotations{}
docservice.autoscaling.minReplicasNombre minimum de réplicas pour la mise à l'échelle automatique du déploiement Docservice2
docservice.autoscaling.maxReplicasNombre maximum de réplicas pour la mise à l'échelle automatique du déploiement Docservice4
docservice.autoscaling.targetCPU.enabledActiver la mise à l'échelle automatique du déploiement Docservice par pourcentage d'utilisation CPUtrue
docservice.autoscaling.targetCPU.utilizationPercentagePourcentage CPU cible pour la mise à l'échelle automatique du déploiement Docservice70
docservice.autoscaling.targetMemory.enabledActiver la mise à l'échelle automatique du déploiement Docservice par pourcentage d'utilisation mémoirefalse
docservice.autoscaling.targetMemory.utilizationPercentagePourcentage mémoire cible pour la mise à l'échelle automatique du déploiement Docservice70
docservice.autoscaling.customMetricsTypeMétriques de mise à l'échelle automatique personnalisées, supplémentaires ou externes pour le déploiement Docservice[]
docservice.autoscaling.behaviorConfiguration des politiques de comportement de mise à l'échelle du déploiement Docservice pour les champs scaleDown et scaleUp{}
proxy.accessLogDéfinit la directive de format access_log de la configuration nginxoff
proxy.logFormatDéfinit le format des entrées de journal à l'aide de texte et de diverses variables'$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'
proxy.gzipProxiedDéfinit la directive de configuration nginx gzip_proxiedoff
proxy.clientMaxBodySizeDéfinit la directive de configuration nginx client_max_body_size100m
proxy.workerConnectionsDéfinit la directive de configuration nginx worker_connections4096
proxy.secureLinkSecretDéfinit le secret pour la directive de configuration nginx secure_link_md5. Si la valeur est vide, une valeur aléatoire sera générée, qui sera utilisée ultérieurement lors de la mise à jour. Si une valeur est définie, elle sera utilisée""
proxy.secureLinkExistingSecretNom du secret existant à utiliser pour secure_link. S'il est défini, il a priorité sur proxy.secureLinkSecret""
proxy.infoAllowedIPDéfinit les adresses IP pour accéder à la page d'informations[]
proxy.infoAllowedUserDéfinit le nom d'utilisateur pour accéder à la page d'informations. Si non défini, l'authentification de base Nginx ne sera pas appliquée pour accéder à la page d'informations. Pour plus de détails, voir ici""
proxy.infoAllowedPasswordDéfinit le mot de passe utilisateur pour accéder à la page d'informations. Utilisé si proxy.infoAllowedUser est défini. Si la valeur est vide, une valeur aléatoire sera générée, qui sera utilisée ultérieurement lors de la mise à jour. Si une valeur est définie, elle sera utilisée""
proxy.infoAllowedSecretKeyNameLe nom de la clé contenant le mot de passe de l'utilisateur d'authentification info. Utilisé si proxy.infoAllowedUser est définiinfo-auth-password
proxy.infoAllowedExistingSecretNom du secret existant à utiliser pour le mot de passe d'authentification info. Utilisé si proxy.infoAllowedUser est défini. Doit contenir la clé spécifiée dans proxy.infoAllowedSecretKeyName. S'il est défini, il a priorité sur proxy.infoAllowedPassword""
proxy.welcomePage.enabledDéfinit si la page d'accueil sera affichéetrue
proxy.image.repositoryDépôt d'images de conteneur du proxy Docservice*onlyoffice/docs-proxy-de
proxy.image.tagTag d'image de conteneur du proxy Docservice9.0.4-1
proxy.image.pullPolicyPolitique de téléchargement d'image de conteneur du proxy DocserviceIfNotPresent
proxy.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur Proxyfalse
proxy.lifecycleHooksDéfinit les hooks de cycle de vie du conteneur Proxy. Il est utilisé pour déclencher des événements à des moments spécifiques du cycle de vie d'un conteneur{}
proxy.resources.requestsLes ressources demandées pour le conteneur Proxy{}
proxy.resources.limitsLes limites de ressources pour le conteneur Proxy{}
proxy.extraEnvVarsUn tableau avec des variables d'environnement supplémentaires pour le conteneur Proxy[]
proxy.extraVolumeMountsUn tableau avec des montages de volumes supplémentaires pour le conteneur Proxy[]
proxy.readinessProbe.enabledActiver readinessProbe pour le conteneur Proxytrue
proxy.livenessProbe.enabledActiver livenessProbe pour le conteneur Proxytrue
proxy.startupProbe.enabledActiver startupProbe pour le conteneur Proxytrue
converter.annotationsDéfinit les annotations qui seront ajoutées en supplément au déploiement Converter. S'il est défini, il a priorité sur commonAnnotations{}
converter.podAnnotationsMap d'annotations à ajouter aux pods du déploiement Converterrollme: "{{ randAlphaNum 5 | quote }}"
converter.replicasQuantité de réplicas Converter. Si le paramètre converter.autoscaling.enabled est activé, il est ignoré2
converter.updateStrategy.typeType de stratégie de mise à jour du déploiement ConverterRecreate
converter.customPodAntiAffinityInterdiction de la planification des pods Converter par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
converter.podAffinityDéfinit les règles d'affinité de Pod pour la planification des pods Converter par nœuds par rapport aux autres pods{}
converter.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification des pods Converter par nœuds{}
converter.nodeSelectorÉtiquettes de nœuds pour l'attribution des pods Converter. S'il est défini, il a priorité sur nodeSelector{}
converter.tolerationsTolérances pour l'attribution des pods Converter. S'il est défini, il a priorité sur tolerations[]
converter.terminationGracePeriodSecondsLe délai d'arrêt progressif pendant lequel le pod Converter aura le statut Terminating30
converter.hostAliasesAjoute des entrées supplémentaires au fichier hosts dans le conteneur Converter[]
converter.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur Converter dans le pod de déploiement Converter. Par exemple, un conteneur qui change le propriétaire du PersistentVolume[]
converter.image.repositoryDépôt d'images de conteneur Converter*onlyoffice/docs-converter-de
converter.image.tagTag d'image de conteneur Converter9.0.4-1
converter.image.pullPolicyPolitique de téléchargement d'image de conteneur ConverterIfNotPresent
converter.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur Converterfalse
converter.lifecycleHooksDéfinit les hooks de cycle de vie du conteneur Converter. Il est utilisé pour déclencher des événements à des moments spécifiques du cycle de vie d'un conteneur{}
converter.resources.requestsLes ressources demandées pour le conteneur Converter{}
converter.resources.limitsLes limites de ressources pour le conteneur Converter{}
converter.extraEnvVarsUn tableau avec des variables d'environnement supplémentaires pour le conteneur Converter[]
converter.extraVolumesUn tableau avec des volumes supplémentaires pour le pod Converter[]
converter.extraVolumeMountsUn tableau avec des montages de volumes supplémentaires pour le conteneur Converter[]
converter.autoscaling.enabledActiver la mise à l'échelle automatique du déploiement Converterfalse
converter.autoscaling.annotationsDéfinit les annotations qui seront ajoutées en supplément au HPA du déploiement Converter. S'il est défini, il a priorité sur commonAnnotations{}
converter.autoscaling.minReplicasNombre minimum de réplicas pour la mise à l'échelle automatique du déploiement Converter2
converter.autoscaling.maxReplicasNombre maximum de réplicas pour la mise à l'échelle automatique du déploiement Converter16
converter.autoscaling.targetCPU.enabledActiver la mise à l'échelle automatique du déploiement Converter par pourcentage d'utilisation CPUtrue
converter.autoscaling.targetCPU.utilizationPercentagePourcentage CPU cible pour la mise à l'échelle automatique du déploiement Converter70
converter.autoscaling.targetMemory.enabledActiver la mise à l'échelle automatique du déploiement Converter par pourcentage d'utilisation mémoirefalse
converter.autoscaling.targetMemory.utilizationPercentagePourcentage mémoire cible pour la mise à l'échelle automatique du déploiement Converter70
converter.autoscaling.customMetricsTypeMétriques de mise à l'échelle automatique personnalisées, supplémentaires ou externes pour le déploiement Converter[]
converter.autoscaling.behaviorConfiguration des politiques de comportement de mise à l'échelle du déploiement Converter pour les champs scaleDown et scaleUp{}
example.enabledActive l'installation d'Examplefalse
example.annotationsDéfinit les annotations qui seront ajoutées en supplément au StatefulSet Example. S'il est défini, il a priorité sur commonAnnotations{}
example.podAnnotationsMap d'annotations à ajouter au pod Examplerollme: "{{ randAlphaNum 5 | quote }}"
example.updateStrategy.typeType de stratégie de mise à jour du StatefulSet ExampleRollingUpdate
example.customPodAntiAffinityInterdiction de la planification du pod Example par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
example.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod Example par nœuds par rapport aux autres pods{}
example.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod Example par nœuds{}
example.nodeSelectorÉtiquettes de nœuds pour l'attribution des pods Example. S'il est défini, il a priorité sur nodeSelector{}
example.tolerationsTolérances pour l'attribution des pods Example. S'il est défini, il a priorité sur tolerations[]
example.terminationGracePeriodSecondsLe délai d'arrêt progressif pendant lequel le pod Example aura le statut Terminating30
example.hostAliasesAjoute des entrées supplémentaires au fichier hosts dans le conteneur Example[]
example.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur Example dans le pod[]
example.image.repositoryNom d'image de conteneur Exampleonlyoffice/docs-example
example.image.tagTag d'image de conteneur Example9.0.4-1
example.image.pullPolicyPolitique de téléchargement d'image de conteneur ExampleIfNotPresent
example.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur Examplefalse
example.dsUrlAdresse externe d'ONLYOFFICE Docs. Elle ne doit être modifiée que s'il est nécessaire de vérifier le fonctionnement de la conversion dans Example (par ex. http://<documentserver-address>/)/
example.resources.requestsLes ressources demandées pour le conteneur Example{}
example.resources.limitsLes limites de ressources pour le conteneur Example{}
example.extraEnvVarsUn tableau avec des variables d'environnement supplémentaires pour le conteneur Example[]
example.extraConf.configMapLe nom du ConfigMap contenant le fichier json qui remplace les valeurs par défaut. Voir un exemple de création ici""
example.extraConf.filenameLe nom du fichier json contenant les valeurs personnalisées. Doit être identique au nom de key dans example.extraConf.ConfigMaplocal.json
example.extraVolumesUn tableau avec des volumes supplémentaires pour le pod Example[]
example.extraVolumeMountsUn tableau avec des montages de volumes supplémentaires pour le conteneur Example[]
jwt.enabledSpécifie l'activation de la validation du jeton JSON Web par ONLYOFFICE Docs. Commun aux requêtes entrantes et sortantestrue
jwt.secretDéfinit la clé secrète pour valider le jeton JSON Web dans la requête à ONLYOFFICE Docs. Commune aux requêtes entrantes et sortantes. Si la valeur est vide, une valeur aléatoire sera générée, qui sera utilisée ultérieurement lors de la mise à jour. Si une valeur est définie, elle sera utilisée""
jwt.headerDéfinit l'en-tête HTTP qui sera utilisé pour envoyer le jeton JSON Web. Commun aux requêtes entrantes et sortantesAuthorization
jwt.inBodySpécifie l'activation de la validation du jeton dans le corps de la requête à ONLYOFFICE Docsfalse
jwt.inboxParamètres de validation du jeton JSON Web pour les requêtes entrantes uniquement. Si non spécifié, les valeurs des paramètres communs jwt sont utilisées{}
jwt.outboxParamètres de validation du jeton JSON Web pour les requêtes sortantes uniquement. Si non spécifié, les valeurs des paramètres communs jwt sont utilisées{}
jwt.existingSecretLe nom d'un secret existant contenant des variables pour jwt. Si non spécifié, un secret nommé jwt sera créé""
service.existingLe nom d'un service existant pour ONLYOFFICE Docs. Si non spécifié, un service nommé documentserver sera créé""
service.annotationsMap d'annotations à ajouter au service ONLYOFFICE Docs. S'il est défini, il a priorité sur commonAnnotations{}
service.typeType de service ONLYOFFICE DocsClusterIP
service.portPort de service ONLYOFFICE Docs8888
service.sessionAffinityAffinité de session pour le service ONLYOFFICE Docs. S'il n'est pas défini, None sera défini comme valeur par défaut""
service.sessionAffinityConfigConfiguration de l'affinité de session du service ONLYOFFICE Docs. Utilisé si service.sessionAffinity est défini{}
ingress.enabledActiver la création d'un ingress pour ONLYOFFICE Docsfalse
ingress.annotationsMap d'annotations à ajouter à l'Ingress. S'il est défini, il a priorité sur commonAnnotationsnginx.ingress.kubernetes.io/proxy-body-size: 100m
ingress.ingressClassNameUtilisé pour référencer l'IngressClass à utiliser pour implémenter cet Ingressnginx
ingress.controllerNameUtilisé pour distinguer les contrôleurs avec le même IngressClassName mais de différents fournisseursingress-nginx
ingress.hostNom d'hôte Ingress pour l'ingress ONLYOFFICE Docs""
ingress.tenantsNoms d'hôte Ingress si vous devez utiliser plusieurs noms. Par exemple, pour la multilocation. S'il est défini, il a priorité sur ingress.host. Si ingress.ssl.enabled est défini à true, il est supposé que le certificat pour tous les domaines spécifiés est conservé dans le secret ingress.ssl.secret[]
ingress.ssl.enabledActiver SSL pour l'ingress ONLYOFFICE Docsfalse
ingress.ssl.secretNom du secret SSL à monter dans l'Ingresstls
ingress.pathSpécifie le chemin où ONLYOFFICE Docs sera disponible/
ingress.pathTypeSpécifie le type de chemin pour la ressource ingress ONLYOFFICE Docs. Les valeurs autorisées sont Exact, Prefix ou ImplementationSpecificImplementationSpecific
ingress.letsencrypt.enabledActivation de la création de demande de certificat dans Let's Encrypt. Utilisé si ingress.enabled est défini à truefalse
ingress.letsencrypt.clusterIssuerNameNom du ClusterIssuerletsencrypt-prod
ingress.letsencrypt.emailVotre adresse e-mail utilisée pour l'enregistrement ACME""
ingress.letsencrypt.serverL'adresse du serveur Let's Encrypt auquel les demandes de certificats seront envoyéeshttps://acme-v02.api.letsencrypt.org/directory
ingress.letsencrypt.secretNameNom d'un secret utilisé pour stocker la clé privée du compte ACMEletsencrypt-prod-private-key
openshift.route.enabledActiver la création d'une Route OpenShift pour ONLYOFFICE Docsfalse
openshift.route.annotationsMap d'annotations à ajouter à la Route OpenShift. S'il est défini, il a priorité sur commonAnnotations{}
openshift.route.hostNom d'hôte de la Route OpenShift pour la route ONLYOFFICE Docs""
openshift.route.pathSpécifie le chemin où ONLYOFFICE Docs sera disponible/
openshift.route.wildcardPolicyLa politique de gestion des sous-domaines génériques dans la Route OpenShift. Les valeurs autorisées sont None, SubdomainNone
grafana.enabledActiver l'installation des ressources requises pour la visualisation des métriques dans Grafanafalse
grafana.namespaceLe nom du namespace dans lequel les composants RBAC et les ressources Grafana seront déployés. S'il n'est pas défini, le nom sera pris depuis namespaceOverride si défini, ou .Release.Namespace""
grafana.ingress.enabledActiver la création d'un ingress pour Grafana. Utilisé si vous définissez grafana.enabled à true et souhaitez utiliser Nginx Ingress pour accéder à Grafanafalse
grafana.ingress.annotationsMap d'annotations à ajouter à l'Ingress Grafana. S'il est défini, il a priorité sur commonAnnotationsnginx.ingress.kubernetes.io/proxy-body-size: 100m
grafana.dashboard.enabledActiver l'installation de tableaux de bord Grafana prêts à l'emploi. Utilisé si vous définissez grafana.enabled à truefalse
podSecurityContext.enabledActiver le contexte de sécurité pour les podsfalse
podSecurityContext.converter.fsGroupDéfinit l'ID de groupe auquel le propriétaire et les permissions de tous les fichiers dans les volumes sont modifiés lors du montage dans le pod Converter101
podSecurityContext.docservice.fsGroupDéfinit l'ID de groupe auquel le propriétaire et les permissions de tous les fichiers dans les volumes sont modifiés lors du montage dans le pod Docservice101
podSecurityContext.jobs.fsGroupDéfinit l'ID de groupe auquel le propriétaire et les permissions de tous les fichiers dans les volumes sont modifiés lors du montage dans les pods créés par des Jobs101
podSecurityContext.example.fsGroupDéfinit l'ID de groupe auquel le propriétaire et les permissions de tous les fichiers dans les volumes sont modifiés lors du montage dans le pod Example1001
podSecurityContext.tests.fsGroupDéfinit l'ID de groupe auquel le propriétaire et les permissions de tous les fichiers dans les volumes sont modifiés lors du montage dans le pod Test101
webProxy.enabledSpécifie si un proxy Web est utilisé dans votre réseau pour accéder aux pods du cluster k8s vers Internetfalse
webProxy.httpAdresse du proxy Web pour le trafic HTTPhttp://proxy.example.com
webProxy.httpsAdresse du proxy Web pour le trafic HTTPShttps://proxy.example.com
webProxy.noProxyModèles d'adresses IP, de noms de services k8s ou de noms de domaine qui ne doivent pas utiliser le proxy Weblocalhost,127.0.0.1,docservice
upgrade.job.enabledActiver l'exécution du job pré-mise à jour avant la mise à jour d'ONLYOFFICE Docstrue
upgrade.job.annotationsDéfinit les annotations qui seront ajoutées en supplément au job pré-mise à jour. S'il est défini, il a priorité sur commonAnnotations{}
upgrade.job.podAnnotationsMap d'annotations à ajouter au pod pré-mise à jour{}
upgrade.job.customPodAntiAffinityInterdiction de la planification du pod du job pré-mise à jour par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
upgrade.job.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod du job pré-mise à jour par nœuds par rapport aux autres pods{}
upgrade.job.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod du job pré-mise à jour par nœuds{}
upgrade.job.nodeSelectorÉtiquettes de nœuds pour l'attribution du pod du job pré-mise à jour. S'il est défini, il a priorité sur nodeSelector{}
upgrade.job.tolerationsTolérances pour l'attribution du pod du job pré-mise à jour. S'il est défini, il a priorité sur tolerations[]
upgrade.job.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur pré-mise à jour dans le pod[]
upgrade.job.image.repositoryDépôt d'images du job de mise à jouronlyoffice/docs-utils
upgrade.job.image.tagTag d'image du job de mise à jour9.0.4-1
upgrade.job.image.pullPolicyPolitique de téléchargement d'image du job de mise à jourIfNotPresent
upgrade.job.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur pré-mise à jourfalse
upgrade.job.resources.requestsLes ressources demandées pour le conteneur du job pré-mise à jour{}
upgrade.job.resources.limitsLes limites de ressources pour le conteneur du job pré-mise à jour{}
upgrade.existingConfigmap.tblRemove.nameLe nom du ConfigMap existant contenant le fichier SQL pour supprimer les tables de la base de donnéesremove-db-scripts
upgrade.existingConfigmap.tblRemove.keyNameLe nom du fichier SQL contenant les instructions pour supprimer les tables de la base de données. Doit être identique au nom de key dans upgrade.existingConfigmap.tblRemove.nameremovetbl.sql
upgrade.existingConfigmap.tblCreate.nameLe nom du ConfigMap existant contenant le fichier SQL pour créer les tables de la base de donnéesinit-db-scripts
upgrade.existingConfigmap.tblCreate.keyNameLe nom du fichier SQL contenant les instructions pour créer les tables de la base de données. Doit être identique au nom de key dans upgrade.existingConfigmap.tblCreate.namecreatedb.sql
upgrade.existingConfigmap.dsStopLe nom du ConfigMap existant contenant le script de mise à jour d'ONLYOFFICE Docs. S'il est défini, les quatre paramètres précédents sont ignorés. Doit contenir une clé stop.sh""
rollback.job.enabledActiver l'exécution du job pré-rollback avant le rollback d'ONLYOFFICE Docstrue
rollback.job.annotationsDéfinit les annotations qui seront ajoutées en supplément au job pré-rollback. S'il est défini, il a priorité sur commonAnnotations{}
rollback.job.podAnnotationsMap d'annotations à ajouter au pod pré-rollback{}
rollback.job.customPodAntiAffinityInterdiction de la planification du pod du job pré-rollback par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
rollback.job.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod du job pré-rollback par nœuds par rapport aux autres pods{}
rollback.job.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod du job pré-rollback par nœuds{}
rollback.job.nodeSelectorÉtiquettes de nœuds pour l'attribution du pod du job pré-rollback. S'il est défini, il a priorité sur nodeSelector{}
rollback.job.tolerationsTolérances pour l'attribution du pod du job pré-rollback. S'il est défini, il a priorité sur tolerations[]
rollback.job.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur pré-rollback dans le pod[]
rollback.job.image.repositoryDépôt d'images du job de rollbackonlyoffice/docs-utils
rollback.job.image.tagTag d'image du job de rollback9.0.4-1
rollback.job.image.pullPolicyPolitique de téléchargement d'image du job de rollbackIfNotPresent
rollback.job.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur pré-rollbackfalse
rollback.job.resources.requestsLes ressources demandées pour le conteneur du job de rollback{}
rollback.job.resources.limitsLes limites de ressources pour le conteneur du job de rollback{}
rollback.existingConfigmap.tblRemove.nameLe nom du ConfigMap existant contenant le fichier SQL pour supprimer les tables de la base de donnéesremove-db-scripts
rollback.existingConfigmap.tblRemove.keyNameLe nom du fichier SQL contenant les instructions pour supprimer les tables de la base de données. Doit être identique au nom de key dans rollback.existingConfigmap.tblRemove.nameremovetbl.sql
rollback.existingConfigmap.tblCreate.nameLe nom du ConfigMap existant contenant le fichier SQL pour créer les tables de la base de donnéesinit-db-scripts
rollback.existingConfigmap.tblCreate.keyNameLe nom du fichier SQL contenant les instructions pour créer les tables de la base de données. Doit être identique au nom de key dans rollback.existingConfigmap.tblCreate.namecreatedb.sql
rollback.existingConfigmap.dsStopLe nom du ConfigMap existant contenant le script de rollback d'ONLYOFFICE Docs. S'il est défini, les quatre paramètres précédents sont ignorés. Doit contenir une clé stop.sh""
delete.job.enabledActiver l'exécution du job pré-suppression avant la suppression d'ONLYOFFICE Docstrue
delete.job.annotationsDéfinit les annotations qui seront ajoutées en supplément au job pré-suppression. S'il est défini, il a priorité sur commonAnnotations{}
delete.job.podAnnotationsMap d'annotations à ajouter au pod pré-suppression{}
delete.job.customPodAntiAffinityInterdiction de la planification du pod du job pré-suppression par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
delete.job.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod du job pré-suppression par nœuds par rapport aux autres pods{}
delete.job.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod du job pré-suppression par nœuds{}
delete.job.nodeSelectorÉtiquettes de nœuds pour l'attribution du pod du job pré-suppression. S'il est défini, il a priorité sur nodeSelector{}
delete.job.tolerationsTolérances pour l'attribution du pod du job pré-suppression. S'il est défini, il a priorité sur tolerations[]
delete.job.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur pré-suppression dans le pod[]
delete.job.image.repositoryDépôt d'images du job de suppressiononlyoffice/docs-utils
delete.job.image.tagTag d'image du job de suppression9.0.4-1
delete.job.image.pullPolicyPolitique de téléchargement d'image du job de suppressionIfNotPresent
delete.job.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur pré-suppressionfalse
delete.job.resources.requestsLes ressources demandées pour le conteneur du job de suppression{}
delete.job.resources.limitsLes limites de ressources pour le conteneur du job de suppression{}
delete.existingConfigmap.tblRemove.nameLe nom du ConfigMap existant contenant le fichier SQL pour supprimer les tables de la base de donnéesremove-db-scripts
delete.existingConfigmap.tblRemove.keyNameLe nom du fichier SQL contenant les instructions pour supprimer les tables de la base de données. Doit être identique au nom de key dans delete.existingConfigmap.tblRemove.nameremovetbl.sql
delete.existingConfigmap.dsStopLe nom du ConfigMap existant contenant le script de suppression d'ONLYOFFICE Docs. S'il est défini, les deux paramètres précédents sont ignorés. Doit contenir une clé stop.sh""
install.job.enabledActiver l'exécution du job pré-installation avant l'installation d'ONLYOFFICE Docstrue
install.job.annotationsDéfinit les annotations qui seront ajoutées en supplément au job pré-installation. S'il est défini, il a priorité sur commonAnnotations{}
install.job.podAnnotationsMap d'annotations à ajouter au pod pré-installation{}
install.job.customPodAntiAffinityInterdiction de la planification du pod du job pré-installation par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
install.job.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod du job pré-installation par nœuds par rapport aux autres pods{}
install.job.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod du job pré-installation par nœuds{}
install.job.nodeSelectorÉtiquettes de nœuds pour l'attribution du pod du job pré-installation. S'il est défini, il a priorité sur nodeSelector{}
install.job.tolerationsTolérances pour l'attribution du pod du job pré-installation. S'il est défini, il a priorité sur tolerations[]
install.job.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur pré-installation dans le pod[]
install.job.image.repositoryDépôt d'images du job pré-installation ONLYOFFICE Docsonlyoffice/docs-utils
install.job.image.tagTag d'image du job pré-installation ONLYOFFICE Docs9.0.4-1
install.job.image.pullPolicyPolitique de téléchargement d'image du job pré-installation ONLYOFFICE DocsIfNotPresent
install.job.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur pré-installationfalse
install.job.resources.requestsLes ressources demandées pour le conteneur du job pré-installation{}
install.job.resources.limitsLes limites de ressources pour le conteneur du job pré-installation{}
install.existingConfigmap.tblCreate.nameLe nom du ConfigMap existant contenant le fichier SQL pour créer les tables de la base de donnéesinit-db-scripts
install.existingConfigmap.tblCreate.keyNameLe nom du fichier SQL contenant les instructions pour créer les tables de la base de données. Doit être identique au nom de key dans install.existingConfigmap.tblCreate.namecreatedb.sql
install.existingConfigmap.initdbLe nom du ConfigMap existant contenant le script initdb. S'il est défini, les deux paramètres précédents sont ignorés. Doit contenir une clé initdb.sh""
clearCache.job.enabledActiver l'exécution du job Clear Cache après la mise à jour d'ONLYOFFICE Docs. Le job Clear Cache dispose d'un hook post-upgrade qui s'exécute après la mise à niveau de toutes les ressources dans Kubernetes. Il vide le répertoire de cachetrue
clearCache.job.annotationsDéfinit les annotations qui seront ajoutées en supplément au job Clear Cache. S'il est défini, il a priorité sur commonAnnotations{}
clearCache.job.podAnnotationsMap d'annotations à ajouter au pod Clear Cache{}
clearCache.job.customPodAntiAffinityInterdiction de la planification du pod du job Clear Cache par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
clearCache.job.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod du job Clear Cache par nœuds par rapport aux autres pods{}
clearCache.job.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod du job Clear Cache par nœuds{}
clearCache.job.nodeSelectorÉtiquettes de nœuds pour l'attribution du pod du job Clear Cache. S'il est défini, il a priorité sur nodeSelector{}
clearCache.job.tolerationsTolérances pour l'attribution du pod du job Clear Cache. S'il est défini, il a priorité sur tolerations[]
clearCache.job.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur Clear Cache dans le pod[]
clearCache.job.image.repositoryDépôt d'images du job Clear Cache ONLYOFFICE Docsonlyoffice/docs-utils
clearCache.job.image.tagTag d'image du job Clear Cache ONLYOFFICE Docs9.0.4-1
clearCache.job.image.pullPolicyPolitique de téléchargement d'image du job Clear Cache ONLYOFFICE DocsIfNotPresent
clearCache.job.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur Clear Cachefalse
clearCache.job.resources.requestsLes ressources demandées pour le conteneur du job Clear Cache{}
clearCache.job.resources.limitsLes limites de ressources pour le conteneur du job Clear Cache{}
clearCache.existingConfigmap.nameLe nom du ConfigMap existant contenant le script personnalisé de vidage du répertoire de cache. S'il est défini, le configmap par défaut ne sera pas créé""
clearCache.existingConfigmap.keyNameLe nom du script contenant les instructions pour vider le répertoire de cache. Doit être identique au nom de key dans clearCache.existingConfigmap.name si un script personnalisé est utiliséclearCache.sh
grafanaDashboard.job.annotationsDéfinit les annotations qui seront ajoutées en supplément au job Grafana Dashboard. S'il est défini, il a priorité sur commonAnnotations{}
grafanaDashboard.job.podAnnotationsMap d'annotations à ajouter au pod Grafana Dashboard{}
grafanaDashboard.job.customPodAntiAffinityInterdiction de la planification du pod du job Grafana Dashboard par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
grafanaDashboard.job.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod du job Grafana Dashboard par nœuds par rapport aux autres pods{}
grafanaDashboard.job.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod du job Grafana Dashboard par nœuds{}
grafanaDashboard.job.nodeSelectorÉtiquettes de nœuds pour l'attribution du pod du job Grafana Dashboard. S'il est défini, il a priorité sur nodeSelector{}
grafanaDashboard.job.tolerationsTolérances pour l'attribution du pod du job Grafana Dashboard. S'il est défini, il a priorité sur tolerations[]
grafanaDashboard.job.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur Grafana Dashboard dans le pod[]
grafanaDashboard.job.image.repositoryDépôt d'images du job Grafana Dashboard ONLYOFFICE Docsonlyoffice/docs-utils
grafanaDashboard.job.image.tagTag d'image du job Grafana Dashboard ONLYOFFICE Docs9.0.4-1
grafanaDashboard.job.image.pullPolicyPolitique de téléchargement d'image du job Grafana Dashboard ONLYOFFICE DocsIfNotPresent
grafanaDashboard.job.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur Grafana Dashboardfalse
grafanaDashboard.job.resources.requestsLes ressources demandées pour le conteneur du job Grafana Dashboard{}
grafanaDashboard.job.resources.limitsLes limites de ressources pour le conteneur du job Grafana Dashboard{}
wopiKeysGeneration.job.annotationsDéfinit les annotations qui seront ajoutées en supplément au job Wopi Keys Generation. S'il est défini, il a priorité sur commonAnnotations{}
wopiKeysGeneration.job.podAnnotationsMap d'annotations à ajouter au pod Wopi Keys Generation{}
wopiKeysGeneration.job.customPodAntiAffinityInterdiction de la planification du pod du job Wopi Keys Generation par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
wopiKeysGeneration.job.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod du job Wopi Keys Generation par nœuds par rapport aux autres pods{}
wopiKeysGeneration.job.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod du job Wopi Keys Generation par nœuds{}
wopiKeysGeneration.job.nodeSelectorÉtiquettes de nœuds pour l'attribution du pod du job Wopi Keys Generation. S'il est défini, il a priorité sur nodeSelector{}
wopiKeysGeneration.job.tolerationsTolérances pour l'attribution du pod du job Wopi Keys Generation. S'il est défini, il a priorité sur tolerations[]
wopiKeysGeneration.job.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur Wopi Keys Generation dans le pod[]
wopiKeysGeneration.job.image.repositoryDépôt d'images du job Wopi Keys Generation ONLYOFFICE Docsonlyoffice/docs-utils
wopiKeysGeneration.job.image.tagTag d'image du job Wopi Keys Generation ONLYOFFICE Docs9.0.4-1
wopiKeysGeneration.job.image.pullPolicyPolitique de téléchargement d'image du job Wopi Keys Generation ONLYOFFICE DocsIfNotPresent
wopiKeysGeneration.job.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur Wopi Keys Generationfalse
wopiKeysGeneration.job.resources.requestsLes ressources demandées pour le conteneur du job Wopi Keys Generation{}
wopiKeysGeneration.job.resources.limitsLes limites de ressources pour le conteneur du job Wopi Keys Generation{}
wopiKeysDeletion.job.enabledActiver l'exécution du job Wopi Keys Deletion avant la suppression d'ONLYOFFICE Docs. Il supprime les secrets WOPI générés automatiquement. Il est exécuté si wopi.enabled, wopi.keys.generation et wopiKeysDeletion.job.enabled sont définis à truetrue
wopiKeysDeletion.job.annotationsDéfinit les annotations qui seront ajoutées en supplément au job Wopi Keys Deletion. S'il est défini, il a priorité sur commonAnnotations{}
wopiKeysDeletion.job.podAnnotationsMap d'annotations à ajouter au pod Wopi Keys Deletion{}
wopiKeysDeletion.job.customPodAntiAffinityInterdiction de la planification du pod du job Wopi Keys Deletion par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
wopiKeysDeletion.job.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod du job Wopi Keys Deletion par nœuds par rapport aux autres pods{}
wopiKeysDeletion.job.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod du job Wopi Keys Deletion par nœuds{}
wopiKeysDeletion.job.nodeSelectorÉtiquettes de nœuds pour l'attribution du pod du job Wopi Keys Deletion. S'il est défini, il a priorité sur nodeSelector{}
wopiKeysDeletion.job.tolerationsTolérances pour l'attribution du pod du job Wopi Keys Deletion. S'il est défini, il a priorité sur tolerations[]
wopiKeysDeletion.job.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur Wopi Keys Deletion dans le pod[]
wopiKeysDeletion.job.image.repositoryDépôt d'images du job Wopi Keys Deletion ONLYOFFICE Docsonlyoffice/docs-utils
wopiKeysDeletion.job.image.tagTag d'image du job Wopi Keys Deletion ONLYOFFICE Docs9.0.4-1
wopiKeysDeletion.job.image.pullPolicyPolitique de téléchargement d'image du job Wopi Keys Deletion ONLYOFFICE DocsIfNotPresent
wopiKeysDeletion.job.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur Wopi Keys Deletionfalse
wopiKeysDeletion.job.resources.requestsLes ressources demandées pour le conteneur du job Wopi Keys Deletion{}
wopiKeysDeletion.job.resources.limitsLes limites de ressources pour le conteneur du job Wopi Keys Deletion{}
tests.enabledActiver la création des ressources nécessaires pour les tests de lancement d'ONLYOFFICE Docs et les tests de disponibilité des dépendances connectées. Ces ressources seront utilisées lors de l'exécution de la commande helm testtrue
tests.annotationsDéfinit les annotations qui seront ajoutées en supplément au pod Test. S'il est défini, il a priorité sur commonAnnotations{}
tests.customPodAntiAffinityInterdiction de la planification du pod Test par rapport aux autres pods contenant les étiquettes spécifiées sur le même nœud{}
tests.podAffinityDéfinit les règles d'affinité de Pod pour la planification du pod Test par nœuds par rapport aux autres pods{}
tests.nodeAffinityDéfinit les règles d'affinité de nœud pour la planification du pod Test par nœuds{}
tests.nodeSelectorÉtiquettes de nœuds pour l'attribution du pod Test. S'il est défini, il a priorité sur nodeSelector{}
tests.tolerationsTolérances pour l'attribution du pod Test. S'il est défini, il a priorité sur tolerations[]
tests.initContainersDéfinit les conteneurs qui s'exécutent avant le conteneur Test dans le pod[]
tests.image.repositoryNom d'image de conteneur Testonlyoffice/docs-utils
tests.image.tagTag d'image de conteneur Test9.0.4-1
tests.image.pullPolicyPolitique de téléchargement d'image de conteneur TestIfNotPresent
tests.containerSecurityContext.enabledActiver le contexte de sécurité pour le conteneur Testfalse
tests.resources.requestsLes ressources demandées pour le conteneur Test{}
tests.resources.limitsLes limites de ressources pour le conteneur Test{}
  • *Remarque : Le préfixe -de est spécifié dans la valeur du dépôt d'images, ce qui indique le type de solution. Options possibles :

    • -de. Pour la Developer Edition commerciale
    • -ee. Pour l'Enterprise Edition commerciale

    La valeur par défaut de ce paramètre fait référence à ONLYOFFICE Document Server Developer Edition. Pour en savoir plus sur cette édition et la comparer avec d'autres éditions, veuillez consulter le tableau comparatif sur cette page.

5. Détails de configuration et d'installation​

  1. Déploiement de l'exemple (optionnel)

    Important

    Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous n'avez pas besoin de déployer l'exemple.

    Pour déployer l'exemple, définissez le paramètre example.enabled à true :

    $ helm install documentserver onlyoffice/docs --set example.enabled=true
  2. Déploiement des métriques (optionnel)

    Important

    Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous n'avez pas besoin de déployer les métriques.

    Pour déployer les métriques, définissez metrics.enabled à true :

    $ helm install documentserver onlyoffice/docs --set metrics.enabled=true

    Si vous souhaitez utiliser Grafana pour visualiser les métriques, définissez grafana.enabled à true. Si vous souhaitez utiliser Nginx Ingress pour accéder à Grafana, définissez grafana.ingress.enabled à true :

    $ helm install documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.ingress.enabled=true
  3. Exposer ONLYOFFICE Docs

    1. Exposer ONLYOFFICE Docs via Service (HTTP uniquement)

      remarque

      Vous devez ignorer cette étape si vous allez exposer ONLYOFFICE Docs via HTTPS.

      Ce type d'exposition crée un équilibreur de charge pour accéder à ONLYOFFICE Docs. Utilisez ce type si vous utilisez la terminaison TLS externe et n'avez pas d'autre application web dans le cluster k8s.

      Pour exposer ONLYOFFICE Docs via service, définissez le paramètre service.type à LoadBalancer :

      $ helm install documentserver onlyoffice/docs --set service.type=LoadBalancer,service.port=80

      Exécutez la commande suivante pour obtenir l'IP du service documentserver :

      $ kubectl get service documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"

      Ensuite, ONLYOFFICE Docs sera disponible sur http://DOCUMENTSERVER-SERVICE-IP/.

      Si l'IP du service est vide, essayez d'obtenir le nom d'hôte du service documentserver :

      $ kubectl get service documentserver -o jsonpath="{.status.loadBalancer.ingress[*].hostname}"

      Dans ce cas, ONLYOFFICE Docs sera disponible sur http://DOCUMENTSERVER-SERVICE-HOSTNAME/.

    2. Exposer ONLYOFFICE Docs via Ingress

      Premièrement, installez le contrôleur Kubernetes Nginx Ingress :

      $ helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true,controller.replicaCount=2
      remarque

      Pour activer l'exposition des métriques ingress-nginx à Prometheus, exécutez :

      $ helm install nginx-ingress -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/ingress_values.yaml ingress-nginx/ingress-nginx

      Consultez plus de détails sur l'installation de Nginx Ingress via Helm ici.

      Choisissez ensuite votre méthode d'exposition :

      • Via HTTP

        remarque

        Vous devez ignorer ceci si vous allez exposer ONLYOFFICE Docs via HTTPS.

        $ helm install documentserver onlyoffice/docs --set ingress.enabled=true

        Obtenez l'IP de l'ingress :

        $ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"

        ONLYOFFICE Docs sera disponible sur http://DOCUMENTSERVER-INGRESS-IP/ (ou utilisez le nom d'hôte si l'IP est vide).

      • Via HTTPS (terminaison TLS)

        Créez le secret tls avec votre certificat SSL :

        $ kubectl create secret generic tls \
        --from-file=./tls.crt \
        --from-file=./tls.key
        $ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.ssl.enabled=true,ingress.host=example.com

        Associez l'IP ou le nom d'hôte de l'ingress à votre nom de domaine via votre fournisseur DNS. Ensuite, ONLYOFFICE Docs sera disponible sur https://your-domain-name/.

      • Via HTTPS avec Let's Encrypt

        $ helm repo add jetstack https://charts.jetstack.io
        $ helm repo update
        $ helm install cert-manager --version v1.17.4 jetstack/cert-manager \
        --namespace cert-manager \
        --create-namespace \
        --set crds.enabled=true \
        --set crds.keep=false

        Installez ou mettez à niveau ensuite ONLYOFFICE Docs en définissant ingress.enabled, ingress.ssl.enabled, ingress.letsencrypt.enabled à true, et en spécifiant vos valeurs pour ingress.letsencrypt.email et ingress.host (ou ingress.tenants pour plusieurs domaines).

      • Via un chemin virtuel

        Définissez les paramètres ingress.enabled, ingress.host et ingress.path :

        $ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.host=your-domain-name,ingress.path=/docs

        Contrôleurs d'ingress pris en charge : Ingress NGINX by Kubernetes, NGINX Ingress by NGINX, HAProxy Ingress by HAProxy.

        Pour Ingress NGINX by Kubernetes, ajoutez le modèle (/|$)(.*) à ingress.path, par ex. /docs(/|$)(.*).

    3. Exposer ONLYOFFICE Docs via une route dans OpenShift

      $ helm install documentserver onlyoffice/docs --set openshift.route.enabled=true,openshift.route.host=your-domain-name,openshift.route.path=/docs

      Pour la terminaison TLS, ajoutez manuellement des certificats à la route via la console web OpenShift.

6. Mettre à l'échelle ONLYOFFICE Docs​

Important

Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si vous souhaitez utiliser les paramètres de déploiement par défaut.

  1. Mise à l'échelle automatique horizontale des pods

    Vous pouvez activer la mise à l'échelle automatique afin que le nombre de réplicas des déploiements docservice et converter soit calculé automatiquement en fonction des valeurs et du type de métriques.

    Pour les métriques de ressources, l'API metrics.k8s.io doit être enregistrée, ce qui est généralement fourni par metrics-server. Elle peut être lancée en tant qu'add-on de cluster.

    Pour activer HPA pour le déploiement docservice, spécifiez le paramètre docservice.autoscaling.enabled=true. De même, pour activer HPA pour le déploiement converter, spécifiez converter.autoscaling.enabled=true. Dans les deux cas, le paramètre replicas correspondant est ignoré et le nombre de réplicas est contrôlé par HPA.

    Pour plus d'informations sur la mise à l'échelle automatique horizontale des pods, voir ici. Pour les autres paramètres de mise à l'échelle automatique configurables, consultez le tableau Paramètres.

  2. Mise à l'échelle manuelle

    Les déploiements docservice et converter sont composés de 2 pods chacun par défaut.

    Pour mettre à l'échelle le déploiement docservice :

    $ kubectl scale -n default deployment docservice --replicas=POD_COUNT

    Pour mettre à l'échelle le déploiement converter :

    $ kubectl scale -n default deployment converter --replicas=POD_COUNT

7. Mettre à jour ONLYOFFICE Docs​

Pour mettre à jour, définissez les paramètres de mise à niveau. Par exemple :

$ helm upgrade documentserver onlyoffice/docs \
--set docservice.image.tag=[version]
remarque

Vous devez également spécifier les paramètres qui ont été spécifiés lors de l'installation.

Ou modifiez le fichier values.yaml et exécutez :

$ helm upgrade documentserver -f values.yaml onlyoffice/docs

La commande helm upgrade exécute un hook qui arrête ONLYOFFICE Docs et nettoie la base de données. Le temps d'exécution par défaut du hook est de 300 s. Pour le modifier :

$ helm upgrade documentserver -f values.yaml onlyoffice/docs --timeout 15m
remarque

Lors de la mise à niveau dans un cluster k8s privé derrière un proxy Web ou sans accès Internet, consultez les notes ci-dessous.

Pour mettre à jour tout paramètre autre que la version d'ONLYOFFICE Docs, exécutez helm upgrade sans hooks :

$ helm upgrade documentserver onlyoffice/docs --set jwt.enabled=false --no-hooks

Pour annuler les mises à jour :

$ helm rollback documentserver
remarque

Lors du rollback dans un cluster k8s privé, consultez les notes ci-dessous.

8. Arrêter ONLYOFFICE Docs​

Important

Cette étape est optionnelle.

Pour effectuer l'arrêt, exécutez la commande suivante :

$ kubectl apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/shutdown-ds.yaml -n <NAMESPACE>

Où <NAMESPACE> est le namespace dans lequel ONLYOFFICE Docs est installé. La valeur par défaut est default si non spécifiée. Par exemple :

$ kubectl apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/shutdown-ds.yaml -n onlyoffice

Après que le pod shutdown-ds s'est exécuté avec succès, supprimez le Job :

$ kubectl delete job shutdown-ds -n <NAMESPACE>

Pour redémarrer ONLYOFFICE Docs après l'arrêt, redémarrez les pods docservice et converter :

$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>

9. Mettre à jour votre licence ONLYOFFICE Docs​

Important

Cette étape est optionnelle.

Depuis la version v5.1.1, vous pouvez mettre à jour la licence en recréant le secret sans redémarrer les pods. Pour mettre à jour la licence :

  • Placez le nouveau fichier license.lic dans un répertoire.

  • Exécutez les commandes suivantes :

    $ kubectl delete secret [SECRET_LICENSE_NAME] -n <NAMESPACE>
    $ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.lic -n <NAMESPACE>

    Où SECRET_LICENSE_NAME est le nom du secret existant contenant une licence.

Le serveur de documents relira automatiquement la nouvelle licence.

MÉTHODE OBSOLÈTE

Redémarrez les pods docservice et converter :

$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>

10. Test de fonctionnement d'ONLYOFFICE Docs​

Important

Cette étape est optionnelle.

Testez la disponibilité d'ONLYOFFICE Docs et l'accès aux dépendances connectées :

$ helm test documentserver -n <NAMESPACE>

La sortie doit contenir :

Phase: Succeeded

Pour afficher le journal de test :

$ kubectl logs -f test-ds -n <NAMESPACE>

Après les tests, supprimez le pod test-ds :

$ kubectl delete pod test-ds -n <NAMESPACE>
remarque

Ces tests sont fournis à titre informatif uniquement et ne peuvent pas garantir une disponibilité à 100 %. Pour des informations détaillées, consultez les journaux de l'application.

11. Exécuter des Jobs dans un cluster k8s privé​

Important

Cette étape est optionnelle. Vous pouvez l'ignorer entièrement si votre cluster dispose d'un accès Internet sans restriction.

Depuis la version 6.1.0 du chart Helm, les scripts SQL nécessaires à l'initialisation de la base de données sont inclus dans l'image docs-utils : les Jobs n'ont donc pas besoin d'un accès Internet pour les télécharger.

remarque

Si vous associez au configmap indiqué dans le paramètre install.existingConfigmap.initdb ou upgrade|rollback|delete.existingConfigmap.dsStop un script personnalisé qui nécessite un accès Internet, et qu'un proxy Web est disponible dans votre réseau, définissez webProxy.enabled=true ainsi que les paramètres du proxy Web appropriés pour que les conteneurs des Pods puissent accéder à Internet.

12. Accéder à la page d'informations​

Important

Cette étape est optionnelle.

L'accès à la page /info est limité par défaut. Pour autoriser l'accès, spécifiez les adresses IP ou les sous-réseaux à l'aide du paramètre proxy.infoAllowedIP. Notez qu'en raison des spécificités du réseau Kubernetes, les clients réels sont généralement des adresses de Pod, de nœud ou d'équilibreur de charge plutôt que l'IP utilisateur d'origine.

Vous pouvez restreindre davantage l'accès à l'aide de l'authentification de base Nginx en définissant le paramètre proxy.infoAllowedUser et un mot de passe via proxy.infoAllowedPassword. Vous pouvez également utiliser un secret existant en définissant proxy.infoAllowedExistingSecret.

Utiliser Grafana pour visualiser les métriques​

Important

Cette section est optionnelle. Vous pouvez l'ignorer entièrement si vous ne souhaitez pas installer Grafana.

1. Déployer Grafana​

remarque

Il est supposé que l'étape 6.2 (Installer Prometheus) a déjà été effectuée.

  1. Déployer Grafana sans tableaux de bord prêts à l'emploi

    remarque

    Ignorez cette étape si vous souhaitez déployer Grafana avec des tableaux de bord prêts à l'emploi.

    $ helm install grafana --version 12.1.8 bitnami/grafana \
    --set service.ports.grafana=80 \
    --set config.useGrafanaIniFile=true \
    --set config.grafanaIniConfigMap=grafana-ini \
    --set datasources.secretName=grafana-datasource \
    --set resourcesPreset=none \
    --set image.repository=bitnamilegacy/grafana \
    --set image.tag=12.1.1-debian-12-r1 \
    --set global.security.allowInsecureImages=true
  2. Déployer Grafana avec des tableaux de bord prêts à l'emploi

    1. Installer des tableaux de bord Grafana prêts à l'emploi

      Définissez les paramètres grafana.enabled et grafana.dashboard.enabled à true. Si ONLYOFFICE Docs est déjà installé, exécutez :

      helm upgrade documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.dashboard.enabled=true

      Cela télécharge des tableaux de bord prêts à l'emploi au format JSON depuis le site web de Grafana, applique les modifications nécessaires et crée un configmap à partir d'eux. Un tableau de bord pour les métriques ONLYOFFICE Docs est également ajouté (il est supposé que l'étape 6 (Déployer l'exportateur StatsD) a déjà été effectuée).

    2. Installer Grafana

      $ helm install grafana --version 12.1.8 bitnami/grafana \
      --set service.ports.grafana=80 \
      --set config.useGrafanaIniFile=true \
      --set config.grafanaIniConfigMap=grafana-ini \
      --set datasources.secretName=grafana-datasource \
      --set resourcesPreset=none \
      --set image.repository=bitnamilegacy/grafana \
      --set image.tag=12.1.1-debian-12-r1 \
      --set global.security.allowInsecureImages=true \
      --set dashboardsProvider.enabled=true \
      --set dashboardsConfigMaps[0].configMapName=dashboard-node-exporter \
      --set dashboardsConfigMaps[0].fileName=dashboard-node-exporter.json \
      --set dashboardsConfigMaps[1].configMapName=dashboard-deployment \
      --set dashboardsConfigMaps[1].fileName=dashboard-deployment.json \
      --set dashboardsConfigMaps[2].configMapName=dashboard-redis \
      --set dashboardsConfigMaps[2].fileName=dashboard-redis.json \
      --set dashboardsConfigMaps[3].configMapName=dashboard-rabbitmq \
      --set dashboardsConfigMaps[3].fileName=dashboard-rabbitmq.json \
      --set dashboardsConfigMaps[4].configMapName=dashboard-postgresql \
      --set dashboardsConfigMaps[4].fileName=dashboard-postgresql.json \
      --set dashboardsConfigMaps[5].configMapName=dashboard-nginx-ingress \
      --set dashboardsConfigMaps[5].fileName=dashboard-nginx-ingress.json \
      --set dashboardsConfigMaps[6].configMapName=dashboard-documentserver \
      --set dashboardsConfigMaps[6].fileName=dashboard-documentserver.json \
      --set dashboardsConfigMaps[7].configMapName=dashboard-cluster-resourses \
      --set dashboardsConfigMaps[7].fileName=dashboard-cluster-resourses.json

      Les tableaux de bord suivants seront importés dans Grafana : Node Exporter, Deployment Statefulset Daemonset, Redis Dashboard for Prometheus Redis Exporter, RabbitMQ-Overview, PostgreSQL Database, NGINX Ingress controller, ONLYOFFICE Docs et Resource usage by Pods and Containers.

      remarque

      Vous pouvez consulter la description des métriques ONLYOFFICE Docs visualisées dans Grafana ici.

      Consultez plus de détails sur l'installation de Grafana via Helm ici.

2. Accéder à Grafana via Ingress​

remarque

Il est supposé que l'étape d'installation du contrôleur Kubernetes Nginx Ingress a déjà été effectuée.

Si ONLYOFFICE Docs a été installé avec le paramètre grafana.ingress.enabled (Déploiement des métriques), Grafana sera disponible à : http://INGRESS-ADDRESS/grafana/

Si l'Ingress a été installé avec une connexion sécurisée (Exposer ONLYOFFICE Docs via HTTPS), Grafana sera disponible à : https://your-domain-name/grafana/

3. Afficher les métriques collectées dans Grafana​

Accédez à http(s)://your-domain-name/grafana/ et connectez-vous avec :

Login - admin

Pour obtenir le mot de passe, exécutez :

$ kubectl get secret grafana-admin --namespace default -o jsonpath="{.data.GF_SECURITY_ADMIN_PASSWORD}" | base64 --decode

Dans la section des tableaux de bord, vous verrez les tableaux de bord ajoutés affichant les métriques reçues de Prometheus.