gpt4 book ai didi

kubernetes - 获取 Helm 表中的文件夹列表

转载 作者:行者123 更新时间:2023-12-02 11:48:20 25 4
gpt4 key购买 nike

得到了驻留在模板文件夹之外的配置文件列表,我们将其输入到掌 Helm chart 中,如下所示:

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

到目前为止,它对我们有好处。现在,我们需要解析文件夹,并在不以环境结尾的配置下获取所有文件夹的列表。因此,在这种情况下,基本上范围将包括Apps和Console。

执行以下操作后,我得到3次重复的Apps,这是因为它下面有许多文件,而控制台也有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 }}

最佳答案

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

Helm chart 使用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 }}

关于kubernetes - 获取 Helm 表中的文件夹列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53176662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com