@@ -14,7 +14,7 @@ The default plugin directory is `~/.infrakit/plugins`, and can be overridden wit
14
14
Note that multiple instances of a plugin may run, provided they have different names for discovery. This may be useful,
15
15
for example, if a plugin can be configured to behave differently. For example:
16
16
17
- The CLI shows which plugins are [ discoverable] ( cmd/cli/README.md#list-plugins ) .
17
+ The CLI shows which plugins are [ discoverable] ( ../../ cmd/cli/README.md#list-plugins) .
18
18
19
19
## Plugin types
20
20
### Group
@@ -32,7 +32,7 @@ Since _InfraKit_ emphasizes on declarative infrastructure, there are no operatio
32
32
state to another. Instead, you _ declare_ your desired state of the infrastructure. _ InfraKit_ is responsible
33
33
for converging towards, and maintaining, that desired state.
34
34
35
- Therefore, a [ group plugin] ( pkg/spi/group/spi.go ) manages Groups of Instances and exposes the operations that are of
35
+ Therefore, a [ group plugin] ( ../../ pkg/spi/group/spi.go) manages Groups of Instances and exposes the operations that are of
36
36
interest to a user:
37
37
38
38
+ commit a group configuration, to start managing a group
@@ -49,7 +49,7 @@ infrastructure management system. This would allow you to use _InfraKit_ toolin
49
49
different infrastructure using the same interface.
50
50
51
51
### Instance
52
- Instances are members of a group. An [ instance plugin] ( pkg/spi/instance/spi.go ) manages some physical resource instances.
52
+ Instances are members of a group. An [ instance plugin] ( ../../ pkg/spi/instance/spi.go) manages some physical resource instances.
53
53
It knows only about individual instances and nothing about Groups. Instance is technically defined by the plugin, and
54
54
need not be a physical machine at all.
55
55
@@ -62,7 +62,7 @@ persistent, stable state. These properties are captured via the _flavors_ of the
62
62
63
63
### Flavor
64
64
Flavors help distinguish members of one group from another by describing how these members should be treated.
65
- A [ flavor plugin] ( pkg/spi/flavor/spi.go ) can be thought of as defining what runs on an Instance.
65
+ A [ flavor plugin] ( ../../ pkg/spi/flavor/spi.go) can be thought of as defining what runs on an Instance.
66
66
It is responsible for dictating commands to run services, and check the health of those services.
67
67
68
68
Flavors allow a group of instances to have different characteristics. In a group of cattle,
@@ -80,30 +80,30 @@ Over time, we would prefer to phase out reference Plugins that appear to provide
80
80
are developed independently. For this reason, please [ file an issue] ( https://github.com/docker/infrakit/issues/new )
81
81
to start a discussion before contributing to these plugins with non-trivial code.
82
82
83
- | plugin | type | description |
84
- | :-----------------------------------------------------| :---------| :----------------------------------------|
85
- | [ swarm] ( pkg/example /flavor/swarm) | flavor | runs Docker in Swarm mode |
86
- | [ vanilla] ( pkg/example /flavor/vanilla) | flavor | manual specification of instance fields |
87
- | [ zookeeper] ( pkg/example /flavor/zookeeper) | flavor | run an Apache ZooKeeper ensemble |
88
- | [ infrakit/file] ( pkg/example /instance/file) | instance | useful for development and testing |
89
- | [ infrakit/terraform] ( pkg/example /instance/terraform) | instance | creates instances using Terraform |
90
- | [ infrakit/vagrant] ( pkg/example /instance/vagrant) | instance | creates Vagrant VMs |
83
+ | plugin | type | description |
84
+ | :-------------------------------------------------------- | :---------| :----------------------------------------|
85
+ | [ swarm] ( ../../examples /flavor/swarm) | flavor | runs Docker in Swarm mode |
86
+ | [ vanilla] ( ../../examples /flavor/vanilla) | flavor | manual specification of instance fields |
87
+ | [ zookeeper] ( ../../examples /flavor/zookeeper) | flavor | run an Apache ZooKeeper ensemble |
88
+ | [ infrakit/file] ( ../../examples /instance/file) | instance | useful for development and testing |
89
+ | [ infrakit/terraform] ( ../../examples /instance/terraform) | instance | creates instances using Terraform |
90
+ | [ infrakit/vagrant] ( ../../examples /instance/vagrant) | instance | creates Vagrant VMs |
91
91
92
92
93
93
### Supported implementations
94
94
The following Plugins are supported for active development. Note that these Plugins may not be part of the InfraKit
95
95
project, so please double-check where the code lives before filing InfraKit issues.
96
96
97
- | plugin | type | description |
98
- | :--------------------------------------------------------------| :---------| :------------------------------------------------------|
99
- | [ infrakit/group] ( cmd/group ) | group | supports Instance and Flavor plugins, rolling updates |
100
- | [ docker/infrakit.aws] ( https://github.com/docker/infrakit.aws ) | instance | creates Amazon EC2 instances |
97
+ | plugin | type | description |
98
+ | :-------------------------------------------------------------------- | :---------| :------------------------------------------------------|
99
+ | [ infrakit/group] ( ../../ cmd/group) | group | supports Instance and Flavor plugins, rolling updates |
100
+ | [ docker/infrakit.aws] ( https://github.com/docker/infrakit.aws ) | instance | creates Amazon EC2 instances |
101
101
102
102
Have a Plugin you'd like to share? Submit a Pull Request to add yourself to the list!
103
103
104
104
### Creating a plugin
105
105
A plugin must be an HTTP server that implements one of the plugin [ APIs] ( #apis ) , listening on a Unix socket. While
106
- a plugin can be written in any programming language, [ utilities] ( pkg/rpc ) are available as libraries to simplify Plugin
106
+ a plugin can be written in any programming language, [ utilities] ( ../../ pkg/rpc) are available as libraries to simplify Plugin
107
107
development in Go. Our [ reference implementations] ( #reference-implementations ) should provide a good starting point
108
108
for building a new plugin using these utilities.
109
109
0 commit comments