From 79c9cbe562446e010675b98477ea52dfd8b35155 Mon Sep 17 00:00:00 2001 From: David Chung Date: Mon, 9 Oct 2017 17:09:34 -0700 Subject: [PATCH] make libvirt optional (#718) Signed-off-by: David Chung --- Makefile | 5 ++++- cmd/infrakit/libvirt.go | 7 +++++++ cmd/infrakit/main.go | 1 - cmd/infrakit/plugin/plugin.go | 2 ++ dockerfiles/Dockerfile.installer | 3 +-- docs/install | 4 ++-- 6 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 cmd/infrakit/libvirt.go diff --git a/Makefile b/Makefile index 28d05c8fd..5b6beb9e8 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,9 @@ E2E_TESTS?=true #Source file target SRCS := $(shell find . -type f -name '*.go') +# Set the go build tags here. By default we disable building of libvirt +GO_BUILD_TAGS?=nolibvirt + # Allow turning off function inlining and variable registerization ifeq (${DISABLE_OPTIMIZATION},true) GO_GCFLAGS=-gcflags "-N -l" @@ -88,7 +91,7 @@ clean: define binary_target_template build/$(1): $(SRCS) - go build -o build/$(1)$(EXE_EXT) \ + go build -o build/$(1)$(EXE_EXT) -tags $(GO_BUILD_TAGS) \ -ldflags "-X github.com/docker/infrakit/pkg/cli.Version=$(VERSION) -X github.com/docker/infrakit/pkg/cli.Revision=$(REVISION) -X github.com/docker/infrakit/pkg/util/docker.ClientVersion=$(DOCKER_CLIENT_VERSION)" $(2) endef define define_binary_target diff --git a/cmd/infrakit/libvirt.go b/cmd/infrakit/libvirt.go new file mode 100644 index 000000000..12220c297 --- /dev/null +++ b/cmd/infrakit/libvirt.go @@ -0,0 +1,7 @@ +// +build libvirt + +package main + +import ( + _ "github.com/docker/infrakit/pkg/run/v0/libvirt" +) diff --git a/cmd/infrakit/main.go b/cmd/infrakit/main.go index a97396c35..773a42294 100644 --- a/cmd/infrakit/main.go +++ b/cmd/infrakit/main.go @@ -53,7 +53,6 @@ import ( _ "github.com/docker/infrakit/pkg/run/v0/image" _ "github.com/docker/infrakit/pkg/run/v0/ingress" _ "github.com/docker/infrakit/pkg/run/v0/kubernetes" - _ "github.com/docker/infrakit/pkg/run/v0/libvirt" _ "github.com/docker/infrakit/pkg/run/v0/maas" _ "github.com/docker/infrakit/pkg/run/v0/manager" _ "github.com/docker/infrakit/pkg/run/v0/oracle" diff --git a/cmd/infrakit/plugin/plugin.go b/cmd/infrakit/plugin/plugin.go index 717df7a0d..5a3e55037 100644 --- a/cmd/infrakit/plugin/plugin.go +++ b/cmd/infrakit/plugin/plugin.go @@ -151,6 +151,8 @@ func Command(plugins func() discovery.Plugins) *cobra.Command { parsedRules := []launch.Rule{} + log.Info("config", "url", *configURL) + if *configURL != "" { buff, err := processTemplate(*configURL) if err != nil { diff --git a/dockerfiles/Dockerfile.installer b/dockerfiles/Dockerfile.installer index e315c2f54..c08e099e3 100644 --- a/dockerfiles/Dockerfile.installer +++ b/dockerfiles/Dockerfile.installer @@ -1,12 +1,11 @@ FROM golang:1.8-alpine -RUN apk add --update git make gcc musl-dev wget ca-certificates openssl libvirt-dev git openssh +RUN apk add --update git make gcc musl-dev wget ca-certificates openssl libvirt-dev libvirt-lxc libvirt-qemu git openssh ENV GOPATH /go ENV PATH /go/bin:$PATH COPY dockerfiles/build-infrakit /usr/local/bin/ -COPY dockerfiles/build-hyperkit /usr/local/bin/ # Add source code Add . /go/src/github.com/docker/infrakit/ diff --git a/docs/install b/docs/install index f04765358..c497e216c 100755 --- a/docs/install +++ b/docs/install @@ -2,7 +2,7 @@ # Installs infrakit by cross compiling locally inside a docker container. -if [[ "$(which docker)" == "" ]]; then +if [ "$(which docker)" = "" ]; then echo "You must have Docker locally." exit -1 fi @@ -22,5 +22,5 @@ case "$(uname)" in esac -docker run --rm -v $dir:/build infrakit/installer build-infrakit $target +docker run --rm -v $dir:/build infrakit/installer:latest build-infrakit $target sudo cp ./infrakit /usr/local/bin