Giter Club home page Giter Club logo

walkthrough's Introduction


Chaos Toolkit - Chaos Engineering for All Engineers

Release Build GitHub issues License Python version

CommunityInstallationTutorialsReferenceChangeLog


Chaos Toolkit - Chaos Engineering for All Engineers

The Chaos Toolkit, or as we love to call it “ctk”, is a simple CLI-driven tool who helps you write and run Chaos Engineering experiment. It supports any target platform you can think of through existing extensions or the ones you write as you need.

Chaos Toolkit is versatile and works really well in settings where other Chaos Engineering tools may not fit: cloud environments, datacenters, CI/CD, etc.

Install or Upgrade

Provided you have Python 3.8+ installed, you can install it as follows:

$ pip install -U chaostoolkit

Getting Started

Once you have installed the Chaos Toolkit you can use it through its simple command line tool.

Running an experiment is as simple as:

$ chaos run experiment.json

Get involved!

Chaos Toolkit's mission is to provide an open API to chaos engineering in all its forms. As such, we encourage and welcome you to join our open community Slack team to discuss and share your experiments and needs with the community. You can also use StackOverflow to ask any questions regarding using the Chaos Toolkit or Chaos Engineering.

If you'd prefer not to use Slack then we welcome the raising of GitHub issues on this repo for any questions, requests, or discussions around the Chaos Toolkit.

Finally you can always email [email protected] with any questions as well.

Contribute

Contributors to this project are welcome as this is an open-source effort that seeks discussions and continuous improvement.

From a code perspective, if you wish to contribute, you will need to run a Python 3.8+ environment. Please, fork this project, write unit tests to cover the proposed changes, implement the changes, ensure they meet the formatting standards set out by ruff, add an entry into CHANGELOG.md, and then raise a PR to the repository for review

The project is driven by PDM, so install it and you can run the following commands:

$ pdm install
$ pdm run test
$ pdm run format
$ pdm run lint

The Chaos Toolkit projects require all contributors must sign a Developer Certificate of Origin on each commit they would like to merge into the master branch of the repository. Please, make sure you can abide by the rules of the DCO before submitting a PR.

walkthrough's People

Contributors

charliemoon37 avatar lawouach avatar y0an avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

paparaha4

walkthrough's Issues

Kubernetes Version Control

Via the installation instructions of a local Kubernetes cluster at: https://github.com/chaostoolkit/walkthrough/blob/main/SETUP.md
It notes that: "The labs run against a Kubernetes cluster, any recent version (1.16+) should do"
But then when installing minikube/microk8s, it specifies the version for each of these installations.
$ minikube start --driver none --kubernetes-version v1.19.1
$ sudo snap install microk8s --classic --channel=1.19

According to their documentation, if a version is not specified, it will default to the latest stable version available.
https://microk8s.io/docs/setting-snap-channel
https://minikube.sigs.k8s.io/docs/commands/start/

So is there a need to specify the version as it contradicts the opening statement?

Application Services Install

The final step to set up the labs (https://github.com/chaostoolkit/walkthrough/blob/main/SETUP.md#installation-of-the-applications) requires a .yaml file located at: https://github.com/chaostoolkit/walkthrough/blob/main/manifests/all.yaml

However, there is no reference to being in a clone of this repository for that file to be accessible - it just assumes that the user knows to do this.

Potential Solution: At some point in the documentation, reference: $ git clone [email protected]:chaostoolkit/walkthrough.git to ensure that the user has the correct directory available

Minikube Drivers

After installation of minikube, the docs explain to use:
$ minikube start --driver none --kubernetes-version v1.19.1
(https://github.com/chaostoolkit/walkthrough/blob/main/SETUP.md#minikube)

This is supposed to start a local Kubernetes cluster however this command is only valid on Linux-based systems

As seen at: https://minikube.sigs.k8s.io/docs/drivers/ the none driver is only valid for Linux-based systems and there doesn't seem to be any suitable alternatives that "allow advanced minikube users to skip VM creation, allowing minikube to be run on a user-supplied VM" for other systems. The only drivers compatible with all three systems are: Docker, VirtualBox and SSH.

localhost:8080 was refused

Whilst rolling with the microk8s installation instead of minikube on the setup docs (https://github.com/chaostoolkit/walkthrough/blob/main/SETUP.md) once microk8s was installed, running and other dependencies installed, kubectl commands seemed to fail returning an error along the lines of:
The connection to the server localhost:8080 was refused - did you specify the right host or port?

The first was solved by using the prefix microk8s kubectl instead of kubectl but this only delayed the problem to a position where this approach could not be taken. Note: Microk8s seems to use multipass instead of docker to create and run the cluster

Error installing Traefik

When installing traefik on minikube according to the instructions in the setup, I the the following error:

Error from server (Invalid): error when creating "manifests/traefik.yaml": CustomResourceDefinition.apiextensions.k8s.io "ingressroutes.traefik.containo.us" is invalid: spec.versions[0].schema.openAPIV3Schema: Required value: schemas are required

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.