12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
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)
22
19
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
25
21
# Install tools
26
22
RUN apt update
27
23
RUN apt install rsync -y
24
+ RUN apt-get install unzip
28
25
RUN go get github.com/jteeuwen/go-bindata/go-bindata
29
26
ENV CGO 0
30
27
ENV DEST /usr/local/kubebuilder/bin/
31
28
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
33
30
WORKDIR /go/src/k8s.io/kubernetes
34
31
35
32
# Build for linux first otherwise it won't work for darwin - :(
@@ -39,62 +36,16 @@ ENV KUBE_BUILD_PLATFORMS darwin/amd64
39
36
RUN make WHAT=cmd/kube-apiserver
40
37
RUN cp _output/local/bin/$KUBE_BUILD_PLATFORMS/kube-apiserver $DEST
41
38
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
63
42
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
90
48
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/
98
49
WORKDIR /usr/local
99
50
RUN tar -czvf /kubebuilder_darwin_amd64.tar.gz kubebuilder/
100
51
0 commit comments