JDe*_*Dev 2 kubernetes kubernetes-helm helm3
我正在尝试为不同的环境制作一张 Helm Chart。在许多教程中,这种方案应该有效,但我的结构不会从依赖项存储库中读取值。Helm 只是忽略它。
我有以下文件夹结构
helm
- charts
- core-web
- Chart.yaml
- values.yaml
- templates
- frontend
- Chart.yaml
- values.yaml
- templates
- prod
- Chart.yaml
- values.yaml
- dev
- Chart.yaml
- values.yaml
Run Code Online (Sandbox Code Playgroud)
产品/Chart.yaml
apiVersion: v1
name: test
version: 1.0.0
dependencies:
- name: core-web
version: "1.37.0"
repository: file://../charts/core-web/
- name: frontend
version: "1.6.0"
repository: "file://../charts/frontend"
Run Code Online (Sandbox Code Playgroud)
从 helm 文件夹中我执行以下命令
helm install ./prod --dry-run --generate-name -n sandbox -f prod/values.yaml
Error: INSTALLATION FAILED: found in Chart.yaml, but missing in charts/ directory: core-web, frontend
Run Code Online (Sandbox Code Playgroud)
如果我将图表文件夹移至产品文件夹,则一切正常。为什么 helm 不接受依赖存储库中的文件路径?它应该: https: //helm.sh/docs/helm/helm_dependency/
谢谢您的帮助。
尝试重现该问题,似乎是缓存问题
您可以验证 helm 对它正在寻找的路径的依赖性charts。
helm template test ./prod
#output Error: found in Chart.yaml, but missing in charts/ directory: backend, web-app
Run Code Online (Sandbox Code Playgroud)
然后我尝试验证舵看起来的路径
helm dep ls ./prod
Run Code Online (Sandbox Code Playgroud)
从输出中可以清楚地看出,它仍在寻找错误的路径,其状态 missing为仍在文件夹内寻找图表prod。
NAME VERSION REPOSITORY STATUS
backend 1.2.3 file://charts/backend/ missing
web-app 1.2.3 file://charts/web-app/ missing
Run Code Online (Sandbox Code Playgroud)
所以要解决这个问题
helm dependency update ./prod
Run Code Online (Sandbox Code Playgroud)
然后我就可以看到
helm dep ls ./prod
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3635 次 |
| 最近记录: |