terraform-provider-scaleway: Accessing Kubernetes resources after cluster creation fails with "no such host"
Creating a fresh cluster and then accessing it via the Kubernetes provider fails with a “no such host” error. It seems like there needs to be some check in place to make sure the cluster is fully created and its API is accessible.
Example:
resource "scaleway_k8s_cluster_beta" "example" {
name = var.kubernetes_cluster_name
version = "1.18.3"
cni = "cilium"
enable_dashboard = true
}
resource "scaleway_k8s_pool_beta" "default" {
cluster_id = scaleway_k8s_cluster_beta.example.id
name = "default"
node_type = "DEV1-M"
size = 1
}
provider "kubernetes" {
load_config_file = "false"
host = scaleway_k8s_cluster_beta.example.kubeconfig[0].host
token = scaleway_k8s_cluster_beta.example.kubeconfig[0].token
cluster_ca_certificate = base64decode(
scaleway_k8s_cluster_beta.example.kubeconfig[0].cluster_ca_certificate
)
version = "~> 1.11"
}
resource "kubernetes_namespace" "cert_manager" {
metadata {
name = "cert-manager"
}
}
Result:
Terraform v0.12.26
Initializing plugins and modules...
2020/06/14 03:38:12 [DEBUG] Using modified User-Agent: Terraform/0.12.26 TFC/ad37d0d407
scaleway_k8s_cluster_beta.example: Creating...
scaleway_k8s_cluster_beta.example: Creation complete after 7s [id=fr-par/a1648e5d-3b7c-4845-a7a5-42d40874ede7]
scaleway_k8s_pool_beta.default: Creating...
kubernetes_service.example: Creating...
kubernetes_namespace.cert_manager: Creating...
kubernetes_secret.gitlab: Creating...
kubernetes_ingress.example: Creating...
kubernetes_namespace.example: Creating...
kubernetes_namespace.kong: Creating...
kubernetes_namespace.metallb: Creating...
kubernetes_namespace.wave: Creating...
kubernetes_deployment.example: Creating...
helm_release.cert_manager: Creating...
helm_release.wave: Creating...
scaleway_k8s_pool_beta.default: Still creating... [10s elapsed]
scaleway_k8s_pool_beta.default: Still creating... [20s elapsed]
scaleway_k8s_pool_beta.default: Still creating... [30s elapsed]
scaleway_k8s_pool_beta.default: Still creating... [40s elapsed]
scaleway_k8s_pool_beta.default: Still creating... [50s elapsed]
scaleway_k8s_pool_beta.default: Creation complete after 56s [id=fr-par/f061fbbb-b29e-41cf-8d80-9bf45520d881]
kubernetes_config_map.metallb: Creating...
Error: Post "https://a1648e5d-3b7c-4845-a7a5-42d40874ede7.api.k8s.fr-par.scw.cloud:6443/api/v1/namespaces": dial tcp: lookup a1648e5d-3b7c-4845-a7a5-42d40874ede7.api.k8s.fr-par.scw.cloud on 127.0.0.53:53: no such host
on cert-manager.tf line 1, in resource "kubernetes_namespace" "cert_manager":
1: resource "kubernetes_namespace" "cert_manager" {
Terraform Version
Terraform v0.12.26
- provider.kubernetes v1.11.3
- provider.scaleway v1.15.0
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 22 (11 by maintainers)
Another solution not much cleaner could be
The null_resource can be used as an intermediate dependency and allow waiting for other resources.