Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
.git
.github
.vscode
bin/
config/
hack/
docs/
Expand Down
25 changes: 25 additions & 0 deletions Dockerfile.fastbuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2019 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Copy the controller-manager into a thin image
FROM golang:1.13.8 as builder
WORKDIR /workspace
COPY bin/manager manager
RUN chmod 755 manager

FROM gcr.io/distroless/static:latest
WORKDIR /
COPY --chown=root:root --from=builder /workspace/manager manager
USER nobody
ENTRYPOINT ["/manager"]
135 changes: 109 additions & 26 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,23 @@ export GOPROXY
export GO111MODULE=on

# Directories.
ARTIFACTS ?= ${REPO_ROOT}/_artifacts
ARTIFACTS ?= $(REPO_ROOT)/_artifacts
TOOLS_DIR := hack/tools
TOOLS_BIN_DIR := $(TOOLS_DIR)/bin
TOOLS_SHARE_DIR := $(TOOLS_DIR)/share
BIN_DIR := bin
REPO_ROOT := $(shell git rev-parse --show-toplevel)
TEST_E2E_DIR := test/e2e
TEST_E2E_NEW_DIR := test/e2e_new
OVERLAY_DIR := $(ARTIFACTS)/overlay
OVERLAY_SOURCE := $(TEST_E2E_NEW_DIR)/data/kubetest/kustomization

# Files
E2E_CONF_PATH ?= ${REPO_ROOT}/test/e2e_new/e2e_conf.yaml
E2E_DATA_DIR ?= $(REPO_ROOT)/test/e2e_new/data
E2E_CONF_PATH ?= $(E2E_DATA_DIR)/e2e_conf.yaml
KUBETEST_CONF_PATH ?= $(abspath $(E2E_DATA_DIR)/kubetest/conformance.yaml)
KUBETEST_FAST_CONF_PATH ?= $(abspath $(REPO_ROOT)/test/e2e_new/data/kubetest/conformance-fast.yaml)
CONFORMANCE_CI_TEMPLATE := $(ARTIFACTS)/templates/cluster-template-conformance-ci-artifacts.yaml

# Binaries.
CLUSTERCTL := $(BIN_DIR)/clusterctl
Expand All @@ -54,8 +61,13 @@ MOCKGEN := $(TOOLS_BIN_DIR)/mockgen
CONVERSION_GEN := $(TOOLS_BIN_DIR)/conversion-gen
RELEASE_NOTES_BIN := bin/release-notes
RELEASE_NOTES := $(TOOLS_DIR)/$(RELEASE_NOTES_BIN)
GINKGO := $(abspath $(TOOLS_BIN_DIR)/ginkgo)
export PATH := $(abspath $(TOOLS_BIN_DIR)):$(PATH)
GINKGO := $(TOOLS_BIN_DIR)/ginkgo
SSM_PLUGIN := $(TOOLS_BIN_DIR)/session-manager-plugin

UNAME := $(shell uname -s)
PATH := $(abspath $(TOOLS_BIN_DIR)):$(PATH)

export PATH

# Define Docker related variables. Releases should modify and double check these vars.

Expand Down Expand Up @@ -91,10 +103,12 @@ LDFLAGS := $(shell source ./hack/version.sh; version::ldflags)
GOLANG_VERSION := 1.13.8

# 'functional tests' as the ginkgo filter will run ALL tests ~ 2 hours @ 3 node concurrency.
E2E_FOCUS := "functional tests"
E2E_FOCUS ?= "functional tests"
# Instead, you can run a quick smoke test, it should run fast (9 minutes)...
# E2E_FOCUS := "Create cluster with name having"

GINKGO_NODES ?= 2

## --------------------------------------
## Help
## --------------------------------------
Expand All @@ -106,6 +120,15 @@ help: ## Display this help
## Testing
## --------------------------------------

$(ARTIFACTS):
mkdir -p $@

$(ARTIFACTS)/templates: $(ARTIFACTS)
mkdir -p $@

$(OVERLAY_DIR): $(ARTIFACTS)
mkdir -p $@

.PHONY: test
test: ## Run tests
source ./scripts/fetch_ext_bins.sh; fetch_tools; setup_envs; go test -v ./...
Expand All @@ -114,36 +137,60 @@ test: ## Run tests
test-integration: ## Run integration tests
source ./scripts/fetch_ext_bins.sh; fetch_tools; setup_envs; go test -v -tags=integration ./test/integration/...

$(OVERLAY_DIR)/kustomization.yaml: $(OVERLAY_DIR) $(OVERLAY_SOURCE)/kustomization.yaml
cp -f $(OVERLAY_SOURCE)/kustomization.yaml $@

$(OVERLAY_DIR)/kustomizeversions.yaml: $(OVERLAY_DIR) $(OVERLAY_SOURCE)/kustomizeversions.yaml
cp -f $(OVERLAY_SOURCE)/kustomizeversions.yaml $@

$(OVERLAY_DIR)/cluster-template.yaml: $(OVERLAY_DIR)
cp -f templates/cluster-template.yaml $@

$(CONFORMANCE_CI_TEMPLATE): $(OVERLAY_DIR)/cluster-template.yaml $(ARTIFACTS)/templates $(KUSTOMIZE) $(OVERLAY_DIR)/kustomization.yaml $(OVERLAY_DIR)/kustomizeversions.yaml
$(KUSTOMIZE) build $(OVERLAY_DIR) > $@

.PHONY: test-e2e
test-e2e: $(GINKGO) $(KIND) ## Run e2e tests
PULL_POLICY=IfNotPresent $(MAKE) docker-build
cd $(TEST_E2E_DIR); time $(GINKGO) -nodes=2 -v -tags=e2e -focus=$(E2E_FOCUS) $(GINKGO_ARGS) ./... -- -managerImage=$(CONTROLLER_IMG)-$(ARCH):$(TAG) $(E2E_ARGS)
cd $(TEST_E2E_DIR); time $(GINKGO) -nodes=$(GINKGO_NODES) -v -tags=e2e -focus=$(E2E_FOCUS) $(GINKGO_ARGS) ./... -- -managerImage=$(CONTROLLER_IMG)-$(ARCH):$(TAG) $(E2E_ARGS)

.PHONY: test-e2e-new
test-e2e-new: $(GINKGO) e2e-image ## Run e2e tests
cd $(TEST_E2E_NEW_DIR); time $(GINKGO) -trace -progress -nodes=2 -v -tags=e2e $(GINKGO_ARGS) ./... -- -config-path="$(E2E_CONF_PATH)" -artifacts-folder="$(ARTIFACTS)" $(E2E_ARGS)
.PHONY: test-e2e-new ## Run new e2e tests using clusterctl
test-e2e-new: $(GINKGO) $(CONFORMANCE_CI_TEMPLATE) $(KIND) $(SSM_PLUGIN) e2e-image ## Run e2e tests
time $(GINKGO) -trace -progress -nodes=$(GINKGO_NODES) -v -tags=e2e -focus=$(E2E_FOCUS) $(GINKGO_ARGS) ./test/e2e_new/... -- -config-path="$(E2E_CONF_PATH)" -artifacts-folder="$(ARTIFACTS)" $(E2E_ARGS)

.PHONY: e2e-image
e2e-image:
docker build --tag="capa-manager:e2e" .
ifndef FASTBUILD
docker build -f Dockerfile --tag="capa-manager:e2e" .
else
$(MAKE) manager
docker build -f Dockerfile.fastbuild --tag="capa-manager:e2e" .
endif

.PHONY: test-conformance
test-conformance: ## Run conformance test on workload cluster
PULL_POLICY=IfNotPresent $(MAKE) docker-build
cd $(TEST_E2E_DIR); go test -v -tags=e2e -timeout=4h . -args -ginkgo.v -ginkgo.focus "conformance tests" --managerImage $(CONTROLLER_IMG)-$(ARCH):$(TAG)

CONFORMANCE_E2E_ARGS ?= -kubetest.config-file=$(KUBETEST_CONF_PATH)
CONFORMANCE_E2E_ARGS += $(E2E_ARGS)
CONFORMANCE_GINKGO_ARGS ?= -stream
CONFORMANCE_GINKGO_ARGS += $(GINKGO_ARGS)
.PHONY: test-conformance-new
test-conformance-new: ## Run clusterctl based conformance test on workload cluster (requires Docker).
$(MAKE) test-e2e-new E2E_FOCUS="conformance" E2E_ARGS='$(CONFORMANCE_E2E_ARGS)' GINKGO_ARGS='$(CONFORMANCE_GINKGO_ARGS)'

test-conformance-fast: ## Run clusterctl based conformance test on workload cluster (requires Docker) using a subset of the conformance suite in parallel. Run with FASTBUILD=true to skip full CAPA rebuild.
$(MAKE) test-conformance-new CONFORMANCE_E2E_ARGS="-kubetest.config-file=$(KUBETEST_FAST_CONF_PATH) -kubetest.ginkgo-nodes=5"
## --------------------------------------
## Binaries
## --------------------------------------
$(GINKGO): $(TOOLS_DIR)/go.mod
cd $(TOOLS_DIR) && go build -tags=tools -o $(BIN_DIR)/ginkgo github.com/onsi/ginkgo/ginkgo

.PHONY: binaries
binaries: manager clusterawsadm ## Builds and installs all binaries

.PHONY: manager
manager: ## Build manager binary.
go build -ldflags "$(LDFLAGS)" -o $(BIN_DIR)/manager .
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS} -extldflags '-static'" -o $(BIN_DIR)/manager .

.PHONY: clusterawsadm
clusterawsadm: ## Build clusterawsadm binary.
Expand All @@ -153,35 +200,72 @@ clusterawsadm: ## Build clusterawsadm binary.
## Tooling Binaries
## --------------------------------------

$(TOOLS_BIN_DIR):
mkdir -p $@

$(TOOLS_SHARE_DIR):
mkdir -p $@

$(CLUSTERCTL): go.mod ## Build clusterctl binary.
go build -o $(BIN_DIR)/clusterctl sigs.k8s.io/cluster-api/cmd/clusterctl

$(CONTROLLER_GEN): $(TOOLS_DIR)/go.mod # Build controller-gen from tools folder.
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/controller-gen sigs.k8s.io/controller-tools/cmd/controller-gen
cd $(TOOLS_DIR); go build -tags=tools -o $(subst hack/tools/,,$@) sigs.k8s.io/controller-tools/cmd/controller-gen

$(ENVSUBST): $(TOOLS_DIR)/go.mod # Build envsubst from tools folder.
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/envsubst github.com/a8m/envsubst/cmd/envsubst
cd $(TOOLS_DIR); go build -tags=tools -o $(subst hack/tools/,,$@) github.com/a8m/envsubst/cmd/envsubst

$(GOLANGCI_LINT): $(TOOLS_DIR)/go.mod # Build golangci-lint from tools folder.
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/golangci-lint github.com/golangci/golangci-lint/cmd/golangci-lint
cd $(TOOLS_DIR); go build -tags=tools -o $(subst hack/tools/,,$@) github.com/golangci/golangci-lint/cmd/golangci-lint

$(MOCKGEN): $(TOOLS_DIR)/go.mod # Build mockgen from tools folder.
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/mockgen github.com/golang/mock/mockgen
cd $(TOOLS_DIR); go build -tags=tools -o $(subst hack/tools/,,$@) github.com/golang/mock/mockgen

$(CONVERSION_GEN): $(TOOLS_DIR)/go.mod
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/conversion-gen k8s.io/code-generator/cmd/conversion-gen
cd $(TOOLS_DIR); go build -tags=tools -o $(subst hack/tools/,,$@) k8s.io/code-generator/cmd/conversion-gen

$(DEFAULTER_GEN): $(TOOLS_DIR)/go.mod
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/defaulter-gen k8s.io/code-generator/cmd/defaulter-gen
cd $(TOOLS_DIR); go build -tags=tools -o $(subst hack/tools/,,$@) k8s.io/code-generator/cmd/defaulter-gen

$(KUSTOMIZE): $(TOOLS_DIR)/go.mod # Build kustomize from tools folder.
cd $(TOOLS_DIR); go build -tags=tools -o $(BIN_DIR)/kustomize sigs.k8s.io/kustomize/kustomize/v3
cd $(TOOLS_DIR); go build -tags=tools -o $(subst hack/tools/,,$@) sigs.k8s.io/kustomize/kustomize/v3

$(RELEASE_NOTES) : $(TOOLS_DIR)/go.mod
cd $(TOOLS_DIR) && go build -tags tools -o $(BIN_DIR)/release-notes sigs.k8s.io/cluster-api/hack/tools/release
cd $(TOOLS_DIR) && go build -tags tools -o $(subst hack/tools/,,$@) sigs.k8s.io/cluster-api/hack/tools/release

$(KIND): $(TOOLS_DIR)/go.mod
cd $(TOOLS_DIR) && go build -tags tools -o $(BIN_DIR)/kind sigs.k8s.io/kind
cd $(TOOLS_DIR) && go build -tags tools -o $(subst hack/tools/,,$@) sigs.k8s.io/kind

$(GINKGO): $(TOOLS_DIR)/go.mod
cd $(TOOLS_DIR) && go build -tags=tools -o $(subst hack/tools/,,$@) github.com/onsi/ginkgo/ginkgo

## ------------------------------------------------------------------------------------------------
## AWS Session Manager Plugin Installation. Currently support Linux and MacOS AMD64 architectures.
## ------------------------------------------------------------------------------------------------

SSM_SHARE := $(TOOLS_SHARE_DIR)/ssm

$(SSM_SHARE): $(TOOLS_SHARE_DIR)
mkdir -p $@

$(SSM_SHARE)/session-manager-plugin.deb: $(SSM_SHARE)
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o $@

$(SSM_SHARE)/sessionmanager-bundle.zip: $(SSM_SHARE)
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/sessionmanager-bundle.zip" -o $@

$(SSM_SHARE)/data.tar.gz: $(SSM_SHARE)/session-manager-plugin.deb
cd $(SSM_SHARE) && ar x session-manager-plugin.deb data.tar.gz

$(SSM_PLUGIN): $(TOOLS_BIN_DIR)
ifeq ($(UNAME), Linux)
$(MAKE) $(SSM_SHARE)/data.tar.gz
cd $(TOOLS_BIN_DIR) && tar -xvf ../share/ssm/data.tar.gz usr/local/sessionmanagerplugin/bin/session-manager-plugin --strip-components 4 --directory $(TOOLS_BIN_DIR)
endif
ifeq ($(UNAME), Darwin)
$(MAKE) $(SSM_SHARE)/sessionmanager-bundle.zip
cd $(TOOLS_BIN_DIR) && unzip -j ../share/ssm/sessionmanager-bundle.zip sessionmanager-bundle/bin/session-manager-plugin
endif

## --------------------------------------
## Linting
Expand Down Expand Up @@ -299,7 +383,7 @@ RELEASE_TAG := $(shell git describe --abbrev=0 2>/dev/null)
RELEASE_DIR := out

$(RELEASE_DIR):
mkdir -p $(RELEASE_DIR)/
mkdir -p $@

.PHONY: release
release: clean-release ## Builds and push container images using the latest git tag for the commit.
Expand Down Expand Up @@ -388,7 +472,7 @@ create-management-cluster: $(KUSTOMIZE) $(ENVSUBST)
.PHONY: create-workload-cluster
create-workload-cluster: $(KUSTOMIZE) $(ENVSUBST)
# Create workload Cluster.
$(KUSTOMIZE) build templates | $(ENVSUBST) | kubectl apply -f -
cat templates/cluster-template.yaml | $(ENVSUBST) | kubectl apply -f -

# Wait for the kubeconfig to become available.
timeout 700 bash -c "while ! kubectl get secrets | grep $(CLUSTER_NAME)-kubeconfig; do sleep 1; done"
Expand Down Expand Up @@ -446,7 +530,6 @@ clean-temporary: ## Remove all temporary files and folders
rm -rf test/e2e/logs
rm -rf test/e2e/resources


.PHONY: clean-release
clean-release: ## Remove the release folder
rm -rf $(RELEASE_DIR)
Expand Down
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ require (
github.com/awslabs/goformation/v4 v4.11.0
github.com/go-logr/logr v0.1.0
github.com/golang/mock v1.4.3
github.com/google/goexpect v0.0.0-20200703111054-623d5ca06f56
github.com/google/goterm v0.0.0-20190703233501-fc88cf888a3f // indirect
github.com/onsi/ginkgo v1.12.2
github.com/onsi/gomega v1.10.1
github.com/pkg/errors v0.9.1
Expand Down
7 changes: 7 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef h1:veQD95Isof8w9/WXiA+pa3tz3fJXkt5B7QaRBrM62gk=
Expand Down Expand Up @@ -194,10 +195,14 @@ github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4r
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/goexpect v0.0.0-20200703111054-623d5ca06f56 h1:sXtmz0BQBeXxoxCNb376WLx6r9HKVTJvD4PQQ/kL604=
github.com/google/goexpect v0.0.0-20200703111054-623d5ca06f56/go.mod h1:qtE5aAEkt0vOSA84DBh8aJsz6riL8ONfqfULY7lBjqc=
github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/goterm v0.0.0-20190703233501-fc88cf888a3f h1:5CjVwnuUcp5adK4gmY6i72gpVFVnZDP2h5TmPScB6u4=
github.com/google/goterm v0.0.0-20190703233501-fc88cf888a3f/go.mod h1:nOFQdrUlIlx6M6ODdSpBj1NVA+VgLC6kmw60mkw34H4=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
Expand Down Expand Up @@ -568,11 +573,13 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
Expand Down
4 changes: 0 additions & 4 deletions hack/ci/README.md

This file was deleted.

Loading