---
# System prepended metadata

title: Terraform 參數使用說明

---

# Terraform 參數使用說明

## 新增
1. 創建 project ID 的資料夾
2. 在 project ID 下創建對應服務的資料夾
3. 在服務的資料夾裡面建立要生成該服務的名稱檔案，例如我要建立一個 cloudSQL 服務，名稱為 cloudsql-test，檔名就是 cloudsql-test，不帶任何副檔名
4. 在對應的服務檔案內新增所有的參數以及參數值
## 更新
1. 根據要修改的 project ID、服務以及已經生成好的服務名稱去尋找在此資料夾下的檔案
2. 修改檔案的參數對應值
## 刪除
1. 確認專案上已經沒有此服務名稱的服務，直接刪除對應 project ID 以及服務下的服務名稱檔案即可

## 注意
- 下方參數說明有打 * 表示一但變更，更新時會導致該服務整個重建或是不給更新

## cloudSQL 參數說明
|參數|說明|
|---|---|
|*cloudSQL_Region|設定此 cloudSQL 所在的區域，例如新加坡："asia-southeast1"|
|*cloudSQL_Zone|設定此 cloudSQL 所在的地區，例如新加坡 a 區："asia-southeast1-a"|
|*vpc_Name|設定此 cloudSQL 對應那個 vpc 網路|
|*cloudSQL_IP_Name|設定此 cloudSQL 使用的 vpc peer 名稱|
|*cloudSQL_Version|設定此 cloudSQL 的 DB 版本|
|*cloudSQL_Specification|設定此 cloudSQL 機器規格，db-custon-cpu數量(cores)-記憶體大小(MB)，例如："db-custom-2-13312" 表示 2 核 13.3G|
|*cloudSQL_DiskSize|設定此 cloudSQL 的硬碟大小(G)，如使用後超過會自動追加|
|*cloudSQL_DiskType|設定此 cloudSQL 的硬碟類別，有 PD_HDD 以及 PD_SSD 兩種|
|cloudSQL_authorized_IP|設定此 cloudSQL 外部連線的 ip 白名單列表|
|cloudSQL_user1_name|設定此 cloudSQL 的使用者1名稱|
|cloudSQL_user1_password|設定此 cloudSQL 的使用者1密碼|

## gcs 參數說明
|參數|說明|
|---|---|
|gcs_Region|設定此 projcet 所在的區域，例如新加坡："asia-southeast1"|
|gcs_Zone|設定此 projcet 所在的地區，例如新加坡 a 區："asia-southeast1-a"|
|*gcs_Location|設定此 gcs 值區所在的區域，例如新加坡："asia-southeast1"|
|*gcs_StroageClass|設定此 gcs 值區所使用的硬碟類型|
|gcs_Domains|設定此 gcs 負載平衡接收的域名|
|*gcs_SSL_Enable|設定此 gcs 負載平衡是否啟用 https|
|*gcs_SSL|當 gcs_SSL_Google 不為 true 時，需要手動指定憑證路徑，此名稱對應 setting/secret/ 裡的資料夾|
|*gcs_SSL_Google|當為 true 時，則由 google 生成憑證並套用到 https 負載平衡，其餘則需設定 gcs_SSL 參數|

## k8s 參數說明
|參數|說明|
|---|---|
|Region|設定此 projcet 所在的區域，例如新加坡："asia-southeast1"|
|Zone|設定此 projcet 所在的地區，例如新加坡 a 區："asia-southeast1-a"|
|NodePool_Name|設定此 cluster 的 node pool 的名稱|
|NodePool_Region|設定此 cluster 的 node pool 所在的區域，例如新加坡："asia-southeast1"|
|NodePool_Min_Node_Count|設定此 cluster 的 node pool 自動擴充的最小節點數，此數值乘上 k8s_NodePool_Locations 數量即為整個 node pool 的最小數值|
|NodePool_Max_Node_Count|設定此 cluster 的 node pool 自動擴充的最大節點數，此數值乘上 k8s_NodePool_Locations 數量即為整個 node pool 的最大數值|
|NodePool_Locations|設定此 cluster 的 node pool 啟用哪些地區，例如我只想啟用新加坡-a 區，值為："asia-southeast1-a"，如果想多區，值為 "asia-southeast1-a,asia-southeast1-b,asia-southeast1-c"，如果 k8s_Cluster_Default_Node_Locations 沒有設定的地區，這邊也不能設定|
|NodePool_MachineType|設定此 cluster 的 node pool 的機器類型|
|NodePool_DiskSize|設定此 cluster 的 node pool 每個 node 的硬碟大小(G)|
|NodePool_DiskType|設定此 cluster 的 node pool 的硬碟類型，有 pd-standard、pd-ssd 以及 pd-balanced 三種，預設建議為 pd-standard|
|NodePool_ImageType|設定此 cluster 的 node pool 使用的 images 類型，實際種類請參考 https://cloud.google.com/kubernetes-engine/docs/concepts/node-images|
|NodePool_Version|設定此 cluster 的 node pool 使用的 k8s 版本|
|NodePool_auto_repair|設定此node pool異常時是否自動維修true or false |
|NodePool_auto_upgrade|設定此node pool有新版本時是否自動更新true or false |
|Cluster_Region|設定此 cluster 所在的區域，例如新加坡："asia-southeast1"|
|Cluster_Default_Node_Locations|設定此 cluster 預設啟用哪些地區，例如我只想啟用新加坡-a 區，值為："asia-southeast1-a"，如果想多區，值為 "asia-southeast1-a,asia-southeast1-b,asia-southeast1-c"，這個要注意，如果後續才開啟多區，需要等莫約 1 小時才會生效，會影響硬碟可使用的生成區域|
|Cluster_Pod_IP_Range|設定此 cluster 的 pod ip 範圍|
|Cluster_Service_IP_Range|設定此 cluster 的 service ip 範圍|
|Cluster_Master_Version|設定此 cluster 的 master 最小 k8s 版本|
|Cluster_Master_IP_Range|設定此 cluster 的控制層內部 ip 範圍|
|Network|設定此 cluster 要連結到哪個 vpc 網路|

## vpc 參數說明
|參數|說明|
|---|---|
|vpc_Region|設定此 projcet 所在的區域，例如新加坡："asia-southeast1"|
|vpc_Zone|設定此 projcet 所在的地區，例如新加坡 a 區："asia-southeast1-a"|
|Subnetwork_IP_Range|設定此 vpc 的子網路 ip 範圍|
|Subnetwork_Region|設定此 vpc 所在的區域，例如新加坡："asia-southeast1"|
|Router_Name|設定 cloudNAT 使用的 router 名稱|
|cloudNAT_IP_Count|設定 cloudNAT 閘道使用的 ip 數量|
|cloudNAT_IP_Name|設定 cloudNAT 閘道的 ip 名稱開頭|
|*cloudNAT_Name|設定 cloudNAT 的名稱|
|*cloudSQL_IP_Name|設定 cloudSQL 使用的 vpc peer 的名稱|
|*cloudSQL_IP_Range|設定 cloudSQL 使用的 vpc peer 的 ip 範圍起點，只接收 x.x.0.0，預設網路遮罩 16|
|*nginx_ingress_name|設定 nginx ingress 用的 ip 名稱部分字段|

## logging 參數說明
|參數|說明|
|---|---|
|logging_Region|設定此 projcet 所在的區域，例如新加坡："asia-southeast1"|
|logging_Zone|設定此 projcet 所在的地區，例如新加坡 a 區："asia-southeast1-a"|
