README
¶
fleet - a Distributed init System.
fleet ties together systemd and etcd into a distributed init system. Think of it as an extension of systemd that operates at the cluster level instead of the machine level.
This project is very low level and is designed as a foundation for higher order orchestration. This is a preview release – please read the security notice.
Common Uses
fleet allows you to define flexible architectures for running your services:
- Deploy a single container anywhere on the cluster
- Deploy multiple copies of the same container
- Ensure that containers are deployed together on the same machine
- Forbid specific services from co-habitation
- Maintain N containers of a service, re-deploying on failure
- Deploy containers on machines matching specific metadata
Examples
List Machines in the Cluster
$ fleetctl list-machines
MACHINE IP METADATA
148a18ff-6e95-4cd8-92da-c9de9bb90d5a 19.4.0.112 region=us-west
491586a6-508f-4583-a71d-bfc4d146e996 19.4.0.113 region=us-east
Submit & Start Units
$ ls examples/
hello.service ping.service pong.service
$ fleetctl submit examples/*
$ fleetctl start hello.service
List Units
$ fleetctl list-units
UNIT LOAD ACTIVE SUB DESC MACHINE
hello.service loaded active running - 148a18ff-6e95-4cd8-92da-c9de9bb90d5a
ping.service - - - - -
pong.service - - - - -
Getting Started
Before you can deploy units, fleet must be deployed and configured on each host in your cluster. After you have machines configured (fleetctl list-machines
), start some units.
Building
fleet must be built with Go 1.2 on a Linux machine, or in a Go docker container. Simply run ./build
and then copy the binaries out of bin/ onto each of your machines.
Project Details
APIs
The current fleet interfaces should not be considered stable. Expect incompatible changes in subsequent releases.
Contributing
See CONTRIBUTING for details on submitting patches and contacting developers via IRC and mailing lists.
License
fleet is released under the Apache 2.0 license. See the LICENSE file for details.
Specific components of fleet use code derivative from software distributed under other licenses; in those cases the appropriate licenses are stipulated alongside the code.
Documentation
¶
There is no documentation for this package.
Directories
¶
Path | Synopsis |
---|---|
functional
|
|
third_party
|
|
bitbucket.org/kardianos/osext
Extensions to the standard "os" package.
|
Extensions to the standard "os" package. |
code.google.com/p/gosshnew/ssh
Package ssh implements an SSH client and server.
|
Package ssh implements an SSH client and server. |
code.google.com/p/gosshnew/ssh/agent
Package agent implements a client to an ssh-agent daemon.
|
Package agent implements a client to an ssh-agent daemon. |
code.google.com/p/gosshnew/ssh/terminal
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
|
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems. |
code.google.com/p/gosshnew/ssh/test
This package contains integration tests for the github.com/coreos/fleet/third_party/code.google.com/p/gosshnew/ssh package.
|
This package contains integration tests for the github.com/coreos/fleet/third_party/code.google.com/p/gosshnew/ssh package. |
github.com/coreos/go-systemd/activation
Package activation implements primitives for systemd socket activation.
|
Package activation implements primitives for systemd socket activation. |
github.com/coreos/go-systemd/dbus
Integration with the systemd D-Bus API.
|
Integration with the systemd D-Bus API. |
github.com/coreos/go-systemd/examples/activation
Activation example used by the activation unit tests.
|
Activation example used by the activation unit tests. |
github.com/coreos/go-systemd/journal
Package journal provides write bindings to the systemd journal
|
Package journal provides write bindings to the systemd journal |
github.com/dotcloud/docker/pkg/netlink
Packet netlink provide access to low level Netlink sockets and messages.
|
Packet netlink provide access to low level Netlink sockets and messages. |
github.com/godbus/dbus
Package dbus implements bindings to the D-Bus message bus system.
|
Package dbus implements bindings to the D-Bus message bus system. |
github.com/godbus/dbus/introspect
Package introspect provides some utilities for dealing with the DBus introspection format.
|
Package introspect provides some utilities for dealing with the DBus introspection format. |
github.com/godbus/dbus/prop
Package prop provides the Properties struct which can be used to implement org.freedesktop.DBus.Properties.
|
Package prop provides the Properties struct which can be used to implement org.freedesktop.DBus.Properties. |
github.com/golang/glog
Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.
|
Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup. |
github.com/nu7hatch/gouuid
This package provides immutable UUID structs and the functions NewV3, NewV4, NewV5 and Parse() for generating versions 3, 4 and 5 UUIDs as specified in RFC 4122.
|
This package provides immutable UUID structs and the functions NewV3, NewV4, NewV5 and Parse() for generating versions 3, 4 and 5 UUIDs as specified in RFC 4122. |