kubernetes作业成功后复制报告

时间:2018-08-13 20:33:08

标签: automation kubernetes

我在kubernetes的名称空间上运行了一些服务。我创建了一个作业来运行指向这些服务的api测试,当该作业完成(成功)后,我希望能够将json报告复制到我的机器上。我尝试使用kubectl cp,但这仅在pod仍在运行时有效。

有人知道我在完成工作后如何复制这些报告吗?我试图创建一个部署,以便能够复制这些报告,但是然后没有restartpolicy用于部署,并且每次都重新启动测试,这使我在能够复制报告之前就丢失了它们。还尝试仅使用restartpolicy: NEVER创建一个pod,但是我遇到了与工作相同的问题。

apiVersion: v1
kind: Pod
metadata:
  name: api-tests
  namespace: tests
spec:
    restartPolicy: Never
    containers:
    - name: api-tests
      image: api-tests:latest
      args: 
          - run
          - https://www.getpostman.com/collections/test23423423
          - -e
          - /etc/newman/envs/kubernetes.postman_environment.json 
          - -d
          - /etc/newman/data/tests.csv
          - --reporters
          - cli,html,json
          - --reporter-json-export
          - /etc/newman/target/api_tests.json
          - --reporter-html-export
          - /etc/newman/target/api_tests.html
          - --reporter-cli-no-failures

这是我目前拥有的job.yaml

任何想法都非常受欢迎。

1 个答案:

答案 0 :(得分:1)

我认为您可以将报告推送到git服务器等系统,也可以使用persistentvolume(PV)将报告放入nfs之类的共享存储中。您的作业将运行特定的节点主机,然后您还可以查看hostPath,以从Pod与主机服务器共享报告。

希望对您有帮助。