From 29a73d524b1a6141e7b4ae04a7e1a270dc2696e9 Mon Sep 17 00:00:00 2001 From: Enrique Llorente Pastora Date: Tue, 7 Jul 2020 09:11:37 +0200 Subject: [PATCH] Replace bazel with Makefile and bash (#401) * Replace bazel with Makefile and bash The gocli project is not complex enough to require bazel Signed-off-by: Quique Llorente * Update gocli hash Signed-off-by: Quique Llorente * Use system's go cmd instead of vendoring it Signed-off-by: Quique Llorente * Update gocli sha Signed-off-by: Quique Llorente --- cluster-provision/gocli/.gitignore | 1 + cluster-provision/gocli/BUILD | 75 ------------------- cluster-provision/gocli/Makefile | 45 ++++++----- cluster-provision/gocli/WORKSPACE | 52 ------------- cluster-provision/gocli/build/.dockerignore | 1 + cluster-provision/gocli/build/Dockerfile | 5 ++ cluster-provision/gocli/cmd/BUILD.bazel | 32 -------- cluster-provision/gocli/{ => cmd/cli}/main.go | 0 cluster-provision/gocli/cmd/okd/BUILD.bazel | 24 ------ cluster-provision/gocli/cmd/utils/BUILD.bazel | 17 ----- cluster-provision/gocli/go.mod | 4 +- cluster-up/cluster/images.sh | 2 +- 12 files changed, 38 insertions(+), 220 deletions(-) create mode 100644 cluster-provision/gocli/.gitignore delete mode 100644 cluster-provision/gocli/BUILD delete mode 100644 cluster-provision/gocli/WORKSPACE create mode 100644 cluster-provision/gocli/build/.dockerignore create mode 100644 cluster-provision/gocli/build/Dockerfile delete mode 100644 cluster-provision/gocli/cmd/BUILD.bazel rename cluster-provision/gocli/{ => cmd/cli}/main.go (100%) delete mode 100644 cluster-provision/gocli/cmd/okd/BUILD.bazel delete mode 100644 cluster-provision/gocli/cmd/utils/BUILD.bazel diff --git a/cluster-provision/gocli/.gitignore b/cluster-provision/gocli/.gitignore new file mode 100644 index 0000000000..b07476ddee --- /dev/null +++ b/cluster-provision/gocli/.gitignore @@ -0,0 +1 @@ +build/go* diff --git a/cluster-provision/gocli/BUILD b/cluster-provision/gocli/BUILD deleted file mode 100644 index 546a2c07f1..0000000000 --- a/cluster-provision/gocli/BUILD +++ /dev/null @@ -1,75 +0,0 @@ -load("@bazel_tools//tools/python:toolchain.bzl", "py_runtime_pair") - -py_runtime( - name = "python2_runtime", - interpreter_path = "/usr/bin/python2", - python_version = "PY2", -) - -py_runtime( - name = "python3_runtime", - interpreter_path = "/usr/bin/python3", - python_version = "PY3", -) - -py_runtime_pair( - name = "python_runtimes", - py2_runtime = ":python2_runtime", - py3_runtime = ":python3_runtime", -) - -toolchain( - name = "python_toolchain", - toolchain = ":python_runtimes", - toolchain_type = "@bazel_tools//tools/python:toolchain_type", -) - -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") - -package(default_visibility = ["//visibility:public"]) - -load("@bazel_gazelle//:def.bzl", "gazelle") -load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar") -load("@io_bazel_rules_docker//contrib:push-all.bzl", "docker_push") -load("@io_bazel_rules_docker//go:image.bzl", "go_image") -load( - "@io_bazel_rules_docker//container:container.bzl", - "container_bundle", -) - -gazelle( - name = "gazelle", - prefix = "kubevirt.io/kubevirtci/cluster-provision/gocli", -) - -go_library( - name = "go_default_library", - srcs = ["main.go"], - importpath = "kubevirt.io/kubevirtci/cluster-provision/gocli", - deps = ["//cmd:go_default_library"], -) - -go_binary( - name = "cli", - embed = [":go_default_library"], - pure = "on", -) - -go_image( - name = "gocli", - binary = ":cli", - cmd = [""], - visibility = ["//visibility:public"], -) - -container_bundle( - name = "container-bundle", - images = { - "index.docker.io/kubevirtci/gocli:latest": "//:gocli", - }, -) - -docker_push( - name = "push-all", - bundle = ":container-bundle", -) diff --git a/cluster-provision/gocli/Makefile b/cluster-provision/gocli/Makefile index 2a84ece9e8..259a81b32d 100644 --- a/cluster-provision/gocli/Makefile +++ b/cluster-provision/gocli/Makefile @@ -1,29 +1,38 @@ -all: fmt build +SHELL := /bin/bash -.PHONY: build -build: fmt - bazel run //:gazelle - bazel build //:cli +BIN_DIR = $(CURDIR)/build +GO ?= go + +export GO111MODULE=on +export GOPROXY=direct +export GOSUMDB=off +export GOFLAGS=-mod=vendor + + +all: container-run + +.PHONY: gocli +cli: fmt + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GO) build -o $(BIN_DIR)/cli ./cmd/cli .PHONY: fmt fmt: - go fmt ./cmd/... - go fmt ./docker/... + $(GO) fmt ./cmd/... + $(GO) fmt ./docker/... .PHONY: container -container: fmt - bazel build //:gocli +container: cli + docker build -t kubevirtci/gocli build/ .PHONY: container-run -container-run: fmt - bazel run //:gocli +container-run: container + docker run kubevirtci/gocli -.PHONY: deps-update -deps-update: - GO111MODULE=on go mod tidy - GO111MODULE=on go mod vendor - bazel run //:gazelle +.PHONY: vendor +vendor: + $(GO) mod tidy + $(GO) mod vendor .PHONY: push -push: fmt - bazel run --host_force_python=PY2 //:push-all +push: container + docker push kubevirtci/gocli diff --git a/cluster-provision/gocli/WORKSPACE b/cluster-provision/gocli/WORKSPACE deleted file mode 100644 index 9978a02cbb..0000000000 --- a/cluster-provision/gocli/WORKSPACE +++ /dev/null @@ -1,52 +0,0 @@ -# register python toolchain https://github.com/bazelbuild/bazel/issues/7899 -register_toolchains("//:python_toolchain") - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") - -http_archive( - name = "io_bazel_rules_go", - urls = ["https://github.com/bazelbuild/rules_go/releases/download/0.18.6/rules_go-0.18.6.tar.gz"], - sha256 = "f04d2373bcaf8aa09bccb08a98a57e721306c8f6043a2a0ee610fd6853dcde3d", -) -http_archive( - name = "bazel_gazelle", - urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/0.17.0/bazel-gazelle-0.17.0.tar.gz"], - sha256 = "3c681998538231a2d24d0c07ed5a7658cb72bfb5fd4bf9911157c0e9ac6a2687", -) - -load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains") -go_rules_dependencies() -go_register_toolchains() -load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") -gazelle_dependencies() - - - -# Download the rules_docker repository at release v0.9.0 -http_archive( - name = "io_bazel_rules_docker", - sha256 = "e513c0ac6534810eb7a14bf025a0f159726753f97f74ab7863c650d26e01d677", - strip_prefix = "rules_docker-0.9.0", - urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.9.0/rules_docker-v0.9.0.tar.gz"], -) - -load( - "@io_bazel_rules_docker//container:container.bzl", - "container_pull", - "container_image", -) - -load( - "@io_bazel_rules_docker//repositories:repositories.bzl", - container_repositories = "repositories", -) - -container_repositories() - -load( - "@io_bazel_rules_docker//go:image.bzl", - _go_image_repos = "repositories", -) - -_go_image_repos() diff --git a/cluster-provision/gocli/build/.dockerignore b/cluster-provision/gocli/build/.dockerignore new file mode 100644 index 0000000000..07af76c861 --- /dev/null +++ b/cluster-provision/gocli/build/.dockerignore @@ -0,0 +1 @@ +go* diff --git a/cluster-provision/gocli/build/Dockerfile b/cluster-provision/gocli/build/Dockerfile new file mode 100644 index 0000000000..750ccaa35c --- /dev/null +++ b/cluster-provision/gocli/build/Dockerfile @@ -0,0 +1,5 @@ +FROM scratch + +COPY cli /cli + +ENTRYPOINT ["/cli"] diff --git a/cluster-provision/gocli/cmd/BUILD.bazel b/cluster-provision/gocli/cmd/BUILD.bazel deleted file mode 100644 index 01880d828e..0000000000 --- a/cluster-provision/gocli/cmd/BUILD.bazel +++ /dev/null @@ -1,32 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "ports.go", - "provision.go", - "rm.go", - "root.go", - "run.go", - "scp.go", - "ssh.go", - ], - importpath = "kubevirt.io/kubevirtci/cluster-provision/gocli/cmd", - visibility = ["//visibility:public"], - deps = [ - "//cmd/okd:go_default_library", - "//cmd/utils:go_default_library", - "//docker:go_default_library", - "//vendor/github.com/docker/docker/api/types:go_default_library", - "//vendor/github.com/docker/docker/api/types/container:go_default_library", - "//vendor/github.com/docker/docker/api/types/mount:go_default_library", - "//vendor/github.com/docker/docker/api/types/strslice:go_default_library", - "//vendor/github.com/docker/docker/api/types/volume:go_default_library", - "//vendor/github.com/docker/docker/client:go_default_library", - "//vendor/github.com/docker/go-connections/nat:go_default_library", - "//vendor/github.com/spf13/cobra:go_default_library", - "//vendor/golang.org/x/crypto/ssh:go_default_library", - "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library", - "//vendor/golang.org/x/net/context:go_default_library", - ], -) diff --git a/cluster-provision/gocli/main.go b/cluster-provision/gocli/cmd/cli/main.go similarity index 100% rename from cluster-provision/gocli/main.go rename to cluster-provision/gocli/cmd/cli/main.go diff --git a/cluster-provision/gocli/cmd/okd/BUILD.bazel b/cluster-provision/gocli/cmd/okd/BUILD.bazel deleted file mode 100644 index 2121505bea..0000000000 --- a/cluster-provision/gocli/cmd/okd/BUILD.bazel +++ /dev/null @@ -1,24 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "provision.go", - "run.go", - ], - importpath = "kubevirt.io/kubevirtci/cluster-provision/gocli/cmd/okd", - visibility = ["//visibility:public"], - deps = [ - "//cmd/utils:go_default_library", - "//docker:go_default_library", - "//vendor/github.com/docker/docker/api/types:go_default_library", - "//vendor/github.com/docker/docker/api/types/container:go_default_library", - "//vendor/github.com/docker/docker/api/types/mount:go_default_library", - "//vendor/github.com/docker/docker/api/types/volume:go_default_library", - "//vendor/github.com/docker/docker/client:go_default_library", - "//vendor/github.com/docker/docker/pkg/archive:go_default_library", - "//vendor/github.com/docker/go-connections/nat:go_default_library", - "//vendor/github.com/spf13/cobra:go_default_library", - "//vendor/golang.org/x/net/context:go_default_library", - ], -) diff --git a/cluster-provision/gocli/cmd/utils/BUILD.bazel b/cluster-provision/gocli/cmd/utils/BUILD.bazel deleted file mode 100644 index 1f5c9c3c1e..0000000000 --- a/cluster-provision/gocli/cmd/utils/BUILD.bazel +++ /dev/null @@ -1,17 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "images.go", - "ports.go", - "utils.go", - ], - importpath = "kubevirt.io/kubevirtci/cluster-provision/gocli/cmd/utils", - visibility = ["//visibility:public"], - deps = [ - "//vendor/github.com/docker/docker/api/types:go_default_library", - "//vendor/github.com/docker/go-connections/nat:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - ], -) diff --git a/cluster-provision/gocli/go.mod b/cluster-provision/gocli/go.mod index ed9f9c47d7..dd1450fb13 100644 --- a/cluster-provision/gocli/go.mod +++ b/cluster-provision/gocli/go.mod @@ -1,5 +1,7 @@ module kubevirt.io/kubevirtci/cluster-provision/gocli +go 1.13 + require ( github.com/Microsoft/go-winio v0.4.7 // indirect github.com/Sirupsen/logrus v1.4.1 // indirect @@ -11,7 +13,7 @@ require ( github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect github.com/opencontainers/runc v0.1.1 // indirect - github.com/pkg/errors v0.8.0 + github.com/pkg/errors v0.8.0 // indirect github.com/sirupsen/logrus v1.4.2 // indirect github.com/spf13/cobra v0.0.2 github.com/spf13/pflag v1.0.0 diff --git a/cluster-up/cluster/images.sh b/cluster-up/cluster/images.sh index 43fb156fe3..73dc62b84b 100644 --- a/cluster-up/cluster/images.sh +++ b/cluster-up/cluster/images.sh @@ -3,7 +3,7 @@ set -e declare -A IMAGES -IMAGES[gocli]="gocli@sha256:220f55f6b1bcb3975d535948d335bd0e6b6297149a3eba1a4c14cad9ac80f80d" +IMAGES[gocli]="gocli@sha256:2ce75db868bbf2811395dfe4f73a68160d2ad700b1e08aeee6956b4943ceb237" if [ -z $KUBEVIRTCI_PROVISION_CHECK ]; then IMAGES[k8s-fedora-1.17.0]="k8s-fedora-1.17.0@sha256:aebf67b8b1b499c721f4d98a7ab9542c680553a14cbc144d1fa701fe611f3c0d" IMAGES[k8s-1.18]="k8s-1.18@sha256:91ea0c4e10a356fe315049e4e56801ce62b73b5b5d901e6e0eccbcc171070674"