terraform-provider-kubernetes-alpha
terraform-provider-kubernetes-alpha copied to clipboard
inconsistent map element types on postgresql.acid.zalan.do
Terraform, Provider, Kubernetes versions
Terraform version: v0.14.8
Provider version: 0.3.1
Kubernetes version: v1.20.4
Affected Resource(s)
- kubernetes_manifest
Terraform Configuration Files
resource "kubernetes_namespace" "postgres" {
metadata {
name = "postgres"
}
}
data "http" "postgres_operator_crd" {
url = "https://raw.githubusercontent.com/flant/postgres-operator/master/charts/postgres-operator/values-crd.yaml"
}
resource "helm_release" "postgres_operator" {
name = "postgres-operator"
repository = "git+https://github.com/flant/postgres-operator@charts?ref=master&sparse=1"
chart = "postgres-operator"
namespace = kubernetes_namespace.postgres.metadata[0].name
wait = true
values = [
data.http.postgres_operator_crd.body
]
}
resource "kubernetes_manifest" "minimal_postgres_manifest" {
depends_on = [helm_release.postgres_operator]
provider = kubernetes-alpha
manifest = {
apiVersion = "acid.zalan.do/v1"
kind = "postgresql"
metadata = {
name = "acid-minimal-cluster"
namespace = kubernetes_namespace.postgres.metadata[0].name
}
spec = {
teamId = "acid"
volume = {
size = "1Gi"
}
numberOfInstances = 2
users = {
zalando = [
"superuser",
"createdb"
]
foo_user = [] // <= adding second user (ever empty) cause crash
}
databases = {
foo = "zalando"
}
postgresql = {
version = "12"
}
}
}
}
Panic Output
https://gist.github.com/a0s/c422871f0cbb4fdffaabb56ad3dfad65
Steps to Reproduce
-
terraform apply
Expected Behavior
Should create postgresql
resource
Actual Behavior
Crash
Important Factoids
I am trying to run this example. The same kubectl example works fine
cat <<EOF | kubectl apply -f -
apiVersion: "acid.zalan.do/v1"
kind: postgresql
metadata:
name: acid-minimal-cluster
namespace: postgres
spec:
teamId: "acid"
volume:
size: 1Gi
numberOfInstances: 2
users:
# database owner
zalando:
- superuser
- createdb
# role for application foo
foo_user: []
#databases: name->owner
databases:
foo: zalando
postgresql:
version: "12"
EOF
postgresql.acid.zalan.do/acid-minimal-cluster created
References
Community Note
I can reproduce this as well. Seems to be an issue with the translation of the CRD openApiV3
schema into the OpenAPI v2 that the API server offers to the provider. I'll have to clarify with API machinery maintainers exactly why this is happening.
In the mean time, it seems you can work around the issue by always having the same number of roles for all users in the list. This isn't going to always work, but here's how I fixed it for your example:
users = {
zalando = [
"superuser",
"createdb"
]
foo_user = [
"superuser",
"SUPERUSER"
]
}
This is a terrible workaround. I will follow up with the Kubernetes API maintainers to figure out what can be done about the OpenAPI issue.
@alexsomesan Thank you for this workaround, it really better than nothing!
I found another repro for what I believe is essentially the same problem. I was able to reduce it to two containers
in a Deployment
having different livenessProbe
s (one with, one without, or both with different types of livenessProbe
will trigger the crash)
apiVersion: apps/v1
kind: Deployment
metadata:
name: "${name}"
namespace: "${namespace}"
labels:
app: "${name}"
spec:
replicas: 1
selector:
matchLabels:
app: "${name}"
template:
metadata:
labels:
app: "${name}"
spec:
containers:
- name: "php"
image: "${php_image}"
- name: "nginx"
image: "${nginx_image}"
livenessProbe:
httpGet:
path: "/nginx_status"
port: "http"
initialDelaySeconds: 3
periodSeconds: 10
Throws:
panic: inconsistent list element types (cty.Object(map[string]cty.Type{"args":cty.List(cty.String), "command":cty.List(cty.String), "env":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String, "valueFrom":cty.Object(map[string]cty.Type{"configMapKeyRef":cty.Object(map[string]cty.Type{"key":cty.String, "name":cty.String, "optional":cty.Bool}), "fieldRef":cty.Object(map[string]cty.Type{"apiVersion":cty.String, "fieldPath":cty.String}), "resourceFieldRef":cty.Object(map[string]cty.Type{"containerName":cty.String, "divisor":cty.String, "resource":cty.String}), "secretKeyRef":cty.Object(map[string]cty.Type{"key":cty.String, "name":cty.String, "optional":cty.Bool})})})), "envFrom":cty.List(cty.Object(map[string]cty.Type{"configMapRef":cty.Object(map[string]cty.Type{"name":cty.String, "optional":cty.Bool}), "prefix":cty.String, "secretRef":cty.Object(map[string]cty.Type{"name":cty.String, "optional":cty.Bool})})), "image":cty.String, "imagePullPolicy":cty.String, "lifecycle":cty.Object(map[string]cty.Type{"postStart":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.DynamicPseudoType, "scheme":cty.String}), "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType})}), "preStop":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.DynamicPseudoType, "scheme":cty.String}), "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType})})}), "livenessProbe":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "failureThreshold":cty.Number, "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.DynamicPseudoType, "scheme":cty.String}), "initialDelaySeconds":cty.Number, "periodSeconds":cty.Number, "successThreshold":cty.Number, "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType}), "timeoutSeconds":cty.Number}), "name":cty.String, "ports":cty.List(cty.Object(map[string]cty.Type{"containerPort":cty.Number, "hostIP":cty.String, "hostPort":cty.Number, "name":cty.String, "protocol":cty.String})), "readinessProbe":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "failureThreshold":cty.Number, "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.DynamicPseudoType, "scheme":cty.String}), "initialDelaySeconds":cty.Number, "periodSeconds":cty.Number, "successThreshold":cty.Number, "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType}), "timeoutSeconds":cty.Number}), "resources":cty.Object(map[string]cty.Type{"limits":cty.Map(cty.String), "requests":cty.Map(cty.String)}), "securityContext":cty.Object(map[string]cty.Type{"allowPrivilegeEscalation":cty.Bool, "capabilities":cty.Object(map[string]cty.Type{"add":cty.List(cty.String), "drop":cty.List(cty.String)}), "privileged":cty.Bool, "procMount":cty.String, "readOnlyRootFilesystem":cty.Bool, "runAsGroup":cty.Number, "runAsNonRoot":cty.Bool, "runAsUser":cty.Number, "seLinuxOptions":cty.Object(map[string]cty.Type{"level":cty.String, "role":cty.String, "type":cty.String, "user":cty.String}), "seccompProfile":cty.Object(map[string]cty.Type{"localhostProfile":cty.String, "type":cty.String}), "windowsOptions":cty.Object(map[string]cty.Type{"gmsaCredentialSpec":cty.String, "gmsaCredentialSpecName":cty.String, "runAsUserName":cty.String})}), "startupProbe":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "failureThreshold":cty.Number, "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.DynamicPseudoType, "scheme":cty.String}), "initialDelaySeconds":cty.Number, "periodSeconds":cty.Number, "successThreshold":cty.Number, "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType}), "timeoutSeconds":cty.Number}), "stdin":cty.Bool, "stdinOnce":cty.Bool, "terminationMessagePath":cty.String, "terminationMessagePolicy":cty.String, "tty":cty.Bool, "volumeDevices":cty.List(cty.Object(map[string]cty.Type{"devicePath":cty.String, "name":cty.String})), "volumeMounts":cty.List(cty.Object(map[string]cty.Type{"mountPath":cty.String, "mountPropagation":cty.String, "name":cty.String, "readOnly":cty.Bool, "subPath":cty.String, "subPathExpr":cty.String})), "workingDir":cty.String}) then cty.Object(map[string]cty.Type{"args":cty.List(cty.String), "command":cty.List(cty.String), "env":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String, "valueFrom":cty.Object(map[string]cty.Type{"configMapKeyRef":cty.Object(map[string]cty.Type{"key":cty.String, "name":cty.String, "optional":cty.Bool}), "fieldRef":cty.Object(map[string]cty.Type{"apiVersion":cty.String, "fieldPath":cty.String}), "resourceFieldRef":cty.Object(map[string]cty.Type{"containerName":cty.String, "divisor":cty.String, "resource":cty.String}), "secretKeyRef":cty.Object(map[string]cty.Type{"key":cty.String, "name":cty.String, "optional":cty.Bool})})})), "envFrom":cty.List(cty.Object(map[string]cty.Type{"configMapRef":cty.Object(map[string]cty.Type{"name":cty.String, "optional":cty.Bool}), "prefix":cty.String, "secretRef":cty.Object(map[string]cty.Type{"name":cty.String, "optional":cty.Bool})})), "image":cty.String, "imagePullPolicy":cty.String, "lifecycle":cty.Object(map[string]cty.Type{"postStart":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.DynamicPseudoType, "scheme":cty.String}), "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType})}), "preStop":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.DynamicPseudoType, "scheme":cty.String}), "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType})})}), "livenessProbe":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "failureThreshold":cty.Number, "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.String, "scheme":cty.String}), "initialDelaySeconds":cty.Number, "periodSeconds":cty.Number, "successThreshold":cty.Number, "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType}), "timeoutSeconds":cty.Number}), "name":cty.String, "ports":cty.List(cty.Object(map[string]cty.Type{"containerPort":cty.Number, "hostIP":cty.String, "hostPort":cty.Number, "name":cty.String, "protocol":cty.String})), "readinessProbe":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "failureThreshold":cty.Number, "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.DynamicPseudoType, "scheme":cty.String}), "initialDelaySeconds":cty.Number, "periodSeconds":cty.Number, "successThreshold":cty.Number, "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType}), "timeoutSeconds":cty.Number}), "resources":cty.Object(map[string]cty.Type{"limits":cty.Map(cty.String), "requests":cty.Map(cty.String)}), "securityContext":cty.Object(map[string]cty.Type{"allowPrivilegeEscalation":cty.Bool, "capabilities":cty.Object(map[string]cty.Type{"add":cty.List(cty.String), "drop":cty.List(cty.String)}), "privileged":cty.Bool, "procMount":cty.String, "readOnlyRootFilesystem":cty.Bool, "runAsGroup":cty.Number, "runAsNonRoot":cty.Bool, "runAsUser":cty.Number, "seLinuxOptions":cty.Object(map[string]cty.Type{"level":cty.String, "role":cty.String, "type":cty.String, "user":cty.String}), "seccompProfile":cty.Object(map[string]cty.Type{"localhostProfile":cty.String, "type":cty.String}), "windowsOptions":cty.Object(map[string]cty.Type{"gmsaCredentialSpec":cty.String, "gmsaCredentialSpecName":cty.String, "runAsUserName":cty.String})}), "startupProbe":cty.Object(map[string]cty.Type{"exec":cty.Object(map[string]cty.Type{"command":cty.List(cty.String)}), "failureThreshold":cty.Number, "httpGet":cty.Object(map[string]cty.Type{"host":cty.String, "httpHeaders":cty.List(cty.Object(map[string]cty.Type{"name":cty.String, "value":cty.String})), "path":cty.String, "port":cty.DynamicPseudoType, "scheme":cty.String}), "initialDelaySeconds":cty.Number, "periodSeconds":cty.Number, "successThreshold":cty.Number, "tcpSocket":cty.Object(map[string]cty.Type{"host":cty.String, "port":cty.DynamicPseudoType}), "timeoutSeconds":cty.Number}), "stdin":cty.Bool, "stdinOnce":cty.Bool, "terminationMessagePath":cty.String, "terminationMessagePolicy":cty.String, "tty":cty.Bool, "volumeDevices":cty.List(cty.Object(map[string]cty.Type{"devicePath":cty.String, "name":cty.String})), "volumeMounts":cty.List(cty.Object(map[string]cty.Type{"mountPath":cty.String, "mountPropagation":cty.String, "name":cty.String, "readOnly":cty.Bool, "subPath":cty.String, "subPathExpr":cty.String})), "workingDir":cty.String}))
goroutine 268 [running]:
github.com/zclconf/go-cty/cty.ListVal(0xc001ab8880, 0x2, 0x2, 0xc00124a280, 0x6, 0x8, 0x2c36928)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/value_init.go:166 +0x57e
github.com/zclconf/go-cty/cty/msgpack.unmarshalList(0xc00170ea98, 0x2c36928, 0xc0010cff20, 0xc00124a280, 0x6, 0x8, 0xc000a5f210, 0xc001692880, 0xc000091400, 0x0, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:161 +0x3ec
github.com/zclconf/go-cty/cty/msgpack.unmarshal(0xc00170ea98, 0x2c368b8, 0xc0010cff30, 0xc00124a280, 0x5, 0x8, 0x2c36848, 0xc00005c491, 0x23d1b60, 0x3d0f100, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:52 +0x594
github.com/zclconf/go-cty/cty/msgpack.unmarshalObject(0xc00170ea98, 0xc0018a3da0, 0xc00124a280, 0x5, 0x8, 0x7f70681dae18, 0x28, 0xc001692880, 0xc000091400, 0x7f70681dae18, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:297 +0x4c8
github.com/zclconf/go-cty/cty/msgpack.unmarshal(0xc00170ea98, 0x2c36928, 0xc000cab520, 0xc001ab8840, 0x4, 0x4, 0x2c36928, 0xc000cabd40, 0x23fb5c0, 0xc000ea02a0, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:60 +0x8dc
github.com/zclconf/go-cty/cty/msgpack.unmarshalObject(0xc00170ea98, 0xc0018a3dd0, 0xc001ab8840, 0x4, 0x4, 0x80, 0x8, 0xc001692880, 0xc000091400, 0x0, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:297 +0x4c8
github.com/zclconf/go-cty/cty/msgpack.unmarshal(0xc00170ea98, 0x2c36928, 0xc000cab540, 0xc001ab8840, 0x3, 0x4, 0x2c36928, 0xc000cabb90, 0x23fb5c0, 0xc000ea00f0, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:60 +0x8dc
github.com/zclconf/go-cty/cty/msgpack.unmarshalObject(0xc00170ea98, 0xc0018a3e00, 0xc001ab8840, 0x3, 0x4, 0x80, 0x4, 0xc001692880, 0xc000091400, 0x0, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:297 +0x4c8
github.com/zclconf/go-cty/cty/msgpack.unmarshal(0xc00170ea98, 0x2c36928, 0xc000cab580, 0xc001abb920, 0x2, 0x2, 0x2c36928, 0xc000caba20, 0x23fb5c0, 0xc0018a3e90, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:60 +0x8dc
github.com/zclconf/go-cty/cty/msgpack.unmarshalObject(0xc00170ea98, 0xc0018a3e30, 0xc001abb920, 0x2, 0x2, 0x2bdaa20, 0xc0000a2070, 0xc00170e340, 0x780f67, 0xc00162ef20, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:297 +0x4c8
github.com/zclconf/go-cty/cty/msgpack.unmarshal(0xc00170ea98, 0x2c36928, 0xc000cab5a0, 0xc000f4a070, 0x1, 0x1, 0x0, 0x6, 0x23fb501, 0x6, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:60 +0x8dc
github.com/zclconf/go-cty/cty/msgpack.unmarshalDynamic(0xc00170ea98, 0xc000f4a070, 0x1, 0x1, 0x203000, 0xc00170e588, 0x40f28c, 0x7f706834aaa8, 0x100, 0x0)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:333 +0x998
github.com/zclconf/go-cty/cty/msgpack.unmarshal(0xc00170ea98, 0x2c36880, 0x3d0f608, 0xc000f4a070, 0x1, 0x1, 0x2c36928, 0xc000f4afb0, 0x23fb5c0, 0xc0018e6960, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:37 +0xb1d
github.com/zclconf/go-cty/cty/msgpack.unmarshalObject(0xc00170ea98, 0xc0016fb050, 0xc000f4a070, 0x1, 0x1, 0x7f7068197680, 0xc0016fb080, 0x2bfe468, 0xc0016fb080, 0x5000101, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:297 +0x4c8
github.com/zclconf/go-cty/cty/msgpack.unmarshal(0xc00170ea98, 0x2c36928, 0xc000f4a060, 0x0, 0x0, 0x0, 0xc001542268, 0x8, 0xc001542280, 0x6, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:60 +0x8dc
github.com/zclconf/go-cty/cty/msgpack.Unmarshal(0xc0014a6000, 0x71fc, 0x8000, 0x2c36928, 0xc000f4a060, 0x0, 0x0, 0x0, 0x0, 0xc00170eb98, ...)
/tmp/portage/app-admin/terraform-0.15.0/homedir/go/pkg/mod/github.com/zclconf/[email protected]/cty/msgpack/unmarshal.go:22 +0x10b
github.com/hashicorp/terraform/plugin.decodeDynamicValue(0xc0005a8fc0, 0x2c36928, 0xc000f4a060, 0xc00170ec78, 0x1, 0x1, 0x0, 0x0, 0x0)
/tmp/portage/app-admin/terraform-0.15.0/work/terraform-0.15.0/plugin/grpc_provider.go:616 +0x13a
github.com/hashicorp/terraform/plugin.(*GRPCProvider).PlanResourceChange(0xc001166080, 0xc000057080, 0x13, 0x2c36928, 0xc00076acf0, 0x0, 0x0, 0x2c36928, 0xc00076bd80, 0x23fb5c0, ...)
/tmp/portage/app-admin/terraform-0.15.0/work/terraform-0.15.0/plugin/grpc_provider.go:426 +0x7b2
github.com/hashicorp/terraform/terraform.(*NodeAbstractResourceInstance).plan(0xc001ae2000, 0x2c6c6b0, 0xc001134270, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0004acb80, ...)
/tmp/portage/app-admin/terraform-0.15.0/work/terraform-0.15.0/terraform/node_resource_abstract_instance.go:654 +0xf76
github.com/hashicorp/terraform/terraform.(*NodePlannableResourceInstance).managedResourceExecute(0xc000ed5a30, 0x2c6c6b0, 0xc001134270, 0xc000000001, 0xc001ade318, 0xc00111bc80)
/tmp/portage/app-admin/terraform-0.15.0/work/terraform-0.15.0/terraform/node_resource_plan_instance.go:156 +0x4fc
github.com/hashicorp/terraform/terraform.(*NodePlannableResourceInstance).Execute(0xc000ed5a30, 0x2c6c6b0, 0xc001134270, 0xc0000c2002, 0xc00111bd18, 0x40d885, 0x2445020)
/tmp/portage/app-admin/terraform-0.15.0/work/terraform-0.15.0/terraform/node_resource_plan_instance.go:42 +0xb3
github.com/hashicorp/terraform/terraform.(*ContextGraphWalker).Execute(0xc0003f9200, 0x2c6c6b0, 0xc001134270, 0x7f706837ccc0, 0xc000ed5a30, 0x0, 0x0, 0x0)
/tmp/portage/app-admin/terraform-0.15.0/work/terraform-0.15.0/terraform/graph_walk_context.go:127 +0xbf
github.com/hashicorp/terraform/terraform.(*Graph).walk.func1(0x2775ba0, 0xc000ed5a30, 0x0, 0x0, 0x0)
/tmp/portage/app-admin/terraform-0.15.0/work/terraform-0.15.0/terraform/graph.go:59 +0xba2
github.com/hashicorp/terraform/dag.(*Walker).walkVertex(0xc0003fc780, 0x2775ba0, 0xc000ed5a30, 0xc001ab9040)
/tmp/portage/app-admin/terraform-0.15.0/work/terraform-0.15.0/dag/walk.go:381 +0x288
created by github.com/hashicorp/terraform/dag.(*Walker).Update
/tmp/portage/app-admin/terraform-0.15.0/work/terraform-0.15.0/dag/walk.go:304 +0x1246
This is with kubernetes-alpha v0.3.2.