專案範圍內的資源
Config Connector 可在專案、資料夾或機構層級管理資源。Config Connector 會先檢查資源規格中的範圍定義欄位,如果找不到,就會檢查範圍定義註解。
指定 projectRef
欄位
大多數專案範圍的設定連接器資源,在其 CRD 規格中支援名為 projectRef
的欄位。請使用這個欄位指定要建立資源的 Google Cloud 專案。
如果 Google Cloud 專案也與專案 CRD 在同一個叢集中管理,您可以將專案指定為 Kubernetes 資源參照:
...
spec:
projectRef:
name: PROJECT_RESOURCE_NAME
namespace: PROJECT_RESOURCE_NAMESPACE
...
這種做法可讓您使用 Config Connector,並在單一套用作業中建立 Google Cloud專案及其子項資源。如果專案 Kubernetes 資源與專案範圍資源位於相同的 Kubernetes 命名空間,則可選擇不填入命名空間欄位。
如果 Google Cloud 專案並未以 Kubernetes 資源的形式在同一個叢集中進行管理,您可以使用 external
欄位直接指定專案 ID。值的確切格式可能會因資源類型而異。兩種最常見的格式為「PROJECT_ID」和「projects/PROJECT_ID」。請參考以下「projects/PROJECT_ID」的範例:
...
spec:
projectRef:
external: "projects/PROJECT_ID"
...
為資源設定加註
如果 Config Connector 資源的範圍為專案,但不支援 projectRef
欄位,您可以使用 project-id
註解,將專案 ID 設為資源設定:
...
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
...
以下是 FooBar
資源的 YAML 內容,其中包含此註解:
apiVersion: foo.cnrm.cloud.google.com/v1beta1
kind: FooBar
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
name: foobarname
註解命名空間設定
您可以為 Kubernetes 命名空間加上註解,為新建立的資源設定預設專案 ID。如果命名空間中的任何資源在其自身設定中明確設定此註解,資源層級註解會覆寫命名空間層級註解。
如要使用指令列為命名空間加註,請執行下列指令:
kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/project-id=PROJECT_ID
更改下列內容:
NAMESPACE_NAME
:您的命名空間名稱PROJECT_ID
:您的 Google Cloud 專案 ID
或者,您也可以套用包含註解的 YAML 資訊清單。將下列 YAML 複製到檔案中:
apiVersion: v1
kind: Namespace
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
name: NAMESPACE_NAME
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案 IDNAMESPACE_NAME
:您的命名空間名稱
建立檔案後,請將檔案套用至叢集。
使用命名空間名稱做為專案 ID
如果資源和命名空間都未指定專案 ID,Config Connector 會使用命名空間名稱做為專案 ID。Config Connector 支援這種預設行為,但我們不建議使用,因為專案 ID 的隱含預設值可能會造成混淆。