@@ -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,6 +87,32 @@ 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
@@ -197,6 +232,10 @@ COPY --from=aws-iam-authenticator-build /usr/share/licenses/aws-iam-authenticato
197232COPY --from=eksctl-build /tmp/eksctl /eksctl
198233COPY --from=eksctl-build /usr/share/licenses/eksctl /licenses/eksctl
199234
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+
200239# kubeadm and kubectl
201240COPY --from=kubernetes-build /tmp/kubeadm /kubeadm
202241COPY --from=kubernetes-build /tmp/kubectl /kubectl
0 commit comments