覆盖子图中的引用文件(在 .Files 中)或从主图中插入 mariadb 初始文件
Overwrite referenced files (in .Files) in a Subchart or insert mariadb initial files from a main chart
所以我有一个 mariadb 子图。 mariadb 图表从不同的初始化文件填充配置映射:
{{ (.Files.Glob "files/docker-entrypoint-initdb.d/*[sh|sql|sql.gz]").AsConfig | indent 2 }}
那么我可以注入初始化文件吗?
是否可以覆盖 .Files.Glob
的上下文以便它访问我的父目录?或者是否有另一种推荐的方法来创建初始 sql 文件?
maridb 子图在 requirements.yaml
中是这样实现的:
dependencies:
- name: mariadb
version: 5.x.x
repository: https://kubernetes-charts.storage.googleapis.com/
condition: mariadb.enabled
由于您的mariadb是第三方管理的子chart,.Files.Glob
仅指mariadb目录下的文件。
如果你想在子图中放置任何启动脚本,你必须取消存档。
假设您有 custom-init-scripts 目录,其中包含父图表中的所有初始化脚本。
$ ls custom-init-scripts/
init.sh insert.sql
# download mariadb chart package in charts directory
$ helm dependency update
# unarchive and delete package
$ tar -xvf charts/mariadb-5.*.tgz -C charts && rm charts/mariadb-5.*.tgz
# copy init scripts to mariadb subchart
$ cp -a custom-init-scripts/. charts/mariadb/files/docker-entrypoint-initdb.d/
现在您的初始化文件出现在 mariadb 子图中
helm install --debug --dry-run --set mariadb.enabled=true .
...
---
# Source: mychart/charts/mariadb/templates/initialization-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: elevated-dragonfly-mariadb-master-init-scripts
labels:
app: mariadb
component: "master"
chart: mariadb-5.2.5
release: "elevated-dragonfly"
heritage: "Tiller"
binaryData:
data:
init.sh: "echo \"hi\"\r\n"
insert.sql: INSERT INT Users (FirstName, LastName) VALUES ('A', 'B');
所以我有一个 mariadb 子图。 mariadb 图表从不同的初始化文件填充配置映射:
{{ (.Files.Glob "files/docker-entrypoint-initdb.d/*[sh|sql|sql.gz]").AsConfig | indent 2 }}
那么我可以注入初始化文件吗?
是否可以覆盖 .Files.Glob
的上下文以便它访问我的父目录?或者是否有另一种推荐的方法来创建初始 sql 文件?
maridb 子图在 requirements.yaml
中是这样实现的:
dependencies:
- name: mariadb
version: 5.x.x
repository: https://kubernetes-charts.storage.googleapis.com/
condition: mariadb.enabled
由于您的mariadb是第三方管理的子chart,.Files.Glob
仅指mariadb目录下的文件。
如果你想在子图中放置任何启动脚本,你必须取消存档。
假设您有 custom-init-scripts 目录,其中包含父图表中的所有初始化脚本。
$ ls custom-init-scripts/
init.sh insert.sql
# download mariadb chart package in charts directory
$ helm dependency update
# unarchive and delete package
$ tar -xvf charts/mariadb-5.*.tgz -C charts && rm charts/mariadb-5.*.tgz
# copy init scripts to mariadb subchart
$ cp -a custom-init-scripts/. charts/mariadb/files/docker-entrypoint-initdb.d/
现在您的初始化文件出现在 mariadb 子图中
helm install --debug --dry-run --set mariadb.enabled=true .
...
---
# Source: mychart/charts/mariadb/templates/initialization-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: elevated-dragonfly-mariadb-master-init-scripts
labels:
app: mariadb
component: "master"
chart: mariadb-5.2.5
release: "elevated-dragonfly"
heritage: "Tiller"
binaryData:
data:
init.sh: "echo \"hi\"\r\n"
insert.sql: INSERT INT Users (FirstName, LastName) VALUES ('A', 'B');