폴더 범위 리소스


구성 커넥터는 프로젝트, 폴더 또는 조직 수준에서 리소스를 관리할 수 있습니다. 구성 커넥터는 리소스를 생성할 위치를 결정하기 위해 먼저 리소스 사양에서 범위 정의 필드를 확인한 후 이를 찾을 수 없는 경우범위 정의 주석을 확인합니다.

folderRef 필드 지정

대부분의 폴더 범위 구성 커넥터 리소스는 CRD 사양에서 folderRef라는 필드를 지원합니다. 이 필드를 사용하여 리소스를 만들 Google Cloud 폴더를 지정합니다.

Google Cloud 폴더도 폴더 CRD를 통해 동일한 클러스터에서 관리되는 경우 폴더를 Kubernetes 리소스 참조로 지정할 수 있습니다.

...
spec:
  folderRef:
    name: FOLDER_RESOURCE_NAME
    namespace: FOLDER_RESOURCE_NAMESPACE
...

이 접근 방식을 사용하면 구성 커넥터를 사용하고 단일 적용 작업으로 하위 리소스를 사용하여 Google Cloud 폴더를 만들 수 있습니다. 구성 커넥터 폴더 리소스가 폴더 범위 리소스와 동일한 Kubernetes 네임스페이스에 있는 경우 네임스페이스 필드는 선택사항입니다.

Google Cloud 폴더가 동일한 클러스터에서 Kubernetes 리소스로 관리되지 않는 경우 external 필드를 사용하여 폴더 ID를 직접 지정할 수 있습니다. 값의 정확한 형식은 리소스 유형에 따라 다를 수 있습니다. 가장 일반적인 두 가지 형식은 'FOLDER_ID' 및 'folders/FOLDER_ID'입니다. 아래에서 'FOLDER_ID'의 예를 참조하세요.

...
spec:
  folderRef:
    external: "FOLDER_ID"
...

리소스 구성에 주석 달기

구성 커넥터 리소스가 폴더 범위이지만 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 폴더 ID
  • NAMESPACE_NAME: 네임스페이스 이름

파일을 만든 후 클러스터에 적용합니다.