フォルダを対象にしたリソース
Config Connector は、プロジェクト、フォルダ、組織レベルでリソースを管理できます。Config Connector は、リソースを作成する場所を決定するために、リソース仕様でスコープを定義するフィールドリを確認し、見つからない場合は、スコープを定義するアノテーションを確認します。
folderRef
フィールドを指定する
フォルダ スコープの Config Connector リソースの大半は、その CRD 仕様で folderRef
という名前のフィールドをサポートしています。このフィールドを使用して、リソースを作成する Google Cloud フォルダを指定します。
Google Cloud フォルダも Folder CRD を介して同じクラスタで管理されている場合は、フォルダを Kubernetes リソース リファレンスとして指定できます。
...
spec:
folderRef:
name: FOLDER_RESOURCE_NAME
namespace: FOLDER_RESOURCE_NAMESPACE
...
この方法では、1 回の適用操作で、Config Connector を使用して、子リソースを含む Google Cloud フォルダを作成できます。Config Connector フォルダ リソースがフォルダ スコープのリソースと同じ Kubernetes 名前空間にある場合、その名前空間フィールドは省略可能です。
Google Cloud フォルダが同じクラスタで Kubernetes リソースとして管理されていない場合は、external
フィールドを使用してフォルダ ID を直接指定できます。値の厳密な形式は、リソースタイプによって異なる場合があります。最も一般的な 2 つの形式は「FOLDER_ID」と「folders/FOLDER_ID」です。「FOLDER_ID」の例を以下に示します。
...
spec:
folderRef:
external: "FOLDER_ID"
...
リソース構成にアノテーションを付ける
Config Connector リソースがフォルダ スコープとなっているが folderRef
フィールドをサポートしていない場合は、folder-id
アノテーションを使用してフォルダ ID をリソース構成に設定できます。
...
metadata:
annotations:
cnrm.cloud.google.com/folder-id: FOLDER_ID
...
リソースの YAML にこのアノテーションが含まれている例を次に示します。
apiVersion: foo.cnrm.cloud.google.com/v1beta1
kind: FooBar
metadata:
annotations:
cnrm.cloud.google.com/folder-id: FOLDER_ID
name: foobarname
名前空間構成にアノテーションを付ける
Kubernetes 名前空間にアノテーションを付けることにより、新しく作成されるリソースのデフォルト フォルダ ID を設定できます。名前空間内のいずれかのリソースに、このアノテーションが独自の構成で明示的に設定されている場合、リソースレベルのアノテーションは名前空間レベルのアノテーションを上書きします。
コマンドラインを使用して名前空間にアノテーションを付けるには、次のコマンドを実行します。
kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/folder-id=FOLDER_ID
以下を置き換えます。
NAMESPACE_NAME
: 名前空間名FOLDER_ID
: Google Cloud フォルダ ID
または、アノテーションを含む YAML マニフェストを適用することもできます。以下の YAML をファイルにコピーします。
apiVersion: v1
kind: Namespace
metadata:
annotations:
cnrm.cloud.google.com/folder-id: FOLDER_ID
name: NAMESPACE_NAME
以下を置き換えます。
FOLDER_ID
: Google Cloud フォルダ IDNAMESPACE_NAME
: 名前空間名
ファイルを作成したら、それをクラスタに適用します。