Работа на 2 разных компьютерах с Windows 10, где «terraform apply» работает на одном компьютере, но не на другом. Прежде чем перейти на второй компьютер, я полностью удалил инфраструктуру на gcp и убедился, что скопировал только файл tf + необходимый json. (без файлов состояния и т. д.) Поскольку я готовлю это к конвейеру, я хочу иметь чистую среду, чтобы начать с
codesnippit (полный сценарий в конце, далее ниже):
provider "kubernetes" {
host = "https://${google_container_cluster.primary.endpoint}"
username = "${var.username}"
password = "${var.password}"
client_certificate = "${base64decode(google_container_cluster.primary.master_auth[0].client_certificate)}"
client_key = "${base64decode(google_container_cluster.primary.master_auth[0].client_key)}"
cluster_ca_certificate = "${base64decode(google_container_cluster.primary.master_auth[0].cluster_ca_certificate)}"
version = "~> 1.7"
}
# Namespace
resource "kubernetes_namespace" "testspace" {
metadata {
annotations = {
name = "testspace"
}
name = "testspace"
}
}
По всем примерам, которые я вижу, это должно работать, и это работает на моем ноутбуке, но на моей второй машине я получаю следующую ошибку:
Error: Failed to configure: username/password or bearer token may be set, but not both
on Deploy_Test.tf line 1, in provider "kubernetes":
1: provider "kubernetes" {
Если я удаляю имя пользователя и пароль, ошибка исчезает, но я не могу создать пространство имен, потому что у меня нет авторизации? ошибка гласит:
Error: namespaces is forbidden: User "client" cannot create namespaces at the cluster scope
и теперь я немного теряюсь: этот код отлично работает на одном компьютере, но не на другом, и я не могу понять, почему. При повторном развертывании этого с ПК один раз, после запуска в новой чистой папке terraform
Надеюсь, у кого-то есть идеи, где искать?
Попробовал следующее:
обновлено до 0.12.1 - без разницы.
понижен до 0,11 - без разницы.
Перепробовал все разные комбинации использования сертификата или имени пользователя / pw combo
provider "google" {
credentials = file("account.json")
project = var.project
region = var.region
version = "~> 2.7"
}
resource "google_container_cluster" "primary" {
name = "${var.name}-cluster"
location = var.region
initial_node_count = 1
master_auth {
username = var.username
password = var.password
/*
client_certificate_config {
issue_client_certificate = true
}
*/
}
node_version = "1.11.10-gke.4"
min_master_version = "1.11.10-gke.4"
node_config {
preemptible = true
machine_type = "n1-standard-1"
metadata = {
disable-legacy-endpoints = "true"
}
oauth_scopes = [
"https://www.googleapis.com/auth/compute",
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring",
]
}
}
provider "kubernetes" {
host = "https://${google_container_cluster.primary.endpoint}"
username = "${var.username}"
password = "${var.password}"
client_certificate = "${base64decode(google_container_cluster.primary.master_auth[0].client_certificate)}"
client_key = "${base64decode(google_container_cluster.primary.master_auth[0].client_key)}"
cluster_ca_certificate = "${base64decode(google_container_cluster.primary.master_auth[0].cluster_ca_certificate)}"
version = "~> 1.7"
}
# Namespace
resource "kubernetes_namespace" "testspace" {
metadata {
annotations = {
name = "testspace"
}
name = "testspace"
}
}