El recurso personalizado AtlasThirdPartyIntegration configura integraciones de terceros en un proyecto Atlas. Estos recursos te permiten gestionar integraciones de terceros con varios servicios de supervisión para recopilar y analizar el rendimiento de tu implementación de Atlas.
Importante
Recursos personalizados ya no borran objetos por defecto
Atlas Kubernetes Operator uses custom resource archivos de configuración to manage your Atlas configuration, but as of Atlas Kubernetes Operator 2.0, custom resources you borrar in Kubernetes are no longer (por defecto) borrados in Atlas. En su lugar, Atlas Kubernetes Operator simplemente deja de gestionar esos recursos en Atlas. Por ejemplo, si eliminas un
AtlasProjectCustom recurso en Kubernetes, de forma predeterminada, el Atlas Kubernetes Operator ya no elimina automáticamente el Proyecto correspondiente de Atlas. Este cambio de comportamiento está diseñado para ayudar a prevenir eliminaciones accidentales o inesperadas. Para saber más, incluido cómo revertir este comportamiento al por defecto utilizado antes de Atlas Kubernetes Operator 2.0, consulta Nuevo valor por defecto: Protección de Eliminación en Atlas Kubernetes Operator 2.0.Del mismo modo, Atlas Kubernetes Operator no elimina los equipos de Atlas si los eliminas de un proyecto Atlas en Kubernetes utilizando Atlas Kubernetes Operator.
Define explÃcitamente los detalles de configuración que deseas para evitar el uso implÃcito de los valores de configuración por defecto de Atlas. En algunos casos, heredar los valores por defecto de Atlas puede crear un ciclo de conciliación que impida que el recurso personalizado alcance un estado de
READY. Por ejemplo, definir explÃcitamente el comportamiento de escalado automático deseado en el recurso personalizadoAtlasDeployment, como se muestra en el ejemplo incluido, garantiza que un tamaño de instancia estático en el recurso personalizado no se aplique repetidamente a una implementación de Atlas que tiene 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 existente con un servicio de terceros.
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 independiente de CRD
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 personalizado le permite crear esta integración de terceros en un Proyecto que no gestiona en la misma instancia de Atlas Kubernetes Operator con la que define este recurso. Para habilitar la operación independiente, debe usar un externalProjectRef en lugar de un projectRef, y debe 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 parámetros de recursos personalizados AtlasThirdPartyIntegration disponibles.
metadata.nameTipo: string
Requerido
Nombre que el
AtlasThirdPartyIntegrationRecurso personalizado utiliza para añadir esta integración de terceros a un proyecto.
metadata.namespaceTipo: string
Opcional
Namespace en el que se desea contener el recurso personalizado
AtlasThirdPartyIntegration. Si no se especifica, Atlas Kubernetes Operator utiliza el espacio de nombres actual establecido porkubectl.
spec.connectionSecretTipo: string
Condicional
Nombre del secreto opaco que contiene el Identificador de la Organización y claves de API que Atlas Kubernetes Operator utiliza para conectarse a Atlas. Si no se especifica, el Atlas Kubernetes Operator volverá a lo siguiente:
El parámetro
spec.connectionSecretRef.namede la matriz principalatlasProjectEl secreto
globalpor defecto, sispec.connectionSecretRef.nameno está definido para elatlasProjectprincipal
Este parámetro es obligatorio para CRD independientes.
El Atlas Kubernetes Operator supervisa los secretos solo con la etiqueta
atlas.mongodb.com/type=credentialspara evitar la supervisión de 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. Debes especificar el ID del grupo de un Proyecto de Atlas existente. Este parámetro es necesario para integraciones de terceros que pertenezcan a proyectos gestionados por:
Una instancia diferente de Atlas Kubernetes Operator
Herramientas distintas del Atlas Kubernetes Operator
Para implementaciones que pertenecen a proyectos gestionados por la misma instancia de Atlas Kubernetes Operator, use
spec.projectRef.namesi no se utilizaspec.externalProjectRef.id.Una integración de terceros solo puede pertenecer a un proyecto. Para definir la misma integración de terceros para varios proyectos, crea definiciones de recursos personalizadas para cada proyecto.
spec.projectRef.nameTipo: string
Condicional
Nombre del proyecto al que pertenece la integración de terceros. Debes especificar un
AtlasProjectrecurso personalizado existente. Este parámetro se aplica únicamente a integraciones de terceros que pertenecen a proyectos gestionados por la misma instancia del Atlas Kubernetes Operator.Para integraciones de terceros que pertenezcan a proyectos gestionados por:
una instancia diferente de Atlas Kubernetes Operator
Herramientas distintas del Atlas Kubernetes Operator
usar
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, crea 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 configurastypeenDATADOG, debes configurar solo el documentospec.datadogy sus subcampos.Para definir varias integraciones de terceros dentro del mismo proyecto, se debe crear un CRD separado para cada una. Puedes definir sólo una instancia de cada tipo de integración dentro de un determinado proyecto. Esto se 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 servicio de terceros de Datadog.
Debe declarar este parámetro si establece un valor de
spec.typedeDATADOG.
spec.datadog.apiKeySecretRef.nameTipo: string
Condicional
Secreto que contiene tu clave API de Datadog.
Debe declarar este parámetro si establece un valor de
spec.typedeDATADOG.
spec.datadog.regionTipo: string
Condicional
Región geográfica en la que se aloja tu servicio de Datadog.
Debe declarar este parámetro si establece un valor de
spec.typedeDATADOG.
spec.datadog.sendCollectionLatencyMetricsTipo: string
Condicional
Conmutador que controla si se deben enviar o no las métricas de latencia de la colección a Datadog. Debe ser
enabledodisabled.Debe declarar este parámetro si establece un valor de
spec.typedeDATADOG.
spec.datadog.sendDatabaseMetricsTipo: string
Condicional
Alternar que controla si se envÃan o no métricas de bases de datos a Datadog. Debe ser
enabledodisabled.Debe declarar este parámetro si establece un valor de
spec.typedeDATADOG.
spec.microsoftTeams.urlSecretRef.nameTipo: string
Condicional
Secreto que contiene tu URL secreta de Microsoft Teams. Debe contener un valor
webhookURL.Debe declarar este parámetro si establece un valor de
spec.typedeMICROSOFT_TEAMS.
spec.newRelic.credentialsSecretRef.nameTipo: string
Condicional
Secreto que contiene tus credenciales de New Relic. Esto 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 de
spec.typedeNEW_RELIC.
spec.opsGenieTipo: documento
Condicional
Documento declarativo de los parámetros de configuración para la integración de un servicio de terceros de Ops Genie.
Debe declarar este parámetro si establece un valor de
spec.typedeOPS_GENIE.
spec.opsGenie.apiKeySecretRef.nameTipo: string
Condicional
Secreto que contiene tu clave API de Ops Genie.
Debe declarar este parámetro si establece un valor de
spec.typedeOPS_GENIE.
spec.opsGenie.regionTipo: string
Condicional
Región geográfica en la que se aloja tu servicio Ops Genie.
Debe declarar este parámetro si establece un valor de
spec.typedeOPS_GENIE.
spec.pagerDutyTipo: documento
Condicional
Documento que declara los parámetros de configuración para una integración de servicio de terceros de Pager Duty.
Debe declarar este parámetro si establece un valor de
spec.typedePAGER_DUTY.
spec.pagerDuty.serviceKeySecretRef.nameTipo: string
Condicional
Secreto que contiene la clave de servicio de Pager Duty.
spec.pagerDuty.regionTipo: string
Condicional
Región geográfica en la que se aloja tu servicio Ops Genie.
Debe declarar este parámetro si establece un valor de
spec.typedeOPS_GENIE.
spec.prometheusTipo: documento
Condicional
Documento que declara los parámetros de configuración para una integración de servicio de terceros de Prometheus.
Debe declarar este parámetro si establece un valor de
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 de
spec.typedePROMETHEUS.
spec.prometheus.serviceDiscoveryTipo: string
Condicional
Conmutador que determina cómo Prometheus descubre servicios. Debe configurarse en
httpofile.Debe declarar este parámetro si establece un valor de
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 de
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 de
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 de
spec.typedeSLACK.
spec.slack.channelNameTipo: string
Condicional
Nombre del canal de Slack para integrarse con Atlas.
Debe declarar este parámetro si establece un valor de
spec.typedeSLACK.
spec.slack.teamNameTipo: string
Condicional
Nombre del equipo de Slack al que el
spec.slack.channelNamepertenece.Debe declarar este parámetro si establece un valor de
spec.typedeSLACK.
spec.victorOpsTipo: documento
Condicional
Documento que declara los parámetros de configuración para una integración con un servicio de terceros de Victor Ops.
Debe declarar este parámetro si establece un valor de
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 de
spec.typedeVICTOR_OPS.