針對 Red Hat OpenShift on IBM Cloud 使用 Terraform 來指派叢集存取權
IBM Cloud® 上的 Terraform 可實現 IBM Cloud 服務的可預測性和一致性配置,因此您可以按照基於基礎設施即代碼 ( IaC ) 的原則快速建立複雜的多層雲環境。 與使用 IBM Cloud CLI 或 API 和 SDK 相似,您可以使用 HashiCorp Configuration Language (HCL) 自動配置、更新和刪除 Red Hat OpenShift on IBM Cloud 資源。
正在尋找受管理的 Terraform on IBM Cloud® 解決方案? 嘗試 IBM Cloud® Schematics. 透過 Schematics,您可以使用熟悉的 Terraform 指令碼語言,但不必擔心設定和維護 Terraform 指令行或 IBM Cloud® Provider 外掛程式。Schematics 也提供預先定義的 Terraform 模版,您可以從 IBM Cloud® 目錄中輕鬆安裝。
使用 Terraform 建立 Red Hat OpenShift 叢集
在使用 Terraform 指派群集存取權之前,請遵循步驟使用 Terraform 建立 Red Hat OpenShift 群集。 如果您已有叢集,請參閱 指派 IAM 使用者存取權。
開始之前,請確定您具有 必要存取權,以建立並使用 Red Hat OpenShift on IBM Cloud 資源。
-
遵循 Terraform on IBM Cloud® 入門指導教學,以安裝 Terraform CLI 並配置 Terraform 的 IBM Cloud® 提供者外掛程式。 外掛程式會摘要用來佈建、更新或刪除 Red Hat OpenShift 服務實例及資源的 IBM Cloud® API。
-
遵循指導教學以 使用 Terraform 建立單一及多區域叢集。
-
選用: 使用 Terraform 來配置 Red Hat OpenShift 叢集 的 IAM 使用者存取原則。
將 IAM 使用者存取權指派給 Red Hat OpenShift 叢集
您可以使用 Terraform 為 IBM Cloud 帳戶中的 Red Hat OpenShift 集群指定 IAM 使用者存取權限。 有關在 IAM 策略中使用 Terraform 的詳細資訊,請參閱 IBM Cloud 提供者 Terraform 文件。
-
在 Terraform 目錄中,建立名為
iam.tf的配置檔。 在iam.tf檔案中,使用 HashiCorp 配置語言 (HCL),新增配置參數以建立 Red Hat OpenShift 叢集的 IAM 使用者存取原則。 下列範例配置會建立ibm_iam_user_policy,然後將原則指派給指定的叢集。 如需相關資訊,請參閱 Terraform 文件。resource "ibm_iam_user_policy" "cluster" { ibm_id = "<ibm_id>" roles = ["<access_role_1>, <access_role_2>"] resources { service = "containers-kubernetes" resource_instance_id = "<cluster_name>" } }使用 Terraform 配置 IAM 存取原則 資源 說明 ibm_id您要為其建立 IAM 存取原則之使用者的 IBM Cloud ID 或電子郵件位址。 roles您要指派給使用者的存取角色清單 (以逗點區隔)。 service存取政策適用的服務類型。 針對 Red Hat OpenShift 叢集輸入 "openshift"。 如需適用服務類型的完整清單,請執行ibmcloud oc catalog service-marketplace。resource_instance_id叢集的 ID 或名稱。 配置檔案範例:
resource "ibm_iam_user_policy" "test_policy" { ibm_id = "ibm_id@ibm.com" roles = ["Viewer", "Editor", "Administrator"] resources { service = "containers-kubernetes" resource_instance_id = "my-cluster" } } -
起始設定 Terraform CLI。
terraform init -
建立 Terraform 執行計劃並檢閱輸出。 Terraform 執行計劃彙總執行以在帳戶中建立 Red Hat OpenShift 叢集的所有動作。 請注意輸出的
Plan區段。 範例輸出指出Plan: 1 to add, 0 to change, 0 to destroy,因為配置檔會建立一個 IAM 使用者存取原則。Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_iam_user_policy.test_policy will be created + resource "ibm_iam_user_policy" "test_policy" { + account_management = false + ibm_id = "ibm_id@ibm.com" + id = (known after apply) + roles = [ + "Viewer", + "Editor", + "Administrator", ] + resources { + service = "containers-kubernetes" } } Plan: 1 to add, 0 to change, 0 to destroy. -
套用配置檔以建立存取原則。 可能需要幾秒鐘才能完成。 在輸出中,請在使用者的 IBM 電子郵件之後記下原則 ID 號碼。
terraform apply輸出範例:
ibm_iam_user_policy.test_policy: Creating... ibm_iam_user_policy.test_policy: Creation complete after 2s [id=ibm_id@ibm.com/f81b161f-e1db-4084-8b28-cfcbe88fec72] -
執行指令並搜尋您先前記下的原則 ID,以驗證已順利建立 IAM 存取原則。
ibmcloud iam user-policies ibm_id@ibm.com輸出範例:
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster