如何在 terraform 中获取 k8s 作业的输出
How to get output of k8s job in terraform
我在 terraform 中使用 kubernetes 提供程序,并且我 运行 在 AWS 上的 EKS 集群上执行 kubernetes 作业。
我想从作业中获取一些输出并将它们存储在我的 Terraform 变量(或 AWS 参数存储)中,以便我可以在其他地方的我的 Terraform 文件中使用它们。
我不知道该怎么做。
作业能否将此信息写入文件并将其放回接收到的配置映射中?或者在 terraform 中有没有办法解析 k8s 作业的日志(stdout)?
这里或多或少是我的地形文件:
resource "kubernetes_job" "my_job" {
metadata {
name = "my_job"
namespace = var.namespace
}
spec {
template {
metadata {}
spec {
volume {
name = local.config_name
config_map {
name = kubernetes_config_map.my_job.metadata[0].name
default_mode = "0777"
}
}
container {
name = "my_container"
image = "123456789012.dkr.ecr.us-east-1.amazonaws.com/my_container:6.4.1.37"
command = ["/bin/bash","/opt/utilities/run_pre_db_script.sh"]
working_dir = "/opt/utilities"
volume_mount {
name = local.config_name
mount_path = "/opt/my_container_mount"
}
}
restart_policy = "Never"
}
}
}
timeouts {
create="5m"
}
wait_for_completion = true
}
Terraform 无法解析作业生成的日志,更改 configmap 值是不明智的,因为它会在您的配置和生产状态之间造成差异。
为了完成您的任务,我能想到的最佳解决方案是让作业生成动态生成的 tarraform files/terraform 参数文件,将它们提交到存储其余 terraform 文件的商店(git 存储库,例如)。
完成后,您可以让下一次 terraform 调用检索作业的结果并将其合并到下一次执行中。
我在 terraform 中使用 kubernetes 提供程序,并且我 运行 在 AWS 上的 EKS 集群上执行 kubernetes 作业。
我想从作业中获取一些输出并将它们存储在我的 Terraform 变量(或 AWS 参数存储)中,以便我可以在其他地方的我的 Terraform 文件中使用它们。
我不知道该怎么做。
作业能否将此信息写入文件并将其放回接收到的配置映射中?或者在 terraform 中有没有办法解析 k8s 作业的日志(stdout)?
这里或多或少是我的地形文件:
resource "kubernetes_job" "my_job" {
metadata {
name = "my_job"
namespace = var.namespace
}
spec {
template {
metadata {}
spec {
volume {
name = local.config_name
config_map {
name = kubernetes_config_map.my_job.metadata[0].name
default_mode = "0777"
}
}
container {
name = "my_container"
image = "123456789012.dkr.ecr.us-east-1.amazonaws.com/my_container:6.4.1.37"
command = ["/bin/bash","/opt/utilities/run_pre_db_script.sh"]
working_dir = "/opt/utilities"
volume_mount {
name = local.config_name
mount_path = "/opt/my_container_mount"
}
}
restart_policy = "Never"
}
}
}
timeouts {
create="5m"
}
wait_for_completion = true
}
Terraform 无法解析作业生成的日志,更改 configmap 值是不明智的,因为它会在您的配置和生产状态之间造成差异。
为了完成您的任务,我能想到的最佳解决方案是让作业生成动态生成的 tarraform files/terraform 参数文件,将它们提交到存储其余 terraform 文件的商店(git 存储库,例如)。
完成后,您可以让下一次 terraform 调用检索作业的结果并将其合并到下一次执行中。