The AtlasThirdPartyIntegration custom resource configures third
party integrations in an Atlas project. These resources allow you
to manage third-party integrations with various monitoring
services to collect and analyze the performance of your Atlas
deployment.
Important
Custom Resources No Longer Delete Objects by Default
Atlas Kubernetes Operator uses custom resource configuration files to manage your Atlas configuration, but as of Atlas Kubernetes Operator 2.0, custom resources you delete in Kubernetes are no longer (by default) deleted in Atlas. Instead, Atlas Kubernetes Operator simply stops managing those resources in Atlas. For example, if you delete an
AtlasProjectCustom Resource in Kubernetes, by default the Atlas Kubernetes Operator no longer automatically deletes the corresponding project from Atlas. This change in behavior is intended to help prevent accidental or unexpected deletions. To learn more, including how to revert this behavior to the default used prior to Atlas Kubernetes Operator 2.0, see New Default: Deletion Protection in Atlas Kubernetes Operator 2.0.Similarly, Atlas Kubernetes Operator does not delete teams from Atlas if you remove them from an Atlas project in Kubernetes with the Atlas Kubernetes Operator.
Explicitly define your desired configuration details in order to avoid implicitly using default Atlas configuration values. In some cases, inheriting Atlas defaults may result in a reconciliation loop which can prevent your custom resource from achieving a
READYstate. For example, explicitly defining your desired autoscaling behavior in yourAtlasDeploymentcustom resource, as shown in the included example, ensures that a static instance size in your custom resource is not being repeatedly applied to an Atlas deployment which has autoscaling enabled.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
Atlas Kubernetes Operator takes one of the following actions using the Atlas Third-Party Service Integration API Resource:
Creates a new third-party service integration.
Updates an existing third-party service integration.
Examples
Basic Example
The following example shows an AtlasThirdPartyIntegration custom
resource that defines a Datadog integration within the my-project
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
Independent CRD Example
The following example shows an AtlasThirdPartyIntegration
independent CRD that defines the same
Datadog integration defined in the Basic Example. This custom resource
definition allows you to create this third-party integration in a
project you don't manage in the same instance of Atlas Kubernetes Operator with which
you define this resource. To enable independent operation, you must
use an externalProjectRef instead of a projectRef, and you
must supply a connectionSecret directly since this resource can't
inherit API credentials from its parent project.
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
Parameters
AtlasThirdPartyIntegration
AtlasThirdPartyIntegration is the Schema for the atlas 3rd party integrations API.
Name | Type | Description | Required |
|---|---|---|---|
| string | atlas.mongodb.com/v1 | true |
| string |
| true |
| object | Refer to the Kubernetes | true |
| object |
| false |
| object |
| false |
AtlasThirdPartyIntegration.spec
AtlasThirdPartyIntegrationSpec contains the expected configuration for an integration
Name | Type | Description | Required |
|---|---|---|---|
| enum | Type of the integration.
Enum: | true |
| object | Name of the secret containing Atlas | false |
| object | Datadog contains the config fields for Datadog's Integration. | false |
| object |
| false |
| object |
| false |
| object |
| false |
| object |
| false |
| object |
| false |
| object |
| false |
| object | Prometheus contains the config fields for Prometheus's Integration. | false |
| object | Slack contains the config fields for Slack's Integration. | false |
| object |
| false |
| object | Webhook contains the config fields for Webhook's Integration. | false |
AtlasThirdPartyIntegration.spec.connectionSecret
Name of the secret containing Atlas API private and public keys.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.spec.datadog
Datadog contains the config fields for Datadog's Integration.
Name | Type | Description | Required |
|---|---|---|---|
| object | APIKeySecretRef holds the name of a secret containing the Datadog | true |
| string | Region is the Datadog region | true |
| enum |
| false |
| enum |
| false |
AtlasThirdPartyIntegration.spec.datadog.apiKeySecretRef
APIKeySecretRef holds the name of a secret containing the Datadog API key.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.spec.externalProjectRef
externalProjectRef holds the parent Atlas project ID. Mutually exclusive with the "projectRef" field.
Name | Type | Description | Required |
|---|---|---|---|
| string |
| true |
AtlasThirdPartyIntegration.spec.microsoftTeams
MicrosoftTeams contains the config fields for Microsoft Teams's Integration.
Name | Type | Description | Required |
|---|---|---|---|
| object | URLSecretRef holds the name of a secret containing the Microsoft Teams secret | true |
AtlasThirdPartyIntegration.spec.microsoftTeams.urlSecretRef
URLSecretRef holds the name of a secret containing the Microsoft Teams secret URL.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.spec.newRelic
NewRelic contains the config fields for New Relic's Integration.
Name | Type | Description | Required |
|---|---|---|---|
| object |
| true |
AtlasThirdPartyIntegration.spec.newRelic.credentialsSecretRef
CredentialsSecretRef holds the name of a secret containing new relic's credentials: account id, license key, read and write tokens.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.spec.opsGenie
OpsGenie contains the config fields for Ops Genie's Integration.
Name | Type | Description | Required |
|---|---|---|---|
| object | APIKeySecretRef holds the name of a secret containing Ops Genie's | true |
| string | Region is the Ops Genie region. | true |
AtlasThirdPartyIntegration.spec.opsGenie.apiKeySecretRef
APIKeySecretRef holds the name of a secret containing Ops Genie's API key.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.spec.pagerDuty
PagerDuty contains the config fields for PagerDuty's Integration.
Name | Type | Description | Required |
|---|---|---|---|
| string | Region is the Pager Duty region. | true |
| object |
| true |
AtlasThirdPartyIntegration.spec.pagerDuty.serviceKeySecretRef
ServiceKeySecretRef holds the name of a secret containing Pager Duty service key.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.spec.projectRef
projectRef is a reference to the parent AtlasProject resource. Mutually exclusive with the "externalProjectRef" field.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the Kubernetes Resource | true |
| string | Namespace of the Kubernetes Resource | false |
AtlasThirdPartyIntegration.spec.prometheus
Prometheus contains the config fields for Prometheus's Integration.
Name | Type | Description | Required |
|---|---|---|---|
| string | Enabled is true when Prometheus integration is enabled. | true |
| object |
| true |
| enum |
| true |
AtlasThirdPartyIntegration.spec.prometheus.prometheusCredentialsSecretRef
PrometheusCredentialsSecretRef holds the name of a secret containing the Prometheus. username & password
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.spec.slack
Slack contains the config fields for Slack's Integration.
Name | Type | Description | Required |
|---|---|---|---|
| object | APITokenSecretRef holds the name of a secret containing the Slack | true |
| string |
| true |
| string |
| true |
AtlasThirdPartyIntegration.spec.slack.apiTokenSecretRef
APITokenSecretRef holds the name of a secret containing the Slack API token.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.spec.victorOps
VictorOps contains the config fields for VictorOps's Integration.
Name | Type | Description | Required |
|---|---|---|---|
| object | APIKeySecretRef is the name of a secret containing Victor Ops | true |
| string |
| true |
AtlasThirdPartyIntegration.spec.victorOps.apiKeySecretRef
APIKeySecretRef is the name of a secret containing Victor Ops API key.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.spec.webhook
Webhook contains the config fields for Webhook's Integration.
Name | Type | Description | Required |
|---|---|---|---|
| object | URLSecretRef holds the name of a secret containing Webhook | true |
AtlasThirdPartyIntegration.spec.webhook.urlSecretRef
URLSecretRef holds the name of a secret containing Webhook URL and secret.
Name | Type | Description | Required |
|---|---|---|---|
| string | Name of the resource being referred to More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | true |
AtlasThirdPartyIntegration.status
AtlasThirdPartyIntegrationStatus holds the status of an integration
Name | Type | Description | Required |
|---|---|---|---|
| []object | Conditions holding the status details | false |
| string |
| false |
AtlasThirdPartyIntegration.status.conditions
Condition contains details for one aspect of the current state of this API Resource.
Name | Type | Description | Required |
|---|---|---|---|
| string |
| true |
| string | message is a human readable | true |
| string | reason contains a programmatic identifier indicating the | true |
| enum | status of the condition, one of True, False, Unknown. Enum: True, False, Unknown | true |
| string | type of condition in | true |
| integer |
| false |