AtlasPrivateEndpoint
Recurso personalizado
O AtlasPrivateEndpoint
recurso personalizado do configura um endpoint privado do para um projeto do Atlas . Isso permite que você conecte seu provedor de nuvem ao Atlas sem enviar informações por meio de uma rede pública. Endpoints privados são conexões unidirecionais com o Atlas a partir da sua rede virtual.
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
AtlasProject
Recurso 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 Operator 2.0, consulte Novo Padrão: Proteção de Exclusão no Atlas Kubernetes 2 Operator.0.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 do Atlas Private Endpoint Service:
Cria um novo serviço de endpoint privado.
Atualiza um serviço de endpoint privado existente.
Para saber mais sobre como implementar endpoints privados no Atlas Kubernetes Operator, consulte Gerenciar endpoints privados.
Exemplos
Exemplo básico
O exemplo a seguir mostra um AtlasPrivateEndpoint
recurso personalizado que define um endpoint privado daAWS dentro do my-project
projeto.
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
Exemplo de CRD independente
O exemplo a seguir mostra um AtlasPrivateEndpoint
CRD independente que define o mesmo endpoint privado definido no exemplo básico. Esta definição de recurso personalizada permite a você criar este endpoint privado em um projeto que você não gerencia na mesma instância do Atlas Kubernetes Operator com a qual você define este 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: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: atlasRef: projectID: 66e2f2b621571b7e69a89b66 credentials: name: atlas-connection-secret provider: AWS region: us-east-1 awsConfiguration: - id: vpcpe-xyz
Parâmetros
Esta seção descreve os parâmetros de recurso personalizado AtlasPrivateEndpoint
disponíveis.
metadata.name
Tipo: string
Obrigatório
Nome que o
AtlasProject
Recurso Personalizado utiliza para adicionar este endpoint privado a um projeto.
metadata.namespace
Tipo: string
Opcional
Namespace diferente do
default
que você deseja que contenha oatlasPrivateEndpoint
recurso personalizado do. Se você definir um namespace personalizado, deverá adicioná-lo aoAtlasProject
Recurso Personalizado nospec.privateEndpoint.privateEndpointRef.namespace
campo.
spec.awsConfiguration.id
Tipo: string
Condicional
ID da interface de rede do endpoint privado. Este parâmetro é obrigatório e limitado a endpoints privados da AWS.
spec.azureConfiguration.id
Tipo: string
Condicional
ID da interface de rede do endpoint privado. Este parâmetro é obrigatório e limitado a endpoints privados do Azure.
spec.azureConfiguration.ipAddress
Tipo: string
Condicional
Endereço IP do endpoint privado na sua VNet do Azure. Este parâmetro é obrigatório e limitado a endpoints privados do Azure.
spec.connectionSecret.name
Tipo: string
Condicional
Nome do segredo opaco que contém o ID da organização e as 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.name
doatlasProject
paiO segredo
global
padrão, sespec.connectionSecretRef.name
estiver indefinido para oatlasProject
pai
Este parâmetro é obrigatório para CRDs independentes.
Atlas Kubernetes Operator observa segredos apenas com a etiqueta
atlas.mongodb.com/type=credentials
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.externalProjectRef.id
Tipo: string
Condicional
ID do projeto ao qual pertence o endpoint privado. Você deve especificar o ID do projeto de um Atlas Project existente. Esse parâmetro é necessário para endpoints privados 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.name
se você não utilizarspec.externalProjectRef.id
.Um endpoint privado só pode pertencer a um projeto. Para definir o mesmo endpoint privado para vários projetos, crie definições de recursos personalizadas para cada projeto.
spec.gcpConfiguration.endpoints
Tipo: array
Condicional
Lista de endpoints privados individuais que compõem este grupo de endpoints. Este parâmetro é obrigatório e limitado a endpoints privados do Google Cloud.
spec.gcpConfiguration.endpoints.[n].ipAddress
Tipo: string
Condicional
Endereço IP para o qual o endpoint privado do Google Cloud fornecido se resolve. Este parâmetro é obrigatório e limitado a endpoints privados do Google Cloud.
spec.gcpConfiguration.endpoints.[n].name
Tipo: string
Condicional
Nome que identifica exclusivamente o endpoint privado do Google Cloud fornecido. Este parâmetro é obrigatório e limitado a endpoints privados do Google Cloud.
spec.gcpConfiguration.groupName
Tipo: string
Condicional
Nome que identifica exclusivamente um conjunto de endpoints privados do Google Cloud. Este parâmetro é obrigatório e limitado a endpoints privados do Google Cloud.
spec.gcpConfiguration.projectId
Tipo: string
Condicional
Identificador exclusivo do projeto do Google Cloud ao qual seus endpoints privados pertencem.
spec.projectRef.name
Tipo: string
Condicional
Nome do projeto ao qual o endpoint privado pertence. Você deve especificar um
AtlasProject
Recurso Personalizado existente. Este parâmetro se aplica somente a endpoints privados que pertencem a projetos gerenciados pela mesma instância Atlas Kubernetes Operator.Para implementações que pertencem a projetos gerenciados por:
uma instância diferente do Atlas Kubernetes Operator
ferramentas diferentes do Atlas Kubernetes Operator
usar
spec.externalProjectRef.id
.Um endpoint privado só pode pertencer a um projeto. Para definir o mesmo endpoint privado para vários projetos, crie definições de recursos personalizadas para cada projeto.
spec.projectRef.namespace
Tipo: string
Condicional
Namespace no qual o
AtlasProject
Recurso Personalizado especificadospec.projectRef.name
no existe.Para implementações que pertencem a projetos gerenciados por:
uma instância diferente do Atlas Kubernetes Operator
ferramentas diferentes do Atlas Kubernetes Operator
não defina este parâmetro.