Skip to content

Commit 57c139d

Browse files
committedNov 7, 2018
feat(container): make container builds faster
1 parent bb0313a commit 57c139d

File tree

7 files changed

+27
-14
lines changed

7 files changed

+27
-14
lines changed
 

Diff for: ‎.dockerignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.git/objects
2+
./bin/*

Diff for: ‎Dockerfile

+6-1
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,13 @@ ENV GOPATH /go
66
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
77

88
WORKDIR /go/src/github.com/operator-framework/operator-lifecycle-manager
9+
10+
# copy just enough of the git repo to parse HEAD, used to record version in OLM binaries
11+
COPY .git/HEAD .git/HEAD
12+
COPY .git/refs/heads/. .git/refs/heads
13+
RUN mkdir -p .git/objects
14+
915
COPY Makefile Makefile
10-
COPY .git .git
1116
COPY OLM_VERSION OLM_VERSION
1217
COPY pkg pkg
1318
COPY vendor vendor

Diff for: ‎Makefile

+10-7
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ IMAGE_REPO := quay.io/coreos/olm
1212
IMAGE_TAG ?= "dev"
1313
KUBE_DEPS := api apiextensions-apiserver apimachinery code-generator kube-aggregator kubernetes
1414
KUBE_RELEASE := release-1.11
15+
MOD_FLAGS := $(shell (go version | grep -q 1.11) && echo -mod=vendor)
1516

1617
.PHONY: build test run clean vendor schema-check \
1718
vendor-update coverage coverage-html e2e .FORCE
@@ -21,13 +22,13 @@ all: test build
2122
test: clean cover.out
2223

2324
unit:
24-
go test -mod=vendor -v -race ./pkg/...
25+
go test $(MOD_FLAGS) -v -race ./pkg/...
2526

2627
schema-check:
27-
go run -mod=vendor ./cmd/validator/main.go ./deploy/chart/catalog_resources
28+
go run $(MOD_FLAGS) ./cmd/validator/main.go ./deploy/chart/catalog_resources
2829

2930
cover.out: schema-check
30-
go test -mod=vendor -v -race -coverprofile=cover.out -covermode=atomic \
31+
go test $(MOD_FLAGS) -v -race -coverprofile=cover.out -covermode=atomic \
3132
-coverpkg ./pkg/controller/... ./pkg/...
3233

3334
coverage: cover.out
@@ -43,10 +44,9 @@ build: clean $(CMDS)
4344
build-coverage: build_cmd=test -c -covermode=count -coverpkg ./pkg/controller/...
4445
build-coverage: clean $(CMDS)
4546

46-
$(CMDS): mod_flags=$(shell [ -f go.mod ] && echo -mod=vendor)
4747
$(CMDS): version_flags=-ldflags "-w -X $(PKG)/pkg/version.GitCommit=`git rev-parse --short HEAD` -X $(PKG)/pkg/version.OLMVersion=`cat OLM_VERSION`"
4848
$(CMDS):
49-
CGO_ENABLED=0 go $(build_cmd) $(mod_flags) $(version_flags) -o $@ $(PKG)/cmd/$(shell basename $@);
49+
CGO_ENABLED=0 go $(build_cmd) $(MOD_FLAGS) $(version_flags) -o $@ $(PKG)/cmd/$(shell basename $@);
5050

5151
run-local:
5252
. ./scripts/build_local.sh
@@ -89,7 +89,7 @@ vendor: $(KUBE_DEPS)
8989
go mod tidy
9090
go mod vendor
9191

92-
container: build
92+
container:
9393
docker build -t $(IMAGE_REPO):$(IMAGE_TAG) .
9494

9595
clean:
@@ -109,6 +109,9 @@ gen-ci: $(CI)
109109
# Must be run in gopath: https://github.com/kubernetes/kubernetes/issues/67566
110110
# use container-codegen
111111
codegen:
112+
cp scripts/generate_groups.sh vendor/k8s.io/code-generator/generate_groups.sh
113+
mkdir -p vendor/k8s.io/code-generator/hack
114+
cp boilerplate.go.txt vendor/k8s.io/code-generator/hack/boilerplate.go.txt
112115
go run vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go --logtostderr -i ./vendor/k8s.io/apimachinery/pkg/runtime,./vendor/k8s.io/apimachinery/pkg/apis/meta/v1,./vendor/k8s.io/apimachinery/pkg/version,./pkg/package-server/apis/packagemanifest/v1alpha1 -p $(PKG)/pkg/package-server/apis/openapi -O zz_generated.openapi -h boilerplate.go.txt -r /dev/null
113116
$(CODEGEN) all $(PKG)/pkg/api/client $(PKG)/pkg/api/apis "operators:v1alpha1,v1alpha2"
114117
$(CODEGEN) all $(PKG)/pkg/package-server/client $(PKG)/pkg/package-server/apis "packagemanifest:v1alpha1"
@@ -127,7 +130,7 @@ verify-codegen: codegen
127130
git diff --exit-code
128131

129132
verify-catalog: schema-check
130-
go test -mod=vendor -v ./test/schema/catalog_versions_test.go
133+
go test $(MOD_FLAGS) -v ./test/schema/catalog_versions_test.go
131134

132135
generate-mock-client:
133136
go generate ./$(PKG_DIR)/...

Diff for: ‎e2e.Dockerfile

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ LABEL stage=builder
33
WORKDIR /go/src/github.com/operator-framework/operator-lifecycle-manager
44
RUN curl -L https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 -o /bin/jq
55
RUN chmod +x /bin/jq
6+
# copy just enough of the git repo to parse HEAD, used to record version in OLM binaries
7+
COPY .git/HEAD .git/HEAD
8+
COPY .git/refs/heads/. .git/refs/heads
9+
RUN mkdir -p .git/objects
610
COPY Makefile Makefile
7-
COPY .git .git
811
COPY OLM_VERSION OLM_VERSION
912
COPY pkg pkg
1013
COPY vendor vendor

Diff for: ‎go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,5 @@ require (
7676
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92 // indirect
7777
k8s.io/kube-aggregator v0.0.0-20180905000155-efa32eb095fe
7878
k8s.io/kube-openapi v0.0.0-20181031203759-72693cb1fadd
79-
k8s.io/kubernetes v1.11.5-beta.0.0.20181106200134-5bfe2967a4cd
79+
k8s.io/kubernetes v1.11.5-beta.0.0.20181107171428-941010e531b7
8080
)

Diff for: ‎go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -238,5 +238,5 @@ k8s.io/kube-aggregator v0.0.0-20180905000155-efa32eb095fe h1:LM48rywzVEPRg+Os2oU
238238
k8s.io/kube-aggregator v0.0.0-20180905000155-efa32eb095fe/go.mod h1:8sbzT4QQKDEmSCIbfqjV0sd97GpUT7A4W626sBiYJmU=
239239
k8s.io/kube-openapi v0.0.0-20181031203759-72693cb1fadd h1:ggv/Vfza0i5xuhUZyYyxcc25AmQvHY8Zi1C2m8WgBvA=
240240
k8s.io/kube-openapi v0.0.0-20181031203759-72693cb1fadd/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=
241-
k8s.io/kubernetes v1.11.5-beta.0.0.20181106200134-5bfe2967a4cd h1:G3Mi/dLCTnSgA4CLlsbMKbUwX82yDKQ2lH2qpupT44U=
242-
k8s.io/kubernetes v1.11.5-beta.0.0.20181106200134-5bfe2967a4cd/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
241+
k8s.io/kubernetes v1.11.5-beta.0.0.20181107171428-941010e531b7 h1:Mw61CrhX1Xb/A4JAe0HI3TMy0q2MFAMGUwjcz/2n/6A=
242+
k8s.io/kubernetes v1.11.5-beta.0.0.20181107171428-941010e531b7/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=

Diff for: ‎vendor/modules.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -636,16 +636,16 @@ k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme
636636
k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1
637637
# k8s.io/kube-openapi v0.0.0-20181031203759-72693cb1fadd
638638
k8s.io/kube-openapi/cmd/openapi-gen
639+
k8s.io/kube-openapi/pkg/common
639640
k8s.io/kube-openapi/pkg/generators
640641
k8s.io/kube-openapi/cmd/openapi-gen/args
641-
k8s.io/kube-openapi/pkg/common
642642
k8s.io/kube-openapi/pkg/util/proto
643643
k8s.io/kube-openapi/pkg/util
644644
k8s.io/kube-openapi/pkg/generators/rules
645645
k8s.io/kube-openapi/pkg/builder
646646
k8s.io/kube-openapi/pkg/handler
647647
k8s.io/kube-openapi/pkg/util/sets
648-
# k8s.io/kubernetes v1.11.5-beta.0.0.20181106200134-5bfe2967a4cd
648+
# k8s.io/kubernetes v1.11.5-beta.0.0.20181107171428-941010e531b7
649649
k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac
650650
k8s.io/kubernetes/pkg/apis/rbac/v1
651651
k8s.io/kubernetes/pkg/registry/rbac/validation

0 commit comments

Comments
 (0)
Please sign in to comment.