一个具体的案例导致了一个更普遍的问题:我有一个盐配方,如下所示:
formula/
    init.sls
    some_other_state.sls
    defaults.yaml
作为两个 sls 行为的一部分,我希望它们将 defaults.yaml 加载到字典中。我可以在其中任何一个中这样做:
{%- import_yaml formula/defaults.yaml as defaults %}
...但是这会硬编码公式相对于盐树基础的位置,并且如果树被重组并且公式移动到(比如说)嵌套目录,则会破坏。
我尝试了这个:
{%- import_yaml (slspath + "/defaults.yaml") as defaults %}
这适用于 init.sls,但不适用于 some_other_state.sls;原因是slspath前者扩展为包含目录,但后者扩展为完整路径。
我真正想要的是 slspath 的某种等价物,它总是扩展为“包含当前运行的 sls 的目录”。然后我可以指定我需要的相对路径。
这样的变量是否存在,如果存在,它是什么?