我已使用Terraform设置了Azure Kubernetes群集,并且运行良好。
我尝试使用 Helm 部署软件包,但无法部署低于错误的级别。
Error: chart "stable/nginx-ingress" not found in https://kubernetes-charts.storage.googleapis.com repository
注意:我也尝试了其他软件包,但无法使用下面的“ Terraform Resource”进行部署的是Terraform代码。我使用helm命令尝试了本地helm程序包,它可以工作。我认为Terraform掌舵资源存在问题。 “ nginx”是一个示例软件包,无法使用Terraform部署任何软件包。
resource "azurerm_kubernetes_cluster" "k8s" {
name = var.aks_cluster_name
location = var.location
resource_group_name = var.resource_group_name
dns_prefix = var.aks_dns_prefix
kubernetes_version = "1.19.0"
# private_cluster_enabled = true
linux_profile {
admin_username = var.aks_admin_username
ssh_key {
key_data = var.aks_ssh_public_key
}
}
default_node_pool {
name = var.aks_node_pool_name
enable_auto_scaling = true
node_count = var.aks_agent_count
min_count = var.aks_min_agent_count
max_count = var.aks_max_agent_count
vm_size = var.aks_node_pool_vm_size
}
service_principal {
client_id = var.client_id
client_secret = var.client_secret
}
# tags = data.azurerm_resource_group.rg.tags
}
provider "helm" {
version = "1.3.2"
kubernetes {
host = azurerm_kubernetes_cluster.k8s.kube_config[0].host
client_key = base64decode(azurerm_kubernetes_cluster.k8s.kube_config[0].client_key)
client_certificate = base64decode(azurerm_kubernetes_cluster.k8s.kube_config[0].client_certificate)
cluster_ca_certificate = base64decode(azurerm_kubernetes_cluster.k8s.kube_config[0].cluster_ca_certificate)
load_config_file = false
}
}
resource "helm_release" "nginx-ingress" {
name = "nginx-ingress-internal"
repository = "https://kubernetes-charts.storage.googleapis.com"
chart = "stable/nginx-ingress"
set {
name = "rbac.create"
value = "true"
}
}
答案 0 :(得分:1)
您应该跳过图表名称中的stable
:这是一个存储库名称,但是您没有定义头盔存储库。您的resource
应该如下所示:
resource "helm_release" "nginx-ingress" {
name = "nginx-ingress-internal"
repository = "https://kubernetes-charts.storage.googleapis.com"
chart = "nginx-ingress"
...
}
等效于helm命令:
helm install nginx-ingress-internal nginx-ingress --repo https://kubernetes-charts.storage.googleapis.com
或者,您也可以使用repository_config_path来定义存储库。