- Home
- Docs
- Instalação e configuração
- Enterprise
- Cluster
- ONLYOFFICE Docs para Kubernetes
ONLYOFFICE Docs para Kubernetes
Introdução
-
Você deve ter um cluster Kubernetes ou OpenShift instalado:
- Por favor, consulte a referência para configurar o Kubernetes.
- Por favor, consulte a referência para configurar o OpenShift.
- Você também deve ter uma cópia local configurada do
kubectl. Veja este guia sobre como instalar e configurar okubectl. - 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
ocquantokubectlpara 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
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
Instalar NFS Server Provisioner
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:
- Amazon EKS:
gp2 - Digital Ocean:
do-block-storage - IBM Cloud: Padrão
ibmc-file-bronze. Mais classes de armazenamento - Yandex Cloud:
yc-network-hddouyc-network-ssd. Mais detalhes - minikube:
standard
- Amazon EKS:
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.
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
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
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
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.
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
-
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 -
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=1mPara 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.
-
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=30000msVeja 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
-
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.jsonQualquer nome pode ser usado no lugar delocal-config. -
Especificar parâmetros ao instalar o ONLYOFFICE Docs
Ao instalar o ONLYOFFICE Docs, especifique os parâmetros
extraConf.configMap=local-configeextraConf.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
comando ouhelm upgrade documentserver onlyoffice/docs --set extraConf.configMap=local-config --set extraConf.filename=local.json --no-hooks
se os parâmetros estiverem especificados no arquivohelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksvalues.yaml.
8. Adicionar fontes personalizadas
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
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
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
-
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.jsonEm vez decustom-themesecustom-themes.jsonvocê pode usar quaisquer outros nomes. -
Especificar parâmetros ao instalar o ONLYOFFICE Docs
Ao instalar o ONLYOFFICE Docs, especifique os parâmetros
extraThemes.configMap=custom-themeseextraThemes.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 comandohelm upgrade documentserver onlyoffice/docs --set extraThemes.configMap=custom-themes --set extraThemes.filename=custom-themes.json --no-hooksouhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksse os parâmetros estiverem especificados no arquivovalues.yaml.
12. Conectar bucket Amazon S3 como cache ao ONLYOFFICE Helm Docs
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
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
-
Criar segredo
Se você tiver uma licença válida do ONLYOFFICE Docs, crie um segredo
licensea partir do arquivo:$ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.licOnde
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 vaziolicenseserá criado automaticamente. Para informações sobre como atualizar um segredo existente com uma licença, veja aqui. -
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 comandohelm upgrade documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME] --no-hooksouhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksse os parâmetros estiverem especificados no arquivovalues.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.
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
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
Mostrar todos os parâmetros
connections.dbType | O tipo de banco de dados. Os valores possíveis são postgres, mariadb, mysql, oracle, mssql ou dameng | postgres |
connections.dbHost | O endereço IP ou o nome do host do Banco de Dados | postgresql |
connections.dbUser | Usuário do banco de dados | postgres |
connections.dbPort | Número da porta do servidor de banco de dados | 5432 |
connections.dbName | Nome do banco de dados ao qual a aplicação estará conectada | postgres |
connections.dbPassword | Senha do usuário do banco de dados. Se definida, tem prioridade sobre o connections.dbExistingSecret | "" |
connections.dbSecretKeyName | O nome da chave que contém a senha do usuário do Banco de Dados | postgres-password |
connections.dbExistingSecret | Nome do segredo existente a ser usado para senhas de Banco de Dados. Deve conter a chave especificada em connections.dbSecretKeyName | postgresql |
connections.redisConnectorName | Define qual conector usar para conectar ao Redis. Se precisar conectar ao Redis Sentinel, defina o valor ioredis | redis |
connections.redistHost | O endereço IP ou o nome do host do Redis. Não é usado se os valores estiverem definidos em connections.redisClusterNodes e connections.redisSentinelNodes | redis-master |
connections.redisPort | O número da porta do servidor Redis. Não é usado se os valores estiverem definidos em connections.redisClusterNodes e connections.redisSentinelNodes | 6379 |
connections.redisUser | O 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 personalizado | default |
connections.redisDBNum | Nú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 personalizado | 0 |
connections.redisClusterNodes | Lista 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.redisPassword | A 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.redisSecretKeyName | O nome da chave que contém a senha do usuário do Redis | redis-password |
connections.redisExistingSecret | Nome 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.json | redis |
connections.redisNoPass | Define 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 true | false |
connections.redisSentinelNodes | Lista 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.redisSentinelGroupName | Nome de um grupo de instâncias Redis composto por um mestre e um ou mais escravos. Usado se connections.redisConnectorName estiver definido como ioredis | mymaster |
connections.redisSentinelExistingSecret | Nome 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.redisSentinelSecretKeyName | O 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 aqui | sentinel-password |
connections.redisSentinelPassword | A 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.redisSentinelNoPass | Define 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 true | true |
connections.amqpType | Define o tipo de servidor AMQP. Os valores possíveis são rabbitmq ou activemq | rabbitmq |
connections.amqpHost | O endereço IP ou o nome do servidor AMQP | rabbitmq |
connections.amqpPort | A porta para a conexão com o servidor AMQP | 5672 |
connections.amqpVhost | O host virtual para a conexão com o servidor AMQP | / |
connections.amqpUser | O nome de usuário para a conta do servidor AMQP | user |
connections.amqpProto | O protocolo para a conexão com o servidor AMQP | amqp |
connections.amqpPassword
| Senha do usuário do servidor AMQP. Se definido, tem prioridade sobre o connections.amqpExistingSecret | "" |
connections.amqpSecretKeyName | O nome da chave que contém a senha do usuário do servidor AMQP | rabbitmq-password |
connections.amqpExistingSecret | O nome do segredo existente a ser usado para senhas do servidor AMQP. Deve conter a chave especificada em connections.amqpSecretKeyName | rabbitmq |
persistence.existingClaim | Nome de um PVC existente a ser usado. Se não especificado, um PVC chamado "ds-files" será criado | "" |
persistence.annotations | Define anotações que serão adicionadas ao PVC "ds-files". Se definido, tem prioridade sobre o commonAnnotations | {} |
persistence.storageClass | Classe de Armazenamento do PVC para dados do Onlyoffice Docs e volumes de configuração em tempo de execução | nfs |
persistence.size | Solicitação de Armazenamento do PVC para o volume do ONLYOFFICE Docs | 8Gi |
persistence.storageS3 | Define se o S3 será usado como armazenamento de cache. Defina como true se você usar o S3 como armazenamento de cache | false |
persistence.runtimeConfig.enabled | Define se deve usar PVC e se deve montá-lo em contêineres | true |
persistence.runtimeConfig.existingClaim | O 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.annotations | Define anotações que serão adicionadas ao PVC "ds-runtime-config". Se definido, tem prioridade sobre o commonAnnotations | {} |
persistence.runtimeConfig.size | Solicitação de Armazenamento do PVC para o volume de configuração em tempo de execução | 1Gi |
commonNameSuffix | O nome que será adicionado ao nome de todos os recursos criados como um sufixo | "" |
namespaceOverride | O nome do namespace no qual o Onlyoffice Docs será implantado. Se não definido, o nome será retirado de .Release.Namespace | "" |
commonLabels | Define rótulos que serão adicionados a todos os recursos implantados. Você também pode usar tpl como o valor para a chave | {} |
commonAnnotations | Define 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.create | Habilitar criação de ServiceAccount | false |
serviceAccount.name | Nome 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.annotations | Mapa de anotações a serem adicionadas ao ServiceAccount. Se definido, tem prioridade sobre o commonAnnotations | {} |
serviceAccount.automountServiceAccountToken | Habilitar montagem automática do ServiceAccountToken no serviceAccount criado. Usado apenas se serviceAccount.create for true | true |
license.existingSecret | Nome do segredo existente que contém a licença. Deve conter a chave license.lic | "" |
license.existingClaim | Nome do PVC existente no qual a licença está armazenada. Deve conter o arquivo license.lic | "" |
log.level | Define o tipo e a severidade de um evento registrado. Valores possíveis são ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, MARK, OFF | WARN |
log.type | Define o formato de um evento registrado. Valores possíveis são pattern, json, basic, coloured, messagePassThrough, dummy | pattern |
log.pattern | Define o padrão de log se log.type=pattern | [%d] [%p] %c - %.10000m |
wopi.enabled | Define 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 cliente | false |
wopi.keys.generation | Define se as chaves da API devem ser geradas. Usado se você definir wopi.enabled como true | true |
wopi.keys.newKeysExistingSecret | Nome 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.oldKeysExistingSecret | Nome 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.enabled | Especifica se o StatsD está habilitado para o ONLYOFFICE Docs | false |
metrics.host | Define o host de escuta do StatsD | statsd-exporter-prometheus-statsd-exporter |
metrics.port | Define a porta de escuta do StatsD | 8125 |
metrics.prefix | Define o prefixo de métricas do StatsD para serviços de backend | ds. |
extraConf.configMap | O nome do ConfigMap que contém o arquivo json que sobrescreve os valores padrão | "" |
extraConf.filename | O nome do arquivo json que contém valores personalizados. Deve ser o mesmo que o nome da key em extraConf.ConfigMap | local.json |
extraThemes.configMap | O nome do ConfigMap que contém o arquivo json que contém os temas da interface | "" |
extraThemes.filename | O nome do arquivo json que contém temas personalizados da interface. Deve ser o mesmo que o nome da key em extraThemes.configMap | custom-themes.json |
podAntiAffinity.type | Tipos de antiafinidade de Pod. Valores permitidos: soft ou hard | soft |
podAntiAffinity.topologyKey | Chave de rótulo do nó para correspondência | kubernetes.io/hostname |
podAntiAffinity.weight | Prioridade ao selecionar nó. Está no intervalo de 1 a 100 | 100 |
nodeSelector | Ró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 | {} |
tolerations | Tolerâncias para atribuição de pods. Cada serviço do ONLYOFFICE Docs pode sobrescrever os valores especificados aqui com os seus próprios | [] |
imagePullSecrets | Nome do segredo do registro de imagem do contêiner | "" |
requestFilteringAgent.allowPrivateIPAddress | Define se é permitido conectar endereço IP privado ou não. Os parâmetros requestFilteringAgent são usados se o JWT estiver desabilitado: jwt.enabled=false | false |
requestFilteringAgent.allowMetaIPAddress | Define se é permitido conectar endereço meta ou não | false |
requestFilteringAgent.allowIPAddressList | Define a lista de endereços IP permitidos para conexão. Esses valores são preferidos em relação a requestFilteringAgent.denyIPAddressList | [] |
requestFilteringAgent.denyIPAddressList | Define a lista de endereços IP permitidos para conexão | [] |
docservice.annotations | Define anotações que serão adicionadas à Implantação do Docservice. Se definido, tem prioridade sobre o commonAnnotations | {} |
docservice.podAnnotations | Mapa de anotações a serem adicionadas aos pods de implantação do Docservice | rollme: "{{ randAlphaNum 5 | quote }}" |
docservice.replicas | Quantidade de réplicas do Docservice. Se o parâmetro docservice.autoscaling.enabled estiver habilitado, ele é ignorado | 2 |
docservice.updateStrategy.type | Tipo de estratégia de atualização de implantação do Docservice | Recreate |
docservice.customPodAntiAffinity | Proibição do agendamento de Pods do Docservice em relação a outros Pods contendo os rótulos especificados no mesmo nó | {} |
docservice.podAffinity | Define regras de afinidade de Pod para agendamento de Pods do Docservice por nós em relação a outros Pods | {} |
docservice.nodeAffinity | Define regras de afinidade de nó para agendamento de Pods do Docservice por nós | {} |
docservice.nodeSelector | Rótulos de nó para atribuição de Pods do Docservice. Se definido, tem prioridade sobre o nodeSelector | {} |
docservice.tolerations | Tolerâncias para atribuição de Pods do Docservice. Se definido, tem prioridade sobre o tolerations | [] |
docservice.terminationGracePeriodSeconds | O tempo para terminar graciosamente durante o qual o Pod do Docservice terá o status Terminating | 30 |
docservice.hostAliases | Adiciona entradas adicionais ao arquivo hosts nos contêineres Docservice e Proxy | [] |
docservice.initContainers | Define 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.repository | Repositório de imagem do contêiner Docservice* | onlyoffice/docs-docservice-de |
docservice.image.tag | Tag da imagem do contêiner Docservice | 9.0.4-1 |
docservice.image.pullPolicy | Política de pull da imagem do contêiner Docservice | IfNotPresent |
docservice.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner Docservice | false |
docservice.lifecycleHooks | Define 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.requests | Os recursos solicitados para o contêiner Docservice | {} |
docservice.resources.limits | Os limites de recursos para o contêiner Docservice | {} |
docservice.extraEnvVars | Um array com variáveis de ambiente extras para o contêiner Docservice | [] |
docservice.extraVolumes | Um array com volumes extras para o Pod Docservice | [] |
docservice.extraVolumeMounts | Um array com montagens de volume extras para o contêiner Docservice | [] |
docservice.readinessProbe.enabled | Habilitar readinessProbe para o contêiner Docservice | true |
docservice.livenessProbe.enabled | Habilitar livenessProbe para o contêiner Docservice | true |
docservice.startupProbe.enabled | Habilitar startupProbe para o contêiner Docservice | true |
docservice.autoscaling.enabled | Habilitar escalonamento automático da implantação do Docservice | false |
docservice.autoscaling.annotations | Define anotações que serão adicionadas adicionalmente ao HPA da implantação do Docservice. Se definido, tem prioridade sobre o commonAnnotations | {} |
docservice.autoscaling.minReplicas | Número mínimo de réplicas para escalonamento automático da implantação do Docservice | 2 |
docservice.autoscaling.maxReplicas | Número máximo de réplicas para escalonamento automático da implantação do Docservice | 4 |
docservice.autoscaling.targetCPU.enabled | Habilitar escalonamento automático da implantação do Docservice por percentual de uso de CPU | true |
docservice.autoscaling.targetCPU.utilizationPercentage | Percentual de CPU alvo para escalonamento automático da implantação do Docservice | 70 |
docservice.autoscaling.targetMemory.enabled | Habilitar escalonamento automático da implantação do Docservice por percentual de uso de memória | false |
docservice.autoscaling.targetMemory.utilizationPercentage | Percentual de memória alvo para escalonamento automático da implantação do Docservice | 70 |
docservice.autoscaling.customMetricsType | Métricas de escalonamento personalizadas, adicionais ou externas para a implantação do Docservice | [] |
docservice.autoscaling.behavior | Configuração das políticas de comportamento de escalonamento da implantação do Docservice para os campos scaleDown e scaleUp | {} |
proxy.accessLog | Define a diretiva de formato access_log do nginx | off |
proxy.logFormat | Define 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.gzipProxied | Define a diretiva gzip_proxied do nginx | off |
proxy.clientMaxBodySize | Define a diretiva client_max_body_size do nginx | 100m |
proxy.workerConnections | Define a diretiva worker_connections do nginx | 4096 |
proxy.secureLinkSecret | Define 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.secureLinkExistingSecret | Nome do segredo existente a ser usado para secure_link. Se definido, tem prioridade sobre o proxy.secureLinkSecret | "" |
proxy.infoAllowedIP | Define endereços IP para acessar a página de informações | [] |
proxy.infoAllowedUser | Define 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.infoAllowedPassword | Define 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.infoAllowedSecretKeyName | O nome da chave que contém a senha de autenticação do usuário para informações. Usado se proxy.infoAllowedUser estiver definido | info-auth-password |
proxy.infoAllowedExistingSecret | Nome 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.enabled | Define se a página de boas-vindas será exibida | true |
proxy.image.repository | Repositório de imagem do contêiner Proxy do Docservice* | onlyoffice/docs-proxy-de |
proxy.image.tag | Tag da imagem do contêiner Proxy do Docservice | 9.0.4-1 |
proxy.image.pullPolicy | Política de pull da imagem do contêiner Proxy do Docservice | IfNotPresent |
proxy.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner Proxy | false |
proxy.lifecycleHooks | Define 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.requests | Os recursos solicitados para o contêiner Proxy | {} |
proxy.resources.limits | Os limites de recursos para o contêiner Proxy | {} |
proxy.extraEnvVars | Um array com variáveis de ambiente extras para o contêiner Proxy | [] |
proxy.extraVolumeMounts | Um array com montagens de volume extras para o contêiner Proxy | [] |
proxy.readinessProbe.enabled | Habilitar readinessProbe para o contêiner Proxy | true |
proxy.livenessProbe.enabled | Habilitar livenessProbe para o contêiner Proxy | true |
proxy.startupProbe.enabled | Habilitar startupProbe para o contêiner Proxy | true |
converter.annotations | Define anotações que serão adicionadas adicionalmente à Implantação do Converter. Se definido, tem prioridade sobre o commonAnnotations | {} |
converter.podAnnotations | Mapa de anotações para adicionar aos pods de implantação do Converter | rollme: "{{ randAlphaNum 5 | quote }}" |
converter.replicas | Quantidade de réplicas do Converter. Se o parâmetro converter.autoscaling.enabled estiver habilitado, ele será ignorado | 2 |
converter.updateStrategy.type | Tipo de estratégia de atualização da implantação do Converter | Recreate |
converter.customPodAntiAffinity | Proibição de agendamento de Pods do Converter em relação a outros Pods contendo os rótulos especificados no mesmo nó | {} |
converter.podAffinity | Define regras de afinidade de Pod para agendamento de Pods do Converter por nós em relação a outros Pods | {} |
converter.nodeAffinity | Define regras de afinidade de nó para agendamento de Pods do Converter por nós | {} |
converter.nodeSelector | Rótulos de nó para atribuição de Pods do Converter. Se definido, tem prioridade sobre o nodeSelector | {} |
converter.tolerations | Tolerâncias para atribuição de Pods do Converter. Se definido, tem prioridade sobre o tolerations | [] |
converter.terminationGracePeriodSeconds | O tempo para terminar graciosamente durante o qual o Pod do Converter terá o status Terminating | 30 |
converter.hostAliases | Adiciona entradas adicionais ao arquivo hosts no contêiner Converter | [] |
converter.initContainers | Define 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.repository | Repositório de imagem do contêiner Converter* | onlyoffice/docs-converter-de |
converter.image.tag | Tag da imagem do contêiner Converter | 9.0.4-1 |
converter.image.pullPolicy | Política de pull da imagem do contêiner Converter | IfNotPresent |
converter.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner Converter | false |
converter.lifecycleHooks | Define 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.requests | Os recursos solicitados para o contêiner Converter | {} |
converter.resources.limits | Os limites de recursos para o contêiner Converter | {} |
converter.extraEnvVars | Um array com variáveis de ambiente extras para o contêiner Converter | [] |
converter.extraVolumes | Um array com volumes extras para o Pod Converter | [] |
converter.extraVolumeMounts | Um array com montagens de volumes extras para o contêiner Converter | [] |
converter.autoscaling.enabled | Habilitar escalonamento automático da implantação do Converter | false |
converter.autoscaling.annotations | Define anotações que serão adicionadas adicionalmente ao HPA da implantação do Converter. Se definido, tem prioridade sobre o commonAnnotations | {} |
converter.autoscaling.minReplicas | Número mínimo de réplicas para escalonamento automático da implantação do Converter | 2 |
converter.autoscaling.maxReplicas | Número máximo de réplicas para escalonamento automático da implantação do Converter | 16 |
converter.autoscaling.targetCPU.enabled | Habilitar escalonamento automático da implantação do Converter por porcentagem de uso de CPU | true |
converter.autoscaling.targetCPU.utilizationPercentage | Porcentagem alvo de CPU para escalonamento automático da implantação do Converter | 70 |
converter.autoscaling.targetMemory.enabled | Habilitar escalonamento automático da implantação do Converter por porcentagem de uso de memória | false |
converter.autoscaling.targetMemory.utilizationPercentage | Porcentagem alvo de memória para escalonamento automático da implantação do Converter | 70 |
converter.autoscaling.customMetricsType | Métricas personalizadas, adicionais ou externas para escalonamento automático da implantação do Converter | [] |
converter.autoscaling.behavior | Configuração das políticas de comportamento de escalonamento da implantação do Converter para os campos scaleDown e scaleUp | {} |
example.enabled | Habilita a instalação do Example | false |
example.annotations | Define anotações que serão adicionadas adicionalmente ao StatefulSet do Example. Se definido, tem prioridade sobre o commonAnnotations | {} |
example.podAnnotations | Mapa de anotações para adicionar ao pod do Example | rollme: "{{ randAlphaNum 5 | quote }}" |
example.updateStrategy.type | Tipo de estratégia de atualização do StatefulSet do Example | RollingUpdate |
example.customPodAntiAffinity | Proibição do agendamento do Pod Example em relação a outros Pods contendo os rótulos especificados no mesmo nó | {} |
example.podAffinity | Define regras de afinidade de Pod para agendamento do Pod Example por nós em relação a outros Pods | {} |
example.nodeAffinity | Define regras de afinidade de nó para agendamento do Pod Example por nós | {} |
example.nodeSelector | Rótulos de nó para atribuição de Pods Example. Se definido, tem prioridade sobre o nodeSelector | {} |
example.tolerations | Tolerâncias para atribuição de Pods Example. Se definido, tem prioridade sobre o tolerations | [] |
example.terminationGracePeriodSeconds | O tempo para terminar graciosamente durante o qual o Pod Example terá o status Terminating | 30 |
example.hostAliases | Adiciona entradas adicionais ao arquivo hosts no contêiner Example | [] |
example.initContainers | Define contêineres que são executados antes do contêiner Example no Pod | [] |
example.image.repository | Nome da imagem do contêiner Example | onlyoffice/docs-example |
example.image.tag | Tag da imagem do contêiner Example | 9.0.4-1 |
example.image.pullPolicy | Política de pull da imagem do contêiner Example | IfNotPresent |
example.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner Example | false |
example.dsUrl | Endereç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.requests | Os recursos solicitados para o contêiner Example | {} |
example.resources.limits | Os limites de recursos para o contêiner Example | {} |
example.extraEnvVars | Um array com variáveis de ambiente extras para o contêiner Example | [] |
example.extraConf.configMap | O nome do ConfigMap contendo o arquivo json que substitui os valores padrão. Veja um exemplo de criação aqui | "" |
example.extraConf.filename | O nome do arquivo json que contém valores personalizados. Deve ser o mesmo que o nome da key no example.extraConf.ConfigMap | local.json |
example.extraVolumes | Um array com volumes extras para o Pod Example | [] |
example.extraVolumeMounts | Um array com montagens de volumes extras para o contêiner Example | [] |
jwt.enabled | Especifica a habilitação da validação do JSON Web Token pelo ONLYOFFICE Docs. Comum para solicitações de entrada e saída | true |
jwt.secret | Define 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.header | Define o cabeçalho http que será usado para enviar o JSON Web Token. Comum para solicitações de entrada e saída | Authorization |
jwt.inBody | Especifica a habilitação da validação do token no corpo da solicitação para o ONLYOFFICE Docs | false |
jwt.inbox | Parâ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.outbox | Parâ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.existingSecret | O nome de um segredo existente contendo variáveis para jwt. Se não especificado, um segredo chamado jwt será criado | "" |
service.existing | O nome de um serviço existente para o ONLYOFFICE Docs. Se não especificado, um serviço chamado documentserver será criado | "" |
service.annotations | Mapa de anotações para adicionar ao serviço ONLYOFFICE Docs. Se definido, tem prioridade sobre o commonAnnotations | {} |
service.type | Tipo de serviço do ONLYOFFICE Docs | ClusterIP |
service.port | Porta do serviço ONLYOFFICE Docs | 8888 |
service.sessionAffinity | Afinidade de Sessão para o serviço ONLYOFFICE Docs. Se não definido, None será definido como valor padrão | "" |
service.sessionAffinityConfig | Configuração para Afinidade de Sessão do serviço ONLYOFFICE Docs. Usado se o service.sessionAffinity estiver definido | {} |
ingress.enabled | Habilitar a criação de um ingress para o ONLYOFFICE Docs | false |
ingress.annotations | Mapa de anotações para adicionar ao Ingress. Se definido, tem prioridade sobre o commonAnnotations | nginx.ingress.kubernetes.io/proxy-body-size: 100m |
ingress.ingressClassName | Usado para referenciar a IngressClass que deve ser usada para implementar este Ingress | nginx |
ingress.controllerName | Usado para distinguir entre controladores com o mesmo IngressClassName, mas de fornecedores diferentes | ingress-nginx |
ingress.host | Nome do host de Ingress para o ingress do ONLYOFFICE Docs | "" |
ingress.tenants | Nomes 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.enabled | Habilitar SSL para o ingress do ONLYOFFICE Docs | false |
ingress.ssl.secret | Nome do segredo para SSL a ser montado no Ingress | tls |
ingress.path | Especifica o caminho onde o ONLYOFFICE Docs estará disponível | / |
ingress.pathType | Especifica o tipo de caminho para o recurso de ingress do ONLYOFFICE Docs. Os valores permitidos são Exact, Prefix ou ImplementationSpecific | ImplementationSpecific |
ingress.letsencrypt.enabled | Habilitar a criação de solicitação de certificado no Let's Encrypt. Usado se ingress.enabled estiver definido como true | false |
ingress.letsencrypt.clusterIssuerName | Nome do ClusterIssuer | letsencrypt-prod |
ingress.letsencrypt.email | Seu endereço de e-mail usado para registro ACME | "" |
ingress.letsencrypt.server | O endereço do servidor Let's Encrypt para o qual as solicitações de certificados serão enviadas | https://acme-v02.api.letsencrypt.org/directory |
ingress.letsencrypt.secretName | Nome de um segredo usado para armazenar a chave privada da conta ACME | letsencrypt-prod-private-key |
openshift.route.enabled | Habilitar a criação de uma Rota OpenShift para o ONLYOFFICE Docs | false |
openshift.route.annotations | Mapa de anotações para adicionar à Rota OpenShift. Se definido, tem prioridade sobre o commonAnnotations | {} |
openshift.route.host | Nome do host da Rota OpenShift para a rota do ONLYOFFICE Docs | "" |
openshift.route.path | Especifica o caminho onde o ONLYOFFICE Docs estará disponível | / |
openshift.route.wildcardPolicy | A política para lidar com subdomínios curinga na Rota OpenShift. Os valores permitidos são None, Subdomain | None |
grafana.enabled | Habilitar a instalação de recursos necessários para a visualização de métricas no Grafana | false |
grafana.namespace | O 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.enabled | Habilitar 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 Grafana | false |
grafana.ingress.annotations | Mapa de anotações para adicionar ao Ingress do Grafana. Se definido, tem prioridade sobre o commonAnnotations | nginx.ingress.kubernetes.io/proxy-body-size: 100m |
grafana.dashboard.enabled | Habilitar a instalação de dashboards prontos do Grafana. Usado se você definir grafana.enabled como true | false |
podSecurityContext.enabled | Habilitar contexto de segurança para os pods | false |
podSecurityContext.converter.fsGroup | Define 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 Converter | 101 |
podSecurityContext.docservice.fsGroup | Define 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 Docservice | 101 |
podSecurityContext.jobs.fsGroup | Define 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 Jobs | 101 |
podSecurityContext.example.fsGroup | Define 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 Example | 1001 |
podSecurityContext.tests.fsGroup | Define 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 Test | 101 |
webProxy.enabled | Especificar se um proxy Web é usado na sua rede para acessar os Pods do cluster k8s na Internet | false |
webProxy.http | Endereço do Proxy Web para tráfego HTTP | http://proxy.example.com |
webProxy.https | Endereço do Proxy Web para tráfego HTTPS | https://proxy.example.com |
webProxy.noProxy | Padrões para endereços IP ou nomes de serviços k8s ou nomes de domínio que não devem usar o Proxy Web | localhost,127.0.0.1,docservice |
privateCluster | Especificar se o cluster k8s é usado em uma rede privada sem acesso à internet | false |
upgrade.job.enabled | Habilitar a execução de job pré-atualização antes de atualizar o ONLYOFFICE Docs | true |
upgrade.job.annotations | Define anotações que serão adicionadas adicionalmente ao Job pré-atualização. Se definido, tem prioridade sobre o commonAnnotations | {} |
upgrade.job.podAnnotations | Mapa de anotações para adicionar ao Pod pré-atualização | {} |
upgrade.job.customPodAntiAffinity | Proibir 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.podAffinity | Define 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.nodeAffinity | Define regras de afinidade de Nó para agendamento do Pod do Job pré-atualização por nós | {} |
upgrade.job.nodeSelector | Rótulos de nó para atribuição do Pod do Job pré-atualização. Se definido, tem prioridade sobre o nodeSelector | {} |
upgrade.job.tolerations | Tolerâncias para atribuição do Pod do Job pré-atualização. Se definido, tem prioridade sobre o tolerations | [] |
upgrade.job.initContainers | Define contêineres que são executados antes do contêiner pré-atualização no Pod | [] |
upgrade.job.image.repository | Repositório de imagem do Job por atualização | onlyoffice/docs-utils |
upgrade.job.image.tag | Tag de imagem do Job por atualização | 9.0.4-1 |
upgrade.job.image.pullPolicy | Política de pull de imagem do Job por atualização | IfNotPresent |
upgrade.job.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner pré-atualização | false |
upgrade.job.resources.requests | Os recursos solicitados para o contêiner pré-atualização do job | {} |
upgrade.job.resources.limits | Os limites de recursos para o contêiner pré-atualização do job | {} |
upgrade.existingConfigmap.tblRemove.name | O nome do ConfigMap existente que contém o arquivo SQL para excluir tabelas do banco de dados | remove-db-scripts |
upgrade.existingConfigmap.tblRemove.keyName | O 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.name | removetbl.sql |
upgrade.existingConfigmap.tblCreate.name | O nome do ConfigMap existente que contém o arquivo SQL para criar tabelas do banco de dados | init-db-scripts |
upgrade.existingConfigmap.tblCreate.keyName | O 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.name | createdb.sql |
upgrade.existingConfigmap.dsStop | O 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.enabled | Habilitar a execução de job pré-rollback antes de reverter o ONLYOFFICE Docs | true |
rollback.job.annotations | Define anotações que serão adicionadas adicionalmente ao Job pré-rollback. Se definido, tem prioridade sobre o commonAnnotations | {} |
rollback.job.podAnnotations | Mapa de anotações para adicionar ao Pod pré-rollback | {} |
rollback.job.customPodAntiAffinity | Proibir o agendamento do Pod do Job pré-rollback em relação a outros Pods contendo os rótulos especificados no mesmo nó | {} |
rollback.job.podAffinity | Define regras de afinidade de Pod para agendamento do Pod do Job pré-rollback por nós em relação a outros Pods | {} |
rollback.job.nodeAffinity | Define as regras de afinidade de nó para o agendamento do Pod do Job de pré-rollback pelos nós | {} |
rollback.job.nodeSelector | Rótulos de nó para a atribuição do Pod do Job de pré-rollback. Se definido, tem prioridade sobre o nodeSelector | {} |
rollback.job.tolerations | Tolerações para a atribuição do Pod do Job de pré-rollback. Se definido, tem prioridade sobre as tolerations | [] |
rollback.job.initContainers | Define os contêineres que são executados antes do contêiner de pré-rollback no Pod | [] |
rollback.job.image.repository | Repositório de imagem do Job por rollback | onlyoffice/docs-utils |
rollback.job.image.tag | Tag de imagem do Job por rollback | 9.0.4-1 |
rollback.job.image.pullPolicy | Política de pull de imagem do Job por rollback | IfNotPresent |
rollback.job.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner de pré-rollback | false |
rollback.job.resources.requests | Os recursos solicitados para o contêiner de rollback do Job | {} |
rollback.job.resources.limits | Os limites de recursos para o contêiner de rollback do Job | {} |
rollback.existingConfigmap.tblRemove.name | O nome do ConfigMap existente que contém o arquivo SQL para excluir tabelas do banco de dados | remove-db-scripts |
rollback.existingConfigmap.tblRemove.keyName | O 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.name | removetbl.sql |
rollback.existingConfigmap.tblCreate.name | O nome do ConfigMap existente que contém o arquivo SQL para criar tabelas do banco de dados | init-db-scripts |
rollback.existingConfigmap.tblCreate.keyName | O 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.name | createdb.sql |
rollback.existingConfigmap.dsStop | O 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.enabled | Habilitar a execução do Job de pré-exclusão antes de excluir o ONLYOFFICE Docs | true |
delete.job.annotations | Define anotações que serão adicionadas adicionalmente ao Job de pré-exclusão. Se definido, tem prioridade sobre as commonAnnotations | {} |
delete.job.podAnnotations | Mapa de anotações para adicionar ao Pod de pré-exclusão | {} |
delete.job.customPodAntiAffinity | Proibindo 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.podAffinity | Define 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.nodeAffinity | Define as regras de afinidade de nó para o agendamento do Pod do Job de pré-exclusão pelos nós | {} |
delete.job.nodeSelector | Rótulos de nó para a atribuição do Pod do Job de pré-exclusão. Se definido, tem prioridade sobre o nodeSelector | {} |
delete.job.tolerations | Tolerações para a atribuição do Pod do Job de pré-exclusão. Se definido, tem prioridade sobre as tolerations | [] |
delete.job.initContainers | Define os contêineres que são executados antes do contêiner de pré-exclusão no Pod | [] |
delete.job.image.repository | Repositório de imagem do Job por exclusão | onlyoffice/docs-utils |
delete.job.image.tag | Tag de imagem do Job por exclusão | 9.0.4-1 |
delete.job.image.pullPolicy | Política de pull de imagem do Job por exclusão | IfNotPresent |
delete.job.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner de pré-exclusão | false |
delete.job.resources.requests | Os recursos solicitados para o contêiner de exclusão do Job | {} |
delete.job.resources.limits | Os limites de recursos para o contêiner de exclusão do Job | {} |
delete.existingConfigmap.tblRemove.name | O nome do ConfigMap existente que contém o arquivo SQL para excluir tabelas do banco de dados | remove-db-scripts |
delete.existingConfigmap.tblRemove.keyName | O 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.name | removetbl.sql |
delete.existingConfigmap.dsStop | O 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.enabled | Habilitar a execução do Job de pré-instalação antes de instalar o ONLYOFFICE Docs | true |
install.job.annotations | Define anotações que serão adicionadas adicionalmente ao Job de pré-instalação. Se definido, tem prioridade sobre as commonAnnotations | {} |
install.job.podAnnotations | Mapa de anotações para adicionar ao Pod de pré-instalação | {} |
install.job.customPodAntiAffinity | Proibindo 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.podAffinity | Define 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.nodeAffinity | Define as regras de afinidade de nó para o agendamento do Pod do Job de pré-instalação pelos nós | {} |
install.job.nodeSelector | Rótulos de nó para a atribuição do Pod do Job de pré-instalação. Se definido, tem prioridade sobre o nodeSelector | {} |
install.job.tolerations | Tolerações para a atribuição do Pod do Job de pré-instalação. Se definido, tem prioridade sobre as tolerations | [] |
install.job.initContainers | Define os contêineres que são executados antes do contêiner de pré-instalação no Pod | [] |
install.job.image.repository | Repositório de imagem do Job por pré-instalação do ONLYOFFICE Docs | onlyoffice/docs-utils |
install.job.image.tag | Tag de imagem do Job por pré-instalação do ONLYOFFICE Docs | 9.0.4-1 |
install.job.image.pullPolicy | Política de pull de imagem do Job por pré-instalação do ONLYOFFICE Docs | IfNotPresent |
install.job.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner de pré-instalação | false |
install.job.resources.requests | Os recursos solicitados para o contêiner de pré-instalação do Job | {} |
install.job.resources.limits | Os limites de recursos para o contêiner de pré-instalação do Job | {} |
install.existingConfigmap.tblCreate.name | O nome do ConfigMap existente que contém o arquivo SQL para criar tabelas do banco de dados | init-db-scripts |
install.existingConfigmap.tblCreate.keyName | O 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.name | createdb.sql |
install.existingConfigmap.initdb | O 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.enabled | Habilitar 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 Cache | true |
clearCache.job.annotations | Define anotações que serão adicionadas adicionalmente ao Job Clear Cache. Se definido, tem prioridade sobre as commonAnnotations | {} |
clearCache.job.podAnnotations | Mapa de anotações para adicionar ao Pod Clear Cache | {} |
clearCache.job.customPodAntiAffinity | Proibindo o agendamento do Pod do Job Clear Cache em relação a outros Pods contendo os rótulos especificados no mesmo nó | {} |
clearCache.job.podAffinity | Define 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.nodeAffinity | Define as regras de afinidade de nó para o agendamento do Pod do Job Clear Cache pelos nós | {} |
clearCache.job.nodeSelector | Rótulos de nó para a atribuição do Pod do Job Clear Cache. Se definido, tem prioridade sobre o nodeSelector | {} |
clearCache.job.tolerations | Tolerâncias para atribuição do Pod do Job Clear Cache. Se definido, tem prioridade sobre as tolerations | [] |
clearCache.job.initContainers | Define contêineres que são executados antes do contêiner Clear Cache no Pod | [] |
clearCache.job.image.repository | Repositório de imagem do Job Clear Cache ONLYOFFICE Docs | onlyoffice/docs-utils |
clearCache.job.image.tag | Tag de imagem do Job Clear Cache ONLYOFFICE Docs | 9.0.4-1 |
clearCache.job.image.pullPolicy | Política de pull de imagem do Job Clear Cache ONLYOFFICE Docs | IfNotPresent |
clearCache.job.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner Clear Cache | false |
clearCache.job.resources.requests | Recursos solicitados para o contêiner do Job Clear Cache | {} |
clearCache.job.resources.limits | Limites de recursos para o contêiner do Job Clear Cache | {} |
clearCache.existingConfigmap.name | Nome 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.keyName | Nome 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 usado | clearCache.sh |
grafanaDashboard.job.annotations | Define anotações que serão adicionadas ao Job do Grafana Dashboard. Se definido, tem prioridade sobre as commonAnnotations | {} |
grafanaDashboard.job.podAnnotations | Mapa de anotações para adicionar ao Pod do Grafana Dashboard | {} |
grafanaDashboard.job.customPodAntiAffinity | Proibir 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.podAffinity | Define 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.nodeAffinity | Define regras de afinidade de nó para o agendamento do Pod do Job do Grafana Dashboard por nós | {} |
grafanaDashboard.job.nodeSelector | Rótulos de nó para atribuição do Pod do Job do Grafana Dashboard. Se definido, tem prioridade sobre o nodeSelector | {} |
grafanaDashboard.job.tolerations | Tolerâncias para atribuição do Pod do Job do Grafana Dashboard. Se definido, tem prioridade sobre as tolerations | [] |
grafanaDashboard.job.initContainers | Define contêineres que são executados antes do contêiner do Grafana Dashboard no Pod | [] |
grafanaDashboard.job.image.repository | Repositório de imagem do Job do Grafana Dashboard ONLYOFFICE Docs | onlyoffice/docs-utils |
grafanaDashboard.job.image.tag | Tag de imagem do Job do Grafana Dashboard ONLYOFFICE Docs | 9.0.4-1 |
grafanaDashboard.job.image.pullPolicy | Política de pull de imagem do Job do Grafana Dashboard ONLYOFFICE Docs | IfNotPresent |
grafanaDashboard.job.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner do Grafana Dashboard | false |
grafanaDashboard.job.resources.requests | Recursos solicitados para o contêiner do Job do Grafana Dashboard | {} |
grafanaDashboard.job.resources.limits | Limites de recursos para o contêiner do Job do Grafana Dashboard | {} |
wopiKeysGeneration.job.annotations | Define anotações que serão adicionadas ao Job de Geração de Chaves Wopi. Se definido, tem prioridade sobre as commonAnnotations | {} |
wopiKeysGeneration.job.podAnnotations | Mapa de anotações para adicionar ao Pod de Geração de Chaves Wopi | {} |
wopiKeysGeneration.job.customPodAntiAffinity | Proibir 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.podAffinity | Define 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.nodeAffinity | Define regras de afinidade de nó para o agendamento do Pod do Job de Geração de Chaves Wopi por nós | {} |
wopiKeysGeneration.job.nodeSelector | Ró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.tolerations | Tolerâncias para atribuição do Pod do Job de Geração de Chaves Wopi. Se definido, tem prioridade sobre as tolerations | [] |
wopiKeysGeneration.job.initContainers | Define contêineres que são executados antes do contêiner de Geração de Chaves Wopi no Pod | [] |
wopiKeysGeneration.job.image.repository | Repositório de imagem do Job de Geração de Chaves Wopi ONLYOFFICE Docs | onlyoffice/docs-utils |
wopiKeysGeneration.job.image.tag | Tag de imagem do Job de Geração de Chaves Wopi ONLYOFFICE Docs | 9.0.4-1 |
wopiKeysGeneration.job.image.pullPolicy | Política de pull de imagem do Job de Geração de Chaves Wopi ONLYOFFICE Docs | IfNotPresent |
wopiKeysGeneration.job.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner de Geração de Chaves Wopi | false |
wopiKeysGeneration.job.resources.requests | Recursos solicitados para o contêiner do Job de Geração de Chaves Wopi | {} |
wopiKeysGeneration.job.resources.limits | Limites 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 true | true |
wopiKeysDeletion.job.annotations | Define anotações que serão adicionadas ao Job de Exclusão de Chaves Wopi. Se definido, tem prioridade sobre as commonAnnotations | {} |
wopiKeysDeletion.job.podAnnotations | Mapa de anotações para adicionar ao Pod de Exclusão de Chaves Wopi | {} |
wopiKeysDeletion.job.customPodAntiAffinity | Proibir 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.podAffinity | Define 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.nodeAffinity | Define regras de afinidade de nó para o agendamento do Pod do Job de Exclusão de Chaves Wopi por nós | {} |
wopiKeysDeletion.job.nodeSelector | Ró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.tolerations | Tolerâncias para atribuição do Pod do Job de Exclusão de Chaves Wopi. Se definido, tem prioridade sobre as tolerations | [] |
wopiKeysDeletion.job.initContainers | Define contêineres que são executados antes do contêiner de Exclusão de Chaves Wopi no Pod | [] |
wopiKeysDeletion.job.image.repository | Repositório de imagem do Job de Exclusão de Chaves Wopi ONLYOFFICE Docs | onlyoffice/docs-utils |
wopiKeysDeletion.job.image.tag | Tag de imagem do Job de Exclusão de Chaves Wopi ONLYOFFICE Docs | 9.0.4-1 |
wopiKeysDeletion.job.image.pullPolicy | Política de pull de imagem do Job de Exclusão de Chaves Wopi ONLYOFFICE Docs | IfNotPresent |
wopiKeysDeletion.job.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner de Exclusão de Chaves Wopi | false |
wopiKeysDeletion.job.resources.requests | Recursos solicitados para o contêiner do Job de Exclusão de Chaves Wopi | {} |
wopiKeysDeletion.job.resources.limits | Limites de recursos para o contêiner do Job de Exclusão de Chaves Wopi | {} |
tests.enabled | Habilitar 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 test | true |
tests.annotations | Define anotações que serão adicionadas ao Pod de Teste. Se definido, tem prioridade sobre as commonAnnotations | {} |
tests.customPodAntiAffinity | Proibir o agendamento do Pod de Teste em relação a outros Pods contendo os rótulos especificados no mesmo nó | {} |
tests.podAffinity | Define regras de afinidade de Pod para o agendamento do Pod de Teste por nós em relação a outros Pods | {} |
tests.nodeAffinity | Define regras de afinidade de nó para o agendamento do Pod de Teste pelos nós | {} |
tests.nodeSelector | Rótulos de nó para atribuição do Pod de Teste. Se definido, tem prioridade sobre o nodeSelector | {} |
tests.tolerations | Tolerâncias para atribuição do Pod de Teste. Se definido, tem prioridade sobre as tolerations | [] |
tests.initContainers | Define contêineres que são executados antes do contêiner de Teste no Pod | [] |
tests.image.repository | Nome da imagem do contêiner de Teste | onlyoffice/docs-utils |
tests.image.tag | Tag da imagem do contêiner de Teste | 9.0.4-1 |
tests.image.pullPolicy | Política de pull da imagem do contêiner de Teste | IfNotPresent |
tests.containerSecurityContext.enabled | Habilitar contexto de segurança para o contêiner de Teste | false |
tests.resources.requests | Os recursos solicitados para o contêiner de teste | {} |
tests.resources.limits | Os 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
-
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.enabledcomo true:$ helm install documentserver onlyoffice/docs --set example.enabled=true -
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.enabledcomo true:$ helm install documentserver onlyoffice/docs --set metrics.enabled=trueSe você quiser usar o Grafana para visualizar métricas, defina
grafana.enabledcomotrue. Se quiser usar o Nginx Ingress para acessar o Grafana, definagrafana.ingress.enabledcomotrue:$ helm install documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.ingress.enabled=true -
Expor ONLYOFFICE Docs
-
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.typecomo LoadBalancer:$ helm install documentserver onlyoffice/docs --set service.type=LoadBalancer,service.port=80Execute 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/. -
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=2Para 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-nginxVeja mais detalhes sobre a instalação do Nginx Ingress via Helm aqui.
Em seguida, escolha seu método de exposição:
-
Via HTTPVocê deve pular isso se for expor ONLYOFFICE Docs via HTTPS.
$ helm install documentserver onlyoffice/docs --set ingress.enabled=trueObtenha 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
tlscom 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.comAssocie 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=falseEm seguida, instale ou atualize o ONLYOFFICE Docs configurando
ingress.enabled,ingress.ssl.enabled,ingress.letsencrypt.enabledcomotrue, e especificando seus valores paraingress.letsencrypt.emaileingress.host(ouingress.tenantspara múltiplos domínios). -
Via um caminho virtual
Defina os parâmetros
ingress.enabled,ingress.hosteingress.path:$ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.host=your-domain-name,ingress.path=/docsControladores de ingress suportados: Ingress NGINX por Kubernetes, NGINX Ingress por NGINX, HAProxy Ingress por HAProxy.
Para Ingress NGINX por Kubernetes, adicione o padrão
(/|$)(.*)aingress.path, por exemplo,/docs(/|$)(.*).
-
-
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=/docsPara terminação TLS, adicione manualmente certificados à rota através do console web do OpenShift.
-
Expor ONLYOFFICE Docs via Serviço (apenas HTTP)
6. Escalar ONLYOFFICE Docs
-
Escalonamento Horizontal de Pods
Você pode habilitar o escalonamento automático para que o número de réplicas das implantações
docserviceeconverterseja calculado automaticamente com base nos valores e tipo de métricas.Para métricas de recursos, a API
metrics.k8s.iodeve 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âmetrodocservice.autoscaling.enabled=true. Da mesma forma, para habilitar o HPA para a implantação doconverter, especifiqueconverter.autoscaling.enabled=true. Em ambos os casos, o parâmetroreplicascorrespondente é 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.
-
Escalonamento manual
As implantações
docserviceeconverterconsistem em 2 pods cada por padrão.Para escalar a implantação do
docservice:$ kubectl scale -n default deployment docservice --replicas=POD_COUNTPara 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]
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
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
8. Desligar ONLYOFFICE Docs
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
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.licem 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.
$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
10. Teste de instalação do ONLYOFFICE Docs
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>
11. Executar Jobs em um cluster k8s privado
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.
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
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
1. Implantar Grafana
-
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 -
Implantar Grafana com dashboards prontos
-
Instalar dashboards prontos do Grafana
Defina os parâmetros
grafana.enabledegrafana.dashboard.enabledcomotrue. Se o ONLYOFFICE Docs já estiver instalado, execute:helm upgrade documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.dashboard.enabled=trueIsso 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).
-
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.jsonOs 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.
-
Instalar dashboards prontos do Grafana
2. Acesso ao Grafana via Ingress
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.