hull/docs/roadmap.md

2.2 KiB

Roadmap

The following types of tests are in scope for the expected use cases that Hull can eventually address around Helm chart testing, but are not currently supported:

  • Security Testing: Add support for additional helper functions for chart developers to use in pkg/checker/resource to verify that all workloads in a given rendered template manifest do not contain any known CVEs associated with them by running a trivy image scan on all images. Also add additional helper functions to encode best practices for workloads in Helm charts.

  • Install Testing / Smoke Testing: Upon installing a helm chart onto a cluster using basic, common values.yaml configurations of Helm charts, ensure that all pods are up and running (helm install --wait) and that a helm test is successfully executed. Also ensure that upgrades from the second newest version of a chart (if it exists) to the latest version of the chart work if a given values.yaml exists in both the newer and older chart and that in-place upgrades work.

    • Note: it is expected that your Helm chart must already have helm test hook resources that verify that all exposed endpoints of your application can be accessed via some k8s Service using Kubernetes DNS directly from within the cluster and that any known endpoints that indicate application status (i.e. a /health endpoint) return a valid response that indicates that the endpoint is healthy, if available. See the Grafana Helm chart or MySQL Helm chart for simple examples of how to add this type of testing via Bats
  • Integration / Vanilla K8s Testing: Upon installing a helm chart onto a cluster using basic, common values.yaml configurations of Helm charts, ensure that user workflows work as expected

    • e.g. Mimic a user creating a certain resource via kubectl and validate that some configuration is modified correctly (a Kubernetes resource is created / modified, a log is emitted, a file is created / modified within a container, the output of a specific HTTP call returns the desired result, etc.)