@@ -40,16 +40,25 @@ FROM build-go as eksctl-build
4040
4141USER root
4242RUN mkdir -p /usr/share/licenses/eksctl && \
43- chown -R builder:builder /usr/share/licenses/eksctl
43+ chown -R builder:builder /usr/share/licenses/eksctl && \
44+ mkdir -p /usr/share/licenses/eksctl-anywhere && \
45+ chown -R builder:builder /usr/share/licenses/eksctl-anywhere
4446
4547ARG EKSCTL_VERSION=0.112.0
4648ARG EKSCTL_SOURCE_URL="https://github.com/weaveworks/eksctl/archive/refs/tags/v${EKSCTL_VERSION}.tar.gz"
4749
4850ARG GOARCH
4951ARG EKSCTL_BINARY_URL="https://github.com/weaveworks/eksctl/releases/download/v${EKSCTL_VERSION}/eksctl_Linux_${GOARCH}.tar.gz"
5052
53+ ARG EKSA_VERSION=0.11.4
54+ ARG EKSA_SOURCE_URL="https://github.com/aws/eks-anywhere/archive/refs/tags/v${EKSA_VERSION}.tar.gz"
55+ ARG EKSA_RELEASE_NUMBER=21
56+ # TODO EKS-A currently does not provide an ARM64 binary, add the hash for it when they do
57+ ARG EKSA_BINARY_URL="https://anywhere-assets.eks.amazonaws.com/releases/eks-a/${EKSA_RELEASE_NUMBER}/artifacts/eks-a/v${EKSA_VERSION}/${GOOS}/amd64/eksctl-anywhere-v${EKSA_VERSION}-${GOOS}-amd64.tar.gz"
58+
5159USER builder
5260WORKDIR /home/builder/
61+ # eksctl
5362RUN mkdir eksctl && curl -L ${EKSCTL_SOURCE_URL} \
5463 -o eksctl_${EKSCTL_VERSION}.tar.gz && \
5564 grep eksctl_${EKSCTL_VERSION}.tar.gz \
@@ -78,18 +87,45 @@ RUN curl -L "${EKSCTL_BINARY_URL}" \
7887 tar -xf eksctl_${EKSCTL_VERSION}_${GOOS}_${GOARCH}.tar.gz -C /tmp && \
7988 rm eksctl_${EKSCTL_VERSION}_${GOOS}_${GOARCH}.tar.gz
8089
90+ # eksctl-anywhere
91+ # TODO Try and build this; it's not straightforward with the tight coupling between EKS-A releases and its bundles
92+ WORKDIR /home/builder/
93+ RUN mkdir eksctl-anywhere && curl -L ${EKSA_SOURCE_URL} \
94+ -o eksctl_anywhere_${EKSA_VERSION}.tar.gz && \
95+ grep eksctl_anywhere_${EKSA_VERSION}.tar.gz \
96+ /hashes/eksctl | sha512sum --check - && \
97+ tar -xf eksctl_anywhere_${EKSA_VERSION}.tar.gz --strip-components 1 -C eksctl-anywhere && \
98+ rm eksctl_anywhere_${EKSA_VERSION}.tar.gz
99+
100+ USER root
101+ WORKDIR /home/builder/eksctl-anywhere/
102+ RUN go mod vendor
103+ RUN cp -p LICENSE /usr/share/licenses/eksctl-anywhere && \
104+ /usr/libexec/tools/bottlerocket-license-scan \
105+ --clarify /clarify.toml \
106+ --spdx-data /usr/libexec/tools/spdx-data \
107+ --out-dir /usr/share/licenses/eksctl-anywhere/vendor \
108+ go-vendor ./vendor
109+ RUN curl -L "${EKSA_BINARY_URL}" \
110+ -o eksctl_anywhere_${EKSA_VERSION}_${EKSA_RELEASE_NUMBER}_${GOOS}_amd64.tar.gz && \
111+ grep eksctl_anywhere_${EKSA_VERSION}_${EKSA_RELEASE_NUMBER}_${GOOS}_amd64.tar.gz \
112+ /hashes/eksctl | sha512sum --check - && \
113+ tar -xzf eksctl_anywhere_${EKSA_VERSION}_${EKSA_RELEASE_NUMBER}_${GOOS}_amd64.tar.gz -C /tmp && \
114+ rm eksctl_anywhere_${EKSA_VERSION}_${EKSA_RELEASE_NUMBER}_${GOOS}_amd64.tar.gz
115+
81116# =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^=
82117FROM build-go as kubernetes-build
83118
84119USER root
85120RUN mkdir -p /usr/share/licenses/kubernetes && \
86121 chown -R builder:builder /usr/share/licenses/kubernetes
87122
88- ARG K8S_VERSION=1.21.6
123+ ARG K8S_VERSION=1.23.13
89124ARG K8S_SOURCE_URL="https://github.com/kubernetes/kubernetes/archive/refs/tags/v${K8S_VERSION}.tar.gz"
90125
91126ARG GOARCH
92127ARG KUBEADM_BINARY_URL="https://dl.k8s.io/release/v${K8S_VERSION}/bin/linux/${GOARCH}/kubeadm"
128+ ARG KUBECTL_BINARY_URL="https://dl.k8s.io/release/v${K8S_VERSION}/bin/linux/${GOARCH}/kubectl"
93129
94130USER builder
95131WORKDIR /home/builder/
@@ -114,6 +150,11 @@ RUN curl -L ${KUBEADM_BINARY_URL} \
114150 grep kubeadm_${K8S_VERSION}_${GOOS}_${GOARCH} \
115151 /hashes/kubernetes | sha512sum --check - && \
116152 install -m 0755 kubeadm_${K8S_VERSION}_${GOOS}_${GOARCH} /tmp/kubeadm
153+ RUN curl -L ${KUBECTL_BINARY_URL} \
154+ -o kubectl_${K8S_VERSION}_${GOOS}_${GOARCH} && \
155+ grep kubectl_${K8S_VERSION}_${GOOS}_${GOARCH} \
156+ /hashes/kubernetes | sha512sum --check - && \
157+ install -m 0755 kubectl_${K8S_VERSION}_${GOOS}_${GOARCH} /tmp/kubectl
117158
118159# =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^=
119160FROM build-go as sonobuoy-build
@@ -191,8 +232,13 @@ COPY --from=aws-iam-authenticator-build /usr/share/licenses/aws-iam-authenticato
191232COPY --from=eksctl-build /tmp/eksctl /eksctl
192233COPY --from=eksctl-build /usr/share/licenses/eksctl /licenses/eksctl
193234
194- # kubeadm
235+ # eksctl-anywhere
236+ COPY --from=eksctl-build /tmp/eksctl-anywhere /eksctl-anywhere
237+ COPY --from=eksctl-build /usr/share/licenses/eksctl-anywhere /licenses/eksctl-anywhere
238+
239+ # kubeadm and kubectl
195240COPY --from=kubernetes-build /tmp/kubeadm /kubeadm
241+ COPY --from=kubernetes-build /tmp/kubectl /kubectl
196242COPY --from=kubernetes-build /usr/share/licenses/kubernetes /licenses/kubernetes
197243
198244# sonobuoy
0 commit comments