This repository has been deprecated and archived on Oct 27th, 2022.
Octopus is a testing framework that allows you to run tests defined as Docker images on a running cluster.
It was created to replace the helm test
by providing these additional features:
- Selective testing, which is especially useful for local development when you want to execute only tests that local changes can affect.
- Automatic retries on failed tests, which is a remedy for flaky tests.
- Running tests multiple times, which is helpful when you add a new test and you want to validate if it is stable, or when you want to reproduce a problem that occurs on CI.
- Full support for concurrent testing, which allows you to specify how many tests should be executed at the same time.
Octopus provides extensions for kubectl. For more information, read this document.
Use the following tools to set up the project:
- Version 1.12 or higher of Go
- Version 2.0.0 of Kustomize
- Version 1.0.7 of Kubebuilder
- The latest version of Docker
- The latest version of Mockery
To install the Octopus helm chart on a cluster, run the following command:
helm install ./chart/octopus/ --name={release name} --namespace={namepsace}
This project uses go modules
as the dependency manager. To install all required dependencies, use the following command:
make resolve
To test your changes before each commit, use the following command:
make validate
To regenerate mocks in this project, use the following script:
./hack/mocks-gen.sh
Chart chart/octopus
is upgraded manually, by copying respective files from the config
directory.