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 en archivos YAML de Config Connector, que luego puedes importar 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 arroja un error en esta situación, a menos que el YAML proporcionado contenga cambios en campos inmutables o tenga otros problemas en la configuración.

Antes de comenzar

Antes de comenzar, instala la herramienta de config-connector.

Ejemplo de exportación

En este ejemplo, se crea un PubSubTopic con Google Cloud CLI y, luego, se importa a Config Connector.

  1. Crea un tema con el nombre 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 el 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 el 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.

Recursos admitidos

Puedes imprimir la lista de recursos para la herramienta config-connector junto con los formatos de nombre de recurso ejecutando el siguiente comando:

config-connector print-resources

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 la salida estándar. Cuando se trata de un archivo, el resultado contiene todo el resultado del comando; cuando se trata de un directorio, este 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 de Google Cloud CLI.
  • --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?