Skip to content

Commit bb0313a

Browse files
committed
chore(codegen): run all codegen in a container
This is a better ux in general, and lets us use the codegen even though we have modules enabled
1 parent 7531504 commit bb0313a

File tree

981 files changed

+89611
-236413
lines changed

Some content is hidden

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

981 files changed

+89611
-236413
lines changed

Makefile

+26-38
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,20 @@
55
SHELL := /bin/bash
66
PKG := github.com/operator-framework/operator-lifecycle-manager
77
CMDS := $(addprefix bin/, $(shell go list ./cmd/... | xargs -I{} basename {}))
8+
CODEGEN := ./vendor/k8s.io/code-generator/generate_groups.sh
9+
counterfeiter := $(GOBIN)/counterfeiter
10+
mockgen := $(GOBIN)/mockgen
811
IMAGE_REPO := quay.io/coreos/olm
912
IMAGE_TAG ?= "dev"
13+
KUBE_DEPS := api apiextensions-apiserver apimachinery code-generator kube-aggregator kubernetes
14+
KUBE_RELEASE := release-1.11
1015

1116
.PHONY: build test run clean vendor schema-check \
1217
vendor-update coverage coverage-html e2e .FORCE
1318

1419
all: test build
1520

16-
test: schema-check cover.out
21+
test: clean cover.out
1722

1823
unit:
1924
go test -mod=vendor -v -race ./pkg/...
@@ -75,17 +80,24 @@ e2e-local-docker:
7580
. ./scripts/build_local.sh
7681
. ./scripts/run_e2e_docker.sh $(TEST)
7782

78-
vendor:
83+
# kube dependencies all should be at the same release and should match up with client go
84+
# go.mod currently doesn't support specifying a branch name to track, and kube isn't publishing good version tags
85+
$(KUBE_DEPS):
86+
go get -m k8s.io/$@@$(KUBE_RELEASE)
87+
88+
vendor: $(KUBE_DEPS)
89+
go mod tidy
7990
go mod vendor
8091

8192
container: build
8293
docker build -t $(IMAGE_REPO):$(IMAGE_TAG) .
8394

8495
clean:
85-
rm -rf bin
86-
rm -rf test/e2e/resources
87-
rm -rf test/e2e/test-resources
88-
rm -rf test/e2e/log
96+
@rm -rf cover.out
97+
@rm -rf bin
98+
@rm -rf test/e2e/resources
99+
@rm -rf test/e2e/test-resources
100+
@rm -rf test/e2e/log
89101

90102
CI := $(shell find . -iname "*.jsonnet") $(shell find . -iname "*.libsonnet")
91103
$(CI):
@@ -94,29 +106,10 @@ $(CI):
94106
gen-ci: $(CI)
95107
ffctl gen
96108

97-
CODEGEN := ./vendor/k8s.io/code-generator/generate-groups.sh
98-
99-
$(CODEGEN):
100-
# dep doesn't currently support downloading dependencies that don't have go in the top-level dir.
101-
# can move to managing with dep when merged: https://github.com/golang/dep/pull/1545
102-
mkdir -p vendor/k8s.io/code-generator
103-
git clone --branch release-1.11 https://github.com/kubernetes/code-generator.git vendor/k8s.io/code-generator
104-
105-
pkg/package-server/generated/openapi/zz_generated.openapi.go:
106-
go run -mod=vendor 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 github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/generated/openapi/ -O zz_generated.openapi -h boilerplate.go.txt -r /dev/null
107-
108-
clean-openapi:
109-
rm -rf pkg/package-server/generated/openapi
110-
111-
codegen-openapi: clean-openapi pkg/package-server/generated/openapi/zz_generated.openapi.go
112-
113-
<<<<<<< HEAD
114-
# our version of hack/update-codegen.sh
115-
=======
116109
# Must be run in gopath: https://github.com/kubernetes/kubernetes/issues/67566
117110
# use container-codegen
118-
>>>>>>> b9933db3... chore(dependencies): migrate to go modules
119-
codegen: $(CODEGEN)
111+
codegen:
112+
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
120113
$(CODEGEN) all $(PKG)/pkg/api/client $(PKG)/pkg/api/apis "operators:v1alpha1,v1alpha2"
121114
$(CODEGEN) all $(PKG)/pkg/package-server/client $(PKG)/pkg/package-server/apis "packagemanifest:v1alpha1"
122115

@@ -125,27 +118,22 @@ container-codegen:
125118
docker run --name temp-codegen olm:codegen /bin/true
126119
docker cp temp-codegen:/go/src/github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/. ./pkg/api/client
127120
docker cp temp-codegen:/go/src/github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/. ./pkg/api/apis
121+
docker cp temp-codegen:/go/src/github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/. ./pkg/package-server/apis
122+
docker cp temp-codegen:/go/src/github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/. ./pkg/package-server/client
128123
docker rm temp-codegen
129124

125+
# Must be run in gopath: https://github.com/kubernetes/kubernetes/issues/67566
130126
verify-codegen: codegen
131127
git diff --exit-code
132128

133129
verify-catalog: schema-check
134130
go test -mod=vendor -v ./test/schema/catalog_versions_test.go
135131

136-
counterfeiter := $(GOBIN)/counterfeiter
137-
$(counterfeiter):
138-
go install github.com/maxbrunsfeld/counterfeiter
139-
140-
mockgen := $(GOBIN)/mockgen
141-
$(mockgen):
142-
go install github.com/golang/mock/mockgen
143-
144-
generate-mock-client: $(counterfeiter)
132+
generate-mock-client:
145133
go generate ./$(PKG_DIR)/...
146-
mockgen -source ./pkg/lib/operatorclient/client.go -destination ./pkg/lib/operatorclient/mock_client.go -package operatorclient
134+
GO111MODULE=on mockgen -source ./pkg/lib/operatorclient/client.go -destination ./pkg/lib/operatorclient/mock_client.go -package operatorclient
147135

148-
gen-all: gen-ci codegen generate-mock-client codegen-openapi
136+
gen-all: gen-ci container-codegen generate-mock-client
149137

150138
# before running release, bump the version in OLM_VERSION and push to master,
151139
# then tag those builds in quay with the version in OLM_VERSION

boilerplate.go.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Copyright YEAR CoreOS, Inc.
2+
Copyright YEAR Red Hat, Inc.
33

44
Licensed under the Apache License, Version 2.0 (the "License");
55
you may not use this file except in compliance with the License.

codegen.Dockerfile

+3
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@ WORKDIR /go/src/github.com/operator-framework/operator-lifecycle-manager
33
COPY Makefile Makefile
44
COPY pkg pkg
55
COPY vendor vendor
6+
COPY scripts/generate_groups.sh vendor/k8s.io/code-generator/generate_groups.sh
7+
COPY boilerplate.go.txt boilerplate.go.txt
8+
COPY boilerplate.go.txt vendor/k8s.io/code-generator/hack/boilerplate.go.txt
69
RUN make codegen
710

go.mod

+49-30
Original file line numberDiff line numberDiff line change
@@ -2,60 +2,79 @@ module github.com/operator-framework/operator-lifecycle-manager
22

33
require (
44
bitbucket.org/ww/goautoneg v0.0.0-20120707110453-75cd24fc2f2c // indirect
5+
github.com/BurntSushi/toml v0.3.1 // indirect
56
github.com/NYTimes/gziphandler v1.0.1 // indirect
6-
github.com/PuerkitoBio/purell v1.1.0 // indirect
7-
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
8-
github.com/asaskevich/govalidator v0.0.0-20180315120708-ccb8e960c48f // indirect
97
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 // indirect
8+
github.com/boltdb/bolt v1.3.1 // indirect
9+
github.com/coreos/bbolt v1.3.0 // indirect
1010
github.com/coreos/etcd v3.3.9+incompatible // indirect
1111
github.com/coreos/go-semver v0.2.0
1212
github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7 // indirect
13+
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect
14+
github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
15+
github.com/docker/distribution v2.6.2+incompatible // indirect
1316
github.com/elazarl/go-bindata-assetfs v1.0.0 // indirect
1417
github.com/emicklei/go-restful v2.8.0+incompatible // indirect
15-
github.com/emicklei/go-restful-swagger12 v0.0.0-20170208215640-dcef7f557305 // indirect
18+
github.com/emicklei/go-restful-swagger12 v0.0.0-20170926063155-7524189396c6 // indirect
1619
github.com/evanphx/json-patch v3.0.0+incompatible // indirect
1720
github.com/ghodss/yaml v1.0.0
18-
github.com/go-openapi/analysis v0.0.0-20180801175213-7c1bef8f6d9f // indirect
19-
github.com/go-openapi/errors v0.0.0-20180515155515-b2b2befaf267 // indirect
20-
github.com/go-openapi/jsonpointer v0.0.0-20180322222829-3a0015ad55fa // indirect
21-
github.com/go-openapi/jsonreference v0.0.0-20180322222742-3fb327e6747d // indirect
22-
github.com/go-openapi/loads v0.0.0-20171207192234-2a2b323bab96 // indirect
23-
github.com/go-openapi/runtime v0.0.0-20180628220156-9a3091f566c0 // indirect
24-
github.com/go-openapi/spec v0.0.0-20180801175345-384415f06ee2
25-
github.com/go-openapi/strfmt v0.0.0-20180703152050-913ee058e387 // indirect
26-
github.com/go-openapi/swag v0.0.0-20180715190254-becd2f08beaf // indirect
27-
github.com/go-openapi/validate v0.0.0-20180809073206-7c1911976134 // indirect
21+
github.com/go-openapi/spec v0.17.2
22+
github.com/go-openapi/strfmt v0.17.2 // indirect
23+
github.com/go-openapi/validate v0.17.2 // indirect
24+
github.com/gogo/protobuf v1.1.1 // indirect
2825
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
26+
github.com/golang/groupcache v0.0.0-20181024230925-c65c006176ff // indirect
2927
github.com/golang/mock v1.1.1
28+
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c // indirect
29+
github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf // indirect
30+
github.com/googleapis/gnostic v0.2.0 // indirect
31+
github.com/gorilla/websocket v1.4.0 // indirect
32+
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
33+
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
34+
github.com/grpc-ecosystem/grpc-gateway v1.5.1 // indirect
3035
github.com/hashicorp/golang-lru v0.5.0 // indirect
31-
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 // indirect
36+
github.com/imdario/mergo v0.3.6 // indirect
37+
github.com/inconshreveable/mousetrap v1.0.0 // indirect
38+
github.com/jonboulle/clockwork v0.1.0 // indirect
39+
github.com/json-iterator/go v1.1.5 // indirect
40+
github.com/konsorten/go-windows-terminal-sequences v1.0.1 // indirect
3241
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
33-
github.com/maxbrunsfeld/counterfeiter v0.0.0-20181017030959-1aadac120687 // indirect
34-
github.com/mitchellh/mapstructure v1.0.0 // indirect
35-
github.com/operator-framework/operator-registry v0.0.0-20181024172529-a172038c398d
36-
github.com/pborman/uuid v0.0.0-20170612153648-e790cca94e6c // indirect
42+
github.com/maxbrunsfeld/counterfeiter v0.0.0-20181017030959-1aadac120687
43+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
44+
github.com/modern-go/reflect2 v1.0.1 // indirect
45+
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
3746
github.com/pkg/errors v0.8.0
3847
github.com/prometheus/client_golang v0.8.0
3948
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 // indirect
4049
github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e // indirect
4150
github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273 // indirect
4251
github.com/sirupsen/logrus v1.1.1
52+
github.com/soheilhy/cmux v0.1.4 // indirect
4353
github.com/spf13/cobra v0.0.3
54+
github.com/spf13/pflag v1.0.3 // indirect
55+
github.com/stevvooe/resumable v0.0.0-20180830230917-22b14a53ba50 // indirect
4456
github.com/stretchr/testify v1.2.2
57+
github.com/tmc/grpc-websocket-proxy v0.0.0-20171017195756-830351dc03c6 // indirect
4558
github.com/ugorji/go v1.1.1 // indirect
46-
gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce // indirect
59+
github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18 // indirect
60+
golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e // indirect
61+
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519 // indirect
62+
golang.org/x/oauth2 v0.0.0-20181105165119-ca4130e427c7 // indirect
63+
golang.org/x/sys v0.0.0-20181023152157-44b849a8bc13 // indirect
64+
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2 // indirect
65+
google.golang.org/genproto v0.0.0-20181016170114-94acd270e44e // indirect
66+
google.golang.org/grpc v1.16.0 // indirect
67+
gopkg.in/inf.v0 v0.9.1 // indirect
4768
gopkg.in/natefinch/lumberjack.v2 v2.0.0-20170531160350-a96e63847dc3 // indirect
48-
gopkg.in/yaml.v2 v2.2.1
4969
k8s.io/api v0.0.0-20180904230853-4e7be11eab3f
5070
k8s.io/apiextensions-apiserver v0.0.0-20180905004947-16750353bf97
51-
k8s.io/apimachinery v0.0.0-20180904193909-def12e63c512
52-
k8s.io/apiserver v0.0.0-20180904235525-d296c96c12b7
53-
k8s.io/client-go v0.0.0-20180718001006-59698c7d9724
54-
k8s.io/code-generator v0.0.0-20181026224033-5d042c2d6552 // indirect
55-
k8s.io/gengo v0.0.0-20180813235010-4242d8e6c5db // indirect
71+
k8s.io/apimachinery v0.0.0-20181026144827-8ee1a638bafa
72+
k8s.io/apiserver v0.0.0-20181026151315-13cfe3978170
73+
k8s.io/client-go v8.0.0+incompatible
74+
k8s.io/code-generator v0.0.0-20180904193909-8c97d6ab64da
75+
k8s.io/gengo v0.0.0-20181106084056-51747d6e00da // indirect
76+
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92 // indirect
5677
k8s.io/kube-aggregator v0.0.0-20180905000155-efa32eb095fe
57-
k8s.io/kube-openapi v0.0.0-20181024003938-96e8bb74ecdd
58-
k8s.io/kubernetes v0.0.0-20180925111645-ae6d625c3a1c
78+
k8s.io/kube-openapi v0.0.0-20181031203759-72693cb1fadd
79+
k8s.io/kubernetes v1.11.5-beta.0.0.20181106200134-5bfe2967a4cd
5980
)
60-
61-
replace github.com/operator-framework/operator-registry => ../operator-registry

0 commit comments

Comments
 (0)