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

Commit aad5812

Browse files
FrenchBenDavid Chung
authored andcommitted
Updated instructions for the google plugin (#751)
Signed-off-by: French Ben <[email protected]>
1 parent 4106d39 commit aad5812

File tree

1 file changed

+51
-76
lines changed

1 file changed

+51
-76
lines changed

pkg/provider/google/README.md

Lines changed: 51 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,19 @@ An InfraKit instance plugin which creates Google Compute Engine instances.
1010

1111
### Building
1212

13-
To build the instance plugin, run `make binaries`. The plugin binary will be located at
14-
`./build/infrakit-instance-gcp`.
13+
To build the instance plugin, run `make binaries`. The plugin will then show up as part of the main infrakit CLI
14+
`build/infrakit plugin start google`.
1515

1616
### Running
1717

1818
```bash
19-
${PATH_TO_INFRAKIT}/infrakit-flavor-vanilla
20-
${PATH_TO_INFRAKIT}/infrakit-group-default
21-
./build/infrakit-instance-gcp --project=[GCP_PROJECT] --zone=[GCP_ZONE]
22-
23-
${PATH_TO_INFRAKIT}/infrakit group commit gcp-example-1.json
19+
INFRAKIT_GOOGLE_PROJECT=my-project INFRAKIT_GOOGLE_ZONE=us-west1 build/infrakit plugin start google
2420
```
2521

2622
#### Project and zone selection
2723

28-
Google Cloud project and zone can be passed on the command line with `--project`
29-
and `--zone`. In case a value is not provided, the plugin will fallback to:
24+
Google Cloud project and zone can be passed on the command line with `INFRAKIT_GOOGLE_PROJECT`
25+
and `INFRAKIT_GOOGLE_ZONE` env variables. In case a value is not provided, the plugin will fallback to:
3026
+ Querying the [Metadata server][metadata] when running on GCE
3127
+ `CLOUDSDK_CORE_PROJECT` and `CLOUDSDK_CORE_ZONE` environment variables
3228

@@ -45,18 +41,51 @@ too.
4541

4642
### Example configuration
4743

48-
```json
44+
To continue with an example, we will use the [default](https://github.com/docker/infrakit/tree/master/cmd/group) Group
45+
plugin:
46+
47+
```bash
48+
$ build/infrakit plugin start group
49+
INFO[11-06|16:58:10] config module=cli/plugin url= fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
50+
INFO[11-06|16:58:10] Launching module=cli/plugin kind=group name=group-stateless fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
51+
INFO[11-06|16:58:10] Starting plugin module=core/launch executor=inproc key=group name=group-stateless exec=inproc fn=github.com/docker/infrakit/pkg/launch.(*Monitor).Start.func1
52+
INFO[11-06|16:58:10] Object is an event producer module=rpc/server object=&{keyed:0xc4201862f8} discover=/Users/infrakit/.infrakit/plugins/group-stateless fn=github.com/docker/infrakit/pkg/rpc/server.startAtPath
53+
INFO[11-06|16:58:10] Listening module=rpc/server discover=/Users/infrakit/.infrakit/plugins/group-stateless fn=github.com/docker/infrakit/pkg/rpc/server.startAtPath
54+
INFO[11-06|16:58:10] Waiting for startup module=core/launch key=group name=group-stateless config="{\n\"Kind\": \"group\",\n\"Options\": {\n\"PollInterval\": \"10s\",\n\"MaxParallelNum\": 0,\n\"PollIntervalGroupSpec\": \"10s\",\n\"PollIntervalGroupDetail\": \"10s\"\n}\n}" as=group-stateless fn=github.com/docker/infrakit/pkg/launch.(*Monitor).Start.func1
55+
INFO[11-06|16:58:10] Done waiting on plugin starts module=cli/plugin fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
56+
INFO[11-06|16:58:10] PID file created module=run path=/Users/infrakit/.infrakit/plugins/group-stateless.pid fn=github.com/docker/infrakit/pkg/run.run.func1
57+
INFO[11-06|16:58:10] Server started module=run discovery=/Users/infrakit/.infrakit/plugins/group-stateless fn=github.com/docker/infrakit/pkg/run.run.func1
58+
```
59+
60+
and the [Vanilla](https://github.com/docker/infrakit/tree/master/pkg/example/flavor/vanilla) Flavor plugin:
61+
62+
```bash
63+
$ build/infrakit plugin start vanilla
64+
INFO[11-06|16:59:01] config module=cli/plugin url= fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
65+
INFO[11-06|16:59:01] Launching module=cli/plugin kind=vanilla name=vanilla fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
66+
INFO[11-06|16:59:01] Starting plugin module=core/launch executor=inproc key=vanilla name=vanilla exec=inproc fn=github.com/docker/infrakit/pkg/launch.(*Monitor).Start.func1
67+
INFO[11-06|16:59:01] Listening module=rpc/server discover=/Users/infrakit/.infrakit/plugins/vanilla fn=github.com/docker/infrakit/pkg/rpc/server.startAtPath
68+
INFO[11-06|16:59:01] Waiting for startup module=core/launch key=vanilla name=vanilla config="{\n\"Kind\": \"vanilla\",\n\"Options\": {\n\"DelimLeft\": \"\",\n\"DelimRight\": \"\",\n\"MultiPass\": true,\n\"CacheDir\": \"\"\n}\n}" as=vanilla fn=github.com/docker/infrakit/pkg/launch.(*Monitor).Start.func1
69+
INFO[11-06|16:59:01] Done waiting on plugin starts module=cli/plugin fn=github.com/docker/infrakit/cmd/infrakit/plugin.Command.func2
70+
INFO[11-06|16:59:01] PID file created module=run path=/Users/infrakit/.infrakit/plugins/vanilla.pid fn=github.com/docker/infrakit/pkg/run.run.func1
71+
INFO[11-06|16:59:01] Server started module=run discovery=/Users/infrakit/.infrakit/plugins/vanilla fn=github.com/docker/infrakit/pkg/run.run.func1
72+
```
73+
74+
We will use a basic configuration that creates a single instance:
75+
76+
```bash
77+
$ cat << EOF > gcp-vanilla.json
4978
{
50-
"ID": "gcp-example-1",
79+
"ID": "gcp-example",
5180
"Properties": {
5281
"Allocation": {
5382
"Size": 1
5483
},
5584
"Instance": {
56-
"Plugin": "instance-gcp",
85+
"Plugin": "google/compute",
5786
"Properties": {
5887
"NamePrefix": "test",
59-
"Description": "Test of GCP infrakit",
88+
"Description": "Test of Google infrakit",
6089
"Network": "default",
6190
"Tags": ["tag1", "tag2"],
6291
"MachineType": "n1-standard-1",
@@ -73,7 +102,7 @@ too.
73102
}
74103
},
75104
"Flavor": {
76-
"Plugin": "flavor-vanilla",
105+
"Plugin": "vanilla",
77106
"Properties": {
78107
"Init": [
79108
"sh -c \"echo 'Hello, World!' > /hello\""
@@ -84,75 +113,21 @@ too.
84113
}
85114
```
86115
87-
## Group plugin
88-
89-
An InfraKit group plugin which wraps Google Compute Engine's managed instance
90-
groups.
91-
92-
### Building
93-
94-
To build the group plugin, run `make binaries`. The plugin binary will be located at
95-
`./build/infrakit-group-gcp`.
96-
97-
### Running
116+
Finally, instruct the Group plugin to start watching the group:
98117
99118
```bash
100-
${PATH_TO_INFRAKIT}/infrakit-flavor-vanilla
101-
./build/infrakit-instance-gcp --project=[GCP_PROJECT] --zone=[GCP_ZONE] --name=group
102-
103-
${PATH_TO_INFRAKIT}/infrakit group commit gcp-example-2.json
119+
$ build/infrakit group-stateless commit gcp-vanilla.json
104120
```
105121
106-
#### Project and zone selection
107-
108-
Works the same as the instance plugin.
109-
110-
#### Pets versus Cattle
122+
## Group plugin
111123
112-
This plugin supports only pets via `Allocation/Size`. It doesn't support
113-
`Allocation/LogicalIDs`.
114-
This plugin doesn't need an instance plugin since instances are managed directly
115-
by GCP.
124+
An InfraKit group plugin which wraps Google Compute Engine's managed instance
125+
groups.
116126
117-
### Example configuration
127+
The CLI will report the newly-created instance from the above example, via:
118128
119-
```json
120-
{
121-
"ID": "gcp-example-2",
122-
"Properties": {
123-
"Allocation": {
124-
"Size": 2
125-
},
126-
"Instance": {
127-
"Properties": {
128-
"Description": "Test of GCP infrakit",
129-
"Network": "default",
130-
"Tags": ["tag1", "tag2"],
131-
"MachineType": "n1-standard-1",
132-
"Disks":[{
133-
"Boot": true,
134-
"SizeGb": 60,
135-
"Image": "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-1404-trusty-v20161205",
136-
"Type": "pd-standard",
137-
"AutoDelete": false,
138-
"ReuseExisting": true
139-
}],
140-
"Scopes": [
141-
"https://www.googleapis.com/auth/cloudruntimeconfig",
142-
"https://www.googleapis.com/auth/logging.write"
143-
]
144-
}
145-
},
146-
"Flavor": {
147-
"Plugin": "flavor-vanilla",
148-
"Properties": {
149-
"Init": [
150-
"sh -c \"echo 'Hello, World!' > /hello\""
151-
]
152-
}
153-
}
154-
}
155-
}
129+
```bash
130+
$ build/infrakit group-stateless inspect gcp-example
156131
```
157132
158133
## Reporting security issues

0 commit comments

Comments
 (0)