interlock

package module
v0.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2016 License: Apache-2.0 Imports: 1 Imported by: 0

README

Interlock

Dynamic, event-driven Docker plugin system using Swarm.

Usage

Run docker run ehazlett/interlock list-plugins to show available plugins.

Example:

docker run -P ehazlett/interlock -s tcp://1.2.3.4:2375 --plugin example start

Commandline options

  • --swarm-url: url to swarm (default: tcp://127.0.0.1:2375)
  • --swarm-tls-ca-cert: TLS CA certificate to use with swarm (optional)
  • --swarm-tls-cert: TLS certificate to use with swarm (optional)
  • --swarm-tls-key: TLS certificate key to use with swarm (options)
  • --plugin: enable plugin
  • --debug: enable debug output
  • --version: show version and exit

Plugins

See the Plugins directory for available plugins and their corresponding readme.md for usage.

Name Description
Example Example Plugin for Reference
HAProxy HAProxy Load Balancer
Nginx Nginx Load Balancer
Stats Container stat forwarding to Carbon

Building

To build a local copy of Interlock, you must have the following:

  • Go 1.5+
  • Use the Go vendor experiment

You can use the Makefile to build the binary. For example:

make build

This will build the binary in interlock/interlock.

There is also a Docker image target in the makefile. You can build it with make image.

You can also use Docker to build in a container if you do not want to worry about the host Go setup. To build in a container run:

make build-container

This will build the executable and place in interlock/interlock. Note: this executable will be built for Linux so you will either need to build a container afterword or be using Linux as your host OS to use.

License

Licensed under the Apache License, Version 2.0. See LICENSE for full license text.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	SwarmUrl       string   `json:"swarm_url,omitempty"`
	EnabledPlugins []string `json:"enabled_plugins,omitempty"`
}

type InterlockConfig

type InterlockConfig struct {
	Version string `json:"version,omitempty"`
}

type Plugin

type Plugin interface {
	Info() *PluginInfo
	Init() error
	HandleEvent(event *dockerclient.Event) error
}

type PluginInfo

type PluginInfo struct {
	Name        string
	Version     string
	Description string
	Url         string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL