terraform-plugin-go version
Relevant provider source code
func NewValue(t Type, val interface{}) Value {
v, err := newValue(t, val)
if err != nil {
panic(err)
}
return v
}
Terraform Configuration Files
terraform {
required_providers {
kubernetes = {
source = "hashicorp/kubernetes"
}
}
}
provider "kubernetes" {
# Configuration options
config_path = "~/.kube/config"
}
locals {
condition = false
postStart = {
exec = {
command = ["bash", "-c", "echo postStart"]
}
}
preStop = {
exec = {
command = ["bash", "-c", "echo preStop"]
}
}
}
resource "kubernetes_manifest" "deploy_foo" {
manifest = {
apiVersion = "apps/v1"
kind = "Deployment"
metadata = {
name = "foo"
namespace = "foo"
labels = {
"app" = "foo"
}
}
spec = {
selector = {
matchLabels = {
"app" = "foo"
}
}
template = {
metadata = {
labels = {
"app" = "foo"
},
}
spec = {
containers = [
{
name = "foo"
image = "busybox"
lifecycle = true ? {
postStart = local.postStart
} :{
preStop = local.preStop
}
}
]
}
}
}
}
}
Expected Behavior
Should return an error in order to prevent having to catch the error with the k8s provider
Actual Behavior
no error is returned forcing us to have to catch the error right before the panic within the provider.
References
hashicorp/terraform-provider-kubernetes#2018
terraform-plugin-go version
Relevant provider source code
Terraform Configuration Files
Expected Behavior
Should return an error in order to prevent having to catch the error with the k8s provider
Actual Behavior
no error is returned forcing us to have to catch the error right before the panic within the provider.
References
hashicorp/terraform-provider-kubernetes#2018