terraform - “v”参数的值无效:无法将“”转换为数字;给定字符串 terraform eks 模块
问题描述
我用 terraform eks 模块创建了以下 eks 集群。
module "myeks" {
source = "terraform-aws-modules/eks/aws"
cluster_name = var.project
version = "7.0.1"
cluster_version = var.eks_version
subnets = data.aws_subnet_ids.subnet_ids.ids
vpc_id = var.vpc_id
worker_groups = [
{
name = "worker-group-1"
instance_type = "m5.large"
asg_max_size = 2
}
]
}
但问题是当我在 gitlabci 中运行该代码时,我遇到了以下错误消息。
Error: Invalid function argument
on .terraform/modules/myeks/data.tf line 6, in locals:
6: var.worker_ami_name_filter_windows : "Windows_Server-2019-English-Core-EKS_Optimized-${tonumber(var.cluster_version) >= 1.14 ? var.cluster_version : 1.14}-*"
|----------------
| var.cluster_version is ""
Invalid value for "v" parameter: cannot convert "" to number; given string
must be a decimal representation of a number.
Error: Your query returned no results. Please change your search criteria and try again.
on .terraform/modules/myeks/data.tf line 25, in data "aws_ami" "eks_worker":
25: data "aws_ami" "eks_worker" {
但是当我terraform plan
在本地机器上做时,它工作正常。
那是我的tfvars。
vpc_id = "vpc-xxxxx"
environment = "dev"
eks_version = "1.17"
project = "mypro"
解决方案
根据评论。
问题是因为它var.eks_version
是空的。这是由于未映射 .tfvars
到gitlabci
.
解决方案是在gitlabci
.
推荐阅读
- ffmpeg - 在 vlc 上接收像素化和滞后的 rtsp 流时
- bash - 在 bash 脚本中包含源代码时,如何修复或屏蔽使用 shellcheck 发现的 1091 错误?
- json - 尝试将 Excel 格式转换为 JSON
- python - 无法在函数外打印对象
- r - 'Calloc' 无法在 r 版本 4.1.0 中分配内存(1000000 个 16 字节)
- javascript - TypeError:内部不是函数
- design-patterns - 什么时候使用设计模式,什么时候应用哪个可靠的原则?
- python - 如何通过python3 re提取文档中两个单词之间的文本?
- python - 使用 QSortFilterProxyModel 动态过滤数据程序崩溃
- odoo - 如何解决错误:odoo14 中组件“HomeMenu”中的无效道具“应用程序”?