Giter Site home page Giter Site logo

vbmade2000 / kurma Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jpoler/kurma

0.0 3.0 0.0 5.49 MB

Kurma - Containers all the way down

Home Page: http://kurma.io

License: Apache License 2.0

Makefile 1.81% Go 63.36% Shell 21.82% C 0.61% Python 7.59% Ruby 4.82%

kurma's Introduction

License Build Release

Kurma

Kurma is a container runtime built with extensibility and flexibility in mind. It focuses on "everything is a container" and uses this to enable plugins that run within Kurma, leaving Kurma easy and simple to deploy and manage. Configuring networking plugins or customizing how containers are instrumented is easily extensible.

Kurma implements the App Container (appc) specification, and leverages libcontainer from the Open Container Initiative (OCI).

For more information about Kurma, please visit our website and see our documentation.

Building Kurma

Building Kurma is made possible by leveraging Docker. You may say "your container engine is built with another container?" Yep. Docker has great tooling for augmenting a developer workflow, such as Docker Toolbox. We leverage that rather than reinventing.

To develop and build against Kurma, all you will need is the following:

Most compilation is done through Docker to ensure all compiling is done through our pre-built build environment images. This allows you to easily build Kurma on Linux even if you're running OS X. The CLI is still natively compiled, so if you're on OS X, you get a CLI built for OS X.

Our Makefile will automatically ensure you're running within Docker and map in the code at the necessary location, set the GOPATH, and ensure users match.

For a list of some of the most common tasks, you can run make help to see a list and description of some of the tasks.

For local development, you should check out the kurma repository within your $GOPATH so that it is at $GOPATH/src/github.com/kurma. You'll typically need to run make download to fetch some of the pre-compiled assets (busybox image, CNI networking image), then run make local to compile local binaries and make run to run the daemon mode. If on OS X, this will start the daemon in Docker and print out how to connect. To shut down the server, simply press Control-C and it will tear down all pods and exit.

$ git clone [email protected]:apcera/kurma.git $GOPATH/src/github.com/apcera/kurma
$ cd $GOPATH/src/github.com/apcera/kurma
$ make download
...
$ make local
...
$ make run
Running kurmad
==============================================================
Kurma remote API will be available at 172.17.0.2:12312

To connect with kurma-cli, please run:
  export KURMA_HOST=172.17.0.2
==============================================================
...

Downloading Kurma

The latest release images can be found on our website.

Running Tests

Kurma has both unit tests and integration tests. The unit tests are implemented in Go and can be ran using normal Go tooling.

The easiest way to run full unit tests would be to run make test. This will run the tests within a Docker image so that it can test on Linux and in the proper build environment.

The integration tests focus on testing Kurma from the outside in. They are implemented in Ruby using the well known RSpec framework. The integration tests are focused on testing the daemon functionality via the API and CLI. It focuses on verifying the end-to-end functionality works as expected. Integration tests are ran on every pull request and master change, and test compatibility across each distribution that is officially supported.

The integration tests live under testing/integration directory. They should generally work on any recent version of Ruby, Rubygems, and Bundler. Our own testing process involves using Ruby 2.2.4, Rubygems 2.6.1, and Bundler 1.11.2.

To run the integration tests, can run the following:

$ cd testing/integration
$ bundle install
$ bundle exec rake spec

The integration tests handle launching the currently compiled Kurma binaries from the bin directory. It is necessary to run the tests from a Linux host, as it does actively launch the daemon rather than connect to an outside one.

kurma's People

Contributors

krobertson avatar alextoombs avatar jpoler avatar lparis avatar arvinderpal avatar olegshaldybin avatar

Watchers

James Cloos avatar Malhar Vora avatar  avatar

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.