我有一个构建器映像/容器,它应该在带有测试源的目录上运行测试。
容器在AWS EKS中的Kubernetes窗格中通过helm test
运行。即不是docker
,所以我不能简单地使用-v
卷装。
我正在努力找到以简单的方式将此目录带到容器的正确方法。这是我拥有的头盔模板。除卷外,所有作品都有效。
apiVersion: v1
kind: Pod
metadata:
name: "{{ .Release.Name }}-gatling-test"
annotations:
"helm.sh/hook": test-success
spec:
restartPolicy: Never
containers:
- name: {{ .Release.Name }}-gatling-test
image: {{ .Values.builderImage }}
command: ["sh", "-c", 'mvn -B gatling:test -pl csa-testing -DCSA_SERVER={{ template "project.fullname" . }} -DCSA_PORT={{ .Values.service.appPort }}']
## TODO: The builder image also counts with having /tmp/build, so it needs a mount: -v '${job.WORKDIR}:/tmp/build'
volumeMounts:
- name: mavenRepoToBuild
mountPath: /tmp/build
volumes:
- name: mavenRepoToBuild
hostPath:
path: {{.Values.fromJenkins.WORKDIR}}
我在几个地方看过它不能直接完成。那么间接做到这一点的简单方法是什么?压缩并上传到S3并下载?或者将其作为图层添加到图像中?或者我应该创建Kubernetes卷资源吗?
答案 0 :(得分:0)
hostPath目录或文件必须存在于所有群集节点上。
您可以在hostPath上附加一些类型以确定其文件或目录。
您可以在主机路径上使用的类型列表可以在kubernetes文档中找到。
顺便问一下,你得到什么错误?没有权限?您可以执行helm run-run来查看渲染的模板。