我们有一个 Concourse 实例,它通过HelmRelease文件使用 Flux 部署到 Kubernetes,该文件保存我们的自定义值并引用Concourse Helm Chart。注意:我们使用的是 Helm v3。
该图表允许您指定addionalVolumes
和additionalVolumneMounts
;我希望用来映射/etc/Docker/Daemon.json
到我们的工作 pod 以使它们使用我们的 pull-through 镜像代理的功能(即避免 Docker 速率限制问题)。
apiVersion: helm.fluxcd.io/v1
kind: HelmRelease
metadata:
name: concourse
namespace: concourse
spec:
helmVersion: v3
releaseName: concourse
chart:
repository: https://concourse-charts.storage.googleapis.com/
name: concourse
version: 14.2.0
spec:
#...
values:
#...
worker:
#...
additionalVolumes:
- name: "concourse-worker-docker-daemon"
configMap:
name: "concourse-worker-docker-daemon"
additionalVolumeMounts:
- name: "concourse-worker-docker-daemon"
mountPath: /etc/docker/daemon.json
subPath: daemon.json
readOnly: true
但是,我需要使用以下内容创建此 configMap 资源:
apiVersion: v1
kind: ConfigMap
metadata:
name: concourse-worker-docker-daemon
labels:
app: concourse-worker
data:
daemon.json: |
{
"registry-mirrors": ["https://myDockerMirror.example.com:5000"]
}
如果我正在开发图表本身,我已经看到了如何定义这样的资源,但是由于我们使用第三方图表并且只是为发布提供值,我不确定应该如何实现这一点(例如一种在 HelmRelease 的值中内联提供 configMap 定义的方法,以便在部署图表时创建它,我是否需要创建一个自定义图表来包装第三方图表并添加此资源,或者我是否需要在外部创建 configMap任何图表,然后通过 HelmRelease 文件引用预先存在的资源)。
我想以这样一种方式定义资源,使它们在我的通量回购中得到完全管理;即,而不是通过运行手动创建配置映射kubectl apply ...
;这样任何推送到主分支的资源更改都会自动同步到我们的 kubernetes 实例。
我的背景是 Windows 全栈,所以我对所有涉及 Linux、Kubernetes、Flux 和 Helm 的概念都很陌生,所以如果我忽略了一些明显的事情,请提前道歉。