gpt4 book ai didi

testing - 测试失败时的 Helm 部署状态

转载 作者:行者123 更新时间:2023-11-28 21:18:23 25 4
gpt4 key购买 nike

如果在安装之前运行的测试失败,是否有可能使 Helm 图表部署失败?因为现在尽管测试失败,但状态为“已部署”。

我的测试,检查 MongoDB 是否已部署且可访问:

apiVersion: v1
kind: Pod
metadata:
name: "{{ .Release.Name }}-database-connection-test"
annotations:
"helm.sh/hook": pre-install,test-success
"helm.sh/hook-delete-policy": before-hook-creation
spec:
containers:
- name: {{ .Release.Name }}-database-connection-test
image: {{ template "mongo.image" . }}
imagePullPolicy: Always
env:
- name: HOST
value: {{ .Values.mongo.host }}
- name: PORT
value: {{ .Values.mongo.port | quote }}
- name: DATABASE_NAME
value: {{ .Values.mongo.databasename }}
- name: USERNAME
value: {{ .Values.mongo.username }}
- name: PASSWORD
value: {{ .Values.mongo.password }}
command: ["sh", "-c", "mongo --username $USERNAME --password $PASSWORD --authenticationDatabase $DATABASE_NAME --host $HOST --port $PORT"]
restartPolicy: Never

最佳答案

所以一般来说,这可以通过将资源类型设置为Job来实现。Job 将阻塞 Tiller 直到它完成。
这里有一个小问题:如果作业无法完成,它将无限期地阻止 Helm 图表部署。为避免这种情况,需要设置 spec.activeDeadlineSeconds。如果作业在设定的时间限制之前未完成,它将使作业超时。

apiVersion: batch/v1
kind: Job
metadata:
name: "{{ .Release.Name }}-database-connection-test"
annotations:
"helm.sh/hook": pre-install,test-success
"helm.sh/hook-delete-policy": before-hook-creation
spec:
ttlSecondsAfterFinished: 300
backoffPolicy: 1
activeDeadlineSeconds: 100
template:
spec:
containers:
- name: {{ .Release.Name }}-database-connection-test
image: {{ template "mongo.image" . }}
imagePullPolicy: Always
env:
- name: HOST
value: {{ .Values.mongo.host }}
- name: PORT
value: {{ .Values.mongo.port | quote }}
- name: DATABASE_NAME
value: {{ .Values.mongo.databasename }}
- name: USERNAME
value: {{ .Values.mongo.username }}
- name: PASSWORD
value: {{ .Values.mongo.password }}
command: ["sh", "-c", "mongo --username $USERNAME --password $PASSWORD --authenticationDatabase $DATABASE_NAME --host $HOST --port $PORT"]
restartPolicy: Never

这是一种解决方法,因为最初不应将 Helm 测试注释与其他 Hook 一起使用。

关于testing - 测试失败时的 Helm 部署状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54942468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com