Похоже, у вас есть два варианта:
1) Путь шаблона jinja
Вместо файла конфигурации вы определяете шаблон jinja: resources:
# my-template.jinja
resources:
- name: my-resource
type: some-type
properties:
prop1: {{ properties['foo'] }}
prop2: {{ properties['bar'] }}
Затем вы можете вызвать его следующим образом, и переменные foo и bar будут сопоставлены с предоставленными свойствами:
gcloud deployment-manager deployments create <my-deployment> \
--template my-template.jinja \
--properties foo:user-custom-value,bar:another-value
2) Путь шаблона old-schoold
Мы заменяемпользовательские значения в самом тексте, вместо использования движка рендеринга (как у jinja2)
# my-template.yaml
resources:
- name: my-resource
type: some-type
properties:
prop1: REPLACE-PROP-1
prop2: REPLACE-PROP-2
Замените текст, как вы можете, вы можете использовать sed
, если вы запускаете скрипт оболочки, илииз самого узла / javascript
const replaces = [
{name: 'REPLACE-PROP-1', value: 'user-custom-value'},
{name: 'REPLACE-PROP-2', value: 'another-custom-value'},
];
const templateYaml = fs.readFileSync('my-template.yaml','utf-8');
const customYaml = replaces
.map(r => templateYaml.replace(RegExp(r.name,'g'), r.value);
Или используйте sed
sed -ie 's/REPLACE-PROP-1/user-custom-value/g' my-template.yaml
sed -ie 's/REPLACE-PROP-2/another-cst-value/g' my-template.yaml
И, наконец, разверните config :
gcloud deployment-manager deployments create <my-deployment> \
--config my-template.yaml