按名称导入和导出现有 Google Cloud 资源


本页面介绍了 config-connector export 命令以及如何使用它将 Google Cloud 资源导出到 Config Connector YAML 文件,您可以稍后将其导入到 Config Connector。

您可以使用 config-connector export 导出现有的 Google Cloud 资源。在您将资源的全名传递给 config-connector export 后,config-connector 会生成一个 YAML 清单,您可以将其导入 Config Connector。

如果已存在同名的要导入到 Config Connector 的 Google Cloud 资源,则 Config Connector 将控制该资源并使用您提供的 YAML 对它进行管理。Config Connector 在这种情况下不会抛出错误,除非提供的 YAML 包含不可变字段的更改或配置中存在其他问题。

准备工作

开始之前,请先安装 config-connector 工具

导出示例

在本示例中,您将使用 Google Cloud CLI 创建 PubSubTopic,然后将其导入到 Config Connector。

  1. 创建一个名为 sample-topic 的主题:

    gcloud pubsub topics create sample-topic
    

    您将收到该主题已创建的确认信息。

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

    在输出中,PROJECT_ID 已替换为您的 Google Cloud 项目。

  2. 使用以下命令获取主题的 Google Cloud 资源 ID 并将其保存到环境变量中:

    TOPIC_RESOURCE_ID=$(gcloud pubsub topics describe sample-topic --format "value(name)")
    
  3. 为了识别资源,config-connector export 会使用完整资源名称。使用以下命令将主题的资源名称保存到环境变量:

    TOPIC_RESOURCE_NAME="//pubsub.googleapis.com/${TOPIC_RESOURCE_ID}"
    
  4. 通过运行以下命令使用 config-connector export 来导出主题:

    config-connector export ${TOPIC_RESOURCE_NAME}
    

    输出为 YAML 格式的 Config Connector 资源。

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

    在输出中,PROJECT_ID 已替换为您的 Google Cloud 项目。

  5. 您可以使用 kubectl apply -f - 将此资源传递到 Config Connector。要直接传递资源,请运行以下命令:

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

    CC_NAMESPACE 替换为 Config Connector 从其管理资源的命名空间。

    Config Connector 获取资源

  6. 确认 Config Connector 正在使用 kubectl describe 管理资源:

    kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
    

    CC_NAMESPACE 替换为 Config Connector 从其管理资源的命名空间。

支持的资源

您可以运行以下命令,输出 config-connector 工具的资源列表以及资源名称格式:

config-connector print-resources

命令行选项

config-connector export 命令具有以下选项:

config-connector export RESOURCE_NAME \
    --output FILENAME \
    --oauth2-token TOKEN \
    --iam-format [policy | policymember | none] \
    --filter-deleted-iam-members [true | false] \
    --verbose
  • --output:一个可选输出文件路径,用于停用标准输出。如果是文件,结果将包含所有命令输出;如果是目录,则目录包含输出中每个资源对应的新文件。
  • --oauth2-tokenOAUTH2 令牌,用作 Google Cloud 身份。默认情况下,config-connector 会使用 Google Cloud CLI 默认凭据
  • --iam-format:指定导出的 IAM 资源输出的种类。选项包括 policy(默认)、policymembernone
  • --filter-deleted-iam-members:指定是否滤除已删除的 IAM 主体。选项为 truefalse。默认值为 false
  • --verbose:启用详细日志记录。

后续步骤