Skip to content

Commit 2103ee7

Browse files
authored
Merge pull request #523 from mengqiy/k8s_tools
update how to build tools for kubebuilder
2 parents 3831049 + e14a55f commit 2103ee7

File tree

3 files changed

+32
-118
lines changed

3 files changed

+32
-118
lines changed

build/cloudbuild_tools.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
steps:
16-
- name: "gcr.io/kubebuilder/thirdparty-${_GOOS}:1.11.0"
16+
- name: "gcr.io/kubebuilder/thirdparty-${_GOOS}:1.12.3"
1717
args: ["cp", "/kubebuilder_${_GOOS}_${_GOARCH}.tar.gz", "/workspace/kubebuilder-${TAG_NAME}-${_GOOS}-${_GOARCH}.tar.gz"]
1818
env:
1919
- 'GOOS=${_GOOS}'

build/thirdparty/darwin/Dockerfile

Lines changed: 15 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,21 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
# Build the following into binaries for darwin and then host them in a tar.gz file in an alpine image
16-
# - apiserver
17-
# - kubectl
18-
# - kube-controller-manager
19-
# - etcd
20-
# - *-gen code generators
21-
# - reference-docs
15+
# Build or fetch the following binaries for darwin and then host them in a tar.gz file in an alpine image
16+
# - apiserver (build)
17+
# - kubectl (fetch)
18+
# - etcd (fetch)
2219

23-
# Build k8s.io/kubernetes binaries
24-
FROM golang:1.10.2-stretch as kubernetes-darwin
20+
FROM golang:1.11.2-stretch as darwin
2521
# Install tools
2622
RUN apt update
2723
RUN apt install rsync -y
24+
RUN apt-get install unzip
2825
RUN go get github.com/jteeuwen/go-bindata/go-bindata
2926
ENV CGO 0
3027
ENV DEST /usr/local/kubebuilder/bin/
3128
RUN mkdir -p $DEST || echo ""
32-
RUN git clone https://github.com/kubernetes/kubernetes $GOPATH/src/k8s.io/kubernetes --depth=1 -b release-1.11
29+
RUN git clone https://github.com/kubernetes/kubernetes $GOPATH/src/k8s.io/kubernetes --depth=1 -b v1.12.3
3330
WORKDIR /go/src/k8s.io/kubernetes
3431

3532
# Build for linux first otherwise it won't work for darwin - :(
@@ -39,62 +36,16 @@ ENV KUBE_BUILD_PLATFORMS darwin/amd64
3936
RUN make WHAT=cmd/kube-apiserver
4037
RUN cp _output/local/bin/$KUBE_BUILD_PLATFORMS/kube-apiserver $DEST
4138

42-
ENV KUBE_BUILD_PLATFORMS linux/amd64
43-
RUN make WHAT=cmd/kube-controller-manager
44-
ENV KUBE_BUILD_PLATFORMS darwin/amd64
45-
RUN make WHAT=cmd/kube-controller-manager
46-
RUN cp _output/local/bin/$KUBE_BUILD_PLATFORMS/kube-controller-manager $DEST
47-
48-
ENV KUBE_BUILD_PLATFORMS linux/amd64
49-
RUN make WHAT=cmd/kubectl
50-
ENV KUBE_BUILD_PLATFORMS darwin/amd64
51-
RUN make WHAT=cmd/kubectl
52-
RUN cp _output/local/bin/$KUBE_BUILD_PLATFORMS/kubectl $DEST
53-
54-
# Build coreos/etcd binaries
55-
FROM golang:1.10.2-stretch as etcd-darwin
56-
ENV CGO 0
57-
ENV GOOS darwin
58-
ENV GOARCH amd64
59-
ENV DEST=/usr/local/kubebuilder/bin/
60-
RUN mkdir -p $DEST || echo ""
61-
RUN git clone https://github.com/coreos/etcd $GOPATH/src/github.com/coreos/etcd --depth=1
62-
RUN go build -o $DEST/etcd github.com/coreos/etcd
39+
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.12.3/bin/darwin/amd64/kubectl
40+
RUN chmod +x kubectl
41+
RUN cp kubectl $DEST
6342

64-
# Build k8s.io/code-generator binaries
65-
FROM golang:1.10.2-stretch as code-generator-darwin
66-
ENV CGO 0
67-
ENV GOOS darwin
68-
ENV GOARCH amd64
69-
ENV DEST /usr/local/kubebuilder/bin/
70-
RUN mkdir -p $DEST || echo ""
71-
RUN git clone https://github.com/kubernetes/code-generator $GOPATH/src/k8s.io/code-generator --depth=1 -b release-1.11
72-
RUN go build -o $DEST/client-gen k8s.io/code-generator/cmd/client-gen
73-
RUN go build -o $DEST/conversion-gen k8s.io/code-generator/cmd/conversion-gen
74-
RUN go build -o $DEST/deepcopy-gen k8s.io/code-generator/cmd/deepcopy-gen
75-
RUN go build -o $DEST/defaulter-gen k8s.io/code-generator/cmd/defaulter-gen
76-
RUN go build -o $DEST/informer-gen k8s.io/code-generator/cmd/informer-gen
77-
RUN go build -o $DEST/lister-gen k8s.io/code-generator/cmd/lister-gen
78-
RUN go build -o $DEST/openapi-gen k8s.io/code-generator/cmd/openapi-gen
79-
80-
# Build kubernetes-incubator/reference-docs binaries
81-
82-
FROM golang:1.10.2-stretch as reference-docs-darwin
83-
ENV CGO 0
84-
ENV GOOS darwin
85-
ENV GOARCH amd64
86-
ENV DEST /usr/local/kubebuilder/bin/
87-
RUN mkdir -p $DEST || echo ""
88-
RUN git clone https://github.com/kubernetes-incubator/reference-docs $GOPATH/src/github.com/kubernetes-incubator/reference-docs --branch kubebuilder --depth=1
89-
RUN go build -o $DEST/gen-apidocs github.com/kubernetes-incubator/reference-docs/gen-apidocs
43+
ENV ETCD_VERSION="3.3.10"
44+
ENV ETCD_DOWNLOAD_FILE="etcd-v${ETCD_VERSION}-darwin-amd64.zip"
45+
RUN curl -LO https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-darwin-amd64.zip -o ${ETCD_DOWNLOAD_FILE}
46+
RUN unzip -o ${ETCD_DOWNLOAD_FILE}
47+
RUN cp etcd-v${ETCD_VERSION}-darwin-amd64/etcd $DEST
9048

91-
# Copy all binaries into a single tar.gz file
92-
FROM golang:1.10.2-stretch as darwin
93-
RUN mkdir -p /usr/local/kubebuilder/bin/
94-
COPY --from=etcd-darwin /usr/local/kubebuilder/bin/* /usr/local/kubebuilder/bin/
95-
COPY --from=kubernetes-darwin /usr/local/kubebuilder/bin/* /usr/local/kubebuilder/bin/
96-
COPY --from=code-generator-darwin /usr/local/kubebuilder/bin/* /usr/local/kubebuilder/bin/
97-
COPY --from=reference-docs-darwin /usr/local/kubebuilder/bin/* /usr/local/kubebuilder/bin/
9849
WORKDIR /usr/local
9950
RUN tar -czvf /kubebuilder_darwin_amd64.tar.gz kubebuilder/
10051

build/thirdparty/linux/Dockerfile

Lines changed: 16 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -12,71 +12,34 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
# Build the following into binaries for linux and then host them in a tar.gz file in an alpine image
16-
# - apiserver
17-
# - kubectl
18-
# - kube-controller-manager
19-
# - etcd
20-
# - *-gen code generators
21-
# - reference-docs
15+
# Fetch the following into binaries for linux and then host them in a tar.gz file in an alpine image
16+
# - apiserver (fetch)
17+
# - kubectl (fetch)
18+
# - etcd (fetch)
2219

23-
FROM golang:1.10.2-stretch as kubernetes-linux
20+
FROM golang:1.11.2-stretch as linux
2421
# Install tools
2522
RUN apt update
2623
RUN apt install rsync -y
2724
RUN go get github.com/jteeuwen/go-bindata/go-bindata
2825
ENV CGO 0
2926
ENV DEST /usr/local/kubebuilder/bin/
3027
RUN mkdir -p $DEST || echo ""
31-
RUN git clone https://github.com/kubernetes/kubernetes $GOPATH/src/k8s.io/kubernetes --depth=1 -b release-1.11
32-
WORKDIR /go/src/k8s.io/kubernetes
33-
ENV KUBE_BUILD_PLATFORMS linux/amd64
34-
RUN make WHAT=cmd/kube-apiserver
35-
RUN make WHAT=cmd/kube-controller-manager
36-
RUN make WHAT=cmd/kubectl
37-
RUN cp _output/local/bin/$KUBE_BUILD_PLATFORMS/kube-apiserver $DEST
38-
RUN cp _output/local/bin/$KUBE_BUILD_PLATFORMS/kube-controller-manager $DEST
39-
RUN cp _output/local/bin/$KUBE_BUILD_PLATFORMS/kubectl $DEST
4028

41-
FROM golang:1.10.2-stretch as etcd-linux
42-
ENV CGO 0
43-
ENV GOOS linux
44-
ENV GOARCH amd64
45-
ENV DEST=/usr/local/kubebuilder/bin/
46-
RUN mkdir -p $DEST || echo ""
47-
RUN git clone https://github.com/coreos/etcd $GOPATH/src/github.com/coreos/etcd --depth=1
48-
RUN go build -o $DEST/etcd github.com/coreos/etcd
29+
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.12.3/bin/linux/amd64/kubectl
30+
RUN chmod +x kubectl
31+
RUN cp kubectl $DEST
4932

50-
FROM golang:1.10.2-stretch as code-generator-linux
51-
ENV CGO 0
52-
ENV GOOS linux
53-
ENV GOARCH amd64
54-
ENV DEST /usr/local/kubebuilder/bin/
55-
RUN mkdir -p $DEST || echo ""
56-
RUN git clone https://github.com/kubernetes/code-generator $GOPATH/src/k8s.io/code-generator --depth=1 -b release-1.11
57-
RUN go build -o $DEST/client-gen k8s.io/code-generator/cmd/client-gen
58-
RUN go build -o $DEST/conversion-gen k8s.io/code-generator/cmd/conversion-gen
59-
RUN go build -o $DEST/deepcopy-gen k8s.io/code-generator/cmd/deepcopy-gen
60-
RUN go build -o $DEST/defaulter-gen k8s.io/code-generator/cmd/defaulter-gen
61-
RUN go build -o $DEST/informer-gen k8s.io/code-generator/cmd/informer-gen
62-
RUN go build -o $DEST/lister-gen k8s.io/code-generator/cmd/lister-gen
63-
RUN go build -o $DEST/openapi-gen k8s.io/code-generator/cmd/openapi-gen
33+
RUN curl -LO https://dl.k8s.io/v1.12.3/kubernetes-server-linux-amd64.tar.gz
34+
RUN tar xzf kubernetes-server-linux-amd64.tar.gz
35+
RUN cp kubernetes/server/bin/kube-apiserver $DEST
6436

65-
FROM golang:1.10.2-stretch as reference-docs-linux
66-
ENV CGO 0
67-
ENV GOOS linux
68-
ENV GOARCH amd64
69-
ENV DEST /usr/local/kubebuilder/bin/
70-
RUN mkdir -p $DEST || echo ""
71-
RUN git clone https://github.com/kubernetes-incubator/reference-docs $GOPATH/src/github.com/kubernetes-incubator/reference-docs --branch kubebuilder --depth=1
72-
RUN go build -o $DEST/gen-apidocs github.com/kubernetes-incubator/reference-docs/gen-apidocs
37+
ENV ETCD_VERSION="3.3.10"
38+
ENV ETCD_DOWNLOAD_FILE="etcd-v${ETCD_VERSION}-linux-amd64.tar.gz"
39+
RUN curl -LO https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-linux-amd64.tar.gz -o ${ETCD_DOWNLOAD_FILE}
40+
RUN tar xzf ${ETCD_DOWNLOAD_FILE}
41+
RUN cp etcd-v${ETCD_VERSION}-linux-amd64/etcd $DEST
7342

74-
FROM golang:1.10.2-stretch as linux
75-
RUN mkdir -p /usr/local/kubebuilder/bin/
76-
COPY --from=etcd-linux /usr/local/kubebuilder/bin/* /usr/local/kubebuilder/bin/
77-
COPY --from=kubernetes-linux /usr/local/kubebuilder/bin/* /usr/local/kubebuilder/bin/
78-
COPY --from=code-generator-linux /usr/local/kubebuilder/bin/* /usr/local/kubebuilder/bin/
79-
COPY --from=reference-docs-linux /usr/local/kubebuilder/bin/* /usr/local/kubebuilder/bin/
8043
WORKDIR /usr/local
8144
RUN tar -czvf /kubebuilder_linux_amd64.tar.gz kubebuilder/
8245

0 commit comments

Comments
 (0)