A system for testing Bottlerocket. To learn more about how it works, see the design document.
The system consists of a command line interface, Kubernetes controller, custom resource definition (CRD) objects and containers that allow you to create resources and run tests. You install TestSys into a cluster of your choice, we call this the TestSys cluster. When running a test, resource agents create an external cluster where we run Bottlerocket instances and run tests. This is called an external cluster.
🚧 👷
The project is in active pre-release development. Eventually we plan to publish container images and other aspects of the system, but we aren't quite there yet. We also are not quite ready for external contributions, but we are happy to respond to issues and discussions.
See our QUICKSTART for a walk through of compiling, deploying, and running a quick test.
More detailed quickstart guides can be found in the main Bottlerocket repo.
See the QUICKSTART-*.md
files for information on the various deployment targets.
See the Developer Guide for TestSys for an introduction to the framework and start up guide.
testsys-model
is the root dependency. It includes the CRDs and clients for interacting with them.controller
contains the Kubernetes controller responsible for running resource and test pods.agent
contains libraries with the traits and harnesses for creating test and resource agents.bottlerocket/agents
contains the implementations of the test and resource traits that we use for Bottlerocket testing.
The testsys-model
, agents
and controller
crates are general-purpose, and define the TestSys system.
It is possible to use these libraries and controller for testing purposes other than Bottlerocket.
The bottlerocket/agents
crates are more specialized to Bottlerocket's testing use cases.
See CONTRIBUTING for more information.
This project is dual licensed under either the Apache-2.0 License or the MIT license, your choice.