带有requirements.yaml的舵图,没有找到本地图表

jol*_*lla 8 kubernetes-helm

我的图表有 elasticsearch 和 mongdb 依赖关系,在我的图表中,结构如下:

??? [-rw-rw-r--]  Chart.yaml
??? [drwxrwxr-x]  dependency_charts
?   ??? [drwxrwxr-x]  elasticsearch
?   ??? [drwxrwxr-x]  mongodb
??? [-rw-rw-r--]  deploy.sh
??? [-rw-rw-r--]  requirements.yaml
??? [-rw-rw-r--]  values.yaml
??? [drwxrwxr-x]  templates
?   ??? [-rw-rw-r--]  proj-deploy.yaml
?   ??? [-rw-rw-r--]  proj-svc.yaml
Run Code Online (Sandbox Code Playgroud)

但是当我尝试安装我的图表时,它会说:

Error: found in requirements.yaml, but missing in charts/ directory: elasticsearch, mongodb

当我执行 helm dep ls 时,它显示状态丢失

$ helm dep list
NAME            VERSION REPOSITORY                              STATUS
elasticsearch   6.5.1   file://dependency_charts/elasticsearch  missing
mongodb         4.0.3   file://dependency_charts/mongodb        missing
Run Code Online (Sandbox Code Playgroud)

版本是appVersion,我也把版本改成了chart版本,还是不行。

这是官方文档:https : //github.com/helm/helm/blob/master/docs/helm/helm_dependency.md https://docs.helm.sh/chart_best_practices/#repository-urls

这是掌舵版本

$ helm version
Client: &version.Version{SemVer:"v2.10.0", GitCommit:"9ad53aac42165a5fadc6c87be0dea6b115f93090", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.10.0", GitCommit:"9ad53aac42165a5fadc6c87be0dea6b115f93090", GitTreeState:"clean"}
Run Code Online (Sandbox Code Playgroud)

我可以将这些图表放到一个charts文件夹中,但是如果我这样做,helm 会在同一个图表中安装 mongodb 和 elasticsearch,这不是预期的,我期望的是在同一个命名空间下有三个图表:myproj、elasticsearch、mongodb .

有人知道我做错了什么吗?谢谢。

abi*_*net 13

你必须跑helm dep update。这会将子图表放入 ./charts 文件夹并创建 ./requirements.lock 文件。然后就可以安装了。


小智 11

使用 Helm 版本 v3.4.1。

\n

我遇到了这个错误。

\n

我的解决方案是:

\n
    \n
  • charts/将(目录)重命名为subcharts/
  • \n
  • chmod 755 subcharts/*
  • \n
\n

当我将本地依赖项放置在 Heml 3 中时,Heml 3 不喜欢它charts/
\n此外,Helm dep up 需要权限将本地依赖项从子图表目录移动到tmpcharts/等等。

\n

**

\n

这不是我的发现。

\n

**

\n

我从@sgandon 和@Narayana 那里读到了这篇文章:

\n

关于有条件部署 Helm Chart 的帖子

\n

错误记录#3742
\n评论.

\n
\n

os.Stat() 找不到文件夹的原因。这是\n因为调用函数\n downloadAll is renaming the charts folder to tmpcharts during the update\nthus making our unpacked chart not foundable for that duration.

\n
\n

笔记:

\n

!! 在 Helm 3 中,requirements.yaml 已被弃用。!!

\n

您可以在 Parent/Main Charts.yaml 中添加依赖项。

\n
dependencies:\n  - name: chart-you-want-to-deploy-1\n    repository: file://subcharts/chart-you-want-to-deploy-1\n    version: 0.0.1\n    condition: chart-you-want-to-deploy-1.enabled\n\n  - name: chart-you-want-to-deploy-2\n    repository: file://subcharts/chart-you-want-to-deploy-2\n    version: 0.0.1\n    condition: chart-you-want-to-deploy-2.enabled\n
Run Code Online (Sandbox Code Playgroud)\n

将我的变量添加到 Parent/Main Values.yaml 中的全局变量中

\n
globals:\n  chart-you-want-to-deploy-1:\n    enabled: true\n  chart-you-want-to-deploy-2:\n    enabled: false\n
Run Code Online (Sandbox Code Playgroud)\n

不要忘记将标志添加到您的命令中。
\nIn my case I was using a CI/CD tool (GitLab).

\n
script:\n    - >\n      helm dep up Main-Chart-Name && \\\n       helm upgrade --install \\\n       --set chart-you-want-to-deploy-1.enabled=false \\\n       --set chart-you-want-to-deploy-2.enabled=true \\\n       RELEASE_NAME Main-Chart-Name\n
Run Code Online (Sandbox Code Playgroud)\n

我的树

\n
Main-Chart-Name\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Chart.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 subcharts\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 chart-you-want-to-deploy-1\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Chart.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 charts\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templates\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 chart-you-want-to-deploy-1.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 values.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 chart-you-want-to-deploy-2\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Chart.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 charts\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templates\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 chart-you-want-to-deploy-2.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 values.yaml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 templates\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 helpers.tpl\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 templates.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 values.yaml\n
Run Code Online (Sandbox Code Playgroud)\n


Shi*_*pta 6

helm dep update
Run Code Online (Sandbox Code Playgroud)

仅当 repo 列表为空时才有效。检查helm repo list,如果这返回某些内容,则本地依赖项将无法解决。尝试使用命令删除存储库helm repo remove REPO_NAME