salt top.sls不会在`salt-run fileserver.update`上用gitfs更新

我有一个单盐连接盐主。 我最近从'webserver.sls'重命名为'jetty.sls'。 我用pygit2和ssh使用gitfs后端。 我只启用了gitfs后端。 /etc/salt/master

 fileserver_backend: # - roots - git gitfs_provider: pygit2 gitfs_remotes: - [email protected]:Groomblecom/[repo].git: - pubkey: /root/salt-credentials/id_rsa.pub - privkey: /root/salt-credentials/id_rsa 

但是,每当我运行salt-run fileserver.update && salt '*' state.highstate我得到一个错误:

 Data failed to compile: ---------- No matching sls found for 'webserver' in env 'base' 

运行salt '*' state.show_sls jetty给出预期(长)输出,与我在bitbucket回购中看到的一致。 运行salt '*' state.show_top给出以下内容:

 ---------- base: - common - ingress - webserver 

这与bitbucket回购中的top.sls不一致:

 base: '*': - common '*ingress*': - ingress - jetty - nginx 

运行salt-run fileserver.updaterm -rf /var/cache/salt/* && service salt-master restart对输出没有影响。

我想知道是否有一个已知的错误(和解决方法)这种行为,如果有办法强制一个真正的caching清除,或者如果我犯了一个configuration错误。

错误的原因是盐考虑所有分支,然后合并所有(!)分支来编译最终的top.sls。 我有一个旧的分支,这是一对夫妇承诺,所以仍然引用webserver.sls。 解决scheme非常简单:只需将以下内容添加到/etc/salt/master

 gitfs_env_whitelist: - master 

或者,如果您的主分支不是主分支,请用您的分支名称replace主分支。

原因是盐合并所有分支来编译最终的top.sls。 我可以通过将其添加到/etc/salt/master来修复它:

 gitfs_env_whitelist: - base 

由于Salt将master分支映射到base环境(感谢gitfs_base ),正确的env到白名单是base ,而不是master