既存の Google Cloud リソースの名前別のインポートとエクスポート


このページでは、config-connector export コマンドと、そのコマンドを使用して Google Cloud リソースを Config Connector の YAML ファイルにエクスポートする方法について説明します。YAML ファイルは、その後 Config Connector にインポートできます。

config-connector export を使用して、既存の Google Cloud リソースをエクスポートできます。リソースのフルネームconfig-connector export に渡すと、config-connector によって Config Connector にインポート可能な YAML マニフェストが生成されます。

Config Connector にインポートする Google Cloud リソースが同じ名前ですでに存在する場合は、そのリソースが Config Connector の管理下に置かれ、指定した YAML で管理されます。この場合、指定した YAML に不変フィールドの変更が含まれているか、構成にその他の問題がある場合を除いて、Config Connector はエラーを生成しません。

始める前に

始める前に、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. kubectl describe で Config Connector がリソースを管理していることを確認します。

    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-token: Google Cloud ID としての OAUTH2 トークン。デフォルトでは、config-connectorGoogle Cloud CLI のデフォルト認証情報を使用します。
  • --iam-format: エクスポートにより出力される IAM リソースの種類を指定します。指定できる値は、policy(デフォルト)、policymembernone のいずれかです。
  • --filter-deleted-iam-members: 削除された IAM プリンシパルを除外するかどうかを指定します。truefalse を指定できます。デフォルト値は false です。
  • --verbose: 詳細ロギングを有効にします。

次のステップ