【问题标题】:getting a list of folders in Helm Charts获取 Helm Charts 中的文件夹列表
【发布时间】:2019-04-10 03:03:04
【问题描述】:

获得了位于模板文件夹之外的配置文件列表,我们将其输入到如下所示的 helm 图表中:

├── configs
│   ├── AllEnvironments
│   │   ├── Infrastructure
│   │   └── Services
│   │       ├── ConfigFile1
│   │       ├── ConfigFile2
│   ├── Apps
│   │   ├── App1
│   │   ├── App2
│   │   └── App3
│   ├── ManagementEnvironments
│   │   ├── Database
│   │   │   ├── DbFile1
│   │   │   └── DbFile2
│   │   ├── Infrastructure
│   ├── TestEnvironments
│   │   ├── Pipeline
│   │   │   └── Pipeline1
│   │   ├── Database
│   │   │   ├── Pipeline2
│   ├── Console
│   │   ├── Console1
│   │   ├── Console2

到目前为止,它对我们来说效果很好。现在我们需要解析文件夹并获取配置下不以 Environments 结尾的所有文件夹的列表。因此,在这种情况下,基本上一个范围将包括应用程序和控制台。

执行以下操作,我会重复应用 3 次,因为它下面有很多文件,还有 2 次控制台。

我想获得一个不以 Environments 结尾的文件夹列表。

我尝试查看 Go 模板和一些 helm chart 工具包,但我没有 Go 的经验,这似乎是实现这一目标的必要条件,我可能会在接下来的几天内完成。但是现在我被卡住了,所以任何帮助都表示感谢。

{{- range $path, $bytes  := $.Files.Glob "configs/**" }}
{{- if not (or (dir $path | regexFind "configs.*Environments.*")  (dir $path | regexFind "configs$")) }}
 {{ base (dir $path) }}

{{- end }}
{{- end }}

【问题讨论】:

    标签: kubernetes go-templates kubernetes-helm


    【解决方案1】:

    如果它可以帮助其他人,这是一种方法:

    Helm 图表使用 Go 模板和 Sprig 库。因此,使用 Sprig 中的 dict 我们可以保留我们列出的文件夹的先前值,并且仅当当前文件夹与前一个文件夹不同时才将其打印出来。现在这有效,因为文件按字母顺序列出,因此同一文件夹中的文件将是连续的。如果要在没有顺序的情况下阅读它们,这些方法将行不通。

    {{- $localDict := dict "previous" "-"}}
    {{- range $path, $bytes  := $.Files.Glob "configs/**" }}
    {{- if not (or (dir $path | regexFind "configs.*Environments.*")  (dir $path | regexFind "configs$")) }}
    {{- $folder := base (dir $path) }}
    {{- if not (eq $folder $localDict.previous)}}
        {{$folder -}}
    {{- end }}
    {{- $_ := set $localDict "previous" $folder -}}
    {{- end }}
    {{- end }}
    

    【讨论】:

    • 为什么将previous 存储在字典中而不仅仅是一个变量?
    • 我的 var 想法不起作用,而您的 dict 想法起作用。非常感谢!
    【解决方案2】:

    今天,使用 Helm v3.3,您仍然无法使用位于图表文件夹之外的文件

    这是一个大问题,您可以在这里关注:

    https://github.com/helm/helm/issues/3276

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 2015-02-27
      • 2015-09-08
      • 2017-02-25
      • 2015-04-06
      相关资源
      最近更新 更多