El AtlasThirdPartyIntegration recurso personalizado configura integraciones de terceros en un proyecto de Atlas. Estos recursos permiten gestionar integraciones de terceros con diversos servicios de monitorización para recopilar y analizar el rendimiento de la implementación de Atlas.
Importante
Los recursos personalizados ya no eliminan objetos de forma predeterminada
El operador de Kubernetes de Atlas utiliza Archivosde configuración de recursos personalizados para administrar la configuración de Atlas. Sin embargo, a partir del Operador de 2.0 Kubernetes de Atlas, los recursos personalizados que elimine en Kubernetes ya no se eliminan (de forma predeterminada) en Atlas. En su lugar, el Operador de Kubernetes de Atlas simplemente deja de administrar esos recursos en Atlas. Por ejemplo, si elimina un
AtlasProjectRecurso Personalizado en Kubernetes, el Operador de Kubernetes de Atlas ya no elimina automáticamente el proyecto correspondiente de Atlas. Este cambio de comportamiento tiene como objetivo ayudar a prevenir eliminaciones accidentales o inesperadas. Para obtener más información, incluido cómo revertir este comportamiento al valor predeterminado utilizado antes del Operador de Kubernetes de Atlas.,2 0consulte Nuevo valor predeterminado: Protección contra eliminaciones en el Operador de Kubernetes 2 de0 Atlas..De manera similar, Atlas Kubernetes Operator no elimina equipos de Atlas si los elimina de un proyecto Atlas en Kubernetes con Atlas Kubernetes Operator.
Defina explícitamente los detalles de configuración deseados para evitar el uso implícito de los valores predeterminados de Atlas. En algunos casos, heredar los valores predeterminados de Atlas puede generar un bucle de conciliación que impide que su recurso personalizado alcance el estado
READY. Por ejemplo, definir explícitamente el comportamiento de escalado automático deseado en su recurso personalizadoAtlasDeployment, como se muestra en el ejemplo incluido, garantiza que un tamaño de instancia estático en su recurso personalizado no se aplique repetidamente a una implementación de Atlas con el escalado automático habilitado.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
Atlas Kubernetes Operator realiza una de las siguientes acciones utilizando el recurso Atlas API de integración de servicios de terceros:
Crea una nueva integración de servicio de terceros.
Actualiza una integración de servicio de terceros existente.
Ejemplos
Ejemplo básico
El siguiente ejemplo muestra un recurso personalizado AtlasThirdPartyIntegration que define una integración de Datadog dentro del proyecto 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
Ejemplo de CRD independiente
El siguiente ejemplo muestra un AtlasThirdPartyIntegration CRD independiente que define la misma integración de Datadog definida en el Ejemplo Básico. Esta definición de recurso personalizada permite crear esta integración de terceros en un proyecto que no se administra en la misma instancia de Atlas Kubernetes Operator con la que se define este recurso. Para habilitar la operación independiente, se debe usar un externalProjectRef en lugar de un projectRef y proporcionar un connectionSecret directamente, ya que este recurso no puede heredar las credenciales de API de su proyecto principal.
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 sección describe los AtlasThirdPartyIntegration parámetros de recursos personalizados disponibles.
metadata.nameTipo: string
Requerido
Nombre que utiliza
AtlasThirdPartyIntegrationel recurso personalizado para agregar esta integración de terceros a un proyecto.
metadata.namespaceTipo: string
Opcional
Espacio de nombres que desea que contenga el recurso personalizado
AtlasThirdPartyIntegration. Si no se especifica, Atlas Kubernetes Operator usa el espacio de nombres actual definido porkubectl.
spec.connectionSecretTipo: string
Condicional
Nombre del secreto opacoQue contiene el ID de la organización y las claves API que Atlas Kubernetes Operator utiliza para conectarse a Atlas. Si no se especifica, Atlas Kubernetes Operator recurre a:
El parámetro
spec.connectionSecretRef.namedel padreatlasProjectEl secreto predeterminado
global, sispec.connectionSecretRef.nameno está definido para el padreatlasProject
Este parámetro es obligatorio para los CRD independientes.
El operador Atlas Kubernetes solo observa secretos con la etiqueta
atlas.mongodb.com/type=credentialspara evitar observar secretos innecesarios.El siguiente ejemplo etiqueta un secreto:
kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.externalProjectRefTipo: string
Condicional
ID del proyecto al que pertenece la integración de terceros. Debe especificar el ID de proyecto de un proyecto Atlas existente. Este parámetro es obligatorio para las integraciones de terceros que pertenecen a proyectos gestionados por:
Una instancia diferente de Atlas Kubernetes Operator
Herramientas distintas a Atlas Kubernetes Operator
Para las implementaciones que pertenecen a proyectos administrados por la misma instancia de Atlas Kubernetes Operator, use
spec.projectRef.namesi no usaspec.externalProjectRef.id.Una integración de terceros solo puede pertenecer a un proyecto. Para definir la misma integración de terceros para varios proyectos, cree definiciones de recursos personalizadas para cada proyecto.
spec.projectRef.nameTipo: string
Condicional
Nombre del proyecto al que pertenece la integración de terceros. Debe especificar un recurso personalizado
AtlasProjectexistente. Este parámetro solo se aplica a las integraciones de terceros que pertenecen a proyectos gestionados por la misma instancia del operador de Kubernetes de Atlas.Para integraciones de terceros que pertenecen a proyectos administrados por:
una instancia diferente de Atlas Kubernetes Operator
herramientas distintas de Atlas Kubernetes Operator
utilice
spec.externalProjectRef.id.Una integración de terceros solo puede pertenecer a un proyecto. Para definir la misma integración de terceros para varios proyectos, cree definiciones de recursos personalizadas para cada proyecto.
spec.typeTipo: string
Requerido
Nombre del servicio de terceros para integrar con Atlas. Este valor debe ser uno de los siguientes:
DATADOGMICROSOFT_TEAMSNEW_RELICOPS_GENIEPAGER_DUTYPROMETHEUSSLACKVICTOR_OPSWEBHOOK
Cada integración
typerequiere un conjunto distinto de campos de configuración. Por ejemplo, si configuratypeenDATADOG, solo debe configurar el documentospec.datadogy sus subcampos.Para definir varias integraciones de terceros dentro del mismo proyecto, debe crear un CRD independiente para cada una. Solo puede definir una instancia de cada tipo de integración dentro de un proyecto determinado. Esto aplica tanto a este CRD como al parámetro
spec.integrationsde su CRDAtlasProject.
spec.datadogTipo: documento
Condicional
Documento que declara los parámetros de configuración para una integración de servicios de terceros de Datadog.
Debe declarar este parámetro si establece un valor
spec.typedeDATADOG.
spec.datadog.apiKeySecretRef.nameTipo: string
Condicional
Secreto que contiene su clave API de Datadog.
Debe declarar este parámetro si establece un valor
spec.typedeDATADOG.
spec.datadog.regionTipo: string
Condicional
Región geográfica en la que está alojado su servicio Datadog.
Debe declarar este parámetro si establece un valor
spec.typedeDATADOG.
spec.datadog.sendCollectionLatencyMetricsTipo: string
Condicional
Opción que controla si se envían o no las métricas de latencia de recopilación a Datadog. Debe ser
enabledodisabled.Debe declarar este parámetro si establece un valor
spec.typedeDATADOG.
spec.datadog.sendDatabaseMetricsTipo: string
Condicional
Opción que controla si se envían o no las métricas de la base de datos a Datadog. Debe ser
enabledodisabled.Debe declarar este parámetro si establece un valor
spec.typedeDATADOG.
spec.microsoftTeams.urlSecretRef.nameTipo: string
Condicional
Secreto que contiene la URL secreta de Microsoft Teams. Debe contener un valor
webhookURL.Debe declarar este parámetro si establece un valor
spec.typedeMICROSOFT_TEAMS.
spec.newRelic.credentialsSecretRef.nameTipo: string
Condicional
Secreto que contiene tus credenciales de New Relic. Debe incluir lo siguiente:
ID de cuenta de New Relic
Clave de licencia de New Relic
Tokens de lectura y guardado de New Relic
Debe declarar este parámetro si establece un valor
spec.typedeNEW_RELIC.
spec.opsGenieTipo: documento
Condicional
Documento que declara los parámetros de configuración para una integración de servicios de terceros de Ops Genie.
Debe declarar este parámetro si establece un valor
spec.typedeOPS_GENIE.
spec.opsGenie.apiKeySecretRef.nameTipo: string
Condicional
Secreto que contiene su clave API de Ops Genie.
Debe declarar este parámetro si establece un valor
spec.typedeOPS_GENIE.
spec.opsGenie.regionTipo: string
Condicional
Región geográfica en la que está alojado su servicio Ops Genie.
Debe declarar este parámetro si establece un valor
spec.typedeOPS_GENIE.
spec.pagerDutyTipo: documento
Condicional
Documento que declara los parámetros de configuración para una integración de servicios de terceros de Pager Duty.
Debe declarar este parámetro si establece un valor
spec.typedePAGER_DUTY.
spec.pagerDuty.serviceKeySecretRef.nameTipo: string
Condicional
Secreto que contiene su clave de servicio Pager Duty.
spec.pagerDuty.regionTipo: string
Condicional
Región geográfica en la que está alojado su servicio Ops Genie.
Debe declarar este parámetro si establece un valor
spec.typedeOPS_GENIE.
spec.prometheusTipo: documento
Condicional
Documento que declara los parámetros de configuración para una integración de servicios de terceros de Prometheus.
Debe declarar este parámetro si establece un valor
spec.typedePROMETHEUS.
spec.prometheus.enabledTipo: string
Condicional
Conmutador que habilita la recopilación de datos de Prometheus. Debe ser
enabledodisabled.Debe declarar este parámetro si establece un valor
spec.typedePROMETHEUS.
spec.prometheus.serviceDiscoveryTipo: string
Condicional
Opción que determina cómo Prometheus detecta los servicios. Debe estar configurada en
httpofile.Debe declarar este parámetro si establece un valor
spec.typedePROMETHEUS.
spec.prometheus.prometheusCredentialsSecretRef.nameTipo: string
Condicional
Secreto que contiene su nombre de usuario y contraseña de Prometheus.
Debe declarar este parámetro si establece un valor
spec.typedePROMETHEUS.
spec.slackTipo: documento
Condicional
Documento que declara parámetros de configuración para la integración de un servicio de terceros de Slack.
Debe declarar este parámetro si establece un valor
spec.typedeSLACK.
spec.slack.apiTokenSecretRef.nameTipo: string
Condicional
Secret que contiene el token de API de Slack.
Debe declarar este parámetro si establece un valor
spec.typedeSLACK.
spec.slack.channelNameTipo: string
Condicional
Nombre del canal de Slack para integrar con Atlas.
Debe declarar este parámetro si establece un valor
spec.typedeSLACK.
spec.slack.teamNameTipo: string
Condicional
Nombre del equipo de Slack al que pertenece
spec.slack.channelName.Debe declarar este parámetro si establece un valor
spec.typedeSLACK.
spec.victorOpsTipo: documento
Condicional
Documento que declara los parámetros de configuración para una integración de servicios de terceros de Victor Ops.
Debe declarar este parámetro si establece un valor
spec.typedeVICTOR_OPS.
spec.victorOps.apiKeySecretRef.nameTipo: string
Condicional
Secreto que contiene la clave API de Victor Ops.
Debe declarar este parámetro si establece un valor
spec.typedeVICTOR_OPS.