Я использую ct
, транспортер coreos для генерации файла зажигания. Проблема в том, что этот файл воспламенения сам является шаблоном для другой программы, и кодировка URL мешает расширению переменной шаблона. Для MVE у меня есть переменная шаблона ${baz}
, которая должна выходить из транспилятора как ${baz}
,
# ct_storage_quote_mve.yml
storage:
files:
- path: /foo/bar
mode: 0666
filesystem: root
contents:
inline:
${baz}
Однако, когда я запускаю ct
, я получаю %24%7Bbaz%7D
$ ct -pretty < ct_storage_quote_mve.yml
{
"ignition": {
"config": {},
"security": {
"tls": {}
},
"timeouts": {},
"version": "2.2.0"
},
"networkd": {},
"passwd": {},
"storage": {
"files": [
{
"filesystem": "root",
"path": "/foo/bar",
"contents": {
"source": "data:,%24%7Bbaz%7D",
"verification": {}
},
"mode": 438
}
]
},
"systemd": {}
}
Я пытался просто использовать sed / perl oneliner, чтобы исправить это, но это мешает другим инструментам, которые я использую. На самом деле решение проблемы в транспиляции кажется лучшим способом go.