Este artículo está traducido por IA

ONLYOFFICE Docs para Kubernetes

Introducción

Importante La siguiente guía es válida solo para la solución de licencia de cluster de pago.
  • Debe tener instalado un cluster de Kubernetes o OpenShift:
  • También debe tener una copia local configurada de kubectl. Vea esta guía sobre cómo instalar y configurar kubectl.
  • Debe instalar Helm v3.7+. Siga las instrucciones aquí para instalarlo.
  • Si utiliza OpenShift, puede usar tanto oc como kubectl para gestionar el despliegue.
  • Si la instalación de componentes externos a 'Docs' se realiza desde Helm Chart en un cluster de OpenShift, se recomienda instalarlos desde un usuario que tenga el rol de cluster-admin, para evitar posibles problemas con los derechos de acceso. Vea esta guía para añadir los roles necesarios al usuario.

Requisitos previos para el despliegue

Puede ser necesario aplicar la política SecurityContextConstraints al instalar en un cluster de OpenShift, lo que añade permiso para ejecutar contenedores desde un usuario cuyo ID = 1001.

Para hacerlo, ejecute los siguientes comandos:

$ 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

Alternativamente, puede especificar el rango permitido de usuarios y grupos del namespace objetivo, vea los parámetros runAsUser y fsGroup al instalar dependencias, como RabbitMQ, Redis, PostgreSQL, etc.

1. Añadir repositorios de 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. Instalar Almacenamiento Persistente
Importante Si desea usar Amazon S3 como caché, por favor omita este paso.

Instalar NFS Server Provisioner

Al instalar NFS Server Provisioner, se crea la clase de almacenamiento - NFS. Al instalar en un cluster de OpenShift, el usuario debe tener un rol que permita crear clases de almacenamiento en el cluster. Lea más aquí.
$ 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 es una Clase de Almacenamiento Persistente disponible en su cluster de Kubernetes.

    Clases de Almacenamiento Persistente para diferentes proveedores:

  • PERSISTENT_SIZE es el tamaño total de todos los Almacenamientos Persistentes para la clase de almacenamiento persistente nfs. Puede expresar el tamaño como un número entero simple con uno de estos sufijos: T, G, M, Ti, Gi, Mi. Por ejemplo: 9Gi.

Vea más detalles sobre la instalación de NFS Server Provisioner a través de Helm aquí.

Configurar una Solicitud de Volumen Persistente

La Solicitud de Volumen Persistente nfs predeterminada es de 8Gi. Puede cambiarla en el archivo values.yaml en la sección persistence.storageClass y persistence.size. Debe ser al menos un 5% menor que PERSISTENT_SIZE. Se recomienda usar 8Gi o más para el almacenamiento persistente por cada 100 usuarios activos de ONLYOFFICE Docs.

Importante El tipo de PersistentVolume que se utilizará para la colocación de PVC debe soportar el Modo de Acceso ReadWriteMany. Además, PersistentVolume debe tener como propietario al usuario desde el cual se iniciará ONLYOFFICE Docs. Por defecto es ds (101:101).

Si desea habilitar WOPI, por favor configure el parámetro wopi.enabled=true. En este caso, el Almacenamiento Persistente debe estar conectado a los nodos del cluster con los atributos de caché deshabilitados para el directorio montado para los clientes. Para NFS Server Provisioner, esto se puede lograr añadiendo la opción noac al parámetro storageClass.mountOptions. Encuentre más información aquí.

3. Desplegar RabbitMQ

Para instalar RabbitMQ en su cluster, ejecute el siguiente comando:

$ 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
Configure metrics.enabled=true para habilitar la exposición de métricas de RabbitMQ para ser recopiladas por Prometheus.

Vea más detalles sobre la instalación de RabbitMQ a través de Helm aquí.

4. Desplegar Redis

Para instalar Redis en su cluster, ejecute el siguiente comando:

$ 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
Configure metrics.enabled=true para habilitar la exposición de métricas de Redis para ser recopiladas por Prometheus. También añada los siguientes parámetros: metrics.image.repository=bitnamilegacy/redis-exporter y metrics.image.tag=1.76.0-debian-12-r0.

Vea más detalles sobre la instalación de Redis a través de Helm aquí.

5. Desplegar Base de Datos

Como servidor de base de datos, puede usar PostgreSQL, MySQL o MariaDB.

Para instalar PostgreSQL en su cluster, ejecute el siguiente comando:

$ 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
Configure metrics.enabled=true para habilitar la exposición de métricas de la Base de Datos para ser recopiladas por Prometheus. También añada los siguientes parámetros: metrics.image.repository=bitnamilegacy/postgres-exporter y metrics.image.tag=0.17.1-debian-12-r16.

Vea más detalles sobre la instalación de PostgreSQL a través de Helm aquí.

Para instalar MySQL en su cluster, ejecute el siguiente comando:

$ helm install mysql --version 14.0.3 bitnami/mysql \
  --set auth.database=onlyoffice \
  --set auth.username=onlyoffice \
  --set primary.persistence.storageClass=PERSISTENT_STORAGE_CLASS \
  --set primary.persistence.size=PERSISTENT_SIZE \
  --set primary.resourcesPreset=none \
  --set image.repository=bitnamilegacy/mysql \
  --set global.security.allowInsecureImages=true \
  --set image.tag=9.4.0-debian-12-r1 \
  --set metrics.enabled=false

Vea más detalles sobre la instalación de MySQL a través de Helm aquí.

Aquí PERSISTENT_SIZE es un tamaño para el volumen persistente de la base de datos. Por ejemplo: 8Gi.

Se recomienda usar al menos 2Gi de almacenamiento persistente por cada 100 usuarios activos de ONLYOFFICE Docs.

Establezca metrics.enabled=true para habilitar la exposición de métricas de la base de datos que serán recopiladas por Prometheus. También agregue los siguientes parámetros: metrics.image.repository=bitnamilegacy/mysqld-exporter y metrics.image.tag=0.17.2-debian-12-r16.
6. Implementar StatsD exporter
Importante Este paso es opcional. Puede omitirlo por completo si no desea ejecutar StatsD exporter.
  1. Agregar repositorios 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. Instalación de Prometheus

    Para instalar Prometheus en su clúster, ejecute el siguiente comando:

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

    Para cambiar el intervalo de sondeo, especifique el parámetro server.global.scrape_interval.

    Vea más detalles sobre la instalación de Prometheus a través de Helm aquí.

  3. Instalación de StatsD exporter

    Para instalar StatsD exporter en su clúster, ejecute el siguiente comando:

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

    Vea más detalles sobre la instalación de Prometheus StatsD exporter a través de Helm aquí.

    Para permitir las métricas de StatsD en ONLYOFFICE Docs, siga este paso.

7. Realizar cambios en los archivos de configuración de Node-config
Importante Este paso es opcional. Puede omitirlo por completo si no necesita hacer cambios en los archivos de configuración.
  1. Crear un ConfigMap que contenga un archivo json

    Para crear un ConfigMap a partir de un archivo que contiene la estructura local.json, debe ejecutar el siguiente comando:

    $ kubectl create configmap local-config \
      --from-file=./local.json
    Se puede usar cualquier nombre en lugar de local-config.
  2. Especificar parámetros al instalar ONLYOFFICE Docs

    Al instalar ONLYOFFICE Docs, especifique los parámetros extraConf.configMap=local-config y extraConf.filename=local.json.

    Si necesita agregar un archivo de configuración después de que ONLYOFFICE Docs ya esté instalado, debe ejecutar el paso 7.1 y luego ejecutar el
    helm upgrade documentserver onlyoffice/docs --set extraConf.configMap=local-config --set extraConf.filename=local.json --no-hooks
    comando o
    helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks
    si los parámetros están especificados en el archivo values.yaml.
8. Agregar fuentes personalizadas
Importante Este paso es opcional. Puede omitirlo por completo si no necesita agregar sus fuentes.

Para agregar fuentes a las imágenes, necesita reconstruir las imágenes. Consulte los pasos relevantes en este manual. Luego especifique sus imágenes al instalar ONLYOFFICE Docs.

9. Agregar Plugins
Importante Este paso es opcional. Puede omitirlo por completo si no necesita agregar plugins.

Para agregar plugins a las imágenes, necesita reconstruir las imágenes. Consulte los pasos relevantes en este manual. Luego especifique sus imágenes al instalar ONLYOFFICE Docs.

10. Agregar diccionarios personalizados
Importante Este paso es opcional. Puede omitirlo por completo si no necesita agregar sus diccionarios.

Para agregar sus diccionarios personalizados a las imágenes, necesita reconstruir las imágenes. Consulte los pasos relevantes en este manual. Luego especifique sus imágenes al instalar ONLYOFFICE Docs.

11. Cambiar temas de la interfaz
Importante Este paso es opcional. Puede omitirlo por completo si no necesita cambiar los temas de la interfaz.
  1. Crear un ConfigMap que contenga un archivo json

    Para crear un ConfigMap con un archivo json que contiene los temas de la interfaz, debe ejecutar el siguiente comando:

    $ kubectl create configmap custom-themes \
      --from-file=./custom-themes.json
    En lugar de custom-themes y custom-themes.json puede usar cualquier otro nombre.
  2. Especificar parámetros al instalar ONLYOFFICE Docs

    Al instalar ONLYOFFICE Docs, especifique los parámetros extraThemes.configMap=custom-themes y extraThemes.filename=custom-themes.json.

    Si necesita agregar temas de interfaz después de que ONLYOFFICE Docs ya esté instalado, debe ejecutar el paso 11.1 y luego ejecutar el comando helm upgrade documentserver onlyoffice/docs --set extraThemes.configMap=custom-themes --set extraThemes.filename=custom-themes.json --no-hooks o helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks si los parámetros están especificados en el archivo values.yaml.
12. Conectar un bucket de Amazon S3 como caché a ONLYOFFICE Helm Docs
Importante Este paso es opcional. Puede omitirlo por completo si no desea usar Amazon S3 como almacenamiento de caché.

Para conectar un bucket de Amazon S3 como caché, necesita crear un archivo de configuración o editar el existente de acuerdo con esta guía y cambiar el valor del parámetro persistence.storageS3 a true.

Implementar ONLYOFFICE Docs

Puede ser necesario aplicar la política SecurityContextConstraints al instalar en un clúster de OpenShift, lo que agrega permiso para ejecutar contenedores desde un usuario cuyo ID = 101.

Para hacer esto, ejecute los siguientes comandos:

$ 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

Alternativamente, puede aplicar la política nonroot-v2 SecurityContextConstraints (SCC) en el commonAnnotations o annotations para todos los recursos que describen el podTemplate. Asegúrese de que tanto el usuario como la cuenta de servicio tengan los permisos necesarios para usar este SCC. Para verificar quién tiene permiso para usar el nonroot-v2, ejecute el siguiente comando:

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

Si es necesario, configure podSecurityContext.enabled y <resources>.containerSecurityContext.enabled a true.

1. Implementar la licencia de ONLYOFFICE Docs
  1. Crear secreto

    Si tiene una licencia válida de ONLYOFFICE Docs, cree un secreto license a partir del archivo:

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

    Dónde SECRET_LICENSE_NAME es el nombre de un futuro secreto con una licencia.

    El nombre del archivo de licencia de origen debe ser 'license.lic' porque este nombre se usará como un campo en el secreto creado.
    Si la instalación se realiza sin crear un secreto con el archivo de licencia existente, se creará automáticamente un secreto vacío license. Para obtener información sobre cómo actualizar un secreto existente con una licencia, consulte aquí.
  2. Especificar parámetros al instalar ONLYOFFICE Docs

    Al instalar ONLYOFFICE Docs, especifique el parámetro license.existingSecret=[SECRET_LICENSE_NAME].

    $ helm install documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME]
    Si necesita agregar una licencia después de que ONLYOFFICE Docs ya esté instalado, debe ejecutar el paso 1.1 y luego ejecutar el comando helm upgrade documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME] --no-hooks o helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks si los parámetros están especificados en el archivo values.yaml.
2. Desplegar ONLYOFFICE Docs

Para desplegar ONLYOFFICE Docs con el nombre de lanzamiento documentserver:

$ helm install documentserver onlyoffice/docs

El comando despliega ONLYOFFICE Docs en el clúster de Kubernetes con la configuración predeterminada. La sección de Parámetros enumera los parámetros que se pueden configurar durante la instalación.

Al instalar ONLYOFFICE Docs en un clúster k8s privado detrás de un proxy web o sin acceso a internet, consulte las notas a continuación.
3. Desinstalar ONLYOFFICE Docs

Para desinstalar/eliminar el despliegue documentserver:

$ helm delete documentserver

Ejecutar el comando helm delete lanza hooks, que realizan algunas acciones preparatorias antes de eliminar completamente ONLYOFFICE Docs, lo que incluye detener el servidor, limpiar el PVC utilizado y las tablas de la base de datos. El tiempo de ejecución predeterminado de los hooks es de 300s. El tiempo de ejecución se puede cambiar utilizando --timeout [time], por ejemplo:

$ helm delete documentserver --timeout 25m
Al eliminar ONLYOFFICE Docs en un clúster k8s privado detrás de un proxy web o sin acceso a internet, consulte las notas a continuación.

Si desea eliminar ONLYOFFICE Docs sin ninguna acción preparatoria, ejecute el siguiente comando:

$ helm delete documentserver --no-hooks

El comando helm delete elimina todos los componentes de Kubernetes asociados con el chart y elimina el lanzamiento.

4. Parámetros

Especifique cada parámetro utilizando el argumento --set key=value[,key=value] para helm install. Por ejemplo:

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

Este comando expone ONLYOFFICE Docs a través de HTTPS.

Alternativamente, se puede proporcionar un archivo YAML que especifique los valores para los parámetros durante la instalación del chart:

$ helm install documentserver -f values.yaml onlyoffice/docs
Puede utilizar los valores predeterminados de values.yaml.
Mostrar todos los parámetros
connections.dbTypeEl tipo de base de datos. Los valores posibles son postgres, mariadb, mysql, oracle, mssql o damengpostgres
connections.dbHostLa dirección IP o el nombre del host de la base de datospostgresql
connections.dbUserUsuario de la base de datospostgres
connections.dbPortNúmero de puerto del servidor de base de datos5432
connections.dbNameNombre de la base de datos a la que se conectará la aplicaciónpostgres
connections.dbPasswordContraseña del usuario de la base de datos. Si se establece, tiene prioridad sobre connections.dbExistingSecret""
connections.dbSecretKeyNameEl nombre de la clave que contiene la contraseña del usuario de la base de datospostgres-password
connections.dbExistingSecretNombre del secreto existente a utilizar para las contraseñas de la base de datos. Debe contener la clave especificada en connections.dbSecretKeyNamepostgresql
connections.redisConnectorNameDefine qué conector usar para conectarse a Redis. Si necesita conectarse a Redis Sentinel, establezca el valor ioredisredis
connections.redistHostLa dirección IP o el nombre del host de Redis. No se utiliza si los valores están establecidos en connections.redisClusterNodes y connections.redisSentinelNodesredis-master
connections.redisPortEl número de puerto del servidor Redis. No se utiliza si los valores están establecidos en connections.redisClusterNodes y connections.redisSentinelNodes6379
connections.redisUserEl nombre del usuario de Redis. El valor en este parámetro sobrescribe el valor establecido en el objeto options en local.json si agrega un archivo de configuración personalizadodefault
connections.redisDBNumNúmero de la base de datos lógica de redis a seleccionar. El valor en este parámetro sobrescribe el valor establecido en el objeto options en local.json si agrega un archivo de configuración personalizado0
connections.redisClusterNodesLista de nodos en el clúster de Redis. No es necesario especificar cada nodo en el clúster, 3 deberían ser suficientes. Puede especificar múltiples valores. Debe especificarse en el formato host:port[]
connections.redisPasswordLa contraseña establecida para la cuenta de Redis. Si se establece, tiene prioridad sobre connections.redisExistingSecret. El valor en este parámetro sobrescribe el valor establecido en el objeto options en local.json si agrega un archivo de configuración personalizado""
connections.redisSecretKeyNameEl nombre de la clave que contiene la contraseña del usuario de Redisredis-password
connections.redisExistingSecretNombre del secreto existente a utilizar para las contraseñas de Redis. Debe contener la clave especificada en connections.redisSecretKeyName. La contraseña de este secreto sobrescribe la contraseña establecida en el objeto options en local.jsonredis
connections.redisNoPassDefine si se debe usar una autenticación de Redis sin contraseña. Si la conexión al servidor Redis no requiere una contraseña, establezca el valor en truefalse
connections.redisSentinelNodesLista de nodos de Redis Sentinel. No es necesario especificar cada nodo, 3 deberían ser suficientes. Puede especificar múltiples valores. Debe especificarse en el formato host:port. Se utiliza si connections.redisConnectorName está establecido en ioredis[]
connections.redisSentinelGroupNameNombre de un grupo de instancias de Redis compuesto por un maestro y uno o más esclavos. Se utiliza si connections.redisConnectorName está establecido en ioredismymaster
connections.redisSentinelExistingSecretNombre del secreto existente a utilizar para la contraseña de Redis Sentinel. Debe contener la clave especificada en connections.redisSentinelSecretKeyName. La contraseña de este secreto sobrescribe el valor de la contraseña establecida en el objeto iooptions en local.json""
connections.redisSentinelSecretKeyNameEl nombre de la clave que contiene la contraseña del usuario de Redis Sentinel. Si establece una contraseña en redisSentinelPassword, se creará automáticamente un secreto, cuyo nombre de clave será el valor establecido aquísentinel-password
connections.redisSentinelPasswordLa contraseña establecida para la cuenta de Redis Sentinel. Si se establece, tiene prioridad sobre connections.redisSentinelExistingSecret. El valor en este parámetro sobrescribe el valor establecido en el objeto iooptions en local.json""
connections.redisSentinelNoPassDefine si se debe usar una autenticación de Redis Sentinel sin contraseña. Si la conexión a Redis Sentinel no requiere una contraseña, establezca el valor en truetrue
connections.amqpTypeDefine el tipo de servidor AMQP. Los valores posibles son rabbitmq o activemqrabbitmq
connections.amqpHostLa dirección IP o el nombre del servidor AMQPrabbitmq
connections.amqpPortEl puerto para la conexión al servidor AMQP5672
connections.amqpVhostEl host virtual para la conexión al servidor AMQP/
connections.amqpUserEl nombre de usuario para la cuenta del servidor AMQPuser
connections.amqpProtoEl protocolo para la conexión al servidor AMQPamqp
connections.amqpPassword Contraseña del usuario del servidor AMQP. Si se establece, tiene prioridad sobre connections.amqpExistingSecret""
connections.amqpSecretKeyNameEl nombre de la clave que contiene la contraseña del usuario del servidor AMQPrabbitmq-password
connections.amqpExistingSecretEl nombre del secreto existente a utilizar para las contraseñas del servidor AMQP. Debe contener la clave especificada en connections.amqpSecretKeyNamerabbitmq
persistence.existingClaimNombre de un PVC existente a utilizar. Si no se especifica, se creará un PVC llamado "ds-files"""
persistence.annotationsDefine anotaciones que se añadirán adicionalmente al PVC "ds-files". Si se establece, tiene prioridad sobre commonAnnotations{}
persistence.storageClassClase de almacenamiento del PVC para los datos de ONLYOFFICE Docs y los volúmenes de configuración en tiempo de ejecuciónnfs
persistence.sizeSolicitud de almacenamiento del PVC para el volumen de ONLYOFFICE Docs8Gi
persistence.storageS3Define si S3 se utilizará como almacenamiento en caché. Establezca en true si va a usar S3 como almacenamiento en cachéfalse
persistence.runtimeConfig.enabledDefine si se utilizará PVC y si se montará en los contenedorestrue
persistence.runtimeConfig.existingClaimEl nombre del PVC existente utilizado para almacenar la configuración en tiempo de ejecución. Si no se especifica, se creará un PVC llamado "ds-runtime-config"""
persistence.runtimeConfig.annotationsDefine anotaciones que se añadirán adicionalmente al PVC "ds-runtime-config". Si se establece, tiene prioridad sobre commonAnnotations{}
persistence.runtimeConfig.sizeSolicitud de almacenamiento del PVC para el volumen de configuración en tiempo de ejecución1Gi
commonNameSuffixEl nombre que se añadirá al nombre de todos los recursos creados como sufijo""
namespaceOverrideEl nombre del espacio de nombres en el que se desplegará ONLYOFFICE Docs. Si no se establece, el nombre se tomará de .Release.Namespace""
commonLabelsDefine etiquetas que se añadirán adicionalmente a todos los recursos desplegados. También puede usar tpl como valor para la clave{}
commonAnnotationsDefine anotaciones que se añadirán adicionalmente a todos los recursos desplegados. También puede usar tpl como valor para la clave. Algunos recursos pueden sobrescribir los valores especificados aquí con los suyos propios{}
serviceAccount.createHabilitar la creación de ServiceAccountfalse
serviceAccount.nameNombre del ServiceAccount a utilizar. Si no se establece y serviceAccount.create es true, el nombre se tomará de .Release.Name o si serviceAccount.create es false, el nombre será "default"""
serviceAccount.annotationsMapa de anotaciones para añadir al ServiceAccount. Si se establece, tiene prioridad sobre commonAnnotations{}
serviceAccount.automountServiceAccountTokenHabilitar el montaje automático de ServiceAccountToken en el serviceAccount creado. Se utiliza solo si serviceAccount.create es truetrue
license.existingSecretNombre del secreto existente que contiene la licencia. Debe contener la clave license.lic""
license.existingClaimNombre del PVC existente en el que se almacena la licencia. Debe contener el archivo license.lic""
log.levelDefine el tipo y la severidad de un evento registrado. Los valores posibles son ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, MARK, OFFWARN
log.typeDefine el formato de un evento registrado. Los valores posibles son pattern, json, basic, coloured, messagePassThrough, dummypattern
log.patternDefine el patrón de registro si log.type=pattern[%d] [%p] %c - %.10000m
wopi.enabledDefine si WOPI está habilitado. Si el parámetro está habilitado, entonces los atributos de caché para el directorio montado (PVC) deben estar deshabilitados para el clientefalse
wopi.keys.generationDefine si se generarán claves API. Se utiliza si establece wopi.enabled en truetrue
wopi.keys.newKeysExistingSecretNombre del secreto existente que contiene las claves WOPI. Debe contener las claves WOPI_PRIVATE_KEY, WOPI_PUBLIC_KEY, WOPI_MODULUS_KEY y WOPI_EXPONENT_KEY. Si no se establece, se generarán nuevas claves y se creará un secreto a partir de ellas""
wopi.keys.oldKeysExistingSecretNombre del secreto existente que contiene las claves WOPI antiguas. Debe contener las claves WOPI_PRIVATE_KEY_OLD, WOPI_PUBLIC_KEY_OLD, WOPI_MODULUS_KEY_OLD y WOPI_EXPONENT_KEY_OLD. Si no se establece, se generarán nuevas claves y se creará un secreto a partir de ellas""
metrics.enabledEspecifica si StatsD está habilitado para ONLYOFFICE Docsfalse
metrics.hostDefine el host de escucha de StatsDstatsd-exporter-prometheus-statsd-exporter
metrics.portDefine el puerto de escucha de StatsD8125
metrics.prefixDefine el prefijo de métricas de StatsD para los servicios de backendds.
extraConf.configMapEl nombre del ConfigMap que contiene el archivo json que sobrescribe los valores predeterminados""
extraConf.filenameEl nombre del archivo json que contiene valores personalizados. Debe ser el mismo que el nombre de key en extraConf.ConfigMaplocal.json
extraThemes.configMapEl nombre del ConfigMap que contiene el archivo json que contiene los temas de la interfaz""
extraThemes.filenameEl nombre del archivo json que contiene temas de interfaz personalizados. Debe ser el mismo que el nombre de key en extraThemes.configMapcustom-themes.json
podAntiAffinity.typeTipos de antiafinidad de Pod. Valores permitidos: soft o hardsoft
podAntiAffinity.topologyKeyClave de etiqueta de nodo para coincidirkubernetes.io/hostname
podAntiAffinity.weightPrioridad al seleccionar nodo. Está en el rango de 1 a 100100
nodeSelectorEtiquetas de nodo para la asignación de pods. Cada servicio de ONLYOFFICE Docs puede sobrescribir los valores especificados aquí con los suyos propios{}
tolerationsToleraciones para la asignación de pods. Cada servicio de ONLYOFFICE Docs puede sobrescribir los valores especificados aquí con los suyos propios[]
imagePullSecretsNombre del secreto del registro de imágenes de contenedor""
requestFilteringAgent.allowPrivateIPAddressDefine si está permitido conectar una dirección IP privada o no. Los parámetros de requestFilteringAgent se utilizan si JWT está deshabilitado: jwt.enabled=falsefalse
requestFilteringAgent.allowMetaIPAddressDefine si está permitido conectar una dirección meta o nofalse
requestFilteringAgent.allowIPAddressListDefine la lista de direcciones IP permitidas para conectar. Estos valores tienen preferencia sobre requestFilteringAgent.denyIPAddressList[]
requestFilteringAgent.denyIPAddressListDefine la lista de direcciones IP permitidas para conectar[]
docservice.annotationsDefine anotaciones que se añadirán adicionalmente al despliegue de Docservice. Si se establece, tiene prioridad sobre commonAnnotations{}
docservice.podAnnotationsMapa de anotaciones para añadir a los pods de despliegue de Docservicerollme: "{{ randAlphaNum 5 | quote }}"
docservice.replicasCantidad de réplicas de Docservice. Si el parámetro docservice.autoscaling.enabled está habilitado, se ignora2
docservice.updateStrategy.typeTipo de estrategia de actualización del despliegue de DocserviceRecreate
docservice.customPodAntiAffinityProhibición de la programación de Pods de Docservice en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
docservice.podAffinityDefine reglas de afinidad de Pod para la programación de Pods de Docservice por nodos en relación con otros Pods{}
docservice.nodeAffinityDefine reglas de afinidad de nodo para la programación de Pods de Docservice por nodos{}
docservice.nodeSelectorEtiquetas de nodo para la asignación de Pods de Docservice. Si se establece, tiene prioridad sobre nodeSelector{}
docservice.tolerationsToleraciones para la asignación de Pods de Docservice. Si se establece, tiene prioridad sobre tolerations[]
docservice.terminationGracePeriodSecondsEl tiempo para terminar de manera elegante durante el cual el Pod de Docservice tendrá el estado Terminating30
docservice.hostAliasesAñade entradas adicionales al archivo hosts en los contenedores Docservice y Proxy[]
docservice.initContainersDefine contenedores que se ejecutan antes de los contenedores docservice y proxy en el pod de implementación de Docservice. Por ejemplo, un contenedor que cambia el propietario del PersistentVolume[]
docservice.image.repositoryRepositorio de imágenes del contenedor Docservice*onlyoffice/docs-docservice-de
docservice.image.tagEtiqueta de la imagen del contenedor Docservice9.0.4-1
docservice.image.pullPolicyPolítica de extracción de la imagen del contenedor DocserviceIfNotPresent
docservice.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor Docservicefalse
docservice.lifecycleHooksDefine los hooks del ciclo de vida del contenedor de Docservice. Se utiliza para desencadenar eventos que se ejecutan en ciertos puntos del ciclo de vida de un contenedor{}
docservice.resources.requestsLos recursos solicitados para el contenedor Docservice{}
docservice.resources.limitsLos límites de recursos para el contenedor Docservice{}
docservice.extraEnvVarsUn array con variables de entorno adicionales para el contenedor Docservice[]
docservice.extraVolumesUn array con volúmenes adicionales para el Pod de Docservice[]
docservice.extraVolumeMountsUn array con montajes de volúmenes adicionales para el contenedor Docservice[]
docservice.readinessProbe.enabledHabilitar readinessProbe para el contenedor Docservicetrue
docservice.livenessProbe.enabledHabilitar livenessProbe para el contenedor Docservicetrue
docservice.startupProbe.enabledHabilitar startupProbe para el contenedor Docservicetrue
docservice.autoscaling.enabledHabilitar el escalado automático de la implementación de Docservicefalse
docservice.autoscaling.annotationsDefine anotaciones que se añadirán adicionalmente al HPA de la implementación de Docservice. Si se establece, tiene prioridad sobre las commonAnnotations{}
docservice.autoscaling.minReplicasNúmero mínimo de réplicas para el escalado automático de la implementación de Docservice2
docservice.autoscaling.maxReplicasNúmero máximo de réplicas para el escalado automático de la implementación de Docservice4
docservice.autoscaling.targetCPU.enabledHabilitar el escalado automático de la implementación de Docservice por porcentaje de uso de CPUtrue
docservice.autoscaling.targetCPU.utilizationPercentagePorcentaje objetivo de CPU para el escalado automático de la implementación de Docservice70
docservice.autoscaling.targetMemory.enabledHabilitar el escalado automático de la implementación de Docservice por porcentaje de uso de memoriafalse
docservice.autoscaling.targetMemory.utilizationPercentagePorcentaje objetivo de memoria para el escalado automático de la implementación de Docservice70
docservice.autoscaling.customMetricsTypeMétricas personalizadas, adicionales o externas para el escalado automático de la implementación de Docservice[]
docservice.autoscaling.behaviorConfiguración de políticas de comportamiento de escalado para la implementación de Docservice en los campos scaleDown y scaleUp{}
proxy.accessLogDefine la directiva de formato access_log de la configuración de nginxoff
proxy.logFormatDefine el formato de las entradas del registro utilizando texto y varias variables'$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'
proxy.gzipProxiedDefine la directiva gzip_proxied de la configuración de nginxoff
proxy.clientMaxBodySizeDefine la directiva client_max_body_size de la configuración de nginx100m
proxy.workerConnectionsDefine la directiva worker_connections de la configuración de nginx4096
proxy.secureLinkSecretDefine el secreto para la directiva secure_link_md5 de la configuración de nginx. Si el valor está vacío, se generará uno aleatorio, que se utilizará más tarde en la actualización. Si se establece un valor, se utilizará""
proxy.secureLinkExistingSecretNombre del secreto existente para usar con secure_link. Si se establece, tiene prioridad sobre el proxy.secureLinkSecret""
proxy.infoAllowedIPDefine direcciones IP para acceder a la página de información[]
proxy.infoAllowedUserDefine el nombre de usuario para acceder a la página de información. Si no se establece, no se aplicará la Autenticación Básica de Nginx para acceder a la página de información. Para más detalles, consulte aquí""
proxy.infoAllowedPasswordDefine la contraseña del usuario para acceder a la página de información. Se utiliza si se establece proxy.infoAllowedUser. Si el valor está vacío, se generará una aleatoria, que se utilizará más tarde en la actualización. Si se establece un valor, se utilizará""
proxy.infoAllowedSecretKeyNameEl nombre de la clave que contiene la contraseña de autenticación del usuario de información. Se utiliza si se establece proxy.infoAllowedUserinfo-auth-password
proxy.infoAllowedExistingSecretNombre del secreto existente para usar con la contraseña de autenticación de información. Se utiliza si se establece proxy.infoAllowedUser. Debe contener la clave especificada en proxy.infoAllowedSecretKeyName. Si se establece, tiene prioridad sobre el proxy.infoAllowedPassword""
proxy.welcomePage.enabledDefine si se mostrará la página de bienvenidatrue
proxy.image.repositoryRepositorio de imágenes del contenedor Proxy de Docservice*onlyoffice/docs-proxy-de
proxy.image.tagEtiqueta de la imagen del contenedor Proxy de Docservice9.0.4-1
proxy.image.pullPolicyPolítica de extracción de la imagen del contenedor Proxy de DocserviceIfNotPresent
proxy.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor Proxyfalse
proxy.lifecycleHooksDefine los hooks del ciclo de vida del contenedor del Proxy. Se utiliza para desencadenar eventos que se ejecutan en ciertos puntos del ciclo de vida de un contenedor{}
proxy.resources.requestsLos recursos solicitados para el contenedor Proxy{}
proxy.resources.limitsLos límites de recursos para el contenedor Proxy{}
proxy.extraEnvVarsUn array con variables de entorno adicionales para el contenedor Proxy[]
proxy.extraVolumeMountsUn array con montajes de volúmenes adicionales para el contenedor Proxy[]
proxy.readinessProbe.enabledHabilitar readinessProbe para el contenedor Proxytrue
proxy.livenessProbe.enabledHabilitar livenessProbe para el contenedor Proxytrue
proxy.startupProbe.enabledHabilitar startupProbe para el contenedor Proxytrue
converter.annotationsDefine anotaciones que se añadirán adicionalmente a la implementación del Convertidor. Si se establece, tiene prioridad sobre las commonAnnotations{}
converter.podAnnotationsMapa de anotaciones para añadir a los pods de implementación del Convertidorrollme: "{{ randAlphaNum 5 | quote }}"
converter.replicasCantidad de réplicas del Convertidor. Si el parámetro converter.autoscaling.enabled está habilitado, se ignora2
converter.updateStrategy.typeTipo de estrategia de actualización de la implementación del ConvertidorRecreate
converter.customPodAntiAffinityProhibición de la programación de Pods del Convertidor en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
converter.podAffinityDefine reglas de afinidad de Pods para la programación de Pods del Convertidor por nodos en relación con otros Pods{}
converter.nodeAffinityDefine reglas de afinidad de nodos para la programación de Pods del Convertidor por nodos{}
converter.nodeSelectorEtiquetas de nodo para la asignación de Pods del Convertidor. Si se establece, tiene prioridad sobre el nodeSelector{}
converter.tolerationsTolerancias para la asignación de Pods del Convertidor. Si se establece, tiene prioridad sobre las tolerations[]
converter.terminationGracePeriodSecondsEl tiempo para terminar de manera ordenada durante el cual el Pod del Convertidor tendrá el estado Terminating30
converter.hostAliasesAñade entradas adicionales al archivo hosts en el contenedor Converter[]
converter.initContainersDefine contenedores que se ejecutan antes del contenedor Converter en el pod de implementación de Converter. Por ejemplo, un contenedor que cambia el propietario del PersistentVolume[]
converter.image.repositoryRepositorio de la imagen del contenedor Converter*onlyoffice/docs-converter-de
converter.image.tagEtiqueta de la imagen del contenedor Converter9.0.4-1
converter.image.pullPolicyPolítica de extracción de la imagen del contenedor ConverterIfNotPresent
converter.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor Converterfalse
converter.lifecycleHooksDefine los hooks del ciclo de vida del contenedor Converter. Se utiliza para desencadenar eventos que se ejecutan en ciertos puntos del ciclo de vida de un contenedor{}
converter.resources.requestsLos recursos solicitados para el contenedor Converter{}
converter.resources.limitsLos límites de recursos para el contenedor Converter{}
converter.extraEnvVarsUn array con variables de entorno adicionales para el contenedor Converter[]
converter.extraVolumesUn array con volúmenes adicionales para el Pod Converter[]
converter.extraVolumeMountsUn array con montajes de volúmenes adicionales para el contenedor Converter[]
converter.autoscaling.enabledHabilitar el escalado automático de la implementación de Converterfalse
converter.autoscaling.annotationsDefine anotaciones que se agregarán adicionalmente al HPA de la implementación de Converter. Si se establece, tiene prioridad sobre las commonAnnotations{}
converter.autoscaling.minReplicasNúmero mínimo de réplicas para el escalado automático de la implementación de Converter2
converter.autoscaling.maxReplicasNúmero máximo de réplicas para el escalado automático de la implementación de Converter16
converter.autoscaling.targetCPU.enabledHabilitar el escalado automático de la implementación de Converter por porcentaje de uso de CPUtrue
converter.autoscaling.targetCPU.utilizationPercentagePorcentaje objetivo de CPU para el escalado automático de la implementación de Converter70
converter.autoscaling.targetMemory.enabledHabilitar el escalado automático de la implementación de Converter por porcentaje de uso de memoriafalse
converter.autoscaling.targetMemory.utilizationPercentagePorcentaje objetivo de memoria para el escalado automático de la implementación de Converter70
converter.autoscaling.customMetricsTypeMétricas personalizadas, adicionales o externas para el escalado automático de la implementación de Converter[]
converter.autoscaling.behaviorConfiguración de las políticas de comportamiento de escalado de la implementación de Converter para los campos scaleDown y scaleUp{}
example.enabledHabilita la instalación de Examplefalse
example.annotationsDefine anotaciones que se agregarán adicionalmente a Example StatefulSet. Si se establece, tiene prioridad sobre las commonAnnotations{}
example.podAnnotationsMapa de anotaciones para agregar al pod de ejemplorollme: "{{ randAlphaNum 5 | quote }}"
example.updateStrategy.typeTipo de estrategia de actualización de Example StatefulSetRollingUpdate
example.customPodAntiAffinityProhibición de la programación del Pod de Example en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
example.podAffinityDefine reglas de afinidad de Pods para la programación del Pod de Example por nodos en relación con otros Pods{}
example.nodeAffinityDefine reglas de afinidad de nodos para la programación del Pod de Example por nodos{}
example.nodeSelectorEtiquetas de nodo para la asignación de Pods de Example. Si se establece, tiene prioridad sobre el nodeSelector{}
example.tolerationsTolerancias para la asignación de Pods de Example. Si se establece, tiene prioridad sobre las tolerations[]
example.terminationGracePeriodSecondsEl tiempo para terminar de manera ordenada durante el cual el Pod de Example tendrá el estado Terminating30
example.hostAliasesAñade entradas adicionales al archivo hosts en el contenedor Example[]
example.initContainersDefine contenedores que se ejecutan antes del contenedor Example en el Pod[]
example.image.repositoryNombre de la imagen del contenedor Exampleonlyoffice/docs-example
example.image.tagEtiqueta de la imagen del contenedor Example9.0.4-1
example.image.pullPolicyPolítica de extracción de la imagen del contenedor ExampleIfNotPresent
example.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor Examplefalse
example.dsUrlDirección externa de ONLYOFFICE Docs. Debe cambiarse solo si es necesario verificar el funcionamiento de la conversión en Example (por ejemplo, http://<documentserver-address>/)/
example.resources.requestsLos recursos solicitados para el contenedor Example{}
example.resources.limitsLos límites de recursos para el contenedor Example{}
example.extraEnvVarsUn array con variables de entorno adicionales para el contenedor Example[]
example.extraConf.configMapEl nombre del ConfigMap que contiene el archivo json que sobrescribe los valores predeterminados. Vea un ejemplo de creación aquí""
example.extraConf.filenameEl nombre del archivo json que contiene valores personalizados. Debe ser el mismo que el nombre de key en example.extraConf.ConfigMaplocal.json
example.extraVolumesUn array con volúmenes adicionales para el Pod de Example[]
example.extraVolumeMountsUn array con montajes de volúmenes adicionales para el contenedor Example[]
jwt.enabledEspecifica la habilitación de la validación del JSON Web Token por parte de ONLYOFFICE Docs. Común para solicitudes de entrada y salidatrue
jwt.secretDefine la clave secreta para validar el JSON Web Token en la solicitud a ONLYOFFICE Docs. Común para solicitudes de entrada y salida. Si el valor está vacío, se generará uno aleatorio, que se utilizará más tarde en la actualización. Si se establece un valor, se utilizará""
jwt.headerDefine el encabezado http que se utilizará para enviar el JSON Web Token. Común para solicitudes de entrada y salidaAuthorization
jwt.inBodyEspecifica la habilitación de la validación del token en el cuerpo de la solicitud a ONLYOFFICE Docsfalse
jwt.inboxParámetros de validación del JSON Web Token solo para solicitudes de entrada. Si no se especifica, se utilizan los valores de los parámetros del jwt común{}
jwt.outboxParámetros de validación del JSON Web Token solo para solicitudes de salida. Si no se especifica, se utilizan los valores de los parámetros del jwt común{}
jwt.existingSecretEl nombre de un secreto existente que contiene variables para jwt. Si no se especifica, se creará un secreto llamado jwt""
service.existingEl nombre de un servicio existente para ONLYOFFICE Docs. Si no se especifica, se creará un servicio llamado documentserver""
service.annotationsMapa de anotaciones para agregar al servicio de ONLYOFFICE Docs. Si se establece, tiene prioridad sobre las commonAnnotations{}
service.typeTipo de servicio de ONLYOFFICE DocsClusterIP
service.portPuerto del servicio de ONLYOFFICE Docs8888
service.sessionAffinityAfinidad de sesión para el servicio de ONLYOFFICE Docs. Si no se establece, se establecerá None como valor predeterminado""
service.sessionAffinityConfigConfiguración para la afinidad de sesión del servicio de ONLYOFFICE Docs. Se utiliza si se establece service.sessionAffinity{}
ingress.enabledHabilitar la creación de un ingreso para ONLYOFFICE Docsfalse
ingress.annotationsMapa de anotaciones para agregar al Ingress. Si se establece, tiene prioridad sobre las commonAnnotationsnginx.ingress.kubernetes.io/proxy-body-size: 100m
ingress.ingressClassNameSe utiliza para referenciar la IngressClass que debe usarse para implementar este Ingressnginx
ingress.controllerNameSe utiliza para distinguir entre controladores con el mismo IngressClassName pero de diferentes proveedoresingress-nginx
ingress.hostNombre de host de Ingress para el ingreso de ONLYOFFICE Docs""
ingress.tenantsNombres de host de Ingress si necesitas usar más de un nombre. Por ejemplo, para multitenencia. Si se establece, tiene prioridad sobre ingress.host. Si ingress.ssl.enabled está configurado en true, se asume que el certificado para todos los dominios especificados se mantiene en secreto por ingress.ssl.secret[]
ingress.ssl.enabledHabilitar ssl para el ingreso de ONLYOFFICE Docsfalse
ingress.ssl.secretNombre del secreto para ssl para montar en el Ingresstls
ingress.pathEspecifica la ruta donde estará disponible ONLYOFFICE Docs/
ingress.pathTypeEspecifica el tipo de ruta para el recurso de ingreso de ONLYOFFICE Docs. Los valores permitidos son Exact, Prefix o ImplementationSpecificImplementationSpecific
ingress.letsencrypt.enabledHabilitar la creación de solicitudes de certificados en Let's Encrypt. Se utiliza si ingress.enabled está configurado en truefalse
ingress.letsencrypt.clusterIssuerNameNombre del ClusterIssuerletsencrypt-prod
ingress.letsencrypt.emailTu dirección de correo electrónico utilizada para el registro ACME""
ingress.letsencrypt.serverLa dirección del servidor de Let's Encrypt al que se enviarán las solicitudes de certificadoshttps://acme-v02.api.letsencrypt.org/directory
ingress.letsencrypt.secretNameNombre de un secreto utilizado para almacenar la clave privada de la cuenta ACMEletsencrypt-prod-private-key
openshift.route.enabledHabilitar la creación de una Ruta de OpenShift para ONLYOFFICE Docsfalse
openshift.route.annotationsMapa de anotaciones para agregar a la Ruta de OpenShift. Si se establece, tiene prioridad sobre commonAnnotations{}
openshift.route.hostNombre de host de la Ruta de OpenShift para la ruta de ONLYOFFICE Docs""
openshift.route.pathEspecifica la ruta donde estará disponible ONLYOFFICE Docs/
openshift.route.wildcardPolicyLa política para manejar subdominios comodín en la Ruta de OpenShift. Los valores permitidos son None, SubdomainNone
grafana.enabledHabilitar la instalación de recursos necesarios para la visualización de métricas en Grafanafalse
grafana.namespaceEl nombre del espacio de nombres en el que se desplegarán los componentes RBAC y los recursos de Grafana. Si no se establece, el nombre se tomará de namespaceOverride si está configurado, o .Release.Namespace""
grafana.ingress.enabledHabilitar la creación de un ingreso para Grafana. Se utiliza si configuras grafana.enabled en true y deseas usar Nginx Ingress para acceder a Grafanafalse
grafana.ingress.annotationsMapa de anotaciones para agregar al Ingress de Grafana. Si se establece, tiene prioridad sobre commonAnnotationsnginx.ingress.kubernetes.io/proxy-body-size: 100m
grafana.dashboard.enabledHabilitar la instalación de paneles de Grafana preconfigurados. Se utiliza si configuras grafana.enabled en truefalse
podSecurityContext.enabledHabilitar el contexto de seguridad para los podsfalse
podSecurityContext.converter.fsGroupDefine el ID de Grupo al que se cambian el propietario y los permisos de todos los archivos en los volúmenes cuando se montan en el Pod del Convertidor101
podSecurityContext.docservice.fsGroupDefine el ID de Grupo al que se cambian el propietario y los permisos de todos los archivos en los volúmenes cuando se montan en el Pod del Servicio de Documentos101
podSecurityContext.jobs.fsGroupDefine el ID de Grupo al que se cambian el propietario y los permisos de todos los archivos en los volúmenes cuando se montan en Pods creados por Trabajos101
podSecurityContext.example.fsGroupDefine el ID de Grupo al que se cambian el propietario y los permisos de todos los archivos en los volúmenes cuando se montan en el Pod de Ejemplo1001
podSecurityContext.tests.fsGroupDefine el ID de Grupo al que se cambian el propietario y los permisos de todos los archivos en los volúmenes cuando se montan en el Pod de Pruebas101
webProxy.enabledEspecifica si se utiliza un proxy web en tu red para acceder a los Pods del clúster k8s a Internetfalse
webProxy.httpDirección del Proxy Web para tráfico HTTPhttp://proxy.example.com
webProxy.httpsDirección del Proxy Web para tráfico HTTPShttps://proxy.example.com
webProxy.noProxyPatrones para direcciones IP o nombres de servicios k8s o nombres de dominio que no deben usar el Proxy Weblocalhost,127.0.0.1,docservice
privateClusterEspecifica si el clúster k8s se utiliza en una red privada sin acceso a internetfalse
upgrade.job.enabledHabilitar la ejecución del trabajo previo a la actualización antes de actualizar ONLYOFFICE Docstrue
upgrade.job.annotationsDefine anotaciones que se agregarán adicionalmente al Trabajo previo a la actualización. Si se establece, tiene prioridad sobre commonAnnotations{}
upgrade.job.podAnnotationsMapa de anotaciones para agregar al Pod previo a la actualización{}
upgrade.job.customPodAntiAffinityProhibir la programación del Pod del Trabajo previo a la actualización en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
upgrade.job.podAffinityDefine reglas de afinidad de Pods para la programación del Pod del Trabajo previo a la actualización por nodos en relación con otros Pods{}
upgrade.job.nodeAffinityDefine reglas de afinidad de nodos para la programación del Pod del Trabajo previo a la actualización por nodos{}
upgrade.job.nodeSelectorEtiquetas de nodo para la asignación del Pod del Trabajo previo a la actualización. Si se establece, tiene prioridad sobre nodeSelector{}
upgrade.job.tolerationsTolerancias para la asignación del Pod del Trabajo previo a la actualización. Si se establece, tiene prioridad sobre tolerations[]
upgrade.job.initContainersDefine contenedores que se ejecutan antes del contenedor previo a la actualización en el Pod[]
upgrade.job.image.repositoryRepositorio de imágenes para el trabajo de actualizaciónonlyoffice/docs-utils
upgrade.job.image.tagEtiqueta de imagen para el trabajo de actualización9.0.4-1
upgrade.job.image.pullPolicyPolítica de extracción de imagen para el trabajo de actualizaciónIfNotPresent
upgrade.job.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor previo a la actualizaciónfalse
upgrade.job.resources.requestsLos recursos solicitados para el contenedor previo a la actualización{}
upgrade.job.resources.limitsLos límites de recursos para el contenedor previo a la actualización{}
upgrade.existingConfigmap.tblRemove.nameEl nombre del ConfigMap existente que contiene el archivo sql para eliminar tablas de la base de datosremove-db-scripts
upgrade.existingConfigmap.tblRemove.keyNameEl nombre del archivo sql que contiene instrucciones para eliminar tablas de la base de datos. Debe ser el mismo que el nombre de key en upgrade.existingConfigmap.tblRemove.nameremovetbl.sql
upgrade.existingConfigmap.tblCreate.nameEl nombre del ConfigMap existente que contiene el archivo sql para crear tablas de la base de datosinit-db-scripts
upgrade.existingConfigmap.tblCreate.keyNameEl nombre del archivo sql que contiene instrucciones para crear tablas de la base de datos. Debe ser el mismo que el nombre de key en upgrade.existingConfigmap.tblCreate.namecreatedb.sql
upgrade.existingConfigmap.dsStopEl nombre del ConfigMap existente que contiene el script de actualización de ONLYOFFICE Docs. Si se establece, se ignoran los cuatro parámetros anteriores. Debe contener una clave stop.sh""
rollback.job.enabledHabilitar la ejecución del trabajo previo a la reversión antes de revertir ONLYOFFICE Docstrue
rollback.job.annotationsDefine anotaciones que se agregarán adicionalmente al Trabajo previo a la reversión. Si se establece, tiene prioridad sobre commonAnnotations{}
rollback.job.podAnnotationsMapa de anotaciones para agregar al Pod previo a la reversión{}
rollback.job.customPodAntiAffinityProhibir la programación del Pod del Trabajo previo a la reversión en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
rollback.job.podAffinityDefine reglas de afinidad de Pods para la programación del Pod del Trabajo previo a la reversión por nodos en relación con otros Pods{}
rollback.job.nodeAffinityDefine las reglas de afinidad de nodo para la programación del Job Pod previo al rollback por los nodos{}
rollback.job.nodeSelectorEtiquetas de nodo para la asignación del Job Pod previo al rollback. Si se establece, tiene prioridad sobre el nodeSelector{}
rollback.job.tolerationsTolerancias para la asignación del Job Pod previo al rollback. Si se establece, tiene prioridad sobre las tolerations[]
rollback.job.initContainersDefine los contenedores que se ejecutan antes del contenedor previo al rollback en el Pod[]
rollback.job.image.repositoryRepositorio de imágenes para el Job por rollbackonlyoffice/docs-utils
rollback.job.image.tagEtiqueta de imagen para el Job por rollback9.0.4-1
rollback.job.image.pullPolicyPolítica de extracción de imagen para el Job por rollbackIfNotPresent
rollback.job.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor previo al rollbackfalse
rollback.job.resources.requestsLos recursos solicitados para el contenedor de rollback del Job{}
rollback.job.resources.limitsLos límites de recursos para el contenedor de rollback del Job{}
rollback.existingConfigmap.tblRemove.nameEl nombre del ConfigMap existente que contiene el archivo sql para eliminar tablas de la base de datosremove-db-scripts
rollback.existingConfigmap.tblRemove.keyNameEl nombre del archivo sql que contiene instrucciones para eliminar tablas de la base de datos. Debe ser el mismo que el nombre de key en rollback.existingConfigmap.tblRemove.nameremovetbl.sql
rollback.existingConfigmap.tblCreate.nameEl nombre del ConfigMap existente que contiene el archivo sql para crear tablas de la base de datosinit-db-scripts
rollback.existingConfigmap.tblCreate.keyNameEl nombre del archivo sql que contiene instrucciones para crear tablas de la base de datos. Debe ser el mismo que el nombre de key en rollback.existingConfigmap.tblCreate.namecreatedb.sql
rollback.existingConfigmap.dsStopEl nombre del ConfigMap existente que contiene el script de rollback de ONLYOFFICE Docs. Si se establece, se ignoran los cuatro parámetros anteriores. Debe contener una clave stop.sh""
delete.job.enabledHabilitar la ejecución del trabajo previo a la eliminación antes de eliminar ONLYOFFICE Docstrue
delete.job.annotationsDefine anotaciones que se agregarán adicionalmente al Job previo a la eliminación. Si se establece, tiene prioridad sobre las commonAnnotations{}
delete.job.podAnnotationsMapa de anotaciones para agregar al Pod previo a la eliminación{}
delete.job.customPodAntiAffinityProhibir la programación del Job Pod previo a la eliminación en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
delete.job.podAffinityDefine las reglas de afinidad de Pod para la programación del Job Pod previo a la eliminación por los nodos en relación con otros Pods{}
delete.job.nodeAffinityDefine las reglas de afinidad de nodo para la programación del Job Pod previo a la eliminación por los nodos{}
delete.job.nodeSelectorEtiquetas de nodo para la asignación del Job Pod previo a la eliminación. Si se establece, tiene prioridad sobre el nodeSelector{}
delete.job.tolerationsTolerancias para la asignación del Job Pod previo a la eliminación. Si se establece, tiene prioridad sobre las tolerations[]
delete.job.initContainersDefine los contenedores que se ejecutan antes del contenedor previo a la eliminación en el Pod[]
delete.job.image.repositoryRepositorio de imágenes para el Job por eliminaciónonlyoffice/docs-utils
delete.job.image.tagEtiqueta de imagen para el Job por eliminación9.0.4-1
delete.job.image.pullPolicyPolítica de extracción de imagen para el Job por eliminaciónIfNotPresent
delete.job.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor previo a la eliminaciónfalse
delete.job.resources.requestsLos recursos solicitados para el contenedor de eliminación del Job{}
delete.job.resources.limitsLos límites de recursos para el contenedor de eliminación del Job{}
delete.existingConfigmap.tblRemove.nameEl nombre del ConfigMap existente que contiene el archivo sql para eliminar tablas de la base de datosremove-db-scripts
delete.existingConfigmap.tblRemove.keyNameEl nombre del archivo sql que contiene instrucciones para eliminar tablas de la base de datos. Debe ser el mismo que el nombre de key en delete.existingConfigmap.tblRemove.nameremovetbl.sql
delete.existingConfigmap.dsStopEl nombre del ConfigMap existente que contiene el script de eliminación de ONLYOFFICE Docs. Si se establece, se ignoran los dos parámetros anteriores. Debe contener una clave stop.sh""
install.job.enabledHabilitar la ejecución del trabajo previo a la instalación antes de instalar ONLYOFFICE Docstrue
install.job.annotationsDefine anotaciones que se agregarán adicionalmente al Job previo a la instalación. Si se establece, tiene prioridad sobre las commonAnnotations{}
install.job.podAnnotationsMapa de anotaciones para agregar al Pod previo a la instalación{}
install.job.customPodAntiAffinityProhibir la programación del Job Pod previo a la instalación en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
install.job.podAffinityDefine las reglas de afinidad de Pod para la programación del Job Pod previo a la instalación por los nodos en relación con otros Pods{}
install.job.nodeAffinityDefine las reglas de afinidad de nodo para la programación del Job Pod previo a la instalación por los nodos{}
install.job.nodeSelectorEtiquetas de nodo para la asignación del Job Pod previo a la instalación. Si se establece, tiene prioridad sobre el nodeSelector{}
install.job.tolerationsTolerancias para la asignación del Job Pod previo a la instalación. Si se establece, tiene prioridad sobre las tolerations[]
install.job.initContainersDefine los contenedores que se ejecutan antes del contenedor previo a la instalación en el Pod[]
install.job.image.repositoryRepositorio de imágenes para el Job previo a la instalación de ONLYOFFICE Docsonlyoffice/docs-utils
install.job.image.tagEtiqueta de imagen para el Job previo a la instalación de ONLYOFFICE Docs9.0.4-1
install.job.image.pullPolicyPolítica de extracción de imagen para el Job previo a la instalación de ONLYOFFICE DocsIfNotPresent
install.job.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor previo a la instalaciónfalse
install.job.resources.requestsLos recursos solicitados para el contenedor de instalación previa del Job{}
install.job.resources.limitsLos límites de recursos para el contenedor de instalación previa del Job{}
install.existingConfigmap.tblCreate.nameEl nombre del ConfigMap existente que contiene el archivo sql para crear tablas de la base de datosinit-db-scripts
install.existingConfigmap.tblCreate.keyNameEl nombre del archivo sql que contiene instrucciones para crear tablas de la base de datos. Debe ser el mismo que el nombre de key en install.existingConfigmap.tblCreate.namecreatedb.sql
install.existingConfigmap.initdbEl nombre del ConfigMap existente que contiene el script initdb. Si se establece, se ignoran los dos parámetros anteriores. Debe contener una clave initdb.sh""
clearCache.job.enabledHabilitar la ejecución del trabajo Clear Cache después de actualizar ONLYOFFICE Docs. El trabajo Clear Cache tiene un hook post-upgrade que se ejecuta después de que se hayan actualizado los recursos en Kubernetes. Limpia el directorio Cachetrue
clearCache.job.annotationsDefine anotaciones que se agregarán adicionalmente al Job Clear Cache. Si se establece, tiene prioridad sobre las commonAnnotations{}
clearCache.job.podAnnotationsMapa de anotaciones para agregar al Pod Clear Cache{}
clearCache.job.customPodAntiAffinityProhibir la programación del Job Pod Clear Cache en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
clearCache.job.podAffinityDefine las reglas de afinidad de Pod para la programación del Job Pod Clear Cache por los nodos en relación con otros Pods{}
clearCache.job.nodeAffinityDefine las reglas de afinidad de nodo para la programación del Job Pod Clear Cache por los nodos{}
clearCache.job.nodeSelectorEtiquetas de nodo para la asignación del Job Pod Clear Cache. Si se establece, tiene prioridad sobre el nodeSelector{}
clearCache.job.tolerationsTolerancias para la asignación del Pod del trabajo de limpieza de caché. Si se establece, tiene prioridad sobre las tolerations[]
clearCache.job.initContainersDefine los contenedores que se ejecutan antes del contenedor de limpieza de caché en el Pod[]
clearCache.job.image.repositoryRepositorio de imágenes del trabajo de limpieza de caché de ONLYOFFICE Docsonlyoffice/docs-utils
clearCache.job.image.tagEtiqueta de imagen del trabajo de limpieza de caché de ONLYOFFICE Docs9.0.4-1
clearCache.job.image.pullPolicyPolítica de extracción de imágenes del trabajo de limpieza de caché de ONLYOFFICE DocsIfNotPresent
clearCache.job.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor de limpieza de cachéfalse
clearCache.job.resources.requestsLos recursos solicitados para el contenedor del trabajo de limpieza de caché{}
clearCache.job.resources.limitsLos límites de recursos para el contenedor del trabajo de limpieza de caché{}
clearCache.existingConfigmap.nameEl nombre del ConfigMap existente que contiene el script personalizado para limpiar el directorio de caché. Si se establece, no se creará el ConfigMap predeterminado""
clearCache.existingConfigmap.keyNameEl nombre del script que contiene instrucciones para limpiar el directorio de caché. Debe ser el mismo que el nombre de key en clearCache.existingConfigmap.name si se utiliza un script personalizadoclearCache.sh
grafanaDashboard.job.annotationsDefine anotaciones que se añadirán adicionalmente al trabajo del Panel de Grafana. Si se establece, tiene prioridad sobre las commonAnnotations{}
grafanaDashboard.job.podAnnotationsMapa de anotaciones para añadir al Pod del Panel de Grafana{}
grafanaDashboard.job.customPodAntiAffinityProhibir la programación del Pod del trabajo del Panel de Grafana en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
grafanaDashboard.job.podAffinityDefine reglas de afinidad de Pods para la programación del Pod del trabajo del Panel de Grafana por nodos en relación con otros Pods{}
grafanaDashboard.job.nodeAffinityDefine reglas de afinidad de nodos para la programación del Pod del trabajo del Panel de Grafana por nodos{}
grafanaDashboard.job.nodeSelectorEtiquetas de nodo para la asignación del Pod del trabajo del Panel de Grafana. Si se establece, tiene prioridad sobre el nodeSelector{}
grafanaDashboard.job.tolerationsTolerancias para la asignación del Pod del trabajo del Panel de Grafana. Si se establece, tiene prioridad sobre las tolerations[]
grafanaDashboard.job.initContainersDefine los contenedores que se ejecutan antes del contenedor del Panel de Grafana en el Pod[]
grafanaDashboard.job.image.repositoryRepositorio de imágenes del trabajo del Panel de Grafana de ONLYOFFICE Docsonlyoffice/docs-utils
grafanaDashboard.job.image.tagEtiqueta de imagen del trabajo del Panel de Grafana de ONLYOFFICE Docs9.0.4-1
grafanaDashboard.job.image.pullPolicyPolítica de extracción de imágenes del trabajo del Panel de Grafana de ONLYOFFICE DocsIfNotPresent
grafanaDashboard.job.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor del Panel de Grafanafalse
grafanaDashboard.job.resources.requestsLos recursos solicitados para el contenedor del trabajo del Panel de Grafana{}
grafanaDashboard.job.resources.limitsLos límites de recursos para el contenedor del trabajo del Panel de Grafana{}
wopiKeysGeneration.job.annotationsDefine anotaciones que se añadirán adicionalmente al trabajo de generación de claves Wopi. Si se establece, tiene prioridad sobre las commonAnnotations{}
wopiKeysGeneration.job.podAnnotationsMapa de anotaciones para añadir al Pod de generación de claves Wopi{}
wopiKeysGeneration.job.customPodAntiAffinityProhibir la programación del Pod del trabajo de generación de claves Wopi en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
wopiKeysGeneration.job.podAffinityDefine reglas de afinidad de Pods para la programación del Pod del trabajo de generación de claves Wopi por nodos en relación con otros Pods{}
wopiKeysGeneration.job.nodeAffinityDefine reglas de afinidad de nodos para la programación del Pod del trabajo de generación de claves Wopi por nodos{}
wopiKeysGeneration.job.nodeSelectorEtiquetas de nodo para la asignación del Pod del trabajo de generación de claves Wopi. Si se establece, tiene prioridad sobre el nodeSelector{}
wopiKeysGeneration.job.tolerationsTolerancias para la asignación del Pod del trabajo de generación de claves Wopi. Si se establece, tiene prioridad sobre las tolerations[]
wopiKeysGeneration.job.initContainersDefine los contenedores que se ejecutan antes del contenedor de generación de claves Wopi en el Pod[]
wopiKeysGeneration.job.image.repositoryRepositorio de imágenes del trabajo de generación de claves Wopi de ONLYOFFICE Docsonlyoffice/docs-utils
wopiKeysGeneration.job.image.tagEtiqueta de imagen del trabajo de generación de claves Wopi de ONLYOFFICE Docs9.0.4-1
wopiKeysGeneration.job.image.pullPolicyPolítica de extracción de imágenes del trabajo de generación de claves Wopi de ONLYOFFICE DocsIfNotPresent
wopiKeysGeneration.job.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor de generación de claves Wopifalse
wopiKeysGeneration.job.resources.requestsLos recursos solicitados para el contenedor del trabajo de generación de claves Wopi{}
wopiKeysGeneration.job.resources.limitsLos límites de recursos para el contenedor del trabajo de generación de claves Wopi{}
wopiKeysDeletion.job.enabled Habilitar la ejecución del trabajo de eliminación de claves Wopi antes de eliminar ONLYOFFICE Docs. Elimina los secretos WOPI generados automáticamente. Se ejecuta si wopi.enabled, wopi.keys.generation y wopiKeysDeletion.job.enabled están configurados en truetrue
wopiKeysDeletion.job.annotationsDefine anotaciones que se añadirán adicionalmente al trabajo de eliminación de claves Wopi. Si se establece, tiene prioridad sobre las commonAnnotations{}
wopiKeysDeletion.job.podAnnotationsMapa de anotaciones para añadir al Pod de eliminación de claves Wopi{}
wopiKeysDeletion.job.customPodAntiAffinityProhibir la programación del Pod del trabajo de eliminación de claves Wopi en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
wopiKeysDeletion.job.podAffinityDefine reglas de afinidad de Pods para la programación del Pod del trabajo de eliminación de claves Wopi por nodos en relación con otros Pods{}
wopiKeysDeletion.job.nodeAffinityDefine reglas de afinidad de nodos para la programación del Pod del trabajo de eliminación de claves Wopi por nodos{}
wopiKeysDeletion.job.nodeSelectorEtiquetas de nodo para la asignación del Pod del trabajo de eliminación de claves Wopi. Si se establece, tiene prioridad sobre el nodeSelector{}
wopiKeysDeletion.job.tolerationsTolerancias para la asignación del Pod del trabajo de eliminación de claves Wopi. Si se establece, tiene prioridad sobre las tolerations[]
wopiKeysDeletion.job.initContainersDefine los contenedores que se ejecutan antes del contenedor de eliminación de claves Wopi en el Pod[]
wopiKeysDeletion.job.image.repositoryRepositorio de imágenes del trabajo de eliminación de claves Wopi de ONLYOFFICE Docsonlyoffice/docs-utils
wopiKeysDeletion.job.image.tagEtiqueta de imagen del trabajo de eliminación de claves Wopi de ONLYOFFICE Docs9.0.4-1
wopiKeysDeletion.job.image.pullPolicyPolítica de extracción de imágenes del trabajo de eliminación de claves Wopi de ONLYOFFICE DocsIfNotPresent
wopiKeysDeletion.job.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor de eliminación de claves Wopifalse
wopiKeysDeletion.job.resources.requestsLos recursos solicitados para el contenedor del trabajo de eliminación de claves Wopi{}
wopiKeysDeletion.job.resources.limitsLos límites de recursos para el contenedor del trabajo de eliminación de claves Wopi{}
tests.enabledHabilitar la creación de los recursos necesarios para las pruebas de lanzamiento de ONLYOFFICE Docs y las pruebas de disponibilidad de las dependencias conectadas. Estos recursos se utilizarán al ejecutar el comando helm testtrue
tests.annotationsDefine anotaciones que se añadirán adicionalmente al Pod de prueba. Si se establece, tiene prioridad sobre las commonAnnotations{}
tests.customPodAntiAffinityProhibir la programación del Pod de prueba en relación con otros Pods que contengan las etiquetas especificadas en el mismo nodo{}
tests.podAffinityDefine reglas de afinidad de Pods para la programación del Pod de prueba por nodos en relación con otros Pods{}
tests.nodeAffinityDefine las reglas de afinidad de nodo para la programación del Pod de prueba por nodos{}
tests.nodeSelectorEtiquetas de nodo para la asignación del Pod de prueba. Si se establece, tiene prioridad sobre el nodeSelector{}
tests.tolerationsTolerancias para la asignación del Pod de prueba. Si se establece, tiene prioridad sobre las tolerations[]
tests.initContainersDefine los contenedores que se ejecutan antes del contenedor de prueba en el Pod[]
tests.image.repositoryNombre de la imagen del contenedor de pruebaonlyoffice/docs-utils
tests.image.tagEtiqueta de la imagen del contenedor de prueba9.0.4-1
tests.image.pullPolicyPolítica de obtención de la imagen del contenedor de pruebaIfNotPresent
tests.containerSecurityContext.enabledHabilitar el contexto de seguridad para el contenedor de pruebafalse
tests.resources.requestsLos recursos solicitados para el contenedor de prueba{}
tests.resources.limitsLos límites de recursos para el contenedor de prueba{}
  • *Nota: El prefijo -de está especificado en el valor del repositorio de imágenes, lo que indica el tipo de solución. Opciones posibles:
    • -de. Para la edición comercial Developer Edition
    • -ee. Para la edición comercial Enterprise Edition

    El valor predeterminado de este parámetro se refiere a la edición Developer Edition del Servidor de Documentos de ONLYOFFICE. Para obtener más información sobre esta edición y compararla con otras ediciones, consulte la tabla de comparación en esta página.

5. Detalles de configuración e instalación
  1. Despliegue de ejemplo (opcional)
    Importante Este paso es opcional. Puede omitirlo por completo si no necesita desplegar el ejemplo.

    Para desplegar el ejemplo, establezca el parámetro example.enabled en true:

    $ helm install documentserver onlyoffice/docs --set example.enabled=true
  2. Despliegue de métricas (opcional)
    Importante Este paso es opcional. Puede omitirlo por completo si no necesita desplegar métricas.

    Para desplegar métricas, establezca metrics.enabled en true:

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

    Si desea usar Grafana para visualizar métricas, establezca grafana.enabled en true. Si desea usar Nginx Ingress para acceder a Grafana, establezca grafana.ingress.enabled en true:

    $ helm install documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.ingress.enabled=true
  3. Exponer ONLYOFFICE Docs
    1. Exponer ONLYOFFICE Docs a través de Servicio (solo HTTP)
      Debe omitir este paso si va a exponer ONLYOFFICE Docs a través de HTTPS.

      Este tipo de exposición crea un balanceador de carga para acceder a ONLYOFFICE Docs. Use este tipo si utiliza terminación TLS externa y no tiene otra aplicación web en el clúster k8s.

      Para exponer ONLYOFFICE Docs a través de servicio, establezca el parámetro service.type en LoadBalancer:

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

      Ejecute el siguiente comando para obtener la IP del servicio documentserver:

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

      Después de eso, ONLYOFFICE Docs estará disponible en http://DOCUMENTSERVER-SERVICE-IP/.

      Si la IP del servicio está vacía, intente obtener el nombre de host del servicio documentserver:

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

      En este caso, ONLYOFFICE Docs estará disponible en http://DOCUMENTSERVER-SERVICE-HOSTNAME/.

    2. Exponer ONLYOFFICE Docs a través de Ingress

      Primero, instale el Controlador de Ingress Nginx de Kubernetes:

      $ helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true,controller.replicaCount=2
      Para habilitar la exposición de métricas de ingress-nginx a Prometheus, ejecute:
      $ helm install nginx-ingress -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/ingress_values.yaml ingress-nginx/ingress-nginx

      Vea más detalles sobre la instalación de Nginx Ingress a través de Helm aquí.

      Luego elija su método de exposición:

      • A través de HTTP
        Debe omitir esto si va a exponer ONLYOFFICE Docs a través de HTTPS.
        $ helm install documentserver onlyoffice/docs --set ingress.enabled=true

        Obtenga la IP de ingress:

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

        ONLYOFFICE Docs estará disponible en http://DOCUMENTSERVER-INGRESS-IP/ (o use el nombre de host si la IP está vacía).

      • A través de HTTPS (terminación TLS)

        Cree el secreto tls con su certificado 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

        Asocie la IP o el nombre de host de ingress con su nombre de dominio a través de su proveedor de DNS. Después de eso, ONLYOFFICE Docs estará disponible en https://your-domain-name/.

      • A través de HTTPS usando 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

        Luego instale o actualice ONLYOFFICE Docs estableciendo ingress.enabled, ingress.ssl.enabled, ingress.letsencrypt.enabled en true, y especificando sus valores para ingress.letsencrypt.email e ingress.host (o ingress.tenants para múltiples dominios).

      • A través de una ruta virtual

        Establezca los parámetros ingress.enabled, ingress.host y ingress.path:

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

        Controladores de ingress compatibles: Ingress NGINX por Kubernetes, NGINX Ingress por NGINX, HAProxy Ingress por HAProxy.

        Para Ingress NGINX por Kubernetes, agregue el patrón (/|$)(.*) a ingress.path, por ejemplo, /docs(/|$)(.*).

    3. Exponer ONLYOFFICE Docs a través de ruta en OpenShift
      $ helm install documentserver onlyoffice/docs --set openshift.route.enabled=true,openshift.route.host=your-domain-name,openshift.route.path=/docs

      Para la terminación TLS, agregue manualmente los certificados a la ruta a través de la consola web de OpenShift.

6. Escalar ONLYOFFICE Docs
Importante Este paso es opcional. Puede omitirlo por completo si desea usar la configuración de despliegue predeterminada.
  1. Autoscaling Horizontal de Pods

    Puede habilitar el Autoscaling para que el número de réplicas de los despliegues docservice y converter se calcule automáticamente en función de los valores y el tipo de métricas.

    Para las métricas de recursos, la API metrics.k8s.io debe estar registrada, lo cual generalmente es proporcionado por el metrics-server. Puede lanzarse como un complemento del clúster.

    Para habilitar HPA para el despliegue de docservice, especifique el parámetro docservice.autoscaling.enabled=true. De manera similar, para habilitar HPA para el despliegue de converter, especifique converter.autoscaling.enabled=true. En ambos casos, el parámetro correspondiente replicas se ignora y el número de réplicas es controlado por HPA.

    Para más información sobre el Escalado Horizontal de Pods, consulte aquí. Para otros parámetros configurables de Autoscaling, consulte la tabla de Parámetros.

  2. Escalado manual

    Los despliegues de docservice y converter constan de 2 pods cada uno por defecto.

    Para escalar el despliegue de docservice:

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

    Para escalar el despliegue de converter:

    $ kubectl scale -n default deployment converter --replicas=POD_COUNT
7. Actualizar ONLYOFFICE Docs

Para actualizar, configure los parámetros para la actualización. Por ejemplo:

$ helm upgrade documentserver onlyoffice/docs \
  --set docservice.image.tag=[version]
También necesita especificar los parámetros que se indicaron durante la instalación.

O modifique el archivo values.yaml y ejecute:

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

El comando helm upgrade ejecuta un hook que apaga ONLYOFFICE Docs y limpia la base de datos. El tiempo de ejecución del hook por defecto es de 300s. Para cambiarlo:

$ helm upgrade documentserver -f values.yaml onlyoffice/docs --timeout 15m
Al actualizar en un clúster k8s privado detrás de un proxy web o sin acceso a internet, consulte las notas a continuación.

Para actualizar cualquier parámetro que no sea la versión de ONLYOFFICE Docs, ejecute helm upgrade sin hooks:

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

Para revertir actualizaciones:

$ helm rollback documentserver
Al revertir en un clúster k8s privado, consulte las notas a continuación.
8. Apagar ONLYOFFICE Docs
Importante Este paso es opcional.

Para realizar el apagado, ejecute el siguiente comando:

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

Dónde <NAMESPACE> es el espacio de nombres donde está instalado ONLYOFFICE Docs. Por defecto es default si no se especifica. Por ejemplo:

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

Después de que el Pod shutdown-ds se ejecute con éxito, elimine el Job:

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

Para reiniciar ONLYOFFICE Docs después del apagado, reinicie los pods de docservice y converter:

$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
9. Actualizar la licencia de ONLYOFFICE Docs
Importante Este paso es opcional.

Desde la versión v5.1.1, puede actualizar la licencia recreando el secreto sin reiniciar los pods. Para actualizar la licencia:

  • Coloque el nuevo archivo license.lic en un directorio.
  • Ejecute los siguientes comandos:
    $ kubectl delete secret [SECRET_LICENSE_NAME] -n <NAMESPACE>
    $ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.lic -n <NAMESPACE>

    Dónde SECRET_LICENSE_NAME es el nombre del secreto existente con una licencia.

El servidor de documentos releerá automáticamente la nueva licencia.

[MÉTODO OBSOLETO] Reinicie los pods de docservice y converter:
$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
10. Prueba de instalación de ONLYOFFICE Docs
Importante Este paso es opcional.

Pruebe la disponibilidad de ONLYOFFICE Docs y el acceso a las dependencias conectadas:

$ helm test documentserver -n <NAMESPACE>

La salida debe contener:

Phase: Succeeded

Para ver el registro de la prueba:

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

Después de la prueba, elimine el Pod test-ds:

$ kubectl delete pod test-ds -n <NAMESPACE>
Esta prueba es solo para fines informativos y no puede garantizar el 100% de disponibilidad. Para información detallada, revise los registros de la aplicación.
11. Ejecutar Jobs en un clúster k8s privado
Importante Este paso es opcional. Puede omitirlo completamente si su clúster tiene acceso a internet sin restricciones.

Al ejecutar un Job para instalación, actualización, reversión o eliminación, el contenedor necesita acceso a internet para descargar los últimos scripts SQL. Si el acceso a la red externa está restringido en su clúster, configure privateCluster=true y cree manualmente un ConfigMap con los scripts SQL necesarios.

Si su clúster ya tiene los configmaps remove-db-scripts y init-db-scripts, elimínelos primero:

$ kubectl delete cm remove-db-scripts init-db-scripts

Descargue los scripts de la base de datos. Para PostgreSQL:

$ wget -O removetbl.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/postgresql/removetbl.sql
$ wget -O createdb.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/postgresql/createdb.sql

Para MySQL:

$ wget -O removetbl.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/mysql/removetbl.sql
$ wget -O createdb.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/mysql/createdb.sql

Cree configmaps a partir de ellos:

$ kubectl create configmap remove-db-scripts --from-file=./removetbl.sql
$ kubectl create configmap init-db-scripts --from-file=./createdb.sql

Si utilizó nombres diferentes para ConfigMap o los archivos, configure los parámetros apropiados para los jobs correspondientes: existingConfigmap.tblRemove.name / existingConfigmap.tblRemove.keyName para scripts de limpieza, y existingConfigmap.tblCreate.name / existingConfigmap.tblCreate.keyName para scripts de creación.

Luego, al ejecutar helm install|upgrade|rollback|delete, configure el parámetro privateCluster=true.

Si hay un Proxy Web disponible, puede dejar privateCluster=false y configurar webProxy.enabled=true con los parámetros de proxy apropiados en lugar de crear configmaps manualmente.
12. Acceso a la página de información
Importante Este paso es opcional.

El acceso a la página /info está limitado por defecto. Para permitir el acceso, especifique las direcciones IP o subredes usando el parámetro proxy.infoAllowedIP. Tenga en cuenta que debido a las especificidades de la red de Kubernetes, los clientes reales suelen ser direcciones de Pod, Nodo o Balanceador de Carga en lugar de la IP original del usuario.

Puede restringir aún más el acceso utilizando la Autenticación Básica de Nginx configurando el parámetro proxy.infoAllowedUser y una contraseña a través de proxy.infoAllowedPassword. Alternativamente, use un secreto existente configurando proxy.infoAllowedExistingSecret.

Uso de Grafana para visualizar métricas

Importante Esta sección es opcional. Puede omitirla completamente si no desea instalar Grafana.
1. Desplegar Grafana
Se asume que el paso 6.2 (Instalación de Prometheus) ya se ha completado.
  1. Desplegar Grafana sin tableros predefinidos
    Omita este paso si desea desplegar Grafana con tableros predefinidos.
    $ 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. Desplegar Grafana con paneles preconfigurados
    1. Instalar paneles preconfigurados de Grafana

      Establezca los parámetros grafana.enabled y grafana.dashboard.enabled en true. Si ONLYOFFICE Docs ya está instalado, ejecute:

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

      Esto descarga paneles preconfigurados en formato JSON desde el sitio web de Grafana, aplica las ediciones necesarias y crea un configmap a partir de ellos. También se añade un panel para las métricas de ONLYOFFICE Docs (se asume que el paso 6 (Desplegar StatsD exporter) ya se ha completado).

    2. Instalar 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

      Los siguientes paneles serán importados a Grafana: Node Exporter, Deployment Statefulset Daemonset, Redis Dashboard para Prometheus Redis Exporter, RabbitMQ-Overview, Base de datos PostgreSQL, controlador NGINX Ingress, ONLYOFFICE Docs y Uso de recursos por Pods y Contenedores.

      Puede ver la descripción de las métricas de ONLYOFFICE Docs visualizadas en Grafana aquí.

      Vea más detalles sobre la instalación de Grafana a través de Helm aquí.

2. Acceso a Grafana a través de Ingress
Se asume que el paso sobre instalar el controlador Kubernetes Nginx Ingress ya se ha completado.

Si ONLYOFFICE Docs se instaló con el parámetro grafana.ingress.enabled (Despliegue de métricas), Grafana estará disponible en: http://INGRESS-ADDRESS/grafana/

Si Ingress se instaló con una conexión segura (Exponer ONLYOFFICE Docs a través de HTTPS), Grafana estará disponible en: https://your-domain-name/grafana/

3. Ver métricas recopiladas en Grafana

Vaya a http(s)://your-domain-name/grafana/ e inicie sesión con:

Login - admin

Para obtener la contraseña, ejecute:

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

En la sección de paneles, verá los paneles añadidos que muestran las métricas recibidas de Prometheus.

Artículos con etiqueta:
Ver todas las etiquetas