首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在子图中覆盖引用的文件(在.Files中),或从主图表中插入mariadb初始文件

问在子图中覆盖引用的文件(在.Files中),或从主图表中插入mariadb初始文件
EN

Stack Overflow用户
提问于 2018-12-19 13:00:28
回答 1查看 1.4K关注 0票数 7

所以我有一个马里亚布子图。mariadb图表使用以下内容填充来自不同init文件的配置映射:

代码语言:javascript
复制
{{ (.Files.Glob "files/docker-entrypoint-initdb.d/*[sh|sql|sql.gz]").AsConfig | indent 2 }}

不管怎样,我可以注入init文件吗?

是否可以覆盖.Files.Glob的上下文以使其访问我的父目录?或者,是否还有另一种创建初始sql文件的推荐方法?

maridb子图是这样在requirements.yaml中实现的。

代码语言:javascript
复制
dependencies:
- name: mariadb
  version: 5.x.x
  repository: https://kubernetes-charts.storage.googleapis.com/
  condition: mariadb.enabled
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-19 15:07:09

因为您的mariadb是第三方管理的子图,所以.Files.Glob只引用mariadb目录中的文件。

如果您想在子图表中放置任何启动脚本,则必须将其解压缩。

假设您拥有包含父图表中所有init脚本的custom-init-scripts目录。

代码语言:javascript
复制
$ 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/

现在init文件出现在mariadb子图中。

代码语言:javascript
复制
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');
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53851816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档