我在requirements.yaml中添加了mysql。helm依赖下载mysql图表
helm dependency update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "nginx" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ?Happy Helming!?
Saving 1 charts
Downloading mysql from repo <our private repository>
Deleting outdated charts
Run Code Online (Sandbox Code Playgroud)
但是当我执行 helm install my_app_chart ../my_app_chart 它给出错误
Error: found in Chart.yaml, but missing in charts/ directory: mysql
Run Code Online (Sandbox Code Playgroud) 我有一个 HELM 图表,有一些要求(即子图表)。
部署该图表时,我使用values.yaml包含主图表和子图表的所有值的:
globalFoo: "bar"
subchart1:
foo: subchart1-{{ globalFoo }}
subchart2:
localFoo: "bar2"
foo: subchart2-{{ subchart2.localFoo }}
Run Code Online (Sandbox Code Playgroud)
我想实现两件事:
上面的例子不行。我尝试了几种语法,但没有一个有效。我在 HELM 文档中没有找到类似的内容。
可行吗?
我在运行之前尝试运行 Helm 升级helm repo update,现在它似乎永久停留在“状态:挂起升级”并且不会让我再次尝试运行升级。
试图运行:
helm upgrade --namespace coder --install --force --atomic --wait --version 1.13.2 --values ./coder.yaml coder coder/coder
输出: Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
使用helm非常酷,但使用的目的是什么 helm delete --purge
我可以看到医生说:remove the release from the store and make its name free for later use
那么保存名称而不是发布它的目的是什么helm delete?
无法安装 helm 图表,但当我使用 helm 生成的原始文件时,我可以通过 kubectl apply 安装。
当我使用时显示以下错误helm install myChart . --debug
Error: cannot re-use a name that is still in use
helm.go:88: [debug] cannot re-use a name that is still in use
helm.sh/helm/v3/pkg/action.(*Install).availableName
helm.sh/helm/v3/pkg/action/install.go:442
helm.sh/helm/v3/pkg/action.(*Install).Run
helm.sh/helm/v3/pkg/action/install.go:185
main.runInstall
helm.sh/helm/v3/cmd/helm/install.go:242
main.newInstallCmd.func2
helm.sh/helm/v3/cmd/helm/install.go:120
github.com/spf13/cobra.(*Command).execute
github.com/spf13/cobra@v1.1.3/command.go:852
github.com/spf13/cobra.(*Command).ExecuteC
github.com/spf13/cobra@v1.1.3/command.go:960
github.com/spf13/cobra.(*Command).Execute
github.com/spf13/cobra@v1.1.3/command.go:897
main.main
helm.sh/helm/v3/cmd/helm/helm.go:87
runtime.main
runtime/proc.go:225
runtime.goexit
runtime/asm_amd64.s:1371
Run Code Online (Sandbox Code Playgroud)
使用以下命令安装 helm 生成的原始文件效果很好,但当我运行时helm install myChart .会出现上述错误
helm install myChart . --dry-run > myChart.yaml
kubectl apply -f myChart.yaml
Run Code Online (Sandbox Code Playgroud) 我使用部署了一个 Helm Chart helm install,之后我想查看与此部署相关的 pod/services/cms 是否已启动或失败。有办法看到这个吗?
使用kubectl get pods和 grep 查找该名称是有效的,但它不会显示部署此 Helm Chart 时部署的服务和其他资源。
helm 中的“template”和“include”关键字有何不同?两者似乎都是用来渲染模板参数的
运行时helm install(helm 3.0.2)
我收到以下错误:错误:
rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: kind: PodSecurityPolicy, namespace: , name: po-kube-state-metrics
但是我没有找到它,并且在错误中我没有得到 ns,我该如何删除它?
运行时,kubectl get all --all-namespaces我看到所有资源,但看不到po-kub-state-metrics... 它也发生在其他资源上,知道吗?
我得到了同样的错误:monitoring-grafanaentity,结果
kubectl get PodSecurityPolicy --all-namespaces是:
monitoring-grafana false RunAsAny RunAsAny RunAsAny RunAsAny false configMap,emptyDir,projected,secret,do
我有一个 cronjob 掌舵聊天,我可以在 values.yaml 中定义许多工作,cronjob.yaml 将提供我的工作。我在命令行中设置图像标签 ID 时遇到了一个问题,下面的命令不会抛出任何错误,但它不会将作业图像标签更新为新的。
helm upgrade cronjobs cronjobs/ --wait --set job.myservice.image.tag=b70d744
Run Code Online (Sandbox Code Playgroud)
cronjobs 将使用旧图像标签运行,我该如何解决这个问题?
这是我的 cronjobs.yaml
{{- $chart_name := .Chart.Name }}
{{- $chart_version := .Chart.Version | replace "+" "_" }}
{{- $release_name := .Release.Name }}
{{- range $job := .Values.jobs }}
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
namespace: "{{ $job.namespace }}"
name: "{{ $release_name }}-{{ $job.name }}"
labels:
chart: "{{ $chart_name }}-{{ $chart_version }}"
spec:
concurrencyPolicy: {{ $job.concurrencyPolicy }}
failedJobsHistoryLimit: {{ $job.failedJobsHistoryLimit }}
suspend: {{ $job.suspend }} …Run Code Online (Sandbox Code Playgroud) 在舵图中想要迭代包含结构化值的地图。
我确实知道如何使用简单的字符串值迭代地图。我还可以迭代包含结构化值的数组(此处未显示)。但我没有设法迭代包含结构化值的映射。
这是我的目录结构,包含 3 个文件:
templates/test.yaml
Chart.yaml
values.yaml
Run Code Online (Sandbox Code Playgroud)
一个简单的文件 Chart.yaml (仅用于完成展示):
templates/test.yaml
Chart.yaml
values.yaml
Run Code Online (Sandbox Code Playgroud)
文件values.yaml,其中包含一个包含简单字符串值(标签)和一个包含结构化值(标签1)的映射:
---
apiVersion: v1
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: foochart
version: 0.1.0
Run Code Online (Sandbox Code Playgroud)
这个模板 test.yaml 的工作原理:
---
label:
fook: foo
bark: bar
label1:
fook:
name: foo
value: foo1
bark:
name: bar
value: bar2
Run Code Online (Sandbox Code Playgroud)
但是当我替换.Values.label为时.Values.label1,它不会产生任何输出。
这是我的测试命令:
---
env:
{{- range $k, $v := .Values.label }}
- name: {{ $k }}
value: {{ $v }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
问题:是否可以处理具有结构化值的地图?我想用类似的东西$v.name。如果是,我该怎么做?