Important
Legacy subresources are deprecated as of the release of their corresponding CRDs. If your configuration currently relies on the subresource form of this resource definition, migrate to a CRD.
The AtlasPrivateEndpoint custom resource configures a
private endpoint for a Atlas
project. This allows you to connect your cloud provider to Atlas
without sending information through a public network. Private
endpoints are unidirectional connections to Atlas from your
virtual network.
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 Private Endpoint Service API Resource:
Creates a new private endpoint service.
Updates an existing private endpoint service.
To learn more about implementing private endpoints in Atlas Kubernetes Operator, see Manage Private Endpoints.
Examples
Basic Example
The following example shows an AtlasPrivateEndpoint custom resoure
that defines an AWS private endpoint within the my-project project.
apiVersion: atlas.mongodb.com/v1 kind: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: projectRef: name: my-project namespace: my-operator-namespace provider: AWS region: US_EAST_1 awsConfiguration: - id: vpcpe-xyz
Independent CRD Example
The following example shows an AtlasPrivateEndpoint
independent CRD that defines the same
private endpoint defined in the Basic Example. This custom resource definition
allows you to create this private endpoint 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: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: externalProjectRef: projectID: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret provider: AWS region: US_EAST_1 awsConfiguration: - id: vpcpe-xyz
Parameters
AtlasPrivateEndpoint
The AtlasPrivateEndpoint custom resource definition (CRD) defines a desired Private Endpoint configuration for an Atlas project. It allows a private connection between your cloud provider and Atlas that doesn't send information through a public network.
You can use private endpoints to create a unidirectional connection to Atlas clusters from your virtual network.
Name | Type | Description | Required |
|---|---|---|---|
| string | atlas.mongodb.com/v1 | true |
| string |
| true |
| object | Refer to the Kubernetes | true |
| object |
| false |
| object |
| false |
AtlasPrivateEndpoint.spec
AtlasPrivateEndpointSpec is the specification of the desired configuration of a project private endpoint
Name | Type | Description | Required |
|---|---|---|---|
| enum | Name of the cloud service | true |
| string | Region of the chosen cloud provider in which you want to create the private endpoint service. | true |
| []object | AWSConfiguration is the specific | false |
| []object |
| false |
| object | Name of the secret containing Atlas | false |
| object |
| false |
| []object | GCPConfiguration is the specific Google Cloud settings for the private endpoint. | false |
| object |
| false |
AtlasPrivateEndpoint.spec.awsConfiguration
AWSPrivateEndpointConfiguration holds the AWS configuration done on customer network.
Name | Type | Description | Required |
|---|---|---|---|
| string |
| true |
AtlasPrivateEndpoint.spec.azureConfiguration
AzurePrivateEndpointConfiguration holds the Azure configuration done on customer network.
Name | Type | Description | Required |
|---|---|---|---|
| string |
| true |
| string |
| true |
AtlasPrivateEndpoint.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 |
AtlasPrivateEndpoint.spec.externalProjectRef
externalProjectRef holds the parent Atlas project ID. Mutually exclusive with the "projectRef" field.
Name | Type | Description | Required |
|---|---|---|---|
| string |
| true |
AtlasPrivateEndpoint.spec.gcpConfiguration
GCPPrivateEndpointConfiguration holds the GCP configuration done on customer network.
Name | Type | Description | Required |
|---|---|---|---|
| []object | Endpoints is the list of individual private | true |
| string |
| true |
| string |
| true |
AtlasPrivateEndpoint.spec.gcpConfiguration.endpoints
GCPPrivateEndpoint holds the GCP forwarding rules configured on customer network.
Name | Type | Description | Required |
|---|---|---|---|
| string |
| true |
| string | Name that identifies the Google Cloud consumer forwarding rule that you created. | true |
AtlasPrivateEndpoint.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 |
AtlasPrivateEndpoint.status
AtlasPrivateEndpointStatus is the most recent observed status of the AtlasPrivateEndpoint cluster. Read-only.
Name | Type | Description | Required |
|---|---|---|---|
| []object | Conditions is the list of statuses showing the current state of the Atlas Custom Resource | true |
| []object | Endpoints are the status of the | false |
| string | Error is the description of the failure occurred when configuring the private endpoint | false |
| integer |
| false |
| string |
| false |
| []string |
| false |
| string |
| false |
| string |
| false |
| string |
| false |
AtlasPrivateEndpoint.status.conditions
Condition describes the state of an Atlas Custom Resource at a certain point.
Name | Type | Description | Required |
|---|---|---|---|
| string | Status of the condition; one of True, False, Unknown. | true |
| string | Type of Atlas Custom Resource condition. | true |
| string | Last time the condition transitioned from one status to another.
Represented in | false |
| string | A | false |
| string | The | false |
AtlasPrivateEndpoint.status.endpoints
EndpointInterfaceStatus is the most recent observed status the interfaces attached to the configured service. Read-only.
Name | Type | Description | Required |
|---|---|---|---|
| string |
| false |
| string |
| false |
| string |
| false |
| string | Error is the description of the failure occurred when configuring the private endpoint | false |
| []object | GCPForwardingRules is the status of the customer | false |
AtlasPrivateEndpoint.status.endpoints.gcpForwardingRules
GCPForwardingRule is the most recent observed status the GCP forwarding rules configured for an interface. Read-only.
Name | Type | Description | Required |
|---|---|---|---|
| string | Human-readable label that identifies the Google Cloud consumer forwarding rule that you created. | false |
| string | State of the | false |