Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Configure el almacenamiento de secretos

Puedes elegir dónde almacenan la información sensible los componentes que gestiona Atlas Kubernetes Operator, pero Atlas Kubernetes Operator debe encontrar Kubernetes Secretos lo espera. Puede almacenar secretos para Atlas Kubernetes Operator de varias maneras, incluidos los siguientes métodos:

  • Coloca información sensible directamente en secretos de Kubernetes secrets. Todos los tutoriales en la documentación del Atlas Kubernetes Operator utilizan secreto de Kubernetes por defecto. Para usar secretos de Kubernetes, sigue los pasos de los tutoriales.

  • Colocar información confidencial en un repositorio de Github siguiendo un flujo GitOps. Para almacenar los datos confidenciales de git de manera segura, puedes utilizar herramientas como Sealed Secrets, que cifra los secretos para el clúster de destino previsto.

  • Coloque información confidencial en una herramienta externa de almacenamiento de secretos, como HashiCorp Vault o soluciones nativas de gestión de secretos de Hyperscalers. Una herramienta intermediaria de aprovisionamiento secreto obtiene información confidencial del almacenamiento externo de secretos y crea secretos de Kubernetes a partir de la información confidencial. Para obtener más información sobre la herramienta de provisionamineto secreto, consulta Consideraciones.

Este tutorial configura una herramienta externa de almacenamiento de secretos para usar con Atlas Kubernetes Operator. Este tutorial se centra en configuraciones "sin secretos" que no requieren que el Atlas Kubernetes Operator cree y almacene un secreto para aprovisionar secretos en su clúster de Kubernetes.

El siguiente tutorial instala o configura las siguientes herramientas y opciones:

  • Una herramienta de provisionamineto secreta. La herramienta de aprovisionamiento de secretos utiliza uno o más mecanismos de autenticación para recuperar las credenciales del servicio de gestión de secretos y crear secretos que el Atlas Kubernetes Operator puede utilizar. Este tutorial instala una de las siguientes herramientas de provisionamineto de secretos de código abierto:

  • Autenticación para acceder a los secretos. Puedes usar diferentes métodos para autenticar las cuentas de servicio y los espacios de nombres que pueden acceder a secretos en HashiCorp Vault:

    • Para el External Secrets Operator, este tutorial utiliza OIDC JSON web token authentication. Para obtener más información, consulte autenticación JWT/OIDC.

    • Para Secrets Store CSI Driver, este tutorial utiliza la autenticación de Kubernetes.

    Alternativamente, el KMS de tu proveedor de nube puede utilizar sistemas nativos de IAM para proporcionar esta autenticación, que no está cubierta en este tutorial. Para saber cómo configurar el KMS de tu proveedor de nube para la autenticación, consulte los siguientes recursos en la documentación del Operador de Secretos Externos:

Antes de completar este tutorial, necesita las siguientes herramientas y configuraciones:

  • Cuentas de servicio en ejecución para Kubernetes, Atlas Kubernetes Operator y Atlas y privilegios suficientes para configurarlas.

    Necesita un clúster de Kubernetes en ejecución con nodos que ejecuten procesadores con la arquitectura x86-64, AMD64 o ARM64. Para este tutorial, el clúster de Kubernetes es https://kube01.internal.io escuchando en el puerto por defecto (443).

    Puedes acceder al proyecto Atlas Kubernetes Operator en GitHub:

    Para instalar el operador Atlas Kubernetes utilizando Atlas CLI, ejecuta el siguiente comando:

    atlas kubernetes operator install [options]

    Para obtener más información sobre la sintaxis del comando y los parámetros, consulta la documentación de Atlas CLI para atlas kubernetes operator install.

    Tip

    Consulte: Enlaces relacionados

    Para implementar el Atlas Kubernetes Operator, ejecuta el siguiente comando. Reemplazar <version> por la última versión número de versión.

    kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/<version>/deploy/all-in-one.yaml

    Para registrarse en una cuenta Atlas, consulte Crear una cuenta Atlas.

  • Claves API. Debe crear una clave API y configurar el API Access List.

    Necesita la siguiente llave pública de API, llave privada de API y la información del Identificador de la Organización para configurar el acceso de Atlas Kubernetes Operator a Atlas.

    • Si deseas que el Atlas Kubernetes Operator cree un nuevo Proyecto de Atlas, otorga acceso programático a una organización. Si tu organización requiere una lista de acceso IP para la API de administración de Atlas, también deberás configurar la lista de acceso a la API.

      Importante

      Debes asignar a la clave API el rol organizacional Organization Project Creator o superior.

    • Si deseas trabajar con un proyecto Atlas existente, Añadir acceso al proyecto desde un proyecto. Si tu organización requiere una lista de acceso IP para la API de Administración de Atlas, también debes configurar la lista de acceso a la API.

      Importante

      Debe asignar al clave API el rol de proyecto Project Owner.

  • Una bóveda de almacenamiento secreto. Este tutorial utiliza HashiCorp Vault, un servicio externo para almacenamiento secreto, que se ejecuta https://vault.internal.io en.

    Puede utilizar otras bóvedas de almacenamiento secretas con Atlas Kubernetes Operator según sea necesario, incluido Cloud KMS de AWS, Azure y Google.

  • Solo acceso interno. Para evitar exponer información sensible a través de internet pública, los siguientes componentes de la solución de almacenamiento de secretos permiten solo el acceso interno:

    • El HashiCorp Vault o servicio KMS.

    • El servicio de APIs de clúster de Kubernetes.

    • La red interna. Este tutorial usa internal.io.

    Si bien los componentes anteriores solo permiten acceso interno, permiten el acceso entre sí y a cualquier persona de su equipo u organización. Esta es una práctica recomendada para la seguridad.

  • Autoridades de certificación (CA) públicas. Puede usar CA públicas para evitar la administración y distribución de certificados raíz de CA personalizados.

    Puede automatizar la gestión y renovación de certificados de CA utilizando cualquiera de las siguientes herramientas:

    En este tutorial:

    • Todos los internal.io servicios HTTPs son direcciones internas, pero sus sitios HTTPS presentan certificados firmados por una Autoridad Certificadora (CA) pública, renovados automáticamente.

    • No se requiere TLS mutuo (mTLS) para esta integración porque solo realiza la validación HTTPS del lado del servidor.

    • Los clientes pueden confiar en estos certificados de servicio sin necesidad de aprovisionar ningún certificado adicional.

Siga estos pasos para configurar el almacenamiento de secretos para Atlas Kubernetes Operator.

1

Seleccione una herramienta secreta de provisionamineto para instalarla.

Para usar External Secrets operador como herramienta de provisionamineto de secretos:

  1. Ejecute los siguientes comandos para instalar External Secrets Operator con Helm Charts e iniciar el servicio:

    helm repo add external-secrets https://charts.external-secrets.io
    helm upgrade -i --atomic \
    -n external-secrets --create-namespace --set extraArgs.loglevel=debug \
    external-secrets external-secrets/external-secrets`
  2. Asegúrese de que External Secrets se ejecute correctamente:

    kubectl get pod -n external-secrets -l app.kubernetes.io/name=external-secrets
    NAME READY STATUS RESTARTS AGE
    external-secrets-5779d5d6f6-2lhgd 1/1 Running 0 70s

Para utilizar el controlador CSI de Secrets Store como herramienta de aprovisionamiento de secretos, siga estos pasos:

  1. Ejecute el siguiente comando para instalar Secrets Store CSI Driver con Helm Charts e iniciar el servicio:

    helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts
    helm upgrade -i --atomic --set syncSecret.enabled=true \
    -n kube-system csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver
  2. Ejecuta el siguiente comando para instalar el complemento de Secrets Store CSI HashiCorp Vault con Helm Charts. No es necesario instalar el servidor o el inyector de secretos HashiCorp Vault.

    helm install vault hashicorp/vault \
    --set "server.enabled=false" --set "injector.enabled=false" \
    --set "csi.enabled=true"
  3. Asegúrate de que Secrets Almacén CSI se ejecute correctamente:

    kubectl get pod -n kube-system -l app.kubernetes.io/name=secrets-store-csi-driver
    NAME READY STATUS RESTARTS AGE
    csi-secrets-store-secrets-store-csi-driver-6dcm8 3/3 Running 0 2m2s
  4. Asegúrate de que el proveedor CSI HashiCorp Vault funcione correctamente:

    kubectl get pods -l app.kubernetes.io/name=vault-csi-provider
    NAME READY STATUS RESTARTS AGE
    vault-csi-provider-j7xbr 2/2 Running 0 5m39s
2

Para configurar la autenticación OIDC JWT y Kubernetes:

  1. Ejecute el siguiente comando para habilitar la autenticación OIDC JWT para la ruta de montaje. Si se configuran varios clústeres de Kubernetes, se debe habilitar la autenticación OIDC JWT para la ruta de montaje de cada clúster.

    vault auth enable -path=jwt-kube01 jwt
  2. Ejecute el siguiente comando para permitir el acceso no autenticado a las URL de descubrimiento de OIDC en el clúster kube01.internal.io:

    $ kubectl create clusterrolebinding oidc-reviewer \
    --clusterrole=system:service-account-issuer-discovery \
    --group=system:unauthenticated
  3. Ejecute el siguiente comando para indicar a HashiCorp Vault que confíe en el clúster. El emisor del clúster en https://kube01.internal.io/ debe coincidir con la URL del documento de descubrimiento de OIDC .well-known/openid-configuration en.

    curl https://kube01.internal.io/.well-known/openid-configuration | jq .issuer
    https://kube01.internal.io/
    vault write auth/jwt-kube01/config jwks_url="https://kube01.internal.io/openid/v1/jwks"
  4. Crea las directivas que permiten el acceso a los secretos que deseas exponer al clúster.

    El siguiente ejemplo crea la política external-secrets que se especifica en pasos posteriores.

    echo external-secrets-policy.hcl
    path "secret/data/kube01/external-secrets/*" {
    capabilities = ["read"]
    }
  5. Ejecuta el comando para crear un rol de HashiCorp Vault y enlazar una cuenta de servicio de Kubernetes a este rol, lo que restringe el acceso de la cuenta de servicio dentro del HashiCorp Vault.

    El siguiente comando crea el rol jwt-kube01-system para el público vault del tipo JWT (OIDC). El comando especifica la reclamación de usuario sub, y la cuenta de servicio de Kubernetes default en el namespace mongodb-atlas-system como el sujeto vinculado. Este comando vincula el rol al conjunto de permisos de la política external-secrets dentro de HashiCorp Vault.

    vault write auth/jwt-kube01/role/jwt-kube01-system role_type="jwt" bound_audiences=vault \
    user_claim="sub" bound_subject="system:serviceaccount:mongodb-atlas-system:default" \
    policies="external-secrets"
  6. Ejecute el comando para crear otro rol para que el External Secrets Operator acceda al namespace default.

    El siguiente comando crea el rol jwt-kube01-default para el público vault del tipo JWT (OIDC). Este comando especifica el reclamo de usuario sub y la cuenta de servicio de Kubernetes default en el namespace default como el sujeto vinculado. Este comando vincula el rol al conjunto de permisos de la política external-secrets dentro de HashiCorp Vault.

    vault write auth/jwt-kube01/role/jwt-kube01-default role_type="jwt" bound_audiences=vault \
    user_claim="sub" bound_subject="system:serviceaccount:default:default" \
    policies="external-secrets"
  7. Asegúrate de que la autenticación OIDC se ejecute correctamente para la cuenta de servicio del sistema:

    export TEST_JWT_TOKEN=$(kubectl -n mongodb-atlas-system create token default --audience "vault")
    vault write auth/jwt-kube01/login role=jwt-kube01-system jwt=$(TEST_JWT_TOKEN)

    Atlas Kubernetes Operator devuelve sus credenciales JWT de OIDC para la cuenta de servicio del sistema.

  8. Asegúrese de que la autenticación OIDC se ejecute correctamente para la cuenta de servicio por defecto:

    export TEST_JWT_TOKEN=$(kubectl -n default create token default --audience "vault")
    vault write auth/jwt-kube01/login role=jwt-kube01-default jwt=$(TEST_JWT_TOKEN)

    Atlas Kubernetes Operator devuelve tus credenciales OIDC JWT para la cuenta de servicio por defecto.

Para configurar la autenticación de Kubernetes:

  1. Ejecute el siguiente comando para habilitar la autenticación de Kubernetes para la ruta de montaje. Si configura varios clústeres de Kubernetes, debe habilitar la autenticación de Kubernetes para la ruta de montaje de cada clúster.

    vault auth enable -path=jwt-kube01 kubernetes

    Cuando instalas con Helm, configura automáticamente la vinculación de roles del clúster.

  2. Crea directivas que permitan el acceso a los secretos que deseas exponer al clúster.

    El siguiente ejemplo crea la política vault-secret utilizada en pasos posteriores. Utiliza vault, un secreto de Kubernetes vinculado a la cuenta de servicio HashiCorp Vault que configura el proveedor Helm Chart CSI.

    echo vault-secret.yaml
    apiVersion: v1
    kind: Secret
    metadata:
    name: vault
    annotations:
    kubernetes.io/service-account.name: vault
    type: kubernetes.io/service-account-token
    $ kubectl apply -f vault-secret.yaml
  3. Ejecute los comandos para confiar en el clúster de Kubernetes y usar la autenticación de Kubernetes:

    export VAULT_JWT ?= $(shell kubectl get secret/vault -o jsonpath='{.data.token}' |base64 -d)
    vault write auth/k8s-kube01/config kubernetes_host="kube01.internal.io" token_reviewer_jwt=$(VAULT_JWT)
  4. Ejecuta el comando para crear un rol de HashiCorp Vault y enlazar una cuenta de servicio de Kubernetes a este rol, lo que restringe el acceso de la cuenta de servicio dentro del HashiCorp Vault.

    El siguiente comando crea el rol k8s-kube01 en auth/k8s-kube01 vinculado a la cuenta de servicio de Kubernetes en los namespaces default o mongodb-atlas-system. Este rol está vinculado a la política de permisos de secrets-store en HashiCorp Vault.

    vault write auth/k8s-kube01/role/k8s-kube01-role \
    bound_service_account_names=default,mongodb-atlas-operator \
    bound_service_account_namespaces=default,mongodb-atlas-system \
    policies=secrets-store

    Las políticas deben existir y permitir el acceso a los secretos. El siguiente ejemplo de política permite el acceso a secretos de KV v2 bajo la ruta kube01/secrets-store:

    path "secret/data/kube01/secrets-store/*" {
    capabilities = ["read"]
    }
  5. Asegura que la autenticación de Kubernetes se ejecute correctamente para la cuenta de servicio del sistema:

    export TEST_JWT_TOKEN=$( kubectl create -n mongodb-atlas-system token mongodb-atlas-operator)
    vault write auth/jwt-kube01/login role=jwt-kube01-system jwt=$(TEST_JWT_TOKEN)
  6. Garantizar que la autenticación de Kubernetes se ejecute correctamente para la cuenta por defecto:

    export TEST_JWT_TOKEN=$(kubectl -n default create token default)
    vault write auth/jwt-kube01/login role=jwt-kube01-default jwt=$(TEST_JWT_TOKEN)
3

Para aprovisionar secretos con External Secrets Operator:

  1. Implementa el recurso personalizado SecretStore para la cuenta de servicio default en el espacio de nombres mongodb-atlas-system:

    $ cat external-secrets/vault-system.yaml
    apiVersion: external-secrets.io/v1beta1
    kind: SecretStore
    metadata:
    name: vault-store
    namespace: mongodb-atlas-system
    spec:
    provider:
    vault:
    server: "https://vault.internal.io"
    path: "secret"
    version: "v2"
    auth:
    jwt:
    path: "jwt-kube01"
    role: "jwt-kube01-system"
    kubernetesServiceAccountToken:
    expirationSeconds: 600
    serviceAccountRef:
    name: "default"
    audiences:
    - vault
    $ kubectl apply -f external-secrets/vault-system.yaml
  2. Implementa el recurso personalizado SecretStore para la cuenta de servicio default en el espacio de nombres default:

    $ cat external-secrets/vault-default.yaml
    apiVersion: external-secrets.io/v1beta1
    kind: SecretStore
    metadata:
    name: vault-store
    namespace: default
    spec:
    provider:
    vault:
    server: "https://vault.internal.io"
    path: "secret"
    version: "v2"
    auth:
    jwt:
    path: "jwt-kube01"
    role: "jwt-role"
    kubernetesServiceAccountToken:
    expirationSeconds: 600
    serviceAccountRef:
    name: "default"
    audiences:
    - vault
    $ kubectl apply -f external-secrets/vault-default.yaml
  3. Despliegue el recurso personalizado ExternalSecret que hace referencia al secreto que contiene la clave API. Debe establecer spec.target.template.metadata.labels en atlas.mongodb.com/type con el valor credentials para que Atlas Kubernetes Operator pueda hallar el secreto que crea External Secrets operador.

    Antes de ejecutar el siguiente comando, asegúrese de que HashiCorp Vault tenga el secreto poblado en la ruta Kv V2 secret/data/kube01/external-secrets/atlas-account con las siguientes propiedades:

    • orgId

    • publicApiKey

    • privateApiKey

    $ cat external-secrets/atlas.yaml
    apiVersion: external-secrets.io/v1beta1
    kind: ExternalSecret
    metadata:
    name: atlas
    namespace: mongodb-atlas-system
    spec:
    refreshInterval: "15s"
    secretStoreRef:
    name: vault-store
    kind: SecretStore
    target:
    name: mongodb-atlas-operator-api-key
    template:
    metadata:
    labels:
    atlas.mongodb.com/type: credentials
    data:
    - secretKey: orgId
    remoteRef:
    key: secret/data/kube01/external-secrets/atlas-account
    property: orgId
    - secretKey: publicApiKey
    remoteRef:
    key: secret/data/kube01/external-secrets/atlas-account
    property: publicApiKey
    - secretKey: privateApiKey
    remoteRef:
    key: secret/data/kube01/external-secrets/atlas-account
    property: privateApiKey
    $ kubectl apply -f external-secrets/atlas.yaml

    Este comando crea el secreto mongodb-atlas-operator-api-key de Kubernetes en el namespace mongodb-atlas-system.

  4. Implemente el recurso personalizado ExternalSecret que hace referencia al secreto que contiene las credenciales de usuario de la base de datos. Debe establecer spec.target.template.metadata.labels en atlas.mongodb.com/type con el valor credentials para que el operador de Kubernetes de Atlas encuentre el secreto creado por el operador de secretos externos.

    Antes de ejecutar el siguiente comando, asegúrese de que HashiCorp Vault tenga el secreto rellenado en la ruta Kv V2 secret/data/kube01/external-secrets/db-user con la password propiedad.

    $ cat external-secrets/dbuser.yaml
    apiVersion: external-secrets.io/v1beta1
    kind: ExternalSecret
    metadata:
    name: dbuser
    namespace: default
    spec:
    refreshInterval: "15s"
    secretStoreRef:
    name: vault-store
    kind: SecretStore
    target:
    name: dbuser-password
    template:
    metadata:
    labels:
    atlas.mongodb.com/type: credentials
    data:
    - secretKey: password
    remoteRef:
    key: secret/data/kube01/external-secrets/db-user
    property: password
    $ kubectl apply -f external-secrets/atlas.yaml
  5. Asegúrate de que los secretos se devuelvan como se espera cuando ejecutes los siguientes comandos:

    $ kubectl get -n mongodb-atlas-system secrets/mongodb-atlas-operator-api-key
    $ kubectl get -n default secrets/dbuser-password

Para aprovisionar secretos con Secrets Store CSI:

  1. Despliegue el recurso personalizado SecretProviderClass en el namespace mongodb-atlas-system. Debe configurar spec.secretObjects.labels en atlas.mongodb.com/type con el valor credentials para que Atlas Kubernetes Operator encuentre el secreto que Secrets Store CSI crea.

    Antes de ejecutar el siguiente comando, asegúrese de que HashiCorp Vault tenga el secreto poblado en la ruta Kv V2 secret/data/kube01/external-secrets/atlas-account con las siguientes propiedades:

    • orgId

    • publicApiKey

    • privateApiKey

    $ cat secrets-store/atlas.yaml
    apiVersion: secrets-store.csi.x-k8s.io/v1
    kind: SecretProviderClass
    metadata:
    name: atlas
    namespace: mongodb-atlas-system
    spec:
    provider: vault
    secretObjects:
    - data:
    - key: orgId
    objectName: atlas-org
    - key: publicApiKey
    objectName: atlas-pub-key
    - key: privateApiKey
    objectName: atlas-secret-key
    secretName: mongodb-atlas-operator-api-key
    type: Opaque
    labels:
    atlas.mongodb.com/type: credentials
    parameters:
    vaultAddress: https://vault.internal.io
    vaultKubernetesMountPath: k8s-kube01
    roleName: k8s-kube01-role
    objects: |
    - objectName: atlas-org
    secretPath: secret/data/kube01/secrets-store/atlas-account
    secretKey: orgId
    - objectName: atlas-pub-key
    secretPath: secret/data/kube01/secrets-store/atlas-account
    secretKey: publicApiKey
    - objectName: atlas-secret-key
    secretPath: secret/data/kube01/secrets-store/atlas-account
    secretKey: privateApiKey
    $ kubectl apply -f secrets-store/atlas.yaml

    Este comando crea el secreto mongodb-atlas-operator-api-key de Kubernetes en el namespace mongodb-atlas-system.

  2. Ejecute el siguiente comando para agregar un pod que monte los secretos requeridos:

    $ cat secrets-store/ako-patch.yaml
    template:
    spec:
    containers:
    - name: system-secret-placeholder
    image: mongodb/atlas
    command: ["sleep", "infinity"]
    volumeMounts:
    - name: secrets-store-mount
    mountPath: "/mnt/secrets-store"
    readOnly: true
    volumes:
    - name: secrets-store-mount
    csi:
    driver: secrets-store.csi.k8s.io
    readOnly: true
    volumeAttributes:
    secretProviderClass: atlas
    $ kubectl apply -f secrets-store/ako-patch.yaml
  3. Implemente el recurso personalizado SecretProviderClass que hace referencia al secreto que contiene las credenciales de usuario de la base de datos. Debe establecer spec.target.template.metadata.labels en atlas.mongodb.com/type con el valor credentials para que el operador de Kubernetes de Atlas encuentre el secreto que crea el CSI del almacén de secretos.

    Antes de ejecutar el siguiente comando, asegúrese de que HashiCorp Vault tenga el secreto rellenado en la ruta Kv V2 secret/data/kube01/external-secrets/db-user con la password propiedad.

    $ cat external-secrets/dbuser.yaml
    apiVersion: external-secrets.io/v1beta1
    kind: SecretProviderClass
    metadata:
    name: dbuser
    namespace: default
    spec:
    provider: vault
    secretObjects:
    - data:
    - key: password
    objectName: dbuser
    secretName: dbuser-password
    type: Opaque
    labels:
    atlas.mongodb.com/type: credentials
    parameters:
    vaultAddress: https://vault.internal.io
    vaultKubernetesMountPath: k8s-kube01
    roleName: k8s-kube01-role
    objects: |
    - objectName: "dbuser"
    secretPath: "secret/data/kube01/secrets-store/db-user"
    secretKey: "password"
    $ kubectl apply -f secrets-store/dbuser.yaml
  4. Ejecute el siguiente comando para crear el pod centinela secret-placeholder, el cual asegura que el driver Secrets Store CSI obtenga las credenciales de dbuser y las sincronice con Kubernetes:

    $ cat secrets-store/placeholder.yaml
    kind: Pod
    apiVersion: v1
    metadata:
    name: secret-placeholder
    spec:
    containers:
    - image: mongodb/atlas
    command: ["sleep", "infinity"]
    name: secret-placeholder
    volumeMounts:
    - name: secrets-store-mount
    mountPath: "/mnt/secrets-store"
    readOnly: true
    volumes:
    - name: secrets-store-mount
    csi:
    driver: secrets-store.csi.k8s.io
    readOnly: true
    volumeAttributes:
    secretProviderClass: dbuser
    $ kubectl apply -f secrets-store/placeholder.yaml
  5. Asegúrate de que los secretos se devuelvan como se espera cuando ejecutes los siguientes comandos:

    $ kubectl get -n mongodb-atlas-system secrets/mongodb-atlas-operator-api-key
    $ kubectl get -n default secrets/dbuser-password
4

Ahora puede implementar recursos personalizados de Atlas Kubernetes Operator. Atlas Kubernetes Operator se autentica con los secretos de Kubernetes que hacen referencia a su almacén de HashiCorp. Ajuste los timeout valores según sea necesario para sus implementaciones.

kubectl apply -f ako/project.yaml
kubectl apply -f ako/deployment.yaml
kubectl apply -f ako/user.yaml
kubectl wait --for=condition=ready atlasdeployment/serverless-deployment --timeout=10m
kubectl wait --for=condition=ready atlasdatabaseuser/user --timeout=10m

Para obtener más información sobre estos recursos personalizados, consulte Recursos personalizados.

5

Para probar tu implementación del Atlas Kubernetes Operator, ejecuta el siguiente comando:

export ATLAS_DEPLOYMENT_CONN_STR=$(kubectl get secrets/test-atlas-operator-project-test-serverless-deployment-dbuser -o jsonpath='{.data.connectionStringStandardSrv}' |base64 -d)
mongosh $(ATLAS_DEPLOYMENT_CONN_STR) --apiVersion 1 --eval "show dbs"

Atlas Kubernetes Operator devuelve una lista de tus implementaciones de la base de datos.

Volver

Atlas Access

En esta página