Skip to content
This repository was archived by the owner on Jan 21, 2020. It is now read-only.

Commit e9318b7

Browse files
thebsdboxDavid Chung
authored andcommitted
Updated documentation for HPE OneView plugin (#753)
Signed-off-by: Dan Finneran <[email protected]>
1 parent aad5812 commit e9318b7

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

pkg/provider/oneview/README.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# HPE OneView Infrakit Instance Plugin
2+
3+
This is a Docker InfraKit Instance Plugin that is designed to automate the provisioning of "Instances" through HPE OneView (Servers currently). This plugin is driven by configuration that is passed in to Docker InfraKit typically using the group plugin to manage numerous instances or numerous groups of instances (multi-tenancy of sorts).
4+
5+
6+
## Architecture Overview
7+
8+
The Instance plugin will take the configuration that is described in the group-default JSON configuration and commit the instance code to the plugin itself. The plugin then will communicate directly with OneView to assess the state of defined instances and act accordingly by (**creating**, **growing**, **healing**, **removing** or **destroying**) the instances. If numerous group configurations are commited, then the oneview plugin will manage all instances and will differentiate between instances and which group they belong too.
9+
10+
![OneView Architecture](http://thebsdbox.co.uk/wp-content/uploads/2016/11/InfraKit-Instance-oneview.jpeg)
11+
12+
### Plugin socket
13+
Ideally the various Docker InfraKit plugins are meant to be started inside of containers, to expose communication between the various plugins (which takes place over UNIX sockets) the path where the sockets are created should be mapped with the `-v` docker flag. Like the Docker InfraKit standard all plugin sockets are created in `$HOME/.infrakit/plugins`.
14+
15+
### State data
16+
17+
In order to manage expected state with actual state the plugin will use Group tags and the hash of the configuration to manage the state. The plugin also implements a simple state machine to watch for profiles that are being created but not yet listed by the API.
18+
19+
The **Group Tags** live inside of HPE OneView instances are used in order to allow the plugin to determine which state file (detailed above) an instances is described within.
20+
21+
## Using the plugin
22+
23+
**Starting**
24+
25+
The plugin can be started quite simply by running `./infrakit plugin start instance-oneview` which will start the plugin with all of the defaults for **socket** and **state** files located within the `~/.infrakit` directories. Once the plugin is up and running it can be discovered through the InfraKit cli through the command `infrakit plugin ls`.
26+
27+
**Configuration**
28+
29+
To pass authentication credentials to the HPE OneView plugin, it should be started with a number of environment variables:
30+
31+
`INFRAKIT_ONEVIEW_OVURL` = IP address of OneView
32+
33+
`INFRAKIT_ONEVIEW_OVUSER` = Username to connect to OneView
34+
35+
`INFRAKIT_ONEVIEW_OVPASS` = Password to authenticate to OneView
36+
37+
`INFRAKIT_ONEVIEW_OVAPI` = Specify an API version *[optional, defaults to 300]*
38+
39+
40+
As with all InfraKit plugins, the group plugin will define the *"amount"* of instances that need to be provisioned the instance plugins. The group plugin will then pass the instance configuration to the plugin as many times as needed. The main points of note in the instance configuration:
41+
42+
`TemplateName : string` = **[required]** This has to match (case sensitive) a pre-created OneView template
43+
44+
```
45+
"Instance" : {
46+
"Plugin" : "instance-oneview",
47+
"Properties" : {
48+
"Note" : "Generic OneView configuration",
49+
"TemplateName" : "Docker-Gen8-Template",
50+
}
51+
},
52+
```
53+
54+
55+
## NEXT STEPS
56+
57+
58+
* TBD
59+
60+
# Copyright and license
61+
62+
Copyright © 2017 Docker, Inc. All rights reserved. Released under the Apache 2.0
63+
license. See [LICENSE](LICENSE) for the full license text.

0 commit comments

Comments
 (0)