Helm Chart 将内容复制到 emptyDir

Helm Chart to copy content to emptyDir

提问人:prmdpsn56 提问时间:11/15/2023 最后编辑:Jonasprmdpsn56 更新时间:11/21/2023 访问量:24

问:

我在 openshift 中使用 helm chart 进行部署,并且在不同的环境中部署有不同的阶段。我想在 helm 安装/升级阶段上传基于容器的 .js 文件。.js 文件位于 helm 目录中,与 values.yaml 处于同一级别。

my_project/
├── charts/
│   ├── my_app/
│   │   ├── templates/
│   │   │   ├── deployment.yaml
│   │   ├── values.yaml
|   |   |-- jsfiles/
├── src/
│   ├── main.js
│   ├── utils/
│   │   └── helper.js
├── assets/
│   ├── images/
│   │   └── logo.png
├── index.html

我的想法是创建一个 emptyDir 并使用 init Containers 将文件复制到挂载的卷中,然后主容器可以使用该卷。但是,我无法提供对本地文件的引用 我正在使用类似的配置,如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "your-app.fullname" . }}
  labels:
    {{- include "your-app.labels" . | nindent 4 }}
spec:
  template:
    spec:
      initContainers:
        - name: copy-codebase-filee
          image: alpine
          command: ["/bin/sh", "-c", "cp -R /jsfiles/* /emptydir"]
          volumeMounts:
            - name: emptydir
              mountPath: /emptydir
      containers:
        - name: your-app
          image: your-image:tag
          volumeMounts:
            - name: emptydir
              mountPath: /app
      volumes:
        - name: emptydir
          emptyDir: {}

我也尝试了这个配置,但 JS 文件大于 1Mb,所以不能使用下面的配置映射。

apiVersion: v1
kind: ConfigMap
metadata:
  name: jksconfig
data:
  config.json: |-
    {{ .Files.Get "config.json" | indent 4 }}
openshift kubernetes-helm

评论

0赞 David Maze 11/15/2023
如果这批文件超过 1 MB,则似乎不仅仅是配置;实际上有什么,它可以“烘焙”到图像中吗?安装卷似乎可能会完全隐藏图像的内容,而您可能不希望这样做。emptyDir/app

答: 暂无答案