首页 > 解决方案 > 错误:无法获取 helm test myproject --logs 的 pod 日志

问题描述

我不确定这是 helm 的错误(使用 3.0.2 版)还是我的配置问题。

当我使用 --logs 选项启动 helm test 命令时,我在测试结束之前收到一个错误(测试正常,使用正常日志,因为我可以使用 kubectl 日志读取)。

测试 pod 是“未找到”,因为它有一个特定的名称,如“myproject-django-test-tjbhc”(与预期正确命名的作业不同)。

$ helm test $RELEASE --logs --namespace $NAMESPACE
 NAME: myproject-test
 LAST DEPLOYED: Fri Feb 14 10:10:03 2020
 NAMESPACE: myproject-test-vjuh-init-helm
 STATUS: deployed
 REVISION: 1
 TEST SUITE:     myproject-test-django-test
 Last Started:   Fri Feb 14 10:13:16 2020
 Last Completed: Fri Feb 14 10:18:16 2020
 Phase:          Failed
 NOTES:
 Deployed!
 Error: unable to get pod logs for myproject-test-django-test: pods "myproject-test-django-test" not found
 ERROR: Job failed: exit code 1

yaml:

apiVersion: batch/v1
kind: Job
metadata:
  name: "{{ .Release.Name }}-django-test"
  labels:
    app: {{ template "myproject.fullname" . }}
    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
    release: "{{ .Release.Name }}"
  annotations:
    "helm.sh/hook": test
spec:
  template:
    metadata:
      name: "{{ .Release.Name }}-django-test"
    spec:
      containers:
        - name: main
          image: {{ template "myproject.django.image" . }}
          imagePullPolicy: "{{ .Values.myproject.django.pullPolicy }}"
          args:
            - test

标签: kubernetes-helm

解决方案


这似乎是Helm 3中的一个错误。我为此在 GitHub 上创建了一个问题- 让我们看看会发生什么。

作为临时修复,您可以通过注释测试 Pod 来阻止测试 Pod 被删除:

"helm.sh/hook-delete-policy": before-hook-creation


推荐阅读