All Projects → helm → acceptance-testing

helm / acceptance-testing

Licence: Apache-2.0 License
Acceptance test suite for the Helm client

Programming Languages

shell
77523 projects
RobotFramework
109 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to acceptance-testing

Helm
The Kubernetes Package Manager
Stars: ✭ 20,846 (+94654.55%)
Mutual labels:  chart, charts, helm, cncf
charts
☸️ Helm Charts for YOURLS
Stars: ✭ 12 (-45.45%)
Mutual labels:  chart, charts, helm
charts
My helm charts
Stars: ✭ 15 (-31.82%)
Mutual labels:  chart, charts, helm
Helm 2to3
This is a Helm v3 plugin which migrates and cleans up Helm v2 configuration and releases in-place to Helm v3
Stars: ✭ 431 (+1859.09%)
Mutual labels:  chart, helm, cncf
awesome-tools
Open-source list of awesome data visualization tools (e.g., charting libraries) for software developers 📊📈
Stars: ✭ 47 (+113.64%)
Mutual labels:  chart, charts
android-charts
A curated list of Android Chart libraries.
Stars: ✭ 69 (+213.64%)
Mutual labels:  chart, charts
charts
HAProxy Ingress helm charts
Stars: ✭ 24 (+9.09%)
Mutual labels:  chart, helm
robot-framework-docker
Docker image to run robot framework acceptance testing in a docker container
Stars: ✭ 24 (+9.09%)
Mutual labels:  acceptance-testing, robotframework
onechart
A generic Helm chart for your application deployments
Stars: ✭ 30 (+36.36%)
Mutual labels:  chart, helm
helm-charts
Helm Charts
Stars: ✭ 24 (+9.09%)
Mutual labels:  chart, helm
helm-nifi
Helm Chart for Apache Nifi
Stars: ✭ 124 (+463.64%)
Mutual labels:  charts, helm
charts
ChartMuseum Project Helm Charts
Stars: ✭ 38 (+72.73%)
Mutual labels:  charts, helm
helm-charts
docs.renovatebot.com/helm-charts
Stars: ✭ 51 (+131.82%)
Mutual labels:  chart, helm
towards5gs-helm
Open-source project providing Helm charts for deploying Free5GC and UERANSIM on a Kubernetes cluster
Stars: ✭ 53 (+140.91%)
Mutual labels:  chart, helm
better-access-charts
Better charts for Access with chart.js
Stars: ✭ 19 (-13.64%)
Mutual labels:  chart, charts
HCLineChartView
HCLineChartView is a beautiful iOS library for drawing line charts. It is highly customizable and easy to use.
Stars: ✭ 22 (+0%)
Mutual labels:  chart, charts
charts
This repository is home to the original helm charts for products throughout the open data platform ecosystem.
Stars: ✭ 39 (+77.27%)
Mutual labels:  charts, helm
jitsi-scalable-helm
Scalable jitsi helm chart
Stars: ✭ 28 (+27.27%)
Mutual labels:  charts, helm
helm-spray
Helm plugin for installing or upgrading sub-charts from an umbrella-chart using dependency orders
Stars: ✭ 64 (+190.91%)
Mutual labels:  chart, helm
chart-testing-action
A GitHub Action to lint and test Helm charts
Stars: ✭ 139 (+531.82%)
Mutual labels:  charts, helm

Helm Acceptance Tests

GitHub Actions status

This repo contains the source for Helm acceptance tests. The tests are written using Robot Framework.

Note: these tests have only been run against Helm 3 (dev-v3)

Test Summary

Kubernetes Versions

Helm is tested to work against the following versions of Kubernetes:

Test suite: kubernetes_versions.robot

Shell Completion

Helm's shell completion functionality is tested against the following shells:

  • Bash
  • Zsh

Test suite: shells.robot

Helm Repositories

Basic functionality of the chart repository subsystem is tested.

Test suite: repos.robot

System requirements

The following tools/commands are expected to be present on the base system prior to running the tests:

Running the tests

From the root of this repo, run the following:

make acceptance

Alternatively, if you have Docker installed, the system requirements above are not needed, and you can run the following command which will simulate CI:

make github-actions-ci-local

Note: by default, the tests will use helm as found on your PATH. To specify a different helm to test, set and export the ROBOT_HELM_PATH environment variable. For example, if you have helm v2 installed, but want to test helm v3 which is located elsewhere; or if you have helm installed but want to test a different development version of helm.

Selecting which test suites to execute

By default make acceptance will run every test suite (*.robot file) present in the directory specified in the environment variable ROBOT_TEST_ROOT_DIR. You can instead specify which test suites to run by setting and exporting variable ROBOT_RUN_TESTS.

For example, to only run the shells.robot suite:

ROBOT_RUN_TESTS=shells.robot
make acceptance

To specify multiple test suites you can set ROBOT_RUN_TESTS to a comma-separated, or space-separated list. For example:

ROBOT_RUN_TESTS=shells.robot,kubernetes_versions.robot
make acceptance

You can use the list format of ROBOT_RUN_TESTS as a way to specify the order in which the test suites should be run. By default (when ROBOT_RUN_TESTS is not specified), the test suites are run in alphabetical order.

Viewing the results

Robot creates an HTML test report describing test successes/failures.

To view the report, runt the following:

open .acceptance/report.html

Note: by default, the tests will output to the .acceptance/ directory. To modify this location, set the ROBOT_OUTPUT_DIR environment variable.

Kubernetes integration

When testing Helm against multiple Kubernetes versions, new test clusters are created on the fly (using kind), with names in the following format:

helm-acceptance-test-<timestamp>-<kube_version>

If you wish to use an existing kind cluster for one or more versions, you can set an environment variable for a given version.

Here is an example of using an existing kind cluster for Kubernetes version 1.15.0:

export KIND_CLUSTER_1_15_0="helm-ac-keepalive-1.15.0"

A kind cluster can be created manually like so:

kind create cluster \
  --name=helm-ac-keepalive-1.15.0 \
  --image=kindest/node:v1.15.0

Adding a new test case etc.

All files ending in .robot extension in this directory will be executed. Add a new file describing your test, or, alternatively, add to an existing one.

Robot tests themselves are written in (mostly) plain English, but the Python programming language can be used in order to add custom keywords etc.

Notice the lib/ directory - this contains Python libraries that enable us to work with system tools such as kind. The file common.py contains a base class called CommandRunner that you will likely want to leverage when adding support for a new external tool.

The test run is wrapped by acceptance.sh - in this file the environment is validated (i.e. check if required tools present). If any additional Python libraries are required for a new library, it can be appended to ROBOT_PY_REQUIRES.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].