O recurso personalizado do AtlasThirdPartyIntegration configura integrações de terceiros em um projeto Atlas . Estes recursos permitem a você gerenciar integrações de terceiros com vários serviços de monitoramento para coletar e analisar o desempenho do seu sistema do Atlas.
Importante
Os Recursos Personalizados Não Excluem Mais Objetos por Padrão
O Atlas Kubernetes Operator usa arquivos de configuração de recurso personalizado para gerenciar sua configuração do Atlas , mas a partir do Atlas Kubernetes Operator,2.0 os recursos personalizados que você exclui no Kubernetes não são mais (por padrão) excluídos no Atlas. Em vez disso, o Atlas Kubernetes Operator simplesmente para de gerenciar estes recursos no Atlas. Por exemplo, se você excluir um
AtlasProjectRecurso Personalizado em Kubernetes, por padrão, o Atlas Kubernetes Operator não excluirá mais automaticamente o projeto correspondente do Atlas. Essa mudança no comportamento destina-se a ajudar a evitar exclusões acidentais ou inesperadas. Para saber mais, incluindo como reverter este comportamento para o padrão utilizado antes do Atlas Kubernetes 2 0Operator., consulte Novo padrão: proteção de exclusão no Atlas Kubernetes 2 0Operator..Da mesma forma, o Atlas Kubernetes Operator não exclui equipes do Atlas se você as remover de um projeto do Atlas no Kubernetes com o Atlas Kubernetes Operator.
Defina explicitamente os detalhes de configuração desejados para evitar o uso implícito de valores de configuração padrão do Atlas . Em alguns casos, herdar os padrões do Atlas pode resultar em um loop de reconciliação que pode impedir que seu recurso personalizado atinja um estado
READY. Por exemplo, definir explicitamente o comportamento de autoscaling desejado em seu recurso personalizadoAtlasDeployment, conforme mostrado no exemplo incluído, garante que um tamanho de instância estática em seu recurso personalizado não esteja sendo aplicado repetidamente a um sistema do Atlas que tenha o autoscaling ativado.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
O Atlas Kubernetes Operator realiza uma das seguintes ações usando o recurso da API de integração de serviços de terceiros do Atlas:
Cria uma nova integração de serviços de terceiros.
Atualiza uma integração de serviços de terceiros existente.
Exemplos
Exemplo básico
O exemplo seguinte mostra um recurso personalizado do AtlasThirdPartyIntegration que define uma integração DataDog dentro do projeto my-project.
apiVersion: atlas.mongodb.com/v1 kind: AtlasThirdPartyIntegration metadata: name: my-atlas-integ spec: projectRef: name: my-project namespace: my-operator-namespace type: DATADOG datadog: apiKeySecretRef: name: datadog-secret region: US sendCollectionLatencyMetrics: enabled sendDatabaseMetrics: enabled
Exemplo de CRD independente
O exemplo a seguir mostra um AtlasThirdPartyIntegration CRD independente que define a mesma integração DataDog definida no Exemplo Básico. Essa definição de recurso personalizado permite criar essa integração de terceiros em um projeto que você não gerencia na mesma instância do Atlas Kubernetes Operator com a qual você define esse recurso. Para habilitar a operação independente, você deve usar um externalProjectRef em vez de um projectRef e deve fornecer um connectionSecret diretamente, pois esse recurso não pode herdar credenciais de API de seu projeto pai.
apiVersion: atlas.mongodb.com/v1 kind: AtlasThirdPartyIntegration metadata: name: my-atlas-integ spec: externalProjectRef: projectID: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret type: DATADOG datadog: apiKeySecretRef: name: datadog-secret region: US sendCollectionLatencyMetrics: enabled sendDatabaseMetrics: enabled
Parâmetros
Esta seção descreve os parâmetros de recurso personalizado AtlasThirdPartyIntegration disponíveis.
metadata.nameTipo: string
Obrigatório
Nome que o
AtlasThirdPartyIntegrationRecurso Personalizado usa para adicionar essa integração de terceiros a um projeto.
metadata.namespaceTipo: string
Opcional
Namespace que você deseja que contenha o recurso personalizado do
AtlasThirdPartyIntegration. Se não for especificado, o Atlas Kubernetes Operator utilizará o namespace atual definido porkubectl.
spec.connectionSecretTipo: string
Condicional
Nome do segredo opaco segredo que contém o ID da organização e chaves de API que o Atlas Kubernetes Operator usa para se conectar ao Atlas. Se não for especificado, o Atlas Kubernetes Operator voltará para:
O parâmetro
spec.connectionSecretRef.namedoatlasProjectpaiO segredo
globalpadrão, sespec.connectionSecretRef.nameestiver indefinido para oatlasProjectpai
Este parâmetro é obrigatório para CRDs independentes.
O Atlas Kubernetes
atlas.mongodb.com/type=credentialsOperator observa segredos apenas com a etiqueta para evitar a exibição de segredos desnecessários.O exemplo a seguir rotula um segredo:
kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.externalProjectRefTipo: string
Condicional
ID do projeto ao qual pertence a integração de terceiros. Você deve especificar o ID do projeto de um Atlas Project existente. Esse parâmetro é necessário para integrações de terceiros que pertencem a projetos gerenciados por:
Uma instância diferente do Atlas Kubernetes Operator
Ferramentas diferentes do Atlas Kubernetes Operator
Para implantações que pertencem a projetos gerenciados pela mesma instância do Atlas Kubernetes Operator, utilize
spec.projectRef.namese você não utilizarspec.externalProjectRef.id.Uma integração de terceiros só pode pertencer a um projeto. Para definir a mesma integração de terceiros para vários projetos, crie definições de recursos personalizadas para cada projeto.
spec.projectRef.nameTipo: string
Condicional
Nome do projeto ao qual pertence a integração de terceiros. Você deve especificar um
AtlasProjectRecurso Personalizado existente. Este parâmetro se aplica somente a integrações de terceiros que pertencem a projetos gerenciados pela mesma instância do Atlas Kubernetes Operator.Para integrações de terceiros que pertencem a projetos gerenciados por:
uma instância diferente do Atlas Kubernetes Operator
ferramentas diferentes do Atlas Kubernetes Operator
usar
spec.externalProjectRef.id.Uma integração de terceiros só pode pertencer a um projeto. Para definir a mesma integração de terceiros para vários projetos, crie definições de recursos personalizadas para cada projeto.
spec.typeTipo: string
Obrigatório
Nome do serviço de terceiros para integração com o Atlas. Esse valor deve ser um dos seguintes:
DATADOGMICROSOFT_TEAMSNEW_RELICOPS_GENIEPAGER_DUTYPROMETHEUSSLACKVICTOR_OPSWEBHOOK
Cada integração
typerequer um conjunto distinto de campos de configuração. Por exemplo, se você definirtypecomoDATADOG, deverá configurar somente o documentospec.datadoge seus subcampos.Para definir várias integrações de terceiros no mesmo projeto, você deve criar um CRD separado para cada uma. Você pode definir apenas uma instância de cada tipo de integração em determinado projeto. Isso se aplica tanto a este CRD quanto ao parâmetro
spec.integrationsdo seu CRDAtlasProject.
spec.datadogTipo: document
Condicional
Documento que declara parâmetros de configuração para uma integração de serviços de terceiros do DataDog.
Você deve declarar este parâmetro se você definir um valor
spec.typedeDATADOG.
spec.datadog.apiKeySecretRef.nameTipo: string
Condicional
Segredo contendo sua chave de API DataDog.
Você deve declarar este parâmetro se você definir um valor
spec.typedeDATADOG.
spec.datadog.regionTipo: string
Condicional
Região geográfica na qual seu serviço DataDog está hospedado.
Você deve declarar este parâmetro se você definir um valor
spec.typedeDATADOG.
spec.datadog.sendCollectionLatencyMetricsTipo: string
Condicional
Alterne que controla se deve ou não enviar métricas de latência de collection para o DataDog. Deve ser
enabledoudisabled.Você deve declarar este parâmetro se você definir um valor
spec.typedeDATADOG.
spec.datadog.sendDatabaseMetricsTipo: string
Condicional
Alterne que controla se deve ou não enviar métricas de banco de dados para o DataDog. Deve ser
enabledoudisabled.Você deve declarar este parâmetro se você definir um valor
spec.typedeDATADOG.
spec.microsoftTeams.urlSecretRef.nameTipo: string
Condicional
Arquivo secreto contendo a URL secreta do Microsoft Teams. Deve conter um valor
webhookURL.Você deve declarar este parâmetro se você definir um valor
spec.typedeMICROSOFT_TEAMS.
spec.newRelic.credentialsSecretRef.nameTipo: string
Condicional
Segredo contendo suas credenciais do New Relic. Isso deve incluir o seguinte:
ID da conta New Relic
Chave de licença do New Relic
Tokens de leitura e gravação do New Relic
Você deve declarar este parâmetro se você definir um valor
spec.typedeNEW_RELIC.
spec.opsGenieTipo: document
Condicional
Documento que declara parâmetros de configuração para uma integração de serviços de terceiros do Ops Genie.
Você deve declarar este parâmetro se você definir um valor
spec.typedeOPS_GENIE.
spec.opsGenie.apiKeySecretRef.nameTipo: string
Condicional
Segredo contendo sua chave API Ops Genie.
Você deve declarar este parâmetro se você definir um valor
spec.typedeOPS_GENIE.
spec.opsGenie.regionTipo: string
Condicional
Região geográfica em que seu serviço Ops Genie está hospedado.
Você deve declarar este parâmetro se você definir um valor
spec.typedeOPS_GENIE.
spec.pagerDutyTipo: document
Condicional
Documento que declara parâmetros de configuração para uma integração de serviços de terceiros do Pager Duty.
Você deve declarar este parâmetro se você definir um valor
spec.typedePAGER_DUTY.
spec.pagerDuty.serviceKeySecretRef.nameTipo: string
Condicional
Segredo contendo sua chave de serviço do Pager Duty.
spec.pagerDuty.regionTipo: string
Condicional
Região geográfica em que seu serviço Ops Genie está hospedado.
Você deve declarar este parâmetro se você definir um valor
spec.typedeOPS_GENIE.
spec.prometheusTipo: document
Condicional
Documento que declara os parâmetros de configuração para uma integração de serviços de terceiros do Prometheus.
Você deve declarar este parâmetro se você definir um valor
spec.typedePROMETHEUS.
spec.prometheus.enabledTipo: string
Condicional
Alternar que habilita a coleta de dados de Prometeus. Deve ser
enabledoudisabled.Você deve declarar este parâmetro se você definir um valor
spec.typedePROMETHEUS.
spec.prometheus.serviceDiscoveryTipo: string
Condicional
Alternar que determina como Prometheus descobre serviços. Deve ser definido como
httpoufile.Você deve declarar este parâmetro se você definir um valor
spec.typedePROMETHEUS.
spec.prometheus.prometheusCredentialsSecretRef.nameTipo: string
Condicional
Segredo contendo seu nome de usuário e senha do Prometheus.
Você deve declarar este parâmetro se você definir um valor
spec.typedePROMETHEUS.
spec.slackTipo: document
Condicional
Documento que declara parâmetros de configuração para uma integração de serviços de terceiros do Slack.
Você deve declarar este parâmetro se você definir um valor
spec.typedeSLACK.
spec.slack.apiTokenSecretRef.nameTipo: string
Condicional
Segredo contendo seu token API do Slack.
Você deve declarar este parâmetro se você definir um valor
spec.typedeSLACK.
spec.slack.channelNameTipo: string
Condicional
Nome do canal do Slack para integração com o Atlas.
Você deve declarar este parâmetro se você definir um valor
spec.typedeSLACK.
spec.slack.teamNameTipo: string
Condicional
Nome da equipe do Slack à qual o
spec.slack.channelNamepertence.Você deve declarar este parâmetro se você definir um valor
spec.typedeSLACK.
spec.victorOpsTipo: document
Condicional
Documento que declara parâmetros de configuração para uma integração de serviços de terceiros da Victor Ops.
Você deve declarar este parâmetro se você definir um valor
spec.typedeVICTOR_OPS.
spec.victorOps.apiKeySecretRef.nameTipo: string
Condicional
Segredo contendo a chave API do Victor Ops.
Você deve declarar este parâmetro se você definir um valor
spec.typedeVICTOR_OPS.