Este artigo foi traduzido por IA

ONLYOFFICE Docs para Kubernetes

Introdução

Importante O guia a seguir é válido apenas para a solução de licença paga cluster.
  • Você deve ter um cluster Kubernetes ou OpenShift instalado:
  • Você também deve ter uma cópia local configurada do kubectl. Veja este guia sobre como instalar e configurar o kubectl.
  • Você deve instalar o Helm v3.7+. Por favor, siga a instrução aqui para instalá-lo.
  • Se você usar o OpenShift, pode usar tanto oc quanto kubectl para gerenciar o deploy.
  • Se a instalação de componentes externos ao 'Docs' for realizada a partir do Helm Chart em um cluster OpenShift, recomenda-se instalá-los a partir de um usuário que tenha a função cluster-admin, para evitar possíveis problemas com direitos de acesso. Veja este guia para adicionar as funções necessárias ao usuário.

Pré-requisitos de implantação

Pode ser necessário aplicar a política SecurityContextConstraints ao instalar em um cluster OpenShift, que adiciona permissão para executar contêineres de um usuário cujo ID = 1001.

Para fazer isso, execute os seguintes 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, você pode especificar o intervalo permitido de usuários e grupos do namespace de destino, veja os parâmetros runAsUser e fsGroup ao instalar dependências, como RabbitMQ, Redis, PostgreSQL, etc.

1. Adicionar repositórios 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 armazenamento persistente
Importante Se você deseja usar Amazon S3 como cache, por favor, pule esta etapa.

Instalar NFS Server Provisioner

Ao instalar o NFS Server Provisioner, Classes de Armazenamento - NFS são criadas. Ao instalar em um cluster OpenShift, o usuário deve ter uma função que permita criar Classes de Armazenamento no cluster. Leia mais aqui.
$ 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 é uma Classe de Armazenamento Persistente disponível no seu cluster Kubernetes.

    Classes de Armazenamento Persistente para diferentes provedores:

  • PERSISTENT_SIZE é o tamanho total de todos os Armazenamentos Persistentes para a Classe de Armazenamento Persistente nfs. Você pode expressar o tamanho como um número inteiro simples com um destes sufixos: T, G, M, Ti, Gi, Mi. Por exemplo: 9Gi.

Veja mais detalhes sobre a instalação do NFS Server Provisioner via Helm aqui.

Configurar uma Reivindicação de Volume Persistente

A Reivindicação de Volume Persistente padrão nfs é 8Gi. Você pode alterá-la no arquivo values.yaml na seção persistence.storageClass e persistence.size. Deve ser pelo menos 5% menor que PERSISTENT_SIZE. Recomenda-se usar 8Gi ou mais para armazenamento persistente para cada 100 usuários ativos do ONLYOFFICE Docs.

Importante O tipo de PersistentVolume a ser usado para a colocação do PVC deve suportar o Modo de Acesso ReadWriteMany. Além disso, o PersistentVolume deve ter como proprietário o usuário de quem o ONLYOFFICE Docs será iniciado. Por padrão, é ds (101:101).

Se você deseja habilitar o WOPI, por favor, defina o parâmetro wopi.enabled=true. Nesse caso, o Armazenamento Persistente deve estar conectado aos nós do cluster com os atributos de cache desativados para o diretório montado para os clientes. Para o NFS Server Provisioner, isso pode ser alcançado adicionando a opção noac ao parâmetro storageClass.mountOptions. Por favor, encontre mais informações aqui.

3. Implantar RabbitMQ

Para instalar o RabbitMQ no seu cluster, execute o seguinte 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
Defina metrics.enabled=true para habilitar a exposição de métricas do RabbitMQ para serem coletadas pelo Prometheus.

Veja mais detalhes sobre a instalação do RabbitMQ via Helm aqui.

4. Implantar Redis

Para instalar o Redis no seu cluster, execute o seguinte 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
Defina metrics.enabled=true para habilitar a exposição de métricas do Redis para serem coletadas pelo Prometheus. Além disso, adicione os seguintes parâmetros: metrics.image.repository=bitnamilegacy/redis-exporter e metrics.image.tag=1.76.0-debian-12-r0.

Veja mais detalhes sobre a instalação do Redis via Helm aqui.

5. Implantar Banco de Dados

Como servidor de banco de dados, você pode usar PostgreSQL, MySQL ou MariaDB.

Para instalar o PostgreSQL no seu cluster, execute o seguinte 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
Defina metrics.enabled=true para habilitar a exposição de métricas do Banco de Dados para serem coletadas pelo Prometheus. Além disso, adicione os seguintes parâmetros: metrics.image.repository=bitnamilegacy/postgres-exporter e metrics.image.tag=0.17.1-debian-12-r16.

Veja mais detalhes sobre a instalação do PostgreSQL via Helm aqui.

Para instalar o MySQL no seu cluster, execute o seguinte 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

Veja mais detalhes sobre a instalação do MySQL via Helm aqui.

Aqui, PERSISTENT_SIZE é o tamanho para o volume persistente do Banco de Dados. Por exemplo: 8Gi.

Recomenda-se usar pelo menos 2Gi de armazenamento persistente para cada 100 usuários ativos do ONLYOFFICE Docs.

Defina metrics.enabled=true para habilitar a exposição de métricas do Banco de Dados a serem coletadas pelo Prometheus. Além disso, adicione os seguintes parâmetros: metrics.image.repository=bitnamilegacy/mysqld-exporter e metrics.image.tag=0.17.2-debian-12-r16.
6. Implantar StatsD exporter
Importante Este passo é opcional. Você pode ignorá-lo completamente se não quiser executar o StatsD exporter.
  1. Adicionar repositórios 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. Instalando Prometheus

    Para instalar o Prometheus no seu cluster, execute o seguinte 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 alterar o intervalo de coleta, especifique o parâmetro server.global.scrape_interval.

    Veja mais detalhes sobre a instalação do Prometheus via Helm aqui.

  3. Instalando StatsD exporter

    Para instalar o StatsD exporter no seu cluster, execute o seguinte comando:

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

    Veja mais detalhes sobre a instalação do Prometheus StatsD exporter via Helm aqui.

    Para permitir as métricas StatsD no ONLYOFFICE Docs, siga este passo.

7. Fazer alterações nos arquivos de configuração Node-config
Importante Este passo é opcional. Você pode ignorá-lo completamente se não precisar fazer alterações nos arquivos de configuração.
  1. Criar um ConfigMap contendo um arquivo json

    Para criar um ConfigMap a partir de um arquivo que contém a estrutura local.json, você precisa executar o seguinte comando:

    $ kubectl create configmap local-config \
      --from-file=./local.json
    Qualquer nome pode ser usado no lugar de local-config.
  2. Especificar parâmetros ao instalar o ONLYOFFICE Docs

    Ao instalar o ONLYOFFICE Docs, especifique os parâmetros extraConf.configMap=local-config e extraConf.filename=local.json.

    Se você precisar adicionar um arquivo de configuração após o ONLYOFFICE Docs já estar instalado, você precisa executar o passo 7.1 e então executar o
    helm upgrade documentserver onlyoffice/docs --set extraConf.configMap=local-config --set extraConf.filename=local.json --no-hooks
    comando ou
    helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks
    se os parâmetros estiverem especificados no arquivo values.yaml.
8. Adicionar fontes personalizadas
Importante Este passo é opcional. Você pode ignorá-lo completamente se não precisar adicionar suas fontes.

Para adicionar fontes às imagens, você precisa reconstruir as imagens. Consulte os passos relevantes neste manual. Em seguida, especifique suas imagens ao instalar o ONLYOFFICE Docs.

9. Adicionar plugins
Importante Este passo é opcional. Você pode ignorá-lo completamente se não precisar adicionar plugins.

Para adicionar plugins às imagens, você precisa reconstruir as imagens. Consulte os passos relevantes neste manual. Em seguida, especifique suas imagens ao instalar o ONLYOFFICE Docs.

10. Adicionar dicionários personalizados
Importante Este passo é opcional. Você pode ignorá-lo completamente se não precisar adicionar seus dicionários.

Para adicionar seus dicionários personalizados às imagens, você precisa reconstruir as imagens. Consulte os passos relevantes neste manual. Em seguida, especifique suas imagens ao instalar o ONLYOFFICE Docs.

11. Alterar temas da interface
Importante Este passo é opcional. Você pode ignorá-lo completamente se não precisar alterar os temas da interface.
  1. Criar um ConfigMap contendo um arquivo json

    Para criar um ConfigMap com um arquivo json que contém os temas da interface, você precisa executar o seguinte comando:

    $ kubectl create configmap custom-themes \
      --from-file=./custom-themes.json
    Em vez de custom-themes e custom-themes.json você pode usar quaisquer outros nomes.
  2. Especificar parâmetros ao instalar o ONLYOFFICE Docs

    Ao instalar o ONLYOFFICE Docs, especifique os parâmetros extraThemes.configMap=custom-themes e extraThemes.filename=custom-themes.json.

    Se você precisar adicionar temas de interface após o ONLYOFFICE Docs já estar instalado, você precisa executar o passo 11.1 e então executar o comando 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 se os parâmetros estiverem especificados no arquivo values.yaml.
12. Conectar bucket Amazon S3 como cache ao ONLYOFFICE Helm Docs
Importante Este passo é opcional. Você pode ignorá-lo completamente se não quiser usar o Amazon S3 como armazenamento de cache.

Para conectar o bucket Amazon S3 como cache, você precisa criar um arquivo de configuração ou editar o existente de acordo com este guia e alterar o valor do parâmetro persistence.storageS3 para true.

Implantar ONLYOFFICE Docs

Pode ser necessário aplicar a política SecurityContextConstraints ao instalar em um cluster OpenShift, que adiciona permissão para executar contêineres de um usuário cujo ID = 101.

Para fazer isso, execute os seguintes 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, você pode aplicar a política nonroot-v2 SecurityContextConstraints (SCC) nas commonAnnotations ou annotations para todos os recursos que descrevem o podTemplate. Certifique-se de que tanto o usuário quanto a conta de serviço tenham as permissões necessárias para usar este SCC. Para verificar quem tem permissão para usar o nonroot-v2, execute o seguinte comando:

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

Se necessário, defina podSecurityContext.enabled e <resources>.containerSecurityContext.enabled como true.

1. Implantar a licença do ONLYOFFICE Docs
  1. Criar segredo

    Se você tiver uma licença válida do ONLYOFFICE Docs, crie um segredo license a partir do arquivo:

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

    Onde SECRET_LICENSE_NAME é o nome de um futuro segredo com uma licença.

    O nome do arquivo de licença de origem deve ser 'license.lic' porque esse nome será usado como um campo no segredo criado.
    Se a instalação for realizada sem criar um segredo com o arquivo de licença existente, um segredo vazio license será criado automaticamente. Para informações sobre como atualizar um segredo existente com uma licença, veja aqui.
  2. Especificar parâmetros ao instalar o ONLYOFFICE Docs

    Ao instalar o ONLYOFFICE Docs, especifique o parâmetro license.existingSecret=[SECRET_LICENSE_NAME].

    $ helm install documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME]
    Se precisar adicionar a licença após o ONLYOFFICE Docs já estar instalado, você deve executar o passo 1.1 e então executar o comando helm upgrade documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME] --no-hooks ou helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks se os parâmetros estiverem especificados no arquivo values.yaml.
2. Implantar ONLYOFFICE Docs

Para implantar o ONLYOFFICE Docs com o nome de release documentserver:

$ helm install documentserver onlyoffice/docs

O comando implanta o ONLYOFFICE Docs no cluster Kubernetes na configuração padrão. A seção Parâmetros lista os parâmetros que podem ser configurados durante a instalação.

Ao instalar o ONLYOFFICE Docs em um cluster k8s privado por trás de um proxy Web ou sem acesso à internet, veja as notas abaixo.
3. Desinstalar ONLYOFFICE Docs

Para desinstalar/excluir a implantação documentserver:

$ helm delete documentserver

Executar o comando helm delete aciona hooks, que realizam algumas ações preparatórias antes de excluir completamente o ONLYOFFICE Docs, incluindo parar o servidor, limpar o PVC usado e as tabelas do banco de dados. O tempo padrão de execução dos hooks é de 300s. O tempo de execução pode ser alterado usando --timeout [time], por exemplo:

$ helm delete documentserver --timeout 25m
Ao excluir o ONLYOFFICE Docs em um cluster k8s privado por trás de um proxy Web ou sem acesso à internet, veja as notas abaixo.

Se você quiser excluir o ONLYOFFICE Docs sem nenhuma ação preparatória, execute o seguinte comando:

$ helm delete documentserver --no-hooks

O comando helm delete remove todos os componentes do Kubernetes associados ao chart e exclui a release.

4. Parâmetros

Especifique cada parâmetro usando o argumento --set key=value[,key=value] para helm install. Por exemplo:

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

Este comando expõe o ONLYOFFICE Docs via HTTPS.

Alternativamente, um arquivo YAML que especifica os valores para os parâmetros pode ser fornecido durante a instalação do chart:

$ helm install documentserver -f values.yaml onlyoffice/docs
Você pode usar o values.yaml padrão.
Mostrar todos os parâmetros
connections.dbTypeO tipo de banco de dados. Os valores possíveis são postgres, mariadb, mysql, oracle, mssql ou damengpostgres
connections.dbHostO endereço IP ou o nome do host do Banco de Dadospostgresql
connections.dbUserUsuário do banco de dadospostgres
connections.dbPortNúmero da porta do servidor de banco de dados5432
connections.dbNameNome do banco de dados ao qual a aplicação estará conectadapostgres
connections.dbPasswordSenha do usuário do banco de dados. Se definida, tem prioridade sobre o connections.dbExistingSecret""
connections.dbSecretKeyNameO nome da chave que contém a senha do usuário do Banco de Dadospostgres-password
connections.dbExistingSecretNome do segredo existente a ser usado para senhas de Banco de Dados. Deve conter a chave especificada em connections.dbSecretKeyNamepostgresql
connections.redisConnectorNameDefine qual conector usar para conectar ao Redis. Se precisar conectar ao Redis Sentinel, defina o valor ioredisredis
connections.redistHostO endereço IP ou o nome do host do Redis. Não é usado se os valores estiverem definidos em connections.redisClusterNodes e connections.redisSentinelNodesredis-master
connections.redisPortO número da porta do servidor Redis. Não é usado se os valores estiverem definidos em connections.redisClusterNodes e connections.redisSentinelNodes6379
connections.redisUserO nome do usuário do Redis. O valor neste parâmetro substitui o valor definido no objeto options em local.json se você adicionar um arquivo de configuração personalizadodefault
connections.redisDBNumNúmero do banco de dados lógico do Redis a ser selecionado. O valor neste parâmetro substitui o valor definido no objeto options em local.json se você adicionar um arquivo de configuração personalizado0
connections.redisClusterNodesLista de nós no cluster Redis. Não é necessário especificar todos os nós no cluster, 3 devem ser suficientes. Você pode especificar vários valores. Deve ser especificado no formato host:port[]
connections.redisPasswordA senha definida para a conta Redis. Se definida, tem prioridade sobre o connections.redisExistingSecret. O valor neste parâmetro substitui o valor definido no objeto options em local.json se você adicionar um arquivo de configuração personalizado""
connections.redisSecretKeyNameO nome da chave que contém a senha do usuário do Redisredis-password
connections.redisExistingSecretNome do segredo existente a ser usado para senhas do Redis. Deve conter a chave especificada em connections.redisSecretKeyName. A senha deste segredo substitui a senha definida no objeto options em local.jsonredis
connections.redisNoPassDefine se deve usar uma autenticação do Redis sem senha. Se a conexão com o servidor Redis não requerer uma senha, defina o valor como truefalse
connections.redisSentinelNodesLista de nós do Redis Sentinel. Não é necessário especificar todos os nós, 3 devem ser suficientes. Você pode especificar vários valores. Deve ser especificado no formato host:port. Usado se connections.redisConnectorName estiver definido como ioredis[]
connections.redisSentinelGroupNameNome de um grupo de instâncias Redis composto por um mestre e um ou mais escravos. Usado se connections.redisConnectorName estiver definido como ioredismymaster
connections.redisSentinelExistingSecretNome do segredo existente a ser usado para a senha do Redis Sentinel. Deve conter a chave especificada em connections.redisSentinelSecretKeyName. A senha deste segredo substitui o valor da senha definida no objeto iooptions em local.json""
connections.redisSentinelSecretKeyNameO nome da chave que contém a senha do usuário do Redis Sentinel. Se você definir uma senha em redisSentinelPassword, um segredo será criado automaticamente, cujo nome da chave será o valor definido aquisentinel-password
connections.redisSentinelPasswordA senha definida para a conta do Redis Sentinel. Se definida, tem prioridade sobre o connections.redisSentinelExistingSecret. O valor neste parâmetro substitui o valor definido no objeto iooptions em local.json""
connections.redisSentinelNoPassDefine se deve usar uma autenticação do Redis Sentinel sem senha. Se a conexão com o Redis Sentinel não requerer uma senha, defina o valor como truetrue
connections.amqpTypeDefine o tipo de servidor AMQP. Os valores possíveis são rabbitmq ou activemqrabbitmq
connections.amqpHostO endereço IP ou o nome do servidor AMQPrabbitmq
connections.amqpPortA porta para a conexão com o servidor AMQP5672
connections.amqpVhostO host virtual para a conexão com o servidor AMQP/
connections.amqpUserO nome de usuário para a conta do servidor AMQPuser
connections.amqpProtoO protocolo para a conexão com o servidor AMQPamqp
connections.amqpPassword Senha do usuário do servidor AMQP. Se definido, tem prioridade sobre o connections.amqpExistingSecret""
connections.amqpSecretKeyNameO nome da chave que contém a senha do usuário do servidor AMQPrabbitmq-password
connections.amqpExistingSecretO nome do segredo existente a ser usado para senhas do servidor AMQP. Deve conter a chave especificada em connections.amqpSecretKeyNamerabbitmq
persistence.existingClaimNome de um PVC existente a ser usado. Se não especificado, um PVC chamado "ds-files" será criado""
persistence.annotationsDefine anotações que serão adicionadas ao PVC "ds-files". Se definido, tem prioridade sobre o commonAnnotations{}
persistence.storageClassClasse de Armazenamento do PVC para dados do Onlyoffice Docs e volumes de configuração em tempo de execuçãonfs
persistence.sizeSolicitação de Armazenamento do PVC para o volume do ONLYOFFICE Docs8Gi
persistence.storageS3Define se o S3 será usado como armazenamento de cache. Defina como true se você usar o S3 como armazenamento de cachefalse
persistence.runtimeConfig.enabledDefine se deve usar PVC e se deve montá-lo em contêinerestrue
persistence.runtimeConfig.existingClaimO nome do PVC existente usado para armazenar a configuração em tempo de execução. Se não especificado, um PVC chamado "ds-runtime-config" será criado""
persistence.runtimeConfig.annotationsDefine anotações que serão adicionadas ao PVC "ds-runtime-config". Se definido, tem prioridade sobre o commonAnnotations{}
persistence.runtimeConfig.sizeSolicitação de Armazenamento do PVC para o volume de configuração em tempo de execução1Gi
commonNameSuffixO nome que será adicionado ao nome de todos os recursos criados como um sufixo""
namespaceOverrideO nome do namespace no qual o Onlyoffice Docs será implantado. Se não definido, o nome será retirado de .Release.Namespace""
commonLabelsDefine rótulos que serão adicionados a todos os recursos implantados. Você também pode usar tpl como o valor para a chave{}
commonAnnotationsDefine anotações que serão adicionadas a todos os recursos implantados. Você também pode usar tpl como o valor para a chave. Alguns recursos podem sobrescrever os valores especificados aqui com os seus próprios{}
serviceAccount.createHabilitar criação de ServiceAccountfalse
serviceAccount.nameNome do ServiceAccount a ser usado. Se não definido e serviceAccount.create for true, o nome será retirado de .Release.Name ou serviceAccount.create for false, o nome será "default"""
serviceAccount.annotationsMapa de anotações a serem adicionadas ao ServiceAccount. Se definido, tem prioridade sobre o commonAnnotations{}
serviceAccount.automountServiceAccountTokenHabilitar montagem automática do ServiceAccountToken no serviceAccount criado. Usado apenas se serviceAccount.create for truetrue
license.existingSecretNome do segredo existente que contém a licença. Deve conter a chave license.lic""
license.existingClaimNome do PVC existente no qual a licença está armazenada. Deve conter o arquivo license.lic""
log.levelDefine o tipo e a severidade de um evento registrado. Valores possíveis são ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, MARK, OFFWARN
log.typeDefine o formato de um evento registrado. Valores possíveis são pattern, json, basic, coloured, messagePassThrough, dummypattern
log.patternDefine o padrão de log se log.type=pattern[%d] [%p] %c - %.10000m
wopi.enabledDefine se o WOPI está habilitado. Se o parâmetro estiver habilitado, os atributos de cache para o diretório montado (PVC) devem ser desabilitados para o clientefalse
wopi.keys.generationDefine se as chaves da API devem ser geradas. Usado se você definir wopi.enabled como truetrue
wopi.keys.newKeysExistingSecretNome do segredo existente contendo as chaves WOPI. Deve conter as chaves WOPI_PRIVATE_KEY, WOPI_PUBLIC_KEY, WOPI_MODULUS_KEY e WOPI_EXPONENT_KEY. Se não definido, novas chaves serão geradas e um segredo será criado a partir delas""
wopi.keys.oldKeysExistingSecretNome do segredo existente contendo as chaves WOPI antigas. Deve conter as chaves WOPI_PRIVATE_KEY_OLD, WOPI_PUBLIC_KEY_OLD, WOPI_MODULUS_KEY_OLD e WOPI_EXPONENT_KEY_OLD. Se não definido, novas chaves serão geradas e um segredo será criado a partir delas""
metrics.enabledEspecifica se o StatsD está habilitado para o ONLYOFFICE Docsfalse
metrics.hostDefine o host de escuta do StatsDstatsd-exporter-prometheus-statsd-exporter
metrics.portDefine a porta de escuta do StatsD8125
metrics.prefixDefine o prefixo de métricas do StatsD para serviços de backendds.
extraConf.configMapO nome do ConfigMap que contém o arquivo json que sobrescreve os valores padrão""
extraConf.filenameO nome do arquivo json que contém valores personalizados. Deve ser o mesmo que o nome da key em extraConf.ConfigMaplocal.json
extraThemes.configMapO nome do ConfigMap que contém o arquivo json que contém os temas da interface""
extraThemes.filenameO nome do arquivo json que contém temas personalizados da interface. Deve ser o mesmo que o nome da key em extraThemes.configMapcustom-themes.json
podAntiAffinity.typeTipos de antiafinidade de Pod. Valores permitidos: soft ou hardsoft
podAntiAffinity.topologyKeyChave de rótulo do nó para correspondênciakubernetes.io/hostname
podAntiAffinity.weightPrioridade ao selecionar nó. Está no intervalo de 1 a 100100
nodeSelectorRótulos de nó para atribuição de pods. Cada serviço do ONLYOFFICE Docs pode sobrescrever os valores especificados aqui com os seus próprios{}
tolerationsTolerâncias para atribuição de pods. Cada serviço do ONLYOFFICE Docs pode sobrescrever os valores especificados aqui com os seus próprios[]
imagePullSecretsNome do segredo do registro de imagem do contêiner""
requestFilteringAgent.allowPrivateIPAddressDefine se é permitido conectar endereço IP privado ou não. Os parâmetros requestFilteringAgent são usados se o JWT estiver desabilitado: jwt.enabled=falsefalse
requestFilteringAgent.allowMetaIPAddressDefine se é permitido conectar endereço meta ou nãofalse
requestFilteringAgent.allowIPAddressListDefine a lista de endereços IP permitidos para conexão. Esses valores são preferidos em relação a requestFilteringAgent.denyIPAddressList[]
requestFilteringAgent.denyIPAddressListDefine a lista de endereços IP permitidos para conexão[]
docservice.annotationsDefine anotações que serão adicionadas à Implantação do Docservice. Se definido, tem prioridade sobre o commonAnnotations{}
docservice.podAnnotationsMapa de anotações a serem adicionadas aos pods de implantação do Docservicerollme: "{{ randAlphaNum 5 | quote }}"
docservice.replicasQuantidade de réplicas do Docservice. Se o parâmetro docservice.autoscaling.enabled estiver habilitado, ele é ignorado2
docservice.updateStrategy.typeTipo de estratégia de atualização de implantação do DocserviceRecreate
docservice.customPodAntiAffinityProibição do agendamento de Pods do Docservice em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
docservice.podAffinityDefine regras de afinidade de Pod para agendamento de Pods do Docservice por nós em relação a outros Pods{}
docservice.nodeAffinityDefine regras de afinidade de nó para agendamento de Pods do Docservice por nós{}
docservice.nodeSelectorRótulos de nó para atribuição de Pods do Docservice. Se definido, tem prioridade sobre o nodeSelector{}
docservice.tolerationsTolerâncias para atribuição de Pods do Docservice. Se definido, tem prioridade sobre o tolerations[]
docservice.terminationGracePeriodSecondsO tempo para terminar graciosamente durante o qual o Pod do Docservice terá o status Terminating30
docservice.hostAliasesAdiciona entradas adicionais ao arquivo hosts nos contêineres Docservice e Proxy[]
docservice.initContainersDefine contêineres que são executados antes dos contêineres docservice e proxy no pod de implantação do Docservice. Por exemplo, um contêiner que altera o proprietário do PersistentVolume[]
docservice.image.repositoryRepositório de imagem do contêiner Docservice*onlyoffice/docs-docservice-de
docservice.image.tagTag da imagem do contêiner Docservice9.0.4-1
docservice.image.pullPolicyPolítica de pull da imagem do contêiner DocserviceIfNotPresent
docservice.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner Docservicefalse
docservice.lifecycleHooksDefine os hooks de ciclo de vida do contêiner Docservice. É usado para acionar eventos para execução em determinados pontos do ciclo de vida de um contêiner{}
docservice.resources.requestsOs recursos solicitados para o contêiner Docservice{}
docservice.resources.limitsOs limites de recursos para o contêiner Docservice{}
docservice.extraEnvVarsUm array com variáveis de ambiente extras para o contêiner Docservice[]
docservice.extraVolumesUm array com volumes extras para o Pod Docservice[]
docservice.extraVolumeMountsUm array com montagens de volume extras para o contêiner Docservice[]
docservice.readinessProbe.enabledHabilitar readinessProbe para o contêiner Docservicetrue
docservice.livenessProbe.enabledHabilitar livenessProbe para o contêiner Docservicetrue
docservice.startupProbe.enabledHabilitar startupProbe para o contêiner Docservicetrue
docservice.autoscaling.enabledHabilitar escalonamento automático da implantação do Docservicefalse
docservice.autoscaling.annotationsDefine anotações que serão adicionadas adicionalmente ao HPA da implantação do Docservice. Se definido, tem prioridade sobre o commonAnnotations{}
docservice.autoscaling.minReplicasNúmero mínimo de réplicas para escalonamento automático da implantação do Docservice2
docservice.autoscaling.maxReplicasNúmero máximo de réplicas para escalonamento automático da implantação do Docservice4
docservice.autoscaling.targetCPU.enabledHabilitar escalonamento automático da implantação do Docservice por percentual de uso de CPUtrue
docservice.autoscaling.targetCPU.utilizationPercentagePercentual de CPU alvo para escalonamento automático da implantação do Docservice70
docservice.autoscaling.targetMemory.enabledHabilitar escalonamento automático da implantação do Docservice por percentual de uso de memóriafalse
docservice.autoscaling.targetMemory.utilizationPercentagePercentual de memória alvo para escalonamento automático da implantação do Docservice70
docservice.autoscaling.customMetricsTypeMétricas de escalonamento personalizadas, adicionais ou externas para a implantação do Docservice[]
docservice.autoscaling.behaviorConfiguração das políticas de comportamento de escalonamento da implantação do Docservice para os campos scaleDown e scaleUp{}
proxy.accessLogDefine a diretiva de formato access_log do nginxoff
proxy.logFormatDefine o formato das entradas de log usando texto e várias variáveis'$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'
proxy.gzipProxiedDefine a diretiva gzip_proxied do nginxoff
proxy.clientMaxBodySizeDefine a diretiva client_max_body_size do nginx100m
proxy.workerConnectionsDefine a diretiva worker_connections do nginx4096
proxy.secureLinkSecretDefine o segredo para a diretiva secure_link_md5 do nginx. Se o valor estiver vazio, um aleatório será gerado, que será usado posteriormente na atualização. Se um valor for definido, ele será usado""
proxy.secureLinkExistingSecretNome do segredo existente a ser usado para secure_link. Se definido, tem prioridade sobre o proxy.secureLinkSecret""
proxy.infoAllowedIPDefine endereços IP para acessar a página de informações[]
proxy.infoAllowedUserDefine o nome de usuário para acessar a página de informações. Se não definido, a Autenticação Básica do Nginx não será aplicada para acessar a página de informações. Para mais detalhes, veja aqui""
proxy.infoAllowedPasswordDefine a senha do usuário para acessar a página de informações. Usado se proxy.infoAllowedUser estiver definido. Se o valor estiver vazio, um aleatório será gerado, que será usado posteriormente na atualização. Se um valor for definido, ele será usado""
proxy.infoAllowedSecretKeyNameO nome da chave que contém a senha de autenticação do usuário para informações. Usado se proxy.infoAllowedUser estiver definidoinfo-auth-password
proxy.infoAllowedExistingSecretNome do segredo existente a ser usado para a senha de autenticação de informações. Usado se proxy.infoAllowedUser estiver definido. Deve conter a chave especificada em proxy.infoAllowedSecretKeyName. Se definido, tem prioridade sobre o proxy.infoAllowedPassword""
proxy.welcomePage.enabledDefine se a página de boas-vindas será exibidatrue
proxy.image.repositoryRepositório de imagem do contêiner Proxy do Docservice*onlyoffice/docs-proxy-de
proxy.image.tagTag da imagem do contêiner Proxy do Docservice9.0.4-1
proxy.image.pullPolicyPolítica de pull da imagem do contêiner Proxy do DocserviceIfNotPresent
proxy.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner Proxyfalse
proxy.lifecycleHooksDefine os hooks de ciclo de vida do contêiner Proxy. É usado para acionar eventos para execução em determinados pontos do ciclo de vida de um contêiner{}
proxy.resources.requestsOs recursos solicitados para o contêiner Proxy{}
proxy.resources.limitsOs limites de recursos para o contêiner Proxy{}
proxy.extraEnvVarsUm array com variáveis de ambiente extras para o contêiner Proxy[]
proxy.extraVolumeMountsUm array com montagens de volume extras para o contêiner Proxy[]
proxy.readinessProbe.enabledHabilitar readinessProbe para o contêiner Proxytrue
proxy.livenessProbe.enabledHabilitar livenessProbe para o contêiner Proxytrue
proxy.startupProbe.enabledHabilitar startupProbe para o contêiner Proxytrue
converter.annotationsDefine anotações que serão adicionadas adicionalmente à Implantação do Converter. Se definido, tem prioridade sobre o commonAnnotations{}
converter.podAnnotationsMapa de anotações para adicionar aos pods de implantação do Converterrollme: "{{ randAlphaNum 5 | quote }}"
converter.replicasQuantidade de réplicas do Converter. Se o parâmetro converter.autoscaling.enabled estiver habilitado, ele será ignorado2
converter.updateStrategy.typeTipo de estratégia de atualização da implantação do ConverterRecreate
converter.customPodAntiAffinityProibição de agendamento de Pods do Converter em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
converter.podAffinityDefine regras de afinidade de Pod para agendamento de Pods do Converter por nós em relação a outros Pods{}
converter.nodeAffinityDefine regras de afinidade de nó para agendamento de Pods do Converter por nós{}
converter.nodeSelectorRótulos de nó para atribuição de Pods do Converter. Se definido, tem prioridade sobre o nodeSelector{}
converter.tolerationsTolerâncias para atribuição de Pods do Converter. Se definido, tem prioridade sobre o tolerations[]
converter.terminationGracePeriodSecondsO tempo para terminar graciosamente durante o qual o Pod do Converter terá o status Terminating30
converter.hostAliasesAdiciona entradas adicionais ao arquivo hosts no contêiner Converter[]
converter.initContainersDefine contêineres que são executados antes do contêiner Converter no pod de implantação do Converter. Por exemplo, um contêiner que altera o proprietário do PersistentVolume[]
converter.image.repositoryRepositório de imagem do contêiner Converter*onlyoffice/docs-converter-de
converter.image.tagTag da imagem do contêiner Converter9.0.4-1
converter.image.pullPolicyPolítica de pull da imagem do contêiner ConverterIfNotPresent
converter.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner Converterfalse
converter.lifecycleHooksDefine os hooks de ciclo de vida do contêiner Converter. É usado para acionar eventos para execução em determinados pontos do ciclo de vida de um contêiner{}
converter.resources.requestsOs recursos solicitados para o contêiner Converter{}
converter.resources.limitsOs limites de recursos para o contêiner Converter{}
converter.extraEnvVarsUm array com variáveis de ambiente extras para o contêiner Converter[]
converter.extraVolumesUm array com volumes extras para o Pod Converter[]
converter.extraVolumeMountsUm array com montagens de volumes extras para o contêiner Converter[]
converter.autoscaling.enabledHabilitar escalonamento automático da implantação do Converterfalse
converter.autoscaling.annotationsDefine anotações que serão adicionadas adicionalmente ao HPA da implantação do Converter. Se definido, tem prioridade sobre o commonAnnotations{}
converter.autoscaling.minReplicasNúmero mínimo de réplicas para escalonamento automático da implantação do Converter2
converter.autoscaling.maxReplicasNúmero máximo de réplicas para escalonamento automático da implantação do Converter16
converter.autoscaling.targetCPU.enabledHabilitar escalonamento automático da implantação do Converter por porcentagem de uso de CPUtrue
converter.autoscaling.targetCPU.utilizationPercentagePorcentagem alvo de CPU para escalonamento automático da implantação do Converter70
converter.autoscaling.targetMemory.enabledHabilitar escalonamento automático da implantação do Converter por porcentagem de uso de memóriafalse
converter.autoscaling.targetMemory.utilizationPercentagePorcentagem alvo de memória para escalonamento automático da implantação do Converter70
converter.autoscaling.customMetricsTypeMétricas personalizadas, adicionais ou externas para escalonamento automático da implantação do Converter[]
converter.autoscaling.behaviorConfiguração das políticas de comportamento de escalonamento da implantação do Converter para os campos scaleDown e scaleUp{}
example.enabledHabilita a instalação do Examplefalse
example.annotationsDefine anotações que serão adicionadas adicionalmente ao StatefulSet do Example. Se definido, tem prioridade sobre o commonAnnotations{}
example.podAnnotationsMapa de anotações para adicionar ao pod do Examplerollme: "{{ randAlphaNum 5 | quote }}"
example.updateStrategy.typeTipo de estratégia de atualização do StatefulSet do ExampleRollingUpdate
example.customPodAntiAffinityProibição do agendamento do Pod Example em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
example.podAffinityDefine regras de afinidade de Pod para agendamento do Pod Example por nós em relação a outros Pods{}
example.nodeAffinityDefine regras de afinidade de nó para agendamento do Pod Example por nós{}
example.nodeSelectorRótulos de nó para atribuição de Pods Example. Se definido, tem prioridade sobre o nodeSelector{}
example.tolerationsTolerâncias para atribuição de Pods Example. Se definido, tem prioridade sobre o tolerations[]
example.terminationGracePeriodSecondsO tempo para terminar graciosamente durante o qual o Pod Example terá o status Terminating30
example.hostAliasesAdiciona entradas adicionais ao arquivo hosts no contêiner Example[]
example.initContainersDefine contêineres que são executados antes do contêiner Example no Pod[]
example.image.repositoryNome da imagem do contêiner Exampleonlyoffice/docs-example
example.image.tagTag da imagem do contêiner Example9.0.4-1
example.image.pullPolicyPolítica de pull da imagem do contêiner ExampleIfNotPresent
example.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner Examplefalse
example.dsUrlEndereço externo do ONLYOFFICE Docs. Deve ser alterado apenas se for necessário verificar a operação da conversão no Example (por exemplo, http://<documentserver-address>/)/
example.resources.requestsOs recursos solicitados para o contêiner Example{}
example.resources.limitsOs limites de recursos para o contêiner Example{}
example.extraEnvVarsUm array com variáveis de ambiente extras para o contêiner Example[]
example.extraConf.configMapO nome do ConfigMap contendo o arquivo json que substitui os valores padrão. Veja um exemplo de criação aqui""
example.extraConf.filenameO nome do arquivo json que contém valores personalizados. Deve ser o mesmo que o nome da key no example.extraConf.ConfigMaplocal.json
example.extraVolumesUm array com volumes extras para o Pod Example[]
example.extraVolumeMountsUm array com montagens de volumes extras para o contêiner Example[]
jwt.enabledEspecifica a habilitação da validação do JSON Web Token pelo ONLYOFFICE Docs. Comum para solicitações de entrada e saídatrue
jwt.secretDefine a chave secreta para validar o JSON Web Token na solicitação para o ONLYOFFICE Docs. Comum para solicitações de entrada e saída. Se o valor estiver vazio, um aleatório será gerado, que será usado posteriormente na atualização. Se um valor for definido, ele será usado""
jwt.headerDefine o cabeçalho http que será usado para enviar o JSON Web Token. Comum para solicitações de entrada e saídaAuthorization
jwt.inBodyEspecifica a habilitação da validação do token no corpo da solicitação para o ONLYOFFICE Docsfalse
jwt.inboxParâmetros de validação do JSON Web Token apenas para solicitações de entrada. Se não especificado, os valores dos parâmetros do jwt comum são usados{}
jwt.outboxParâmetros de validação do JSON Web Token apenas para solicitações de saída. Se não especificado, os valores dos parâmetros do jwt comum são usados{}
jwt.existingSecretO nome de um segredo existente contendo variáveis para jwt. Se não especificado, um segredo chamado jwt será criado""
service.existingO nome de um serviço existente para o ONLYOFFICE Docs. Se não especificado, um serviço chamado documentserver será criado""
service.annotationsMapa de anotações para adicionar ao serviço ONLYOFFICE Docs. Se definido, tem prioridade sobre o commonAnnotations{}
service.typeTipo de serviço do ONLYOFFICE DocsClusterIP
service.portPorta do serviço ONLYOFFICE Docs8888
service.sessionAffinityAfinidade de Sessão para o serviço ONLYOFFICE Docs. Se não definido, None será definido como valor padrão""
service.sessionAffinityConfigConfiguração para Afinidade de Sessão do serviço ONLYOFFICE Docs. Usado se o service.sessionAffinity estiver definido{}
ingress.enabledHabilitar a criação de um ingress para o ONLYOFFICE Docsfalse
ingress.annotationsMapa de anotações para adicionar ao Ingress. Se definido, tem prioridade sobre o commonAnnotationsnginx.ingress.kubernetes.io/proxy-body-size: 100m
ingress.ingressClassNameUsado para referenciar a IngressClass que deve ser usada para implementar este Ingressnginx
ingress.controllerNameUsado para distinguir entre controladores com o mesmo IngressClassName, mas de fornecedores diferentesingress-nginx
ingress.hostNome do host de Ingress para o ingress do ONLYOFFICE Docs""
ingress.tenantsNomes de host de Ingress se você precisar usar mais de um nome. Por exemplo, para multitenancy. Se definido, tem prioridade sobre o ingress.host. Se ingress.ssl.enabled estiver definido como true, assume-se que o certificado para todos os domínios especificados é mantido em segredo por ingress.ssl.secret[]
ingress.ssl.enabledHabilitar SSL para o ingress do ONLYOFFICE Docsfalse
ingress.ssl.secretNome do segredo para SSL a ser montado no Ingresstls
ingress.pathEspecifica o caminho onde o ONLYOFFICE Docs estará disponível/
ingress.pathTypeEspecifica o tipo de caminho para o recurso de ingress do ONLYOFFICE Docs. Os valores permitidos são Exact, Prefix ou ImplementationSpecificImplementationSpecific
ingress.letsencrypt.enabledHabilitar a criação de solicitação de certificado no Let's Encrypt. Usado se ingress.enabled estiver definido como truefalse
ingress.letsencrypt.clusterIssuerNameNome do ClusterIssuerletsencrypt-prod
ingress.letsencrypt.emailSeu endereço de e-mail usado para registro ACME""
ingress.letsencrypt.serverO endereço do servidor Let's Encrypt para o qual as solicitações de certificados serão enviadashttps://acme-v02.api.letsencrypt.org/directory
ingress.letsencrypt.secretNameNome de um segredo usado para armazenar a chave privada da conta ACMEletsencrypt-prod-private-key
openshift.route.enabledHabilitar a criação de uma Rota OpenShift para o ONLYOFFICE Docsfalse
openshift.route.annotationsMapa de anotações para adicionar à Rota OpenShift. Se definido, tem prioridade sobre o commonAnnotations{}
openshift.route.hostNome do host da Rota OpenShift para a rota do ONLYOFFICE Docs""
openshift.route.pathEspecifica o caminho onde o ONLYOFFICE Docs estará disponível/
openshift.route.wildcardPolicyA política para lidar com subdomínios curinga na Rota OpenShift. Os valores permitidos são None, SubdomainNone
grafana.enabledHabilitar a instalação de recursos necessários para a visualização de métricas no Grafanafalse
grafana.namespaceO nome do namespace no qual os componentes RBAC e os recursos do Grafana serão implantados. Se não definido, o nome será retirado de namespaceOverride se definido, ou .Release.Namespace""
grafana.ingress.enabledHabilitar a criação de um ingress para o Grafana. Usado se você definir grafana.enabled como true e quiser usar Nginx Ingress para acessar o Grafanafalse
grafana.ingress.annotationsMapa de anotações para adicionar ao Ingress do Grafana. Se definido, tem prioridade sobre o commonAnnotationsnginx.ingress.kubernetes.io/proxy-body-size: 100m
grafana.dashboard.enabledHabilitar a instalação de dashboards prontos do Grafana. Usado se você definir grafana.enabled como truefalse
podSecurityContext.enabledHabilitar contexto de segurança para os podsfalse
podSecurityContext.converter.fsGroupDefine o ID do Grupo para o qual o proprietário e as permissões de todos os arquivos em volumes são alterados quando montados no Pod Converter101
podSecurityContext.docservice.fsGroupDefine o ID do Grupo para o qual o proprietário e as permissões de todos os arquivos em volumes são alterados quando montados no Pod Docservice101
podSecurityContext.jobs.fsGroupDefine o ID do Grupo para o qual o proprietário e as permissões de todos os arquivos em volumes são alterados quando montados em Pods criados por Jobs101
podSecurityContext.example.fsGroupDefine o ID do Grupo para o qual o proprietário e as permissões de todos os arquivos em volumes são alterados quando montados no Pod Example1001
podSecurityContext.tests.fsGroupDefine o ID do Grupo para o qual o proprietário e as permissões de todos os arquivos em volumes são alterados quando montados no Pod Test101
webProxy.enabledEspecificar se um proxy Web é usado na sua rede para acessar os Pods do cluster k8s na Internetfalse
webProxy.httpEndereço do Proxy Web para tráfego HTTPhttp://proxy.example.com
webProxy.httpsEndereço do Proxy Web para tráfego HTTPShttps://proxy.example.com
webProxy.noProxyPadrões para endereços IP ou nomes de serviços k8s ou nomes de domínio que não devem usar o Proxy Weblocalhost,127.0.0.1,docservice
privateClusterEspecificar se o cluster k8s é usado em uma rede privada sem acesso à internetfalse
upgrade.job.enabledHabilitar a execução de job pré-atualização antes de atualizar o ONLYOFFICE Docstrue
upgrade.job.annotationsDefine anotações que serão adicionadas adicionalmente ao Job pré-atualização. Se definido, tem prioridade sobre o commonAnnotations{}
upgrade.job.podAnnotationsMapa de anotações para adicionar ao Pod pré-atualização{}
upgrade.job.customPodAntiAffinityProibir o agendamento do Pod do Job pré-atualização em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
upgrade.job.podAffinityDefine regras de afinidade de Pod para agendamento do Pod do Job pré-atualização por nós em relação a outros Pods{}
upgrade.job.nodeAffinityDefine regras de afinidade de Nó para agendamento do Pod do Job pré-atualização por nós{}
upgrade.job.nodeSelectorRótulos de nó para atribuição do Pod do Job pré-atualização. Se definido, tem prioridade sobre o nodeSelector{}
upgrade.job.tolerationsTolerâncias para atribuição do Pod do Job pré-atualização. Se definido, tem prioridade sobre o tolerations[]
upgrade.job.initContainersDefine contêineres que são executados antes do contêiner pré-atualização no Pod[]
upgrade.job.image.repositoryRepositório de imagem do Job por atualizaçãoonlyoffice/docs-utils
upgrade.job.image.tagTag de imagem do Job por atualização9.0.4-1
upgrade.job.image.pullPolicyPolítica de pull de imagem do Job por atualizaçãoIfNotPresent
upgrade.job.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner pré-atualizaçãofalse
upgrade.job.resources.requestsOs recursos solicitados para o contêiner pré-atualização do job{}
upgrade.job.resources.limitsOs limites de recursos para o contêiner pré-atualização do job{}
upgrade.existingConfigmap.tblRemove.nameO nome do ConfigMap existente que contém o arquivo SQL para excluir tabelas do banco de dadosremove-db-scripts
upgrade.existingConfigmap.tblRemove.keyNameO nome do arquivo SQL contendo instruções para excluir tabelas do banco de dados. Deve ser o mesmo que o nome do key em upgrade.existingConfigmap.tblRemove.nameremovetbl.sql
upgrade.existingConfigmap.tblCreate.nameO nome do ConfigMap existente que contém o arquivo SQL para criar tabelas do banco de dadosinit-db-scripts
upgrade.existingConfigmap.tblCreate.keyNameO nome do arquivo SQL contendo instruções para criar tabelas do banco de dados. Deve ser o mesmo que o nome do key em upgrade.existingConfigmap.tblCreate.namecreatedb.sql
upgrade.existingConfigmap.dsStopO nome do ConfigMap existente que contém o script de atualização do ONLYOFFICE Docs. Se definido, os quatro parâmetros anteriores são ignorados. Deve conter uma chave stop.sh""
rollback.job.enabledHabilitar a execução de job pré-rollback antes de reverter o ONLYOFFICE Docstrue
rollback.job.annotationsDefine anotações que serão adicionadas adicionalmente ao Job pré-rollback. Se definido, tem prioridade sobre o commonAnnotations{}
rollback.job.podAnnotationsMapa de anotações para adicionar ao Pod pré-rollback{}
rollback.job.customPodAntiAffinityProibir o agendamento do Pod do Job pré-rollback em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
rollback.job.podAffinityDefine regras de afinidade de Pod para agendamento do Pod do Job pré-rollback por nós em relação a outros Pods{}
rollback.job.nodeAffinityDefine as regras de afinidade de nó para o agendamento do Pod do Job de pré-rollback pelos nós{}
rollback.job.nodeSelectorRótulos de nó para a atribuição do Pod do Job de pré-rollback. Se definido, tem prioridade sobre o nodeSelector{}
rollback.job.tolerationsTolerações para a atribuição do Pod do Job de pré-rollback. Se definido, tem prioridade sobre as tolerations[]
rollback.job.initContainersDefine os contêineres que são executados antes do contêiner de pré-rollback no Pod[]
rollback.job.image.repositoryRepositório de imagem do Job por rollbackonlyoffice/docs-utils
rollback.job.image.tagTag de imagem do Job por rollback9.0.4-1
rollback.job.image.pullPolicyPolítica de pull de imagem do Job por rollbackIfNotPresent
rollback.job.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner de pré-rollbackfalse
rollback.job.resources.requestsOs recursos solicitados para o contêiner de rollback do Job{}
rollback.job.resources.limitsOs limites de recursos para o contêiner de rollback do Job{}
rollback.existingConfigmap.tblRemove.nameO nome do ConfigMap existente que contém o arquivo SQL para excluir tabelas do banco de dadosremove-db-scripts
rollback.existingConfigmap.tblRemove.keyNameO nome do arquivo SQL contendo instruções para excluir tabelas do banco de dados. Deve ser o mesmo que o nome da key em rollback.existingConfigmap.tblRemove.nameremovetbl.sql
rollback.existingConfigmap.tblCreate.nameO nome do ConfigMap existente que contém o arquivo SQL para criar tabelas do banco de dadosinit-db-scripts
rollback.existingConfigmap.tblCreate.keyNameO nome do arquivo SQL contendo instruções para criar tabelas do banco de dados. Deve ser o mesmo que o nome da key em rollback.existingConfigmap.tblCreate.namecreatedb.sql
rollback.existingConfigmap.dsStopO nome do ConfigMap existente que contém o script de rollback do ONLYOFFICE Docs. Se definido, os quatro parâmetros anteriores são ignorados. Deve conter uma chave stop.sh""
delete.job.enabledHabilitar a execução do Job de pré-exclusão antes de excluir o ONLYOFFICE Docstrue
delete.job.annotationsDefine anotações que serão adicionadas adicionalmente ao Job de pré-exclusão. Se definido, tem prioridade sobre as commonAnnotations{}
delete.job.podAnnotationsMapa de anotações para adicionar ao Pod de pré-exclusão{}
delete.job.customPodAntiAffinityProibindo o agendamento do Pod do Job de pré-exclusão em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
delete.job.podAffinityDefine as regras de afinidade de Pod para o agendamento do Pod do Job de pré-exclusão pelos nós em relação a outros Pods{}
delete.job.nodeAffinityDefine as regras de afinidade de nó para o agendamento do Pod do Job de pré-exclusão pelos nós{}
delete.job.nodeSelectorRótulos de nó para a atribuição do Pod do Job de pré-exclusão. Se definido, tem prioridade sobre o nodeSelector{}
delete.job.tolerationsTolerações para a atribuição do Pod do Job de pré-exclusão. Se definido, tem prioridade sobre as tolerations[]
delete.job.initContainersDefine os contêineres que são executados antes do contêiner de pré-exclusão no Pod[]
delete.job.image.repositoryRepositório de imagem do Job por exclusãoonlyoffice/docs-utils
delete.job.image.tagTag de imagem do Job por exclusão9.0.4-1
delete.job.image.pullPolicyPolítica de pull de imagem do Job por exclusãoIfNotPresent
delete.job.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner de pré-exclusãofalse
delete.job.resources.requestsOs recursos solicitados para o contêiner de exclusão do Job{}
delete.job.resources.limitsOs limites de recursos para o contêiner de exclusão do Job{}
delete.existingConfigmap.tblRemove.nameO nome do ConfigMap existente que contém o arquivo SQL para excluir tabelas do banco de dadosremove-db-scripts
delete.existingConfigmap.tblRemove.keyNameO nome do arquivo SQL contendo instruções para excluir tabelas do banco de dados. Deve ser o mesmo que o nome da key em delete.existingConfigmap.tblRemove.nameremovetbl.sql
delete.existingConfigmap.dsStopO nome do ConfigMap existente que contém o script de exclusão do ONLYOFFICE Docs. Se definido, os dois parâmetros anteriores são ignorados. Deve conter uma chave stop.sh""
install.job.enabledHabilitar a execução do Job de pré-instalação antes de instalar o ONLYOFFICE Docstrue
install.job.annotationsDefine anotações que serão adicionadas adicionalmente ao Job de pré-instalação. Se definido, tem prioridade sobre as commonAnnotations{}
install.job.podAnnotationsMapa de anotações para adicionar ao Pod de pré-instalação{}
install.job.customPodAntiAffinityProibindo o agendamento do Pod do Job de pré-instalação em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
install.job.podAffinityDefine as regras de afinidade de Pod para o agendamento do Pod do Job de pré-instalação pelos nós em relação a outros Pods{}
install.job.nodeAffinityDefine as regras de afinidade de nó para o agendamento do Pod do Job de pré-instalação pelos nós{}
install.job.nodeSelectorRótulos de nó para a atribuição do Pod do Job de pré-instalação. Se definido, tem prioridade sobre o nodeSelector{}
install.job.tolerationsTolerações para a atribuição do Pod do Job de pré-instalação. Se definido, tem prioridade sobre as tolerations[]
install.job.initContainersDefine os contêineres que são executados antes do contêiner de pré-instalação no Pod[]
install.job.image.repositoryRepositório de imagem do Job por pré-instalação do ONLYOFFICE Docsonlyoffice/docs-utils
install.job.image.tagTag de imagem do Job por pré-instalação do ONLYOFFICE Docs9.0.4-1
install.job.image.pullPolicyPolítica de pull de imagem do Job por pré-instalação do ONLYOFFICE DocsIfNotPresent
install.job.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner de pré-instalaçãofalse
install.job.resources.requestsOs recursos solicitados para o contêiner de pré-instalação do Job{}
install.job.resources.limitsOs limites de recursos para o contêiner de pré-instalação do Job{}
install.existingConfigmap.tblCreate.nameO nome do ConfigMap existente que contém o arquivo SQL para criar tabelas do banco de dadosinit-db-scripts
install.existingConfigmap.tblCreate.keyNameO nome do arquivo SQL contendo instruções para criar tabelas do banco de dados. Deve ser o mesmo que o nome da key em install.existingConfigmap.tblCreate.namecreatedb.sql
install.existingConfigmap.initdbO nome do ConfigMap existente que contém o script initdb. Se definido, os dois parâmetros anteriores são ignorados. Deve conter uma chave initdb.sh""
clearCache.job.enabledHabilitar a execução do Job Clear Cache após a atualização do ONLYOFFICE Docs. O Job por Clear Cache tem um hook post-upgrade que é executado após qualquer recurso ter sido atualizado no Kubernetes. Ele limpa o diretório Cachetrue
clearCache.job.annotationsDefine anotações que serão adicionadas adicionalmente ao Job Clear Cache. Se definido, tem prioridade sobre as commonAnnotations{}
clearCache.job.podAnnotationsMapa de anotações para adicionar ao Pod Clear Cache{}
clearCache.job.customPodAntiAffinityProibindo o agendamento do Pod do Job Clear Cache em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
clearCache.job.podAffinityDefine as regras de afinidade de Pod para o agendamento do Pod do Job Clear Cache pelos nós em relação a outros Pods{}
clearCache.job.nodeAffinityDefine as regras de afinidade de nó para o agendamento do Pod do Job Clear Cache pelos nós{}
clearCache.job.nodeSelectorRótulos de nó para a atribuição do Pod do Job Clear Cache. Se definido, tem prioridade sobre o nodeSelector{}
clearCache.job.tolerationsTolerâncias para atribuição do Pod do Job Clear Cache. Se definido, tem prioridade sobre as tolerations[]
clearCache.job.initContainersDefine contêineres que são executados antes do contêiner Clear Cache no Pod[]
clearCache.job.image.repositoryRepositório de imagem do Job Clear Cache ONLYOFFICE Docsonlyoffice/docs-utils
clearCache.job.image.tagTag de imagem do Job Clear Cache ONLYOFFICE Docs9.0.4-1
clearCache.job.image.pullPolicyPolítica de pull de imagem do Job Clear Cache ONLYOFFICE DocsIfNotPresent
clearCache.job.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner Clear Cachefalse
clearCache.job.resources.requestsRecursos solicitados para o contêiner do Job Clear Cache{}
clearCache.job.resources.limitsLimites de recursos para o contêiner do Job Clear Cache{}
clearCache.existingConfigmap.nameNome do ConfigMap existente que contém o script personalizado para limpar o diretório Cache. Se definido, o configmap padrão não será criado""
clearCache.existingConfigmap.keyNameNome do script contendo instruções para limpar o diretório Cache. Deve ser o mesmo que o nome da key em clearCache.existingConfigmap.name se um script personalizado for usadoclearCache.sh
grafanaDashboard.job.annotationsDefine anotações que serão adicionadas ao Job do Grafana Dashboard. Se definido, tem prioridade sobre as commonAnnotations{}
grafanaDashboard.job.podAnnotationsMapa de anotações para adicionar ao Pod do Grafana Dashboard{}
grafanaDashboard.job.customPodAntiAffinityProibir o agendamento do Pod do Job do Grafana Dashboard em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
grafanaDashboard.job.podAffinityDefine regras de afinidade de Pod para o agendamento do Pod do Job do Grafana Dashboard por nós em relação a outros Pods{}
grafanaDashboard.job.nodeAffinityDefine regras de afinidade de nó para o agendamento do Pod do Job do Grafana Dashboard por nós{}
grafanaDashboard.job.nodeSelectorRótulos de nó para atribuição do Pod do Job do Grafana Dashboard. Se definido, tem prioridade sobre o nodeSelector{}
grafanaDashboard.job.tolerationsTolerâncias para atribuição do Pod do Job do Grafana Dashboard. Se definido, tem prioridade sobre as tolerations[]
grafanaDashboard.job.initContainersDefine contêineres que são executados antes do contêiner do Grafana Dashboard no Pod[]
grafanaDashboard.job.image.repositoryRepositório de imagem do Job do Grafana Dashboard ONLYOFFICE Docsonlyoffice/docs-utils
grafanaDashboard.job.image.tagTag de imagem do Job do Grafana Dashboard ONLYOFFICE Docs9.0.4-1
grafanaDashboard.job.image.pullPolicyPolítica de pull de imagem do Job do Grafana Dashboard ONLYOFFICE DocsIfNotPresent
grafanaDashboard.job.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner do Grafana Dashboardfalse
grafanaDashboard.job.resources.requestsRecursos solicitados para o contêiner do Job do Grafana Dashboard{}
grafanaDashboard.job.resources.limitsLimites de recursos para o contêiner do Job do Grafana Dashboard{}
wopiKeysGeneration.job.annotationsDefine anotações que serão adicionadas ao Job de Geração de Chaves Wopi. Se definido, tem prioridade sobre as commonAnnotations{}
wopiKeysGeneration.job.podAnnotationsMapa de anotações para adicionar ao Pod de Geração de Chaves Wopi{}
wopiKeysGeneration.job.customPodAntiAffinityProibir o agendamento do Pod do Job de Geração de Chaves Wopi em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
wopiKeysGeneration.job.podAffinityDefine regras de afinidade de Pod para o agendamento do Pod do Job de Geração de Chaves Wopi por nós em relação a outros Pods{}
wopiKeysGeneration.job.nodeAffinityDefine regras de afinidade de nó para o agendamento do Pod do Job de Geração de Chaves Wopi por nós{}
wopiKeysGeneration.job.nodeSelectorRótulos de nó para atribuição do Pod do Job de Geração de Chaves Wopi. Se definido, tem prioridade sobre o nodeSelector{}
wopiKeysGeneration.job.tolerationsTolerâncias para atribuição do Pod do Job de Geração de Chaves Wopi. Se definido, tem prioridade sobre as tolerations[]
wopiKeysGeneration.job.initContainersDefine contêineres que são executados antes do contêiner de Geração de Chaves Wopi no Pod[]
wopiKeysGeneration.job.image.repositoryRepositório de imagem do Job de Geração de Chaves Wopi ONLYOFFICE Docsonlyoffice/docs-utils
wopiKeysGeneration.job.image.tagTag de imagem do Job de Geração de Chaves Wopi ONLYOFFICE Docs9.0.4-1
wopiKeysGeneration.job.image.pullPolicyPolítica de pull de imagem do Job de Geração de Chaves Wopi ONLYOFFICE DocsIfNotPresent
wopiKeysGeneration.job.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner de Geração de Chaves Wopifalse
wopiKeysGeneration.job.resources.requestsRecursos solicitados para o contêiner do Job de Geração de Chaves Wopi{}
wopiKeysGeneration.job.resources.limitsLimites de recursos para o contêiner do Job de Geração de Chaves Wopi{}
wopiKeysDeletion.job.enabled Habilitar a execução do job de Exclusão de Chaves Wopi antes de excluir o ONLYOFFICE Docs. Ele remove os segredos WOPI gerados automaticamente. É executado se wopi.enabled, wopi.keys.generation e wopiKeysDeletion.job.enabled estiverem definidos como truetrue
wopiKeysDeletion.job.annotationsDefine anotações que serão adicionadas ao Job de Exclusão de Chaves Wopi. Se definido, tem prioridade sobre as commonAnnotations{}
wopiKeysDeletion.job.podAnnotationsMapa de anotações para adicionar ao Pod de Exclusão de Chaves Wopi{}
wopiKeysDeletion.job.customPodAntiAffinityProibir o agendamento do Pod do Job de Exclusão de Chaves Wopi em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
wopiKeysDeletion.job.podAffinityDefine regras de afinidade de Pod para o agendamento do Pod do Job de Exclusão de Chaves Wopi por nós em relação a outros Pods{}
wopiKeysDeletion.job.nodeAffinityDefine regras de afinidade de nó para o agendamento do Pod do Job de Exclusão de Chaves Wopi por nós{}
wopiKeysDeletion.job.nodeSelectorRótulos de nó para atribuição do Pod do Job de Exclusão de Chaves Wopi. Se definido, tem prioridade sobre o nodeSelector{}
wopiKeysDeletion.job.tolerationsTolerâncias para atribuição do Pod do Job de Exclusão de Chaves Wopi. Se definido, tem prioridade sobre as tolerations[]
wopiKeysDeletion.job.initContainersDefine contêineres que são executados antes do contêiner de Exclusão de Chaves Wopi no Pod[]
wopiKeysDeletion.job.image.repositoryRepositório de imagem do Job de Exclusão de Chaves Wopi ONLYOFFICE Docsonlyoffice/docs-utils
wopiKeysDeletion.job.image.tagTag de imagem do Job de Exclusão de Chaves Wopi ONLYOFFICE Docs9.0.4-1
wopiKeysDeletion.job.image.pullPolicyPolítica de pull de imagem do Job de Exclusão de Chaves Wopi ONLYOFFICE DocsIfNotPresent
wopiKeysDeletion.job.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner de Exclusão de Chaves Wopifalse
wopiKeysDeletion.job.resources.requestsRecursos solicitados para o contêiner do Job de Exclusão de Chaves Wopi{}
wopiKeysDeletion.job.resources.limitsLimites de recursos para o contêiner do Job de Exclusão de Chaves Wopi{}
tests.enabledHabilitar a criação de recursos necessários para testes de lançamento do ONLYOFFICE Docs e testes de disponibilidade de dependências conectadas. Esses recursos serão usados ao executar o comando helm testtrue
tests.annotationsDefine anotações que serão adicionadas ao Pod de Teste. Se definido, tem prioridade sobre as commonAnnotations{}
tests.customPodAntiAffinityProibir o agendamento do Pod de Teste em relação a outros Pods contendo os rótulos especificados no mesmo nó{}
tests.podAffinityDefine regras de afinidade de Pod para o agendamento do Pod de Teste por nós em relação a outros Pods{}
tests.nodeAffinityDefine regras de afinidade de nó para o agendamento do Pod de Teste pelos nós{}
tests.nodeSelectorRótulos de nó para atribuição do Pod de Teste. Se definido, tem prioridade sobre o nodeSelector{}
tests.tolerationsTolerâncias para atribuição do Pod de Teste. Se definido, tem prioridade sobre as tolerations[]
tests.initContainersDefine contêineres que são executados antes do contêiner de Teste no Pod[]
tests.image.repositoryNome da imagem do contêiner de Testeonlyoffice/docs-utils
tests.image.tagTag da imagem do contêiner de Teste9.0.4-1
tests.image.pullPolicyPolítica de pull da imagem do contêiner de TesteIfNotPresent
tests.containerSecurityContext.enabledHabilitar contexto de segurança para o contêiner de Testefalse
tests.resources.requestsOs recursos solicitados para o contêiner de teste{}
tests.resources.limitsOs limites de recursos para o contêiner de teste{}
  • *Nota: O prefixo -de é especificado no valor do repositório de imagens, o que significa tipo de solução. Opções possíveis:
    • -de. Para Developer Edition comercial
    • -ee. Para Enterprise Edition comercial

    O valor padrão deste parâmetro refere-se ao ONLYOFFICE Document Server Developer Edition. Para saber mais sobre esta edição e compará-la com outras edições, consulte a tabela de comparação nesta página.

5. Detalhes de configuração e instalação
  1. Exemplo de implantação (opcional)
    Importante Este passo é opcional. Você pode ignorá-lo completamente se não precisar implantar o exemplo.

    Para implantar o exemplo, defina o parâmetro example.enabled como true:

    $ helm install documentserver onlyoffice/docs --set example.enabled=true
  2. Implantação de métricas (opcional)
    Importante Este passo é opcional. Você pode ignorá-lo completamente se não precisar implantar métricas.

    Para implantar métricas, defina metrics.enabled como true:

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

    Se você quiser usar o Grafana para visualizar métricas, defina grafana.enabled como true. Se quiser usar o Nginx Ingress para acessar o Grafana, defina grafana.ingress.enabled como true:

    $ helm install documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.ingress.enabled=true
  3. Expor ONLYOFFICE Docs
    1. Expor ONLYOFFICE Docs via Serviço (apenas HTTP)
      Você deve pular este passo se for expor ONLYOFFICE Docs via HTTPS.

      Este tipo de exposição cria um balanceador de carga para acessar o ONLYOFFICE Docs. Use este tipo se você usar terminação TLS externa e não tiver outra aplicação web no cluster k8s.

      Para expor ONLYOFFICE Docs via serviço, defina o parâmetro service.type como LoadBalancer:

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

      Execute o seguinte comando para obter o IP do serviço documentserver:

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

      Depois disso, o ONLYOFFICE Docs estará disponível em http://DOCUMENTSERVER-SERVICE-IP/.

      Se o IP do serviço estiver vazio, tente obter o hostname do serviço documentserver:

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

      Nesse caso, o ONLYOFFICE Docs estará disponível em http://DOCUMENTSERVER-SERVICE-HOSTNAME/.

    2. Expor ONLYOFFICE Docs via Ingress

      Primeiro, instale o Kubernetes Nginx Ingress Controller:

      $ helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true,controller.replicaCount=2
      Para habilitar a exposição de métricas do ingress-nginx para o Prometheus, execute:
      $ helm install nginx-ingress -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/ingress_values.yaml ingress-nginx/ingress-nginx

      Veja mais detalhes sobre a instalação do Nginx Ingress via Helm aqui.

      Em seguida, escolha seu método de exposição:

      • Via HTTP
        Você deve pular isso se for expor ONLYOFFICE Docs via HTTPS.
        $ helm install documentserver onlyoffice/docs --set ingress.enabled=true

        Obtenha o IP do ingress:

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

        O ONLYOFFICE Docs estará disponível em http://DOCUMENTSERVER-INGRESS-IP/ (ou use o hostname se o IP estiver vazio).

      • Via HTTPS (terminação TLS)

        Crie o segredo tls com seu 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

        Associe o IP ou hostname do ingress com seu nome de domínio através do seu provedor de DNS. Depois disso, o ONLYOFFICE Docs estará disponível em https://your-domain-name/.

      • Via 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

        Em seguida, instale ou atualize o ONLYOFFICE Docs configurando ingress.enabled, ingress.ssl.enabled, ingress.letsencrypt.enabled como true, e especificando seus valores para ingress.letsencrypt.email e ingress.host (ou ingress.tenants para múltiplos domínios).

      • Via um caminho virtual

        Defina os parâmetros ingress.enabled, ingress.host e ingress.path:

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

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

        Para Ingress NGINX por Kubernetes, adicione o padrão (/|$)(.*) a ingress.path, por exemplo, /docs(/|$)(.*).

    3. Expor ONLYOFFICE Docs via rota no OpenShift
      $ helm install documentserver onlyoffice/docs --set openshift.route.enabled=true,openshift.route.host=your-domain-name,openshift.route.path=/docs

      Para terminação TLS, adicione manualmente certificados à rota através do console web do OpenShift.

6. Escalar ONLYOFFICE Docs
Importante Este passo é opcional. Você pode ignorá-lo completamente se quiser usar as configurações de implantação padrão.
  1. Escalonamento Horizontal de Pods

    Você pode habilitar o escalonamento automático para que o número de réplicas das implantações docservice e converter seja calculado automaticamente com base nos valores e tipo de métricas.

    Para métricas de recursos, a API metrics.k8s.io deve estar registrada, o que geralmente é fornecido pelo metrics-server. Ele pode ser iniciado como um complemento do cluster.

    Para habilitar o HPA para a implantação do docservice, especifique o parâmetro docservice.autoscaling.enabled=true. Da mesma forma, para habilitar o HPA para a implantação do converter, especifique converter.autoscaling.enabled=true. Em ambos os casos, o parâmetro replicas correspondente é ignorado e o número de réplicas é controlado pelo HPA.

    Para mais informações sobre o Horizontal Pod Autoscaling, veja aqui. Para outros parâmetros configuráveis de Autoscaling, consulte a tabela de Parâmetros.

  2. Escalonamento manual

    As implantações docservice e converter consistem em 2 pods cada por padrão.

    Para escalar a implantação do docservice:

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

    Para escalar a implantação do converter:

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

Para atualizar, defina os parâmetros para a atualização. Por exemplo:

$ helm upgrade documentserver onlyoffice/docs \
  --set docservice.image.tag=[version]
Você também precisa especificar os parâmetros que foram definidos durante a instalação.

Ou modifique o arquivo values.yaml e execute:

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

O comando helm upgrade executa um hook que desliga o ONLYOFFICE Docs e limpa o banco de dados. O tempo padrão de execução do hook é 300s. Para alterá-lo:

$ helm upgrade documentserver -f values.yaml onlyoffice/docs --timeout 15m
Ao atualizar em um cluster k8s privado por trás de um proxy Web ou sem acesso à internet, veja as notas abaixo.

Para atualizar qualquer parâmetro além da versão do ONLYOFFICE Docs, execute helm upgrade sem hooks:

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

Para reverter atualizações:

$ helm rollback documentserver
Ao reverter em um cluster k8s privado, veja as notas abaixo.
8. Desligar ONLYOFFICE Docs
Importante Este passo é opcional.

Para realizar o desligamento, execute o seguinte comando:

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

Onde <NAMESPACE> é o namespace onde o ONLYOFFICE Docs está instalado. O padrão é default se não especificado. Por exemplo:

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

Após a execução bem-sucedida do Pod shutdown-ds, exclua o Job:

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

Para reiniciar o ONLYOFFICE Docs após o desligamento, reinicie os pods docservice e converter:

$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
9. Atualizar licença do ONLYOFFICE Docs
Importante Este passo é opcional.

Desde a versão v5.1.1, você pode atualizar a licença recriando o segredo sem reiniciar os pods. Para atualizar a licença:

  • Coloque o novo arquivo license.lic em um diretório.
  • Execute os seguintes comandos:
    $ kubectl delete secret [SECRET_LICENSE_NAME] -n <NAMESPACE>
    $ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.lic -n <NAMESPACE>

    Onde SECRET_LICENSE_NAME é o nome do segredo existente com uma licença.

O documentserver irá reler a nova licença automaticamente.

[MÉTODO DESCONTINUADO] Reinicie os pods docservice e converter:
$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
10. Teste de instalação do ONLYOFFICE Docs
Importante Este passo é opcional.

Teste a disponibilidade do ONLYOFFICE Docs e o acesso às dependências conectadas:

$ helm test documentserver -n <NAMESPACE>

A saída deve conter:

Phase: Succeeded

Para visualizar o log do teste:

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

Após o teste, exclua o Pod test-ds:

$ kubectl delete pod test-ds -n <NAMESPACE>
Este teste é apenas para fins informativos e não pode garantir 100% de disponibilidade. Para informações detalhadas, verifique os logs da aplicação.
11. Executar Jobs em um cluster k8s privado
Importante Este passo é opcional. Você pode ignorá-lo completamente se o seu cluster tiver acesso irrestrito à internet.

Ao executar um Job para instalação, atualização, reversão ou exclusão, o contêiner precisa de acesso à internet para baixar os scripts SQL mais recentes. Se o acesso à rede externa for restrito no seu cluster, defina privateCluster=true e crie manualmente um ConfigMap com os scripts SQL necessários.

Se o seu cluster já tiver os configmaps remove-db-scripts e init-db-scripts, exclua-os primeiro:

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

Baixe os scripts do banco de dados. 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

Crie configmaps a partir deles:

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

Se você usou nomes diferentes para o ConfigMap ou os arquivos, defina os parâmetros apropriados para os jobs correspondentes: existingConfigmap.tblRemove.name / existingConfigmap.tblRemove.keyName para scripts de limpeza, e existingConfigmap.tblCreate.name / existingConfigmap.tblCreate.keyName para scripts de criação.

Então, ao executar helm install|upgrade|rollback|delete, defina o parâmetro privateCluster=true.

Se um Web Proxy estiver disponível, você pode deixar privateCluster=false e definir webProxy.enabled=true com os parâmetros de proxy apropriados em vez de criar configmaps manualmente.
12. Acesso à página de informações
Importante Este passo é opcional.

O acesso à página /info é limitado por padrão. Para permitir o acesso, especifique os endereços IP ou sub-redes usando o parâmetro proxy.infoAllowedIP. Note que, devido às especificidades da rede Kubernetes, os clientes reais são tipicamente endereços de Pod, Node ou Load Balancer em vez do IP original do usuário.

Você pode restringir ainda mais o acesso usando a Autenticação Básica do Nginx definindo o parâmetro proxy.infoAllowedUser e uma senha via proxy.infoAllowedPassword. Alternativamente, use um segredo existente definindo proxy.infoAllowedExistingSecret.

Usando Grafana para visualizar métricas

Importante Esta seção é opcional. Você pode ignorá-la completamente se não quiser instalar o Grafana.
1. Implantar Grafana
Pressupõe-se que o passo 6.2 (Instalando Prometheus) já tenha sido concluído.
  1. Implantar Grafana sem dashboards prontos
    Pule este passo se quiser implantar o Grafana com dashboards prontos.
    $ 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. Implantar Grafana com dashboards prontos
    1. Instalar dashboards prontos do Grafana

      Defina os parâmetros grafana.enabled e grafana.dashboard.enabled como true. Se o ONLYOFFICE Docs já estiver instalado, execute:

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

      Isso baixa dashboards prontos em formato JSON do site do Grafana, aplica as edições necessárias e cria um configmap a partir deles. Um dashboard para métricas do ONLYOFFICE Docs também é adicionado (pressupõe-se que o passo 6 (Implantar StatsD exporter) já foi concluído).

    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

      Os seguintes dashboards serão importados para o Grafana: Node Exporter, Deployment Statefulset Daemonset, Redis Dashboard para Prometheus Redis Exporter, RabbitMQ-Overview, Banco de Dados PostgreSQL, controlador NGINX Ingress, ONLYOFFICE Docs e Uso de recursos por Pods e Containers.

      Você pode ver a descrição das métricas do ONLYOFFICE Docs visualizadas no Grafana aqui.

      Veja mais detalhes sobre a instalação do Grafana via Helm aqui.

2. Acesso ao Grafana via Ingress
Pressupõe-se que o passo sobre instalação do controlador Kubernetes Nginx Ingress já foi concluído.

Se o ONLYOFFICE Docs foi instalado com o parâmetro grafana.ingress.enabled (Implantação de métricas), o Grafana estará disponível em: http://INGRESS-ADDRESS/grafana/

Se o Ingress foi instalado com uma conexão segura (Expor ONLYOFFICE Docs via HTTPS), o Grafana estará disponível em: https://your-domain-name/grafana/

3. Visualizar métricas coletadas no Grafana

Acesse http(s)://your-domain-name/grafana/ e faça login com:

Login - admin

Para obter a senha, execute:

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

Na seção de dashboards, você verá os dashboards adicionados exibindo métricas recebidas do Prometheus.

Artigo com o tag:
Veja todas as etiquetas