Mongodb 部署无效的地形+;Kubernetes:spec.template.spec.containers[0]。envFrom:无效值:“0”&引用;
我正在试验terraform来部署k8s资源 我创建了一个mongodb部署Mongodb 部署无效的地形+;Kubernetes:spec.template.spec.containers[0]。envFrom:无效值:“0”&引用;,mongodb,kubernetes,terraform,Mongodb,Kubernetes,Terraform,我正在试验terraform来部署k8s资源 我创建了一个mongodb部署 provider "kubernetes" { config_context = "kubernetes-admin@kubernetes" } resource "kubernetes_namespace" "demo-namespace" { metadata { name = "my-demo-namesp
provider "kubernetes" {
config_context = "kubernetes-admin@kubernetes"
}
resource "kubernetes_namespace" "demo-namespace" {
metadata {
name = "my-demo-namespace"
}
}
// mongodb
resource "kubernetes_deployment" "mongodb" {
metadata {
name = "mongodb"
namespace = kubernetes_namespace.demo-namespace.metadata[0].name
labels = {
app = "mongodb"
}
}
spec {
replicas = 1
selector {
match_labels = {
app = "mongodb"
}
}
template {
metadata {
labels = {
app = "mongodb"
}
}
spec {
container {
image = "mongo"
name = "mongodb"
env_from {
secret_ref {
name = kubernetes_secret.scrt-mongodb.metadata[0].name
}
config_map_ref {
name = kubernetes_config_map.cm-mongodb.metadata[0].name
}
}
resources {
limits {
cpu = "500m"
memory = "1Gi"
}
requests {
cpu = "150m"
memory = "256Mi"
}
}
liveness_probe {
exec {
command = ["bash", "-c", "mongo -u $MONGO_INITDB_ROOT_USERNAME -p $MONGO_INITDB_ROOT_PASSWORD --eval db.adminCommand(\"ping\")"]
}
initial_delay_seconds = 3
period_seconds = 1
}
}
}
}
}
}
// mongodb configmap
resource "kubernetes_config_map" "cm-mongodb" {
metadata {
name = "cm-mongodb"
namespace = kubernetes_namespace.demo-namespace.metadata.0.name
}
// improve creds with secret
data = {
MONGO_INITDB_DATABASE = "movies"
}
}
// monbodb secret
resource "kubernetes_secret" "scrt-mongodb" {
metadata {
name = "mongodb-creds"
}
data = {
MONGO_INITDB_ROOT_USERNAME = "root-user"
MONGO_INITDB_ROOT_PASSWORD = "secret"
}
type = "opaque"
}
这在以下情况下失败:
kubernetes_config_map.cm-mongodb: Creation complete after 0s [id=my-demo-namespace/cm-mongodb]
kubernetes_deployment.mongodb: Creating...
Error: Failed to create deployment: Deployment.apps "mongodb" is invalid: spec.template.spec.containers[0].envFrom: Invalid value: "": may not have more than one field specified at a time
on template.tf line 12, in resource "kubernetes_deployment" "mongodb":
12: resource "kubernetes_deployment" "mongodb" {
这里怎么了?您错过了这一行:
namespace = kubernetes_namespace.demo-namespace.metadata.0.name
您没有在所需名称空间中定义资源,因此terraform无法“找到”所需的值
//蒙博德秘密
资源“kubernetes_机密”“scrt mongodb”{
元数据{
name=“mongodb信誉”
# -------------------------------------------------------------
# -------------------------------------------------------------
#在此处添加名称空间
namespace=kubernetes_namespace.demo-namespace.metadata.0.name
# -------------------------------------------------------------
# -------------------------------------------------------------
}
数据={
MONGO_INITDB_ROOT_USERNAME=“ROOT用户”
MONGO_INITDB_ROOT_PASSWORD=“secret”
}
type=“不透明”
}
您错过了这一行:
namespace = kubernetes_namespace.demo-namespace.metadata.0.name
您没有在所需名称空间中定义资源,因此terraform无法“找到”所需的值
//蒙博德秘密
资源“kubernetes_机密”“scrt mongodb”{
元数据{
name=“mongodb信誉”
# -------------------------------------------------------------
# -------------------------------------------------------------
#在此处添加名称空间
namespace=kubernetes_namespace.demo-namespace.metadata.0.name
# -------------------------------------------------------------
# -------------------------------------------------------------
}
数据={
MONGO_INITDB_ROOT_USERNAME=“ROOT用户”
MONGO_INITDB_ROOT_PASSWORD=“secret”
}
type=“不透明”
}
谢谢,我已经添加了它(并且我检查了它是否都部署在正确的命名空间上),但是我仍然得到了错误。嗯,我现在看到了。谢谢,我已经添加了它(并且我检查了它是否都部署在正确的命名空间上),但是我仍然得到了错误。嗯,我现在看到了