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

Commit fe01aa5

Browse files
author
David Chung
authored
Migrate stand-alone binaries into core binary (#702)
Signed-off-by: David Chung <[email protected]>
1 parent 2b143e6 commit fe01aa5

File tree

108 files changed

+2639
-1760
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+2639
-1760
lines changed

Makefile

Lines changed: 51 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -95,54 +95,68 @@ define define_binary_target
9595
$(eval $(call binary_target_template,$(1),$(2)))
9696
endef
9797

98-
98+
# actual binaries that need to be built:
9999
$(call define_binary_target,infrakit,github.com/docker/infrakit/cmd/infrakit)
100-
$(call define_binary_target,infrakit-flavor-kubernetes,github.com/docker/infrakit/examples/flavor/kubernetes)
101-
$(call define_binary_target,infrakit-flavor-swarm,github.com/docker/infrakit/examples/flavor/swarm)
102-
$(call define_binary_target,infrakit-flavor-zookeeper,github.com/docker/infrakit/examples/flavor/zookeeper)
103-
$(call define_binary_target,infrakit-group-default,github.com/docker/infrakit/cmd/group)
104-
$(call define_binary_target,infrakit-instance-aws,github.com/docker/infrakit/cmd/instance/aws)
105-
$(call define_binary_target,infrakit-instance-digitalocean,github.com/docker/infrakit/cmd/instance/digitalocean)
106-
$(call define_binary_target,infrakit-instance-docker,github.com/docker/infrakit/examples/instance/docker)
107-
$(call define_binary_target,infrakit-instance-gcp,github.com/docker/infrakit/cmd/instance/google)
108-
$(call define_binary_target,infrakit-instance-hyperkit,github.com/docker/infrakit/cmd/instance/hyperkit)
109-
$(call define_binary_target,infrakit-instance-image,github.com/docker/infrakit/cmd/instance/image)
110-
ifeq ($(OS),Windows_NT)
111-
build/infrakit-instance-libvirt:
112-
# noop on windows
113-
else
114-
$(call define_binary_target,infrakit-instance-libvirt,github.com/docker/infrakit/cmd/instance/libvirt)
115-
endif
116-
$(call define_binary_target,infrakit-instance-maas,github.com/docker/infrakit/examples/instance/maas)
117-
$(call define_binary_target,infrakit-instance-packet,github.com/docker/infrakit/cmd/instance/packet)
118-
$(call define_binary_target,infrakit-instance-terraform,github.com/docker/infrakit/pkg/provider/terraform/instance/cmd)
119-
$(call define_binary_target,infrakit-instance-vagrant,github.com/docker/infrakit/examples/instance/vagrant)
120-
$(call define_binary_target,infrakit-instance-vsphere,github.com/docker/infrakit/pkg/provider/vsphere)
121100
$(call define_binary_target,infrakit-manager,github.com/docker/infrakit/cmd/manager)
122-
$(call define_binary_target,infrakit-metadata-aws,github.com/docker/infrakit/cmd/metadata/aws)
123-
$(call define_binary_target,infrakit-resource,github.com/docker/infrakit/cmd/resource)
124101

125-
binaries: clean build-binaries
126-
build-binaries: build/infrakit \
127-
build/infrakit-flavor-kubernetes \
128-
build/infrakit-flavor-swarm \
129-
build/infrakit-flavor-zookeeper \
130-
build/infrakit-group-default \
102+
103+
# preserves the build/* binaries but use script to call 'infrakit plugin start' instead:
104+
define plugin_start_template
105+
build/$(1): $(SRCS)
106+
@echo "#!/bin/sh\n# invoke plugin $(1) as $(2)\ninfrakit plugin start $(2) --log 5" > build/$(1)$(EXE_EXT)
107+
@chmod a+x build/$(1)$(EXE_EXT)
108+
endef
109+
define define_plugin_start_target
110+
$(eval $(call plugin_start_template,$(1),$(2)))
111+
endef
112+
113+
$(call define_plugin_start_target,infrakit-group-default,group)
114+
$(call define_plugin_start_target,infrakit-instance-aws,aws)
115+
$(call define_plugin_start_target,infrakit-instance-digitalocean,digitalocean)
116+
$(call define_plugin_start_target,infrakit-instance-docker,docker)
117+
$(call define_plugin_start_target,infrakit-instance-gcp,google)
118+
$(call define_plugin_start_target,infrakit-instance-hyperkit,hyperkit)
119+
$(call define_plugin_start_target,infrakit-instance-image,image)
120+
$(call define_plugin_start_target,infrakit-instance-maas,maas)
121+
$(call define_plugin_start_target,infrakit-instance-packet,packet)
122+
$(call define_plugin_start_target,infrakit-instance-rackhd,rackhd)
123+
$(call define_plugin_start_target,infrakit-instance-terraform,terraform)
124+
$(call define_plugin_start_target,infrakit-instance-vagrant,vagrant)
125+
$(call define_plugin_start_target,infrakit-instance-vsphere,vsphere)
126+
$(call define_plugin_start_target,infrakit-flavor-kubernetes,kubernetes)
127+
$(call define_plugin_start_target,infrakit-flavor-swarm,swarm)
128+
$(call define_plugin_start_target,infrakit-metadata-aws,aws)
129+
130+
build-plugin-start-scripts: build/infrakit \
131131
build/infrakit-instance-aws \
132132
build/infrakit-instance-digitalocean \
133133
build/infrakit-instance-docker \
134134
build/infrakit-instance-gcp \
135135
build/infrakit-instance-hyperkit \
136136
build/infrakit-instance-image \
137-
build/infrakit-instance-libvirt \
138137
build/infrakit-instance-maas \
139138
build/infrakit-instance-packet \
139+
build/infrakit-instance-rackhd \
140140
build/infrakit-instance-terraform \
141141
build/infrakit-instance-vagrant \
142142
build/infrakit-instance-vsphere \
143-
build/infrakit-manager \
143+
build/infrakit-flavor-kubernetes \
144+
build/infrakit-flavor-swarm \
145+
build/infrakit-group-default \
144146
build/infrakit-metadata-aws \
145-
build/infrakit-resource \
147+
148+
ifeq ($(OS),Windows_NT)
149+
build/infrakit-instance-libvirt:
150+
# noop on windows
151+
else
152+
$(call define_plugin_start_target,infrakit-instance-libvirt,libvirt)
153+
endif
154+
155+
156+
binaries: clean build-binaries build-plugin-start-scripts
157+
build-binaries: build/infrakit \
158+
build/infrakit-manager \
159+
146160

147161
@echo "+ $@"
148162
ifneq (,$(findstring .m,$(VERSION)))
@@ -252,10 +266,10 @@ endif
252266

253267
build-docker: build-installer \
254268
build-devbundle \
255-
build-provider-aws \
256-
build-provider-digitalocean \
257-
build-provider-google \
258-
build-provider-terraform \
269+
#build-provider-aws \
270+
#build-provider-digitalocean \
271+
#build-provider-google \
272+
#build-provider-terraform \
259273

260274
# Provider: AWS
261275
build-provider-aws: build/infrakit-instance-aws build/infrakit-metadata-aws

README.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ With an emphasis on immutable infrastructure, it breaks down infrastructure auto
1212
These components work together to actively ensure the infrastructure state matches the user's specifications.
1313
InfraKit therefore provides infrastructure support for higher-level container orchestration systems and can make your infrastructure self-managing and self-healing.
1414

15-
To get started, try the [tutorial](docs/tutorial.md), or check out the video below:
15+
To get started, try the [tutorial](docs/tutorial/README.md), or check out the video below:
1616

1717
### InfraKit + [LinuxKit](https://github.com/linuxkit/linuxkit) POC
1818

@@ -46,37 +46,38 @@ Plugins are active daemons that cooperate with one another to ensure the infrast
4646

4747
## Plugins
4848
_InfraKit_ makes extensive use of _Plugins_ to manage arbitrary systems in diverse environments, which can be composed
49-
to meet different needs. See the [plugins](docs/plugins) documentation for more technical details.
49+
to meet different needs. See the [plugins](docs/plugin) documentation for more technical details.
5050

5151
Here is a list of plugins:
5252

5353
### Core Implementations
5454

5555
| plugin | type | description |
5656
|:--------------------------------------------------------|:---------|:----------------------------------------|
57-
| [infrakit/group](./cmd/group) | group | core group controller for rolling updates, scale group, etc. |
58-
| [swarm](./examples/flavor/swarm) | flavor | runs Docker in Swarm mode |
59-
| [kubernetes](./examples/flavor/kubernetes) | flavor | bootstraps a single master kubernetes cluster |
60-
| [vanilla](./examples/flavor/vanilla) | flavor | manual specification of instance fields |
61-
| [zookeeper](./examples/flavor/zookeeper) | flavor | run an Apache ZooKeeper ensemble |
62-
| [infrakit/file](./examples/instance/file) | instance | useful for development and testing |
63-
| [infrakit/docker](./examples/instance/docker) | instance | provisions container via Docker |
64-
| [infrakit/terraform](./pkg/provider/terraform/instance) | instance | creates resources using Terraform |
65-
| [infrakit/maas](./examples/instance/maas) | instance | bare-metal provisioning using Ubuntu MAAS |
66-
| [infrakit/vagrant](./examples/instance/vagrant) | instance | creates Vagrant VMs |
67-
| [infrakit/hyperkit](./pkg/plugin/instance/hyperkit) | instance | creates [HyperKit](https://github.com/moby/hyperkit) VMs on Mac OSX |
68-
| [infrakit/packet](./pkg/plugin/instance/packet) | instance | provisions bare metal hosts on Packet |
69-
| [infrakit/libvirt](./pkg/plugin/instance/libvirt) | instance | provisions KVM vms via libvirt |
70-
| [infrakit/aws](./pkg/provider/aws) | instance | creates Amazon EC2 instances and other resource types |
71-
| [infrakit/google](./pkg/provider/google/plugin/instance) | instance | Google Cloud Platform compute instances |
72-
| [docker/infrakit.digitalocean](https://github.com/docker/infrakit.digitalocean) | instance | creates DigitalOcean droplets |
57+
| [group](./pkg/plugin/group) | group | core group controller for rolling updates, scale group, etc. |
58+
| [swarm](./pkg/plugin/flavor/swarm/README.md) | flavor | runs Docker in Swarm mode |
59+
| [kubernetes](./pkg/plugin/flavor/kubernetes/README.md) | flavor | bootstraps a single master kubernetes cluster |
60+
| [combo](./pkg/plugin/flavor/combo) | flavor | [combine multiple flavor plugins](./docs/plugin/flavor/combo/README.md) |
61+
| [vanilla](./pkg/plugin/flavor/vanilla) | flavor | [manual specification of instance fields](./docs/plugin/flavor/vanilla/README.md) |
62+
| [aws](./pkg/provider/aws) | instance | creates Amazon EC2 instances and other resource types |
63+
| [digitalocean](./pkg/provider/digitalocean) | instance | creates DigitalOcean droplets |
64+
| [docker](./pkg/provider/docker) | instance | [provisions container via Docker](./pkg/provider/docker/README.md) |
65+
| [google](./pkg/provider/google/plugin/instance) | instance | [Google Cloud Platform compute instances](./pkg/provider/google/README.md) |
66+
| [file](./pkg/plugin/instance/file) | instance | useful for development and testing |
67+
| [hyperkit](./pkg/provider/hyperkit) | instance | creates [HyperKit](https://github.com/moby/hyperkit) VMs on Mac OSX |
68+
| [libvirt](./pkg/provider/libvirt) | instance | provisions KVM vms via libvirt |
69+
| [maas](./pkg/provider/maas) | instance | [bare-metal provisioning using Ubuntu MAAS](./pkg/provider/maas/plugin/instance/README.md) |
70+
| [packet](./pkg/provider/packet) | instance | provisions bare metal hosts on Packet |
71+
| [rackhd](./pkg/provider/rackhd) | instance | [bare-metal server provisioning via RackHD](./pkg/provider/rackhd/README.md) |
72+
| [terraform](./pkg/provider/terraform/instance) | instance | creates resources using Terraform |
73+
| [vagrant](./pkg/provider/vagrant) | instance | creates Vagrant VMs |
74+
| [vsphere](./pkg/provider/vsphere) | instance | creates VMWare VMs |
7375

7476
### Community Implementations
7577

7678
| plugin | type | description |
7779
|:--------------------------------------------------------|:---------|:----------------------------------------|
7880
| [HewlettPackard/infrakit-instance-oneview](https://github.com/HewlettPackard/infrakit-instance-oneview) | instance | bare-metal server provisioning via HP-OneView |
79-
| [codedellemc/infrakit.rackhd](https://github.com/codedellemc/infrakit.rackhd) | instance | bare-metal server provisioning via RackHD |
8081
| [IBM Cloud](./pkg/provider/terraform/instance) | instance | Provisions instances on IBM Cloud via terraform |
8182
| [AliyunContainerService/infrakit.aliyun](https://github.com/AliyunContainerService/infrakit.aliyun) | instance | Provisions instances on Alibaba Cloud |
8283
| [1and1/infrakit-instance-oneandone](https://github.com/1and1/infrakit-instance-oneandone) | instance | Provisions instances on 1&1 Cloud Server |

cmd/infrakit/main.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,22 +42,31 @@ import (
4242
// Supported "kinds"
4343
_ "github.com/docker/infrakit/pkg/run/v0/aws"
4444
_ "github.com/docker/infrakit/pkg/run/v0/combo"
45+
_ "github.com/docker/infrakit/pkg/run/v0/digitalocean"
46+
_ "github.com/docker/infrakit/pkg/run/v0/docker"
4547
_ "github.com/docker/infrakit/pkg/run/v0/enrollment"
4648
_ "github.com/docker/infrakit/pkg/run/v0/file"
49+
_ "github.com/docker/infrakit/pkg/run/v0/google"
4750
_ "github.com/docker/infrakit/pkg/run/v0/group"
4851
_ "github.com/docker/infrakit/pkg/run/v0/hyperkit"
4952
_ "github.com/docker/infrakit/pkg/run/v0/ibmcloud"
53+
_ "github.com/docker/infrakit/pkg/run/v0/image"
5054
_ "github.com/docker/infrakit/pkg/run/v0/ingress"
5155
_ "github.com/docker/infrakit/pkg/run/v0/kubernetes"
56+
_ "github.com/docker/infrakit/pkg/run/v0/libvirt"
57+
_ "github.com/docker/infrakit/pkg/run/v0/maas"
5258
_ "github.com/docker/infrakit/pkg/run/v0/manager"
59+
_ "github.com/docker/infrakit/pkg/run/v0/packet"
5360
_ "github.com/docker/infrakit/pkg/run/v0/rackhd"
5461
_ "github.com/docker/infrakit/pkg/run/v0/selector"
5562
_ "github.com/docker/infrakit/pkg/run/v0/simulator"
5663
_ "github.com/docker/infrakit/pkg/run/v0/swarm"
5764
_ "github.com/docker/infrakit/pkg/run/v0/tailer"
5865
_ "github.com/docker/infrakit/pkg/run/v0/terraform"
5966
_ "github.com/docker/infrakit/pkg/run/v0/time"
67+
_ "github.com/docker/infrakit/pkg/run/v0/vagrant"
6068
_ "github.com/docker/infrakit/pkg/run/v0/vanilla"
69+
_ "github.com/docker/infrakit/pkg/run/v0/vsphere"
6170
)
6271

6372
func init() {

cmd/instance/aws/main.go

Lines changed: 0 additions & 116 deletions
This file was deleted.

0 commit comments

Comments
 (0)