Я могу использовать terraform
для развертывания кластера Kubernetes
в GKE
.
Затем я настроил провайдера для Kubernetes
следующим образом:
provider "kubernetes" {
host = "${data.google_container_cluster.primary.endpoint}"
client_certificate = "${base64decode(data.google_container_cluster.primary.master_auth.0.client_certificate)}"
client_key = "${base64decode(data.google_container_cluster.primary.master_auth.0.client_key)}"
cluster_ca_certificate = "${base64decode(data.google_container_cluster.primary.master_auth.0.cluster_ca_certificate)}"
}
По умолчанию terraform
взаимодействует с Kubernetes
с пользователем client
, который не имеет полномочий для создания (например) развертываний. Таким образом, я получаю эту ошибку, когда пытаюсь применить свои изменения с terraform
:
Error: Error applying plan:
1 error(s) occurred:
* kubernetes_deployment.foo: 1 error(s) occurred:
* kubernetes_deployment.foo: Failed to create deployment: deployments.apps is forbidden: User "client" cannot create deployments.apps in the namespace "default"
Я не знаю, как мне действовать сейчас, как я должен дать эти разрешения пользователю client
?
Если к провайдеру добавить следующие поля, я могу выполнить развертывание, хотя после прочтения документации кажется, что эти учетные данные используются для HTTP
связи с кластером, что небезопасно, если это делается через Интернет. .
username = "${data.google_container_cluster.primary.master_auth.0.username}"
password = "${data.google_container_cluster.primary.master_auth.0.password}"
Есть ли другой лучший способ сделать это?