kubeatf
kubeatf copied to clipboard
KubeATF
Description
The Kubernetes Ansible Testing Framework is a tool meant to spin up, test, save results, and spin down Kubernetes clusters using the various installation tools/kits/templates readily available in a human and CI/CD friendly way.
In order to reduce conflicts of tools/versions as well as negate the need for having to install specific tools onto your system, KubeATF
builds all the tools needed into a Docker container. This is to allow for easy customization by you, the end user, to bake in whatever tools and scripts you may want to inject and make easy to deploy inside a CI/CD system that can run docker containers as build steps.
Use Cases
-
Kubernetes Installation Tool Testing - If you are a maintainer of a Kubernetes installation tool, this provides a mechanism to create a repeatable process for creating test clusters to improve consistency and reduce time spent during development.
-
Kubernetes Release Testing - If you are running the e2e (end to end) testing suite on various releases/configurations, this tool may help you.
-
Kubernetes Application Testing - If you are deploying an application or a helm chart inside Kubernetes and you are concerned with ensuring compatibility across clouds and versions of Kubernetes, this tool may help you.
-
Kubernetes Security Testing - If you are assessing multiple installation tools for their security posture using things like CIS Benchmarking checks, this tool can help automate the testing process.
Getting Started
These instructions will get you a copy of the project up and running on your local machine.
Prerequisites
In order to run this tool, you will need the following installed on your Linux/OSX system (which you probably already have):
-
bash 3.x
or newer -
git 2.x
or newer -
docker 1.12
or newer
Downloading KubeATF
- In order to install the tool, simply clone this repository:
$ git clone https://github.com/bgeesaman/kubeatf
$ cd kubeatf
- Ensure you have your SSH key (
.pem) in ~/.ssh/
$ ls ~/.ssh/kube.pem
kube.pem
- Ensure you have your AWS credentials in
~/.aws
$ ls ~/.aws/
config credentials
- Build the docker image locally:
$ ./kubeatf docker build
Listing available releases
$ ./kubeatf get releases <toolname>
e.g.
$ ./kubeatf get releases kops
Obtaining a release
$ ./kubeatf get <toolname> <release>
e.g.
$ ./kubeatf get kops 1.7.0
Configuring an Environment
-
TODO
- sa
Running a test
-
TODO
- sa
Viewing the results
-
TODO
- sa
Troubleshooting
Run ./kubeatf
for basic usage or ./kubeatf help <command>
to access detailed usage instructions.
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Contributors
- Brad Geesaman - Author - bgeesaman
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Acknowledgments
- Docker
- Ansible
- Kubernetes and the Kubernetes Community