AtlasDataFederation
Recurso personalizado
Nesta página
Observação
O Atlas Kubernetes Operator não oferece suporte ao recurso personalizado AtlasDataFederation
para o Atlas for Government.
O recurso personalizado AtlasDataFederation
configura um federated database instance
no Atlas. Quando você cria o recurso personalizado do AtlasDataFederation
, o Atlas Kubernetes Operator tenta criar ou atualizar uma instância do banco de dados federado no Atlas. Você pode utilizar uma instância do banco de dados federado para executar queries federadas.
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 usa o Atlas Clusters API Resource e o Advanced Clusters API Resource para criar uma nova instância do banco de dados federado ou atualizar uma instância do banco de dados federado existente. Se você especificar valores para os campos em spec.serverlessSpec
, o Atlas Kubernetes Operator usará o Recurso Atlas de Instância sem Servidor API para criar ou configurar endpoints privados para sua instância do banco de dados federado.
Se você remover o recurso AtlasDataFederation
do cluster do Kubernetes, o Atlas Kubernetes Operator removerá a instância do banco de dados federado do Atlas.
Exemplos
O exemplo a seguir mostra uma especificação de recurso personalizada AtlasDataFederation
com endpoints privados configurados:
apiVersion: atlas.mongodb.com/v1 kind: AtlasDataFederation metadata: name: my-federated-deployment spec: projectRef: name: my-project namespace: default cloudProviderConfig: aws: roleId: 12345678 testS3Bucket: my-bucket dataProcessRegion: cloudProvider: AWS region: OREGON_USA name: my-fdi storage: databases: - collections: - dataSources: - allowInsecure: false collection: my-collection collectionRegex: database: my-database databaseRegex: defaultFormat: ".avro" path: / provenanceFieldName: string storeName: my-data-store urls: - string: name: my-collection-mdb maxWildcardCollections: 100 name: my-database-mdb views: - name: my-view pipeline: source: my-source-collection stores: - name: my-store provider: S3 additionalStorageClasses: - STANDARD bucket: my-bucket delimiter: / includeTags: false prefix: data- public: false region: US_WEST_1 privateEndpoints: - endpointId: vpce-3bf78b0ddee411ba1 provider: AWS type: DATA_LAKE - endpointId: vpce-3bf78b0ddee411ba2 provider: AWS type: DATA_LAKE
Parâmetros
Esta seção descreve alguns dos principais parâmetros de recursos personalizados AtlasDataFederation
disponíveis. Para obter uma lista completa dos parâmetros disponíveis, consulte a API do Atlas Data Federation.
Consulte estas descrições, os exemplos disponíveis e a documentação da API do para personalizar suas especificações.
metadata.name
Tipo: string
Obrigatório
Etiqueta que identifica o
AtlasDataFederation
Recurso Personalizado que o Atlas Kubernetes Operator utiliza para adicionar esta instância do banco de dados federado a um projeto.
spec.cloudProviderConfig
Tipo: objeto
Obrigatório
Lista que contém as configurações do fornecedor de nuvem para a instância do banco de dados federado.
spec.cloudProviderConfig.aws
Tipo: objeto
Obrigatório
Nome do provedor de serviços de nuvem que hospeda a instância do banco de dados federado.
spec.cloudProviderConfig.aws.roleId
Tipo: string
Obrigatório
Identificador único da role que a instância do banco de dados federado pode usar para acessar os armazenamentos de dados.
spec.cloudProviderConfig.aws.testS3Bucket
Tipo: string
Obrigatório
Nome do bucket de dados do S3 que o ID de role fornecido está autorizado a acessar.
spec.dataProcessRegion
Tipo: objeto
Obrigatório
Informações sobre a região do fornecedor de nuvem para a qual a instância do banco de dados federado roteia as conexões do cliente. O Atlas Kubernetes Operator é compatível apenas com Amazon Web Services.
spec.dataProcessRegion.cloudProvider
Tipo: string
Obrigatório
Nome do provedor de serviços de cloud que hospeda os armazenamentos de dados da instância do reconhecimento de data center federado. O Atlas Kubernetes Operator aceita os seguintes valores:
AWS
TENANT
SERVERLESS
spec.dataProcessRegion.region
Tipo: string
Obrigatório
Etiqueta que indica a localização geográfica dos armazenamentos de dados da instância do banco de dados federado. O Atlas Kubernetes Operator aceita os seguintes valores:
SYDNEY_AUS
MUMBAI_IND
FRANKFURT_DEU
DUBLIN_IRL
LONDON_GBR
VIRGINIA_USA
OREGON_USA
SAOPAULO_BRA
SINGAPORE_SGP
spec.name
Tipo: string
Opcional
Etiqueta que identifica a instância do banco de dados federado no Atlas.
spec.storage
Tipo: objeto
Opcional
Informações de configuração para cada armazenamento de dados e seu mapeamento para bancos de dados Atlas.
spec.storage.databases
Tipo: array
Opcional
Lista que contém os bancos de dados consultáveis e as coleções para esta instância do banco de dados federado.
spec.storage.databases.collections
Tipo: array
Opcional
Lista de collection e conjunto de dados que mapeiam para um armazenamento de dados do
stores
.
spec.storage.databases.collections.dataSources
Tipo: array
Opcional
Lista que contém os armazenamentos de dados mapeados para uma collection para esta instância do banco de dados federado.
spec.storage.databases.collections.dataSources.allowInsecure
Tipo: booleano
Opcional
Sinalizador que valida o esquema na URL especificada. Se
true
, o Atlas Kubernetes Operator permite o esquema inseguroHTTP
, não verifica a cadeia de certificados do servidor e o nome de host e aceita qualquer certificado com qualquer nome de host apresentado pelo servidor. Sefalse
, o Atlas Kubernetes Operator permite proteger somente o esquemaHTTPS
.
spec.storage.databases.collections.dataSources.collection
Tipo: string
Opcional
Rótulo legível por humanos que identifica a collection no reconhecimento de data center. Para criar uma collection de curingas (
*
), você deve omitir este parâmetro.
spec.storage.databases.collections.dataSources.collectionRegex
Tipo: string
Opcional
Padrão regex a ser usado para criar uma collection de curingas (
*
).
spec.storage.databases.collections.dataSources.database
Tipo: string
Opcional
Rótulo legível por humanos que identifica o reconhecimento de data center, que contém a collection no cluster. Você deve omitir este parâmetro para gerar collection de curingas (
*
) para reconhecimento de data center gerados dinamicamente.
spec.storage.databases.collections.dataSources.databaseRegex
Tipo: string
Opcional
Padrão regex a ser usado para criar o reconhecimento de data center curinga (
*
).
spec.storage.databases.collections.dataSources.defaultFormat
Tipo: string
Opcional
Formato de arquivo que o Atlas Kubernetes Operator utiliza se encontrar um arquivo sem uma extensão de arquivo ao pesquisar
storeName
. O Atlas Kubernetes Operator aceita os seguintes valores:.avro
.avro.bz2
.avro.gz
.bson
.bson.bz2
.bson.gz
.bsonx
.csv
.csv.bz2
.csv.gz
.json
.json.bz2
.json.gz
.orc
.parquet
.tsv
.tsv.bz2
.tsv.gz
spec.storage.databases.collections.dataSources.path
Tipo: string
Opcional
Caminho do arquivo que controla como o Atlas Kubernetes Operator pesquisa e analisa os arquivos no
storeName
antes de mapeá-los para uma collection. Especifique/
para capturar todos os arquivos e pastas do caminho de prefixo.
spec.storage.databases.collections.dataSources.provenanceFieldName
Tipo: string
Opcional
Etiqueta legível para humanos que identifica o campo que inclui a procedência dos documentos nos resultados. O Atlas Kubernetes Operator retorna campos diferentes nos resultados de cada provedor suportado.
spec.storage.databases.collections.dataSources.storeName
Tipo: string
Opcional
Rótulo legível por humanos que identifica o data store que o Atlas Kubernetes Operator mapeia para a collection.
spec.storage.databases.collections.dataSources.urls
Tipo: array
Opcional
URLs dos arquivos de dados acessíveis publicamente. Não é possível especificar URLs que exijam autenticação. O Atlas Data Federation cria uma partição para cada URL. Se vazio ou omitido, o Atlas Data Federation usa as URLs do armazenamento especificado no parâmetro dataSources.storeName .
spec.storage.databases.collections.name
Tipo: string
Opcional
Etiqueta legível para humanos que identifica a collection para a qual o Atlas Kubernetes Operator mapeia os dados nos armazenamentos de dados.
spec.storage.databases.maxWildcardCollections
Tipo : int32
Opcional
Número máximo de coleções de curingas no banco de dados. Isso se aplica apenas a fontes de dados S3. O valor padrão é
100
.
spec.storage.databases.name
Tipo: string
Opcional
Rótulo legível por humanos que identifica o banco de dados para o qual a instância do banco de dados federado mapeia os dados.
spec.storage.databases.views
Tipo: array
Opcional
Lista de pipelines de agregação que se aplicam à collection. Isso se aplica apenas ao conjunto de dados S3.
spec.storage.databases.views.name
Tipo: string
Opcional
Etiqueta legível para humanos que identifica a visualização, que corresponde a uma aggregation pipeline em uma collection.
spec.storage.databases.views.pipeline
Tipo: string
Opcional
Estágios do pipeline de agregação a serem aplicados à coleção de origem.
spec.storage.databases.views.source
Tipo: string
Opcional
Etiqueta legível para humanos que identifica a collection de origem para a visualização.
spec.storage.stores
Tipo: array
Opcional
Lista que contém os armazenamentos de dados para a instância do banco de dados federado.
spec.storage.stores.name
Tipo: string
Opcional
Rótulo legível por humanos que identifica o armazenamento de dados. O campo spec.storage.databases.collections.dataSources.storeName faz referência a esses valores como parte da configuração de mapeamento.
spec.storage.stores.provider
Tipo: string
Condicional
Fornecedor da loja. O Atlas Kubernetes Operator suporta apenas
S3
. Você deve especificar este campo para usar um armazenamento de dados.
spec.storage.stores.additionalStorageClasses
Tipo: array
Opcional
collection de classes de armazenamento Amazon Web Services S3. O Atlas Data Federation inclui os arquivos nessas classes de armazenamento nos resultados da query. O Atlas Kubernetes Operator aceita os seguintes valores:
STANDARD
INTELLIGENT_TIERING
STANDARD_IA
spec.storage.stores.bucket
Tipo: string
Opcional
Etiqueta legível por humanos que identifica o bucket do Amazon Web Services S3. Esse rótulo deve corresponder exatamente ao nome de um bucket do S3 que a instância do banco de dados federado pode acessar com as credenciais configuradas do Amazon Web Services IAM .
spec.storage.stores.delimiter
Tipo: string
Opcional
O delimitador que separa os segmentos spec.storage.databases.collections.dataSources.path no armazenamento de dados. O Atlas Kubernetes Operator usa o delimitador para percorrer com eficiência os buckets S3 com uma estrutura de diretório hierárquica. Você pode especificar qualquer caractere suportado pelas chaves de objeto S3 como delimitador. Por exemplo, você pode especificar um sublinhado (
_
) ou um sinal de mais (+
) ou vários caracteres, como sublinhados duplos (__
) como delimitador. Se omitido, o padrão é/
.
spec.storage.stores.includeTags
Tipo: booleano
Opcional
Sinalizador que indica se devem ser usadas tags S3 nos arquivos no caminho fornecido como atributos de partição adicionais. Se definido como verdadeiro, o Atlas Kubernetes Operator adiciona as marcações S3 como atributos de partição adicionais e adiciona novos elementos BSON de nível superior associando cada marcação a cada documento. Se omitido, o padrão é
false
.
spec.storage.stores.prefix
Tipo: string
Opcional
Prefixo que o Atlas Kubernetes Operator aplica ao procurar arquivos no bucket S3 . O armazenamento de dados acrescenta o valor de prefixo ao spec.storage.databases.collections.dataSources.path para criar o caminho completo para a ingestão dos arquivos. Se omitido, o Atlas Kubernetes Operator pesquisa todos os arquivos a partir da raiz do bucket S3 .
spec.storage.stores.public
Tipo: booleano
Opcional
Sinalizador que indica se o bucket é público. Se configurado para
true
, o Atlas Kubernetes Operator não utiliza o papel configurado do Amazon Web Services IAM para acessar o bucket S3. Se definido comofalse
, a função do Amazon Web Services IAM configurada deve incluir permissões para acessar o bucket do S3.
spec.storage.stores.region
Tipo: string
Opcional
Região AWS que indica o local físico do bucket S3.
spec.privateEndpoints
Tipo: array
Opcional
Lista que contém as configurações de endpoint privado para a instância do banco de dados federado.
spec.privateEndpoints.endpointId
Tipo: string
Obrigatório
String única alfanumérica de 22 caracteres começando com
vpce-
que identifica o endpoint privado na Amazon Web Services
spec.privateEndpoints.provider
Tipo: string
Opcional
Etiqueta legível por humanos que identifica o provedor de serviços de cloud. O Atlas Data Federation suporta apenas
AWS
.
spec.privateEndpoints.type
Tipo: string
Opcional
Etiqueta legível para humanos que identifica o tipo de recurso associado a este endpoint privado. O Atlas Data Federation suporta apenas
DATA_LAKE
.
spec.projectRef.name
Tipo: string
Obrigatório
Nome do projeto ao qual pertence a instância do banco de dados federado. Você deve especificar um Recurso Personalizado
AtlasProject
existente.
spec.projectRef.namespace
Tipo: string
Obrigatório
Namespace no qual o
AtlasProject
Recurso Personalizado especificado em spec.projectRef.name existe.