Importa y exporta recursos existentes de Google Cloud por nombre

En esta página, se describe el comando config-connector export y cómo usarlo para exportar recursos de Google Cloud a archivos YAML de Config Connector que puedes importar luego a Config Connector.

Con config-connector export, puedes exportar un recurso existente de Google Cloud. Cuando pasas el nombre completo de un recurso a config-connector export, config-connector genera un manifiesto YAML que puedes importar a Config Connector.

Si el recurso de Google Cloud que deseas importar a Config Connector ya existe con el mismo nombre, Config Connector toma el control del recurso y lo administra con el YAML que proporcionas. Config Connector no muestra un error en esta situación, a menos que el YAML proporcionado contenga cambios en los campos inmutables o tenga otros problemas en la configuración.

Antes de comenzar

Antes de comenzar, instala la herramienta config-connector.

Exportando ejemplo

En este ejemplo, se crea un PubSubTopic con la herramienta de línea de comandos de gcloud y, luego, se importa en Config Connector.

  1. Crea un tema llamado sample-topic:

    gcloud pubsub topics create sample-topic
    

    Recibirás la confirmación de que se creó el tema.

    Created topic [projects/PROJECT_ID/topics/sample-topic].
    

    En el resultado, PROJECT_ID se reemplaza por tu proyecto de Google Cloud.

  2. Obtén el ID de recurso de Google Cloud del tema y guárdalo en una variable de entorno con el siguiente comando:

    TOPIC_RESOURCE_ID=$(gcloud pubsub topics describe sample-topic --format "value(name)")
    
  3. Para identificar un recurso, config-connector export usa el nombre completo del recurso. Guarda el nombre del recurso del tema en una variable de entorno con el siguiente comando:

    TOPIC_RESOURCE_NAME="//pubsub.googleapis.com/${TOPIC_RESOURCE_ID}"
    
  4. Exporta el tema con config-connector export mediante la ejecución del siguiente comando:

    config-connector export ${TOPIC_RESOURCE_NAME}
    

    El resultado es un recurso Config Connector en formato YAML.

    ---
    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubTopic
    metadata:
      annotations:
        cnrm.cloud.google.com/project-id: PROJECT_ID
      name: sample-topic
    ...
    

    En el resultado, PROJECT_ID se reemplaza por tu proyecto de Google Cloud.

  5. Puedes pasar este recurso a Config Connector con kubectl apply -f -. Para pasar el recurso de forma directa, ejecuta el siguiente comando:

    config-connector export ${TOPIC_RESOURCE_NAME} | kubectl apply -f -  --namespace CC_NAMESPACE
    

    Reemplaza CC_NAMESPACE con el espacio de nombres que administra Config Connector.

    Config Connector adquiere el recurso.

  6. Confirma que Config Connector administre el recurso con kubectl describe:

    kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
    

    Reemplaza CC_NAMESPACE con el espacio de nombres que administra Config Connector.

Opciones de línea de comandos

El comando config-connector export tiene las siguientes opciones:

config-connector export RESOURCE_NAME \
    --output FILENAME \
    --oauth2-token TOKEN \
    --iam-format [policy | policymember | none] \
    --filter-deleted-iam-members [true | false] \
    --verbose
  • --output: Es una ruta de archivo de salida opcional que inhabilita el resultado estándar. Cuando un archivo está en curso, el resultado contiene todos los resultados del comando. cuando un directorio contiene un archivo nuevo para cada recurso en el resultado.
  • --oauth2-token: un token OAUTH2 como la identidad de Google Cloud. De forma predeterminada, config-connector usa las credenciales predeterminadas del SDK de Cloud.
  • --iam-format: especifica el tipo de resultado de los recursos de IAM con tu exportación. Las opciones son policy (predeterminado), policymember o none.
  • --filter-deleted-iam-members: Especifica si se deben filtrar las principales de IAM borradas. Las opciones son true o false. El valor predeterminado es false.
  • --verbose: Habilita el registro detallado.

¿Qué sigue?