Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 如果测试失败,舵展开状态_Testing_Kubernetes_Kubernetes Helm - Fatal编程技术网

Testing 如果测试失败,舵展开状态

Testing 如果测试失败,舵展开状态,testing,kubernetes,kubernetes-helm,Testing,Kubernetes,Kubernetes Helm,如果安装前运行的测试失败,是否有可能使Helm charts部署失败?因为现在尽管测试失败,状态仍然是“已部署” 我的测试,检查MongoDB是否已部署且可访问: apiVersion: v1 kind: Pod metadata: name: "{{ .Release.Name }}-database-connection-test" annotations: "helm.sh/hook": pre-install,test-success "helm.sh/hook-

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

我的测试,检查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

因此,通常可以将资源类型设置为
作业
。 这项工作将阻止舵柄,直到它完成
这里有一个小问题:若作业不能完成,它将在无限长的时间内阻碍掌舵图的部署。要避免这种情况,需要设置
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测试注释不应该与其他挂钩一起使用