feh*_*ich 5 initialization mariadb kubernetes kubernetes-helm
所以我有一个 mariadb 子图。mariadb 图表从不同的初始化文件填充配置映射:
{{ (.Files.Glob "files/docker-entrypoint-initdb.d/*[sh|sql|sql.gz]").AsConfig | indent 2 }}
Run Code Online (Sandbox Code Playgroud)
那么无论如何我可以注入init文件吗?
是否可以覆盖上下文.Files.Glob以便访问我的父目录?还是有另一种推荐的方法来创建初始 sql 文件?
maridb 子图在以下内容中是这样实现的requirements.yaml:
dependencies:
- name: mariadb
version: 5.x.x
repository: https://kubernetes-charts.storage.googleapis.com/
condition: mariadb.enabled
Run Code Online (Sandbox Code Playgroud)
由于您的 mariadb 是由第三方管理的子图,因此.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/
Run Code Online (Sandbox Code Playgroud)
现在您的初始化文件出现在 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');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
986 次 |
| 最近记录: |