diff --git a/.github/actions/release/Makefile b/.github/actions/release/Makefile index ba4f93aad..f13d60c75 100644 --- a/.github/actions/release/Makefile +++ b/.github/actions/release/Makefile @@ -5,22 +5,43 @@ VERSION = $(shell git rev-parse --short=7 HEAD) IMAGE_NAME = spark-operator SPARK_BASE_IMAGE = gcr.io/ocean-spark/spark:platform-3.4-gen20 TAG = $(VERSION)-gen20 +SPARK_BASE_IMAGE_RH = public.ecr.aws/f4k1p1n4/spark:netapp-spark-support-image-3.5.0-hadoop-3.3.4-java-11-scala-2.13-ubi-9-python-3.10-rel20240308 +TAG_RH = $(VERSION)-ubi9-rel20240308 -build: +build_linux: docker buildx build --load \ -t $(REGISTRY)$(IMAGE_NAME):$(TAG) \ --build-arg SPARK_IMAGE=$(SPARK_BASE_IMAGE) . -push: +build_rh: + docker buildx build --load \ + -t $(REGISTRY)$(IMAGE_NAME):$(TAG_RH) \ + -f Dockerfile.rh \ + --build-arg SPARK_IMAGE=$(SPARK_BASE_IMAGE_RH) . + +build: build_linux build_rh + +push_linux: docker tag $(REGISTRY)$(IMAGE_NAME):$(TAG) $(REGISTRY)$(IMAGE_NAME):${BRANCH} docker push $(REGISTRY)$(IMAGE_NAME):${BRANCH} @if [ "$(BRANCH)" = "ocean-spark" ]; then \ docker push $(REGISTRY)$(IMAGE_NAME):$(TAG); \ fi +push_rh: + docker tag $(REGISTRY)$(IMAGE_NAME):$(TAG_RH) $(REGISTRY)$(IMAGE_NAME):${BRANCH}-rh + docker push $(REGISTRY)$(IMAGE_NAME):${BRANCH}-rh + @if [ "$(BRANCH)" = "ocean-spark" ]; then \ + docker push $(REGISTRY)$(IMAGE_NAME):$(TAG_RH); \ + fi + +push: push_linux push_rh + show: @echo "Images available:" @if [ "$(BRANCH)" = "ocean-spark" ]; then \ echo "-> $(REGISTRY)$(IMAGE_NAME):$(TAG)"; \ + echo "-> $(REGISTRY)$(IMAGE_NAME):$(TAG_RH)"; \ fi @echo "-> $(REGISTRY)$(IMAGE_NAME):${BRANCH}" + @echo "-> $(REGISTRY)$(IMAGE_NAME):${BRANCH}-rh" diff --git a/.gitignore b/.gitignore index c4f0f0048..7ecf936e9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ sparkctl/sparkctl spark-on-k8s-operator sparkctl/sparkctl-linux-amd64 sparkctl/sparkctl-darwin-amd64 + +.DS_Store \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index c727d96e8..a594a4b22 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,7 @@ ARG SPARK_IMAGE=gcr.io/spark-operator/spark:v3.1.1 -FROM golang:1.19.2-alpine as builder +FROM golang:1.20-alpine as builder RUN apk update && apk add --no-cache libcap diff --git a/Dockerfile.rh b/Dockerfile.rh index 4fe0110ca..8f09dd0ee 100644 --- a/Dockerfile.rh +++ b/Dockerfile.rh @@ -22,7 +22,9 @@ ARG SPARK_IMAGE=gcr.io/spark-operator/spark:v3.1.1 -FROM golang:1.14.0-alpine as builder +FROM golang:1.20-alpine as builder + +RUN apk update && apk add --no-cache libcap WORKDIR /workspace @@ -39,19 +41,27 @@ COPY pkg/ pkg/ # Build RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -o /usr/bin/spark-operator main.go +RUN setcap cap_net_bind_service=+ep /usr/bin/spark-operator FROM ${SPARK_IMAGE} -COPY --from=builder /usr/bin/spark-operator /usr/bin/ USER root +RUN yum install -y openssl \ + && yum clean all \ + && curl -fsSL "https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-amd64" -o /sbin/tini \ + && chmod +x /sbin/tini # Comment out the following three lines if you do not have a RedHat subscription. -COPY hack/install_packages.sh / -RUN --mount=target=/opt/spark/credentials,type=secret,id=credentials,required /install_packages.sh -RUN rm /install_packages.sh +# COPY hack/install_packages.sh / +# RUN --mount=target=/opt/spark/credentials,type=secret,id=credentials,required /install_packages.sh +# RUN rm /install_packages.sh -RUN chmod -R u+x /tmp +# RUN chmod -R u+x /tmp + +USER 185 +COPY --from=builder /usr/bin/spark-operator /usr/bin/ COPY hack/gencerts.sh /usr/bin/ + COPY entrypoint.sh /usr/bin/ -USER 185 ENTRYPOINT ["/usr/bin/entrypoint.sh"] +