Skip to content

An adaptation of the Chaos Monkey concept to Cloud Foundry application instances

License

Notifications You must be signed in to change notification settings

strepsirrhini-army/chaos-loris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chaos Loris

This project is a self-hostable application to randomly destroy Cloud Foundry application instances, as an aid to resilience testing of high-availability systems. The is accomplished by describing a schedule that an application should be acted on as well as the probability that any instance of that application has of being destroyed.

Usage

The only interface to Chaos Loris today is via a REST-ful interface. This interface is documented with examples here.

Requirements

Java, Maven

The application is written in Java 8 and packaged as a self executable JAR file. This enables it to run anywhere that Java is available.

Configuration

Since the application is designed to work in a cloud-native environment, all configuration is done with environment variables.

Key Description
LORIS_CLOUDFOUNDRY_HOST The host of the Cloud Foundry instance running the targeted applications.
LORIS_CLOUDFOUNDRY_PASSWORD The password to log into the Cloud Foundry instance.
LORIS_CLOUDFOUNDRY_SKIPSSLVALIDATION Whether to skip SSL validation of the Cloud Foundry instance running targeted applications. (Optional, default false)
LORIS_CLOUDFOUNDRY_USERNAME The username to log into the Cloud Foundry instance. The user must have permissions to destroy any configured application.

Deployment

The following instructions assume that you have created an account and installed the cf command line tool.

In order to automate the deployment process as much as possible, the project contains a Cloud Foundry manifest. To deploy run the following commands:

./mvnw clean package
cf push

To confirm that Chaos Loris has started correctly run:

cf logs chaos-loris --recent

Developing

The project is set up as a Maven project and doesn't have any special requirements beyond that. It has been created using IntelliJ and contains configuration information for that environment, but should work with other IDEs.

License

The project is released under version 2.0 of the Apache License.