mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 10:02:56 +01:00
Resolve "add Operator SDK-related binaries to gitlab-operator-build-base"
This commit is contained in:
parent
0436903dec
commit
fa4511a942
1 changed files with 42 additions and 5 deletions
|
|
@ -1,7 +1,29 @@
|
|||
ARG GOLANG_VERSION=1.16
|
||||
ARG ALPINE_VERSION=3.14
|
||||
# 3.14 presents challenges: https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0#faccessat2
|
||||
# while building OPM. 3.13 has no issues
|
||||
ARG OPM_ALPINE_VERSION=3.13
|
||||
|
||||
## Opm
|
||||
|
||||
FROM golang:${GOLANG_VERSION}-alpine${OPM_ALPINE_VERSION} as opm
|
||||
|
||||
ARG OPM_VERSION=1.19.1
|
||||
ENV GOPROXY="https://proxy.golang.org/"
|
||||
|
||||
RUN apk add --no-cache make gcc musl-dev curl git bash
|
||||
|
||||
## on Alpine opm needs to be built from scratch due to glibc vs musl issues
|
||||
RUN mkdir -p /src \
|
||||
&& curl -s -L -o /src/operator-registry-${OPM_VERSION}.tgz https://github.com/operator-framework/operator-registry/archive/refs/tags/v${OPM_VERSION}.tar.gz \
|
||||
&& cd /src \
|
||||
&& tar -xzf operator-registry-${OPM_VERSION}.tgz \
|
||||
&& ln -s operator-registry-${OPM_VERSION} operator-registry \
|
||||
&& cd operator-registry \
|
||||
&& make bin/opm
|
||||
|
||||
## Kustomize
|
||||
FROM golang:${GOLANG_VERSION}-alpine as kustomize
|
||||
FROM golang:${GOLANG_VERSION}-alpine${ALPINE_VERSION} as kustomize
|
||||
|
||||
ARG KUSTOMIZE_VERSION=3.8.10
|
||||
ENV GOPROXY="https://proxy.golang.org/"
|
||||
|
|
@ -12,7 +34,7 @@ RUN mkdir /src && cd /src; \
|
|||
go get sigs.k8s.io/kustomize/kustomize/v3@v${KUSTOMIZE_VERSION}
|
||||
|
||||
## Controller-gen
|
||||
FROM golang:${GOLANG_VERSION}-alpine as controller-gen
|
||||
FROM golang:${GOLANG_VERSION}-alpine${ALPINE_VERSION} as controller-gen
|
||||
|
||||
ARG CONTROLLER_GEN_VERSION=0.3.0
|
||||
ENV GOPROXY="https://proxy.golang.org/"
|
||||
|
|
@ -22,7 +44,7 @@ RUN mkdir /src && cd /src; \
|
|||
&& go get sigs.k8s.io/controller-tools/cmd/controller-gen@v${CONTROLLER_GEN_VERSION}
|
||||
|
||||
## Build
|
||||
FROM golang:${GOLANG_VERSION}-alpine as build
|
||||
FROM golang:${GOLANG_VERSION}-alpine${ALPINE_VERSION} as build
|
||||
|
||||
LABEL maintainer="GitLab Distribution Team" \
|
||||
description="Build base image for the GitLab Operator project."
|
||||
|
|
@ -30,8 +52,15 @@ LABEL maintainer="GitLab Distribution Team" \
|
|||
ARG KUBEBUILDER_VERSION=2.3.1
|
||||
ARG YQ_VERSION=4.7.0
|
||||
ARG HELM_VERSION=3.5.2
|
||||
ARG OPERATORSDK_VERSION=1.13.1
|
||||
# ARG OPM_VERSION=1.19.0
|
||||
|
||||
RUN apk add --no-cache podman buildah curl make gcc musl-dev git bash coreutils
|
||||
|
||||
# make VFS podman's default storage driver to
|
||||
# accomodate running podman within docker
|
||||
RUN sed -i 's#^driver.*$#driver = "vfs"#g' /etc/containers/storage.conf
|
||||
|
||||
RUN apk add --no-cache podman curl make gcc musl-dev git bash coreutils
|
||||
RUN go get -u \
|
||||
github.com/onsi/ginkgo/ginkgo \
|
||||
golang.org/x/lint/golint
|
||||
|
|
@ -51,13 +80,21 @@ RUN curl --retry 6 -Ls "https://get.helm.sh/helm-v${HELM_VERSION}-linux-amd64.ta
|
|||
&& chmod +x /tmp/linux-amd64/helm \
|
||||
&& mv /tmp/linux-amd64/helm /usr/local/bin/helm
|
||||
|
||||
# Opm
|
||||
COPY --from=opm /src/operator-registry/bin/opm /usr/local/bin/opm
|
||||
|
||||
# Operator-SDK
|
||||
RUN curl -o /usr/local/bin/operator-sdk_linux_amd64 -L \
|
||||
https://github.com/operator-framework/operator-sdk/releases/download/v${OPERATORSDK_VERSION}/operator-sdk_linux_amd64 \
|
||||
; chmod +x /usr/local/bin/operator-sdk_linux_amd64 ; ln -s /usr/local/bin/operator-sdk_linux_amd64 /usr/local/bin/operator-sdk
|
||||
|
||||
# Kustomize
|
||||
COPY --from=kustomize /go/bin/kustomize /usr/local/bin/kustomize
|
||||
# Controller-gen
|
||||
COPY --from=controller-gen /go/bin/controller-gen /usr/local/bin/controller-gen
|
||||
|
||||
## Final image
|
||||
FROM golang:${GOLANG_VERSION}-alpine
|
||||
FROM golang:${GOLANG_VERSION}-alpine${ALPINE_VERSION}
|
||||
LABEL maintainer="GitLab Distribution Team" \
|
||||
description="Build base image for the GitLab Operator project."
|
||||
COPY --from=build / /
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue