Kubeapps: Add support for running helm chart tests on a deployed release in dashboard

Created on 2 Aug 2019  路  5Comments  路  Source: kubeapps/kubeapps

Adding support for running helm chart tests on a deployed release in dashboard

Using helm, one can run a set of pre-defined tests for a given release. See doc on Chart Tests.

After deploying a release from a chart, one should be able to run the tests defined in the Helm Chart.

The How

  • Release is deployed and ready.
  • Clicking on Run Tests should run the tests against the release, something similar to helm test <RELEASE_NAME>.
  • The output from that command is shown in a meaningful way (styled messages).
  • Labels describing the outcome of the test process, can be permanently displayed on the release's page.

The Why

Although testing can be done via helm manually, having the possibility to do it from within the dashboard will make it easier to check the quality of one's release.

Visualizing the results of the tests will give more information to the people maintaining the Kubernetes cluster at a glance.

P.S. I am eager to try and start working on this feature, so if this gets approved I might need some help setting up the development environment.

good first issue kinfeature

Most helpful comment

Hi @llusx,

That could be an interesting feature, I agree :)

We would need to add support to that in tiller-proxy that is the service we use to communicate with Tiller.

This feature is not trivial to implement though. If you want to give it a try we can help with any question you may have, reading the developer documentation can be a good start.

Thank you for the proposal!

All 5 comments

Hi @llusx,

That could be an interesting feature, I agree :)

We would need to add support to that in tiller-proxy that is the service we use to communicate with Tiller.

This feature is not trivial to implement though. If you want to give it a try we can help with any question you may have, reading the developer documentation can be a good start.

Thank you for the proposal!

Thanks for your response and for the tip.
I'll see how far I can get with this feature.

Hi again, @andresmgot!

What's your take on a suitable endpoint for the tiller-proxy API?

During dev, I tried to mimic your style and used
GET /v1/namespaces/{namespace}/releases/{release}/test
Any suggestions?

Concerning the result of the endpoint, currently it returns something similar to this (example run against the release kubeapps in the namespace kubeapps)

{
  "data": {
    "run": [
      "kubeapps-chartsvc-test",
      "kubeapps-dashboard-test",
      "kubeapps-tiller-proxy-test"
    ],
    "passed": [
      "kubeapps-chartsvc-test",
      "kubeapps-dashboard-test",
      "kubeapps-tiller-proxy-test"
    ]
  }
}

Any failed tests will be populated inside an array called failed.

Thanks for your time.

That sounds good to me! Let me know if you want me to start reviewing something.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

migmartri picture migmartri  路  7Comments

kristinnardal2 picture kristinnardal2  路  4Comments

prydonius picture prydonius  路  4Comments

andresmgot picture andresmgot  路  8Comments

obeyler picture obeyler  路  7Comments