Importante
Os subrecursos legados são preteridos a partir do lançamento de seus CRDs correspondentes. Se sua configuração depender atualmente da forma de subrecurso dessa definição de recurso, migre para um CRD.
O recurso personalizado do AtlasNetworkContainer define um contêiner de rede para um projeto Atlas. Você cria conexões de peering de VPC entre os containers de rede e as redes que hospedam seus aplicativos.
Importante
Os Recursos Personalizados Não Excluem Mais Objetos por Padrão
O Atlas Kubernetes Operator utiliza 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
AtlasProjectRecurso Personalizado no 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 0consulte Novo padrão: Proteção de exclusão no Atlas Kubernetes 2 0Operator..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
Atlas Kubernetes Operator does one of the following actions using the Atlas Network Peering API Resource:
Cria um novo container de rede.
Atualiza um container de rede existente.
Exemplos
Os exemplos a seguir ilustram configurações para CRDs do AtlasNetworkContainer.
A configuração básica de exemplo define um recurso que você gerencia com a mesma instância do Atlas Kubernetes Operator com a qual você gerencia seu projeto pai do Atlas .
O exemplo de CRD independente configura o mesmo container de rede que o exemplo básico, mas para um projeto do Atlas que você gerencia fora da instância do Atlas Kubernetes Operator com a qual você gerencia o container de rede.
Exemplo básico
O seguinte mostra um recurso personalizado AtlasNetworkContainer para um contêiner chamado my-atlas-nc que permite criar uma conexão de emparelhamento de VPC entre o Atlas e a AWS no projeto my-project. Para gerenciar este recurso na mesma instância do Atlas Kubernetes Operator que seu projeto Atlas pai, você deve identificar o projeto com projectRef em vez de externalProjectRef.
apiVersion: atlas.mongodb.com/v1 kind: AtlasNetworkContainer metadata: name: my-atlas-nc spec: projectRef: name: my-project namespace: my-operator-namespace provider: AWS id: 66e2f2b7e69a89b66b621571 cidrBlock: 10.11.0.0/16 region: US_EAST_1
Exemplo de CRD independente
The following example shows an AtlasNetworkContainer independent CRD that enables VPC peering under the same parameters enabled by the Basic Example. 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: AtlasNetworkContainer metadata: name: my-atlas-nc spec: externalProjectRef: projectId: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret provider: AWS id: 66e2f2b7e69a89b66b621571 cidrBlock: 10.11.0.0/16 region: US_EAST_1
Parâmetros
Esta seção descreve os parâmetros do AtlasNetworkContainer disponÃveis nesta definição de recurso personalizada.
metadata.nameTipo: string
Obrigatório
Name that the
AtlasNetworkContainerCustom Resource uses to add this network container to a project.
metadata.namespaceTipo: string
Opcional
Namespace que você deseja que contenha o recurso personalizado do
atlasNetworkContainer. Se não for especificado, o Atlas Kubernetes Operator utilizará o namespace atual definido porkubectl.
spec.connectionSecret.nameTipo: string
Condicional
Nome do segredo opaco segredo 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 padronizará para uma das seguintes opções:
O parâmetro
spec.connectionSecretRef.namedoatlasProjectpaiO segredo
globalpadrão, se você não tiver definido ospec.connectionSecretRef.namepara oatlasProjectpai
Esse parâmetro é necessário para CRDs independentes.
O Atlas Kubernetes
atlas.mongodb.com/type=credentialsOperator observa segredos apenas com a etiqueta 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.idTipo: string
Condicional
ID do projeto ao qual pertence o container de rede. Você deve especificar o ID do projeto de um Atlas Project existente. Você deve especificar este parâmetro para containers de rede 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 o
spec.projectRef.name. Esses parâmetros são mutuamente exclusivos entre si.
spec.projectRef.nameTipo: string
Condicional
Nome do projeto ao qual pertence o container de rede. Você deve especificar um
AtlasProjectRecurso Personalizado existente. Este parâmetro se aplica somente a containers de rede que pertencem a projetos gerenciados pela mesma instância do Atlas Kubernetes Operator.Para containers de rede que pertencem a projetos gerenciados por:
uma instância diferente do Atlas Kubernetes Operator
ferramentas diferentes do Atlas Kubernetes Operator
usar
spec.externalProjectRef.id. Esses parâmetros são mutuamente exclusivos entre si.
spec.projectRef.namespaceTipo: string
Condicional
Namespace no qual o
AtlasProjectRecurso Personalizado especificadospec.projectRef.nameno existe.Não defina este parâmetro para implantações que pertencem a projetos gerenciados por:
uma instância diferente do Atlas Kubernetes Operator
ferramentas diferentes do Atlas Kubernetes Operator
spec.providerTipo: string
Obrigatório
Fornecedor de nuvem com o qual oferecer suporte a uma conexão de emparelhamento VPC. Deve ser um dos seguintes:
AWSAzureGCP