谁知道我该怎么用
NAME_TEMPLATE=%{{service_name}}.%{{environment_name}}
在模板文件中?每次我想使用这种地形崩溃-“%!s()”。
我设法用'%%'逃脱了'%',但是双花括号仍然是一个问题。
我使用Terraform 0.11模板来生成用于牧场主1的docker-compose.yml。这已经过时且特别,但也许有人会从中受益。
所以我想得到
NAME_TEMPLATE=%{{service_name}}.%{{environment_name}}
进入我的docker-compose.yml。
首先,我让模板引擎使用yaml进行工作,因为还有其他变量需要填充:
Terraform模板
data "template_file" "route53updater" {
template = "${file("${local.templates_path}/docker-compose.yml")}"
vars {
aws_access_key = "${var.aws_access_key}"
aws_secret_key = "${var.aws_secret_key}"
aws_domain = "${var.instance_tld}"
aws_zone_id = "${var.aws_zone_id}"
aws_region = "${var.aws_region}"
}
}
version: '2'
services:
route53:
mem_limit: 134217728
image: rancher/external-dns:v0.7.12
environment:
AWS_ACCESS_KEY: ${aws_access_key}
ROUTE53_ZONE_ID: ${aws_zone_id}
AWS_REGION: ${aws_region}
AWS_SECRET_KEY: ${aws_secret_key}
ROOT_DOMAIN: ${aws_domain}
TTL: '60'
NAME_TEMPLATE: "NAME_TEMPLATE_VALUE"
expose:
- '1000'
labels:
io.rancher.container.agent.role: external-dns
io.rancher.container.create_agent: 'true'
变成:
version: '2'
services:
route53:
mem_limit: 134217728
image: rancher/external-dns:v0.7.12
environment:
AWS_ACCESS_KEY: SECRET
AWS_REGION: eu-central-1
AWS_SECRET_KEY: SECRET
ROOT_DOMAIN: domain.com
ROUTE53_ZONE_ID: SECRET
NAME_TEMPLATE: "NAME_TEMPLATE_VALUE"
TTL: '60'
expose:
- '1000'
labels:
io.rancher.container.agent.role: external-dns
io.rancher.container.create_agent: 'true'
然后,我使用replace来内联编辑模板内容,如下所示:
resource "rancher_stack" "route53" {
name = "route53"
environment_id = "${var.rancher_environment}"
scope = "system"
start_on_create = true
docker_compose = "${replace("${data.template_file.route53updater.rendered}", "NAME_TEMPLATE_VALUE", "%{{`{{service_name}}`}}.%{{`{{environment_name}}`}}")}"
rancher_compose = "${file("${local.templates_path}/rancher-compose.yml")}"
}
所以NAME_TEMPLATE_VALUE
用%{{`{{service_name}}`}}.%{{`{{environment_name}}`}}")}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句