/warden

Cloud Foundry - the open platform as a service project

Primary LanguageRubyApache License 2.0Apache-2.0

warden

Manages isolated, ephemeral, and resource controlled environments.

Introduction

The project's primary goal is to provide a simple API for managing isolated environments. These isolated environments -- or containers -- can be limited in terms of CPU usage, memory usage, disk usage, and network access. As of writing, the only supported OS is Linux.

Components

This repository contains the following components:

  • warden -- server
  • warden-protocol -- protocol definition, used by both the server and clients
  • warden-client -- client (Ruby)
  • em-warden-client -- client (Ruby's EventMachine)

For information on how to run the warden server and interact with it at the command line, see the warden server README.

Testing

Warden server tests are run automatically in a newly created container using a virtualbox image dynamically downloaded from s3.amazonaws.com/runtime-artifacts/warden-compatible.box.

# Checkout the repos
git clone https://github.com/cloudfoundry/warden

There is a .ruby-version file in the root of the repo which is copied into the created container filespace (along with the rest of the warden directory, with a few exceptions). The version in this file is that used in the container. This is pre-installed in the warden-compatible.box image.

To run bin/test_in_vm you need to have this exact same version of ruby installed locally.

# Run warden server tests
bin/test_in_vm

License

The project is licensed under the Apache 2.0 license (see the LICENSE file).

Contributing

Please read the contributors' guide.