diff --git a/.github/ISSUE_TEMPLATE/update-base-ubi-rust-builders.md b/.github/ISSUE_TEMPLATE/update-base-ubi-rust-builders.md index 6daed3bed..7e3a3e26e 100644 --- a/.github/ISSUE_TEMPLATE/update-base-ubi-rust-builders.md +++ b/.github/ISSUE_TEMPLATE/update-base-ubi-rust-builders.md @@ -51,8 +51,7 @@ Add/Change/Remove anything that isn't applicable anymore > This list should be completed by the assignee(s), once respective PRs have been merged. Once all items have been > checked, the issue can be moved into _Development: Done_. -- Done for [ubi8-rust-builder/Dockerfile](https://github.com/stackabletech/docker-images/blob/main/ubi8-rust-builder/Dockerfile) -- Done for [ubi9-rust-builder/Dockerfile](https://github.com/stackabletech/docker-images/blob/main/ubi9-rust-builder/Dockerfile) +- [ ] Done for [ubi9-rust-builder/Dockerfile](https://github.com/stackabletech/docker-images/blob/main/ubi9-rust-builder/Dockerfile) - [ ] Can build the image locally - [ ] Can build an operator image diff --git a/.github/workflows/ubi-rust-builder.yml b/.github/workflows/ubi-rust-builder.yml index 132bc7152..91254d182 100644 --- a/.github/workflows/ubi-rust-builder.yml +++ b/.github/workflows/ubi-rust-builder.yml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: runner: ["ubuntu-latest", "ubicloud-standard-8-arm"] - ubi-version: ["ubi8", "ubi9"] + ubi-version: ["ubi9"] runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 @@ -59,7 +59,7 @@ jobs: strategy: fail-fast: false matrix: - ubi-version: ["ubi8", "ubi9"] + ubi-version: ["ubi9"] runs-on: ubuntu-latest needs: ["build"] steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index b18686a8a..5cf347fea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,7 +36,8 @@ All notable changes to this project will be documented in this file. ### Changed - ubi-rust-builder: Bump Rust toolchain to 1.85.0, cargo-cyclonedx to 0.5.7, and cargo-auditable to 0.6.6 ([#1050]). -- spark-k8s: Include spark-connect jars. Replace OpenJDK with Temurin JDK. Cleanup ([#1034]). +- ubi9-rust-builder: Bump base image and update protoc to `30.2` ([#1091]). +- spark-k8s: Include spark-connect jars, replace OpenJDK with Temurin JDK, cleanup ([#1034]). - spark-connect-client: Image is now completely based on spark-k8s and includes JupyterLab and other demo dependencies ([#1071]). - jmx_exporter: Bump products to use `1.2.0` ([#1090]). - kubectl: Bump products to use `1.33.0` ([#1090]). @@ -64,6 +65,7 @@ All notable changes to this project will be documented in this file. - ci: Remove Nexus steps from build, mirror and release workflows ([#1056]). Also remove the old release workflow. - zookeeper: Remove 3.9.2 ([#1093]). +- Remove ubi8-rust-builder image ([#1091]). [#1025]: https://github.com/stackabletech/docker-images/pull/1025 [#1027]: https://github.com/stackabletech/docker-images/pull/1027 @@ -84,6 +86,7 @@ All notable changes to this project will be documented in this file. [#1055]: https://github.com/stackabletech/docker-images/pull/1055 [#1056]: https://github.com/stackabletech/docker-images/pull/1056 [#1090]: https://github.com/stackabletech/docker-images/pull/1090 +[#1091]: https://github.com/stackabletech/docker-images/pull/1091 [#1093]: https://github.com/stackabletech/docker-images/pull/1093 [#1097]: https://github.com/stackabletech/docker-images/pull/1097 [#1098]: https://github.com/stackabletech/docker-images/pull/1098 diff --git a/ubi8-rust-builder/Dockerfile b/ubi8-rust-builder/Dockerfile deleted file mode 100644 index 4a30f0e97..000000000 --- a/ubi8-rust-builder/Dockerfile +++ /dev/null @@ -1,111 +0,0 @@ -# syntax=docker/dockerfile:1.10.0@sha256:865e5dd094beca432e8c0a1d5e1c465db5f998dca4e439981029b3b81fb39ed5 -# check=error=true - -# Deprecation notice: Stackable has moved to UBI9 as of its 24.7 release -# This builder is kept around and updated until the last SDP release is EOL that uses UBI8 (which is 24.3) so we'll remove this sometime in the summer of 2025 - -# Find the latest version at https://catalog.redhat.com/software/containers/ubi8-minimal/5c64772edd19c77a158ea216?container-tabs=gti -# IMPORTANT: Be sure to use the Manifest List Digest for multi-arch support -FROM registry.access.redhat.com/ubi8-minimal@sha256:7583ca0ea52001562bd81a961da3f75222209e6192e4e413ee226cff97dbd48c AS builder - -LABEL maintainer="Stackable GmbH" - -# This SHOULD be kept in sync with operator-templating and other tools to reduce build times -# Find the latest version here: https://doc.rust-lang.org/stable/releases.html -# renovate: datasource=github-releases packageName=rust-lang/rust -ENV RUST_DEFAULT_TOOLCHAIN_VERSION=1.85.0 -# Find the latest version here: https://crates.io/crates/cargo-cyclonedx -# renovate: datasource=crate packageName=cargo-cyclonedx -ENV CARGO_CYCLONEDX_CRATE_VERSION=0.5.7 -# Find the latest version here: https://crates.io/crates/cargo-auditable -# renovate: datasource=crate packageName=cargo-auditable -ENV CARGO_AUDITABLE_CRATE_VERSION=0.6.6 -# Find the latest version here: https://github.com/protocolbuffers/protobuf/releases -# Upload any newer version to nexus with ./.scripts/upload_new_protoc_version.sh -# renovate: datasource=github-releases packageName=protocolbuffers/protobuf -ENV PROTOC_VERSION=27.3 - -# Sets the default shell to Bash with strict error handling and robust pipeline processing. -# "-e": Exits immediately if a command exits with a non-zero status -# "-u": Treats unset variables as an error, preventing unexpected behavior from undefined variables. -# "-o pipefail": Causes a pipeline to return the exit status of the last command in the pipe that failed, ensuring errors in any part of a pipeline are not ignored. -# "-c": Allows the execution of commands passed as a string -# This is automatically inherited in all other Dockerfiles that use this unless it is overwritten -SHELL ["/bin/bash", "-euo", "pipefail", "-c"] - -# We configure microdnf to not install weak dependencies in this file -# Not doing this caused the content of images to become unpredictable because -# based on which packages get updated by `microdnf update` new weak dependencies -# might be installed that were not present earlier (the ubi base image doesn't -# seem to install weak dependencies) -# This also affects the packages that are installed in our Dockerfiles (java as prime -# example). -# https://github.com/stackabletech/docker-images/pull/533 -COPY stackable-base/stackable/dnf.conf /etc/dnf/dnf.conf - -# Update image and install everything needed for Rustup & Rust -RUN microdnf update \ - && microdnf install \ - clang \ - cmake \ - curl \ - findutils \ - gcc \ - gcc-c++ \ - krb5-libs \ - libkadm5 \ - make \ - openssl-devel \ - pkg-config \ - systemd-devel \ - unzip \ - && microdnf clean all \ - && rm -rf /var/cache/yum - -# Container Storage Interface is defined using GRPC/Protobuf, our operators that use it (secret-operator/listener-operator) require -# protoc via Prost (https://github.com/tokio-rs/prost). -WORKDIR /opt/protoc -# Prost does not document which version of protoc it expects (https://docs.rs/prost-build/0.12.4/prost_build/), so this should be the latest upstream version -# (within reason). -RUN ARCH=$(arch | sed 's/^aarch64$/aarch_64/') \ - && curl --fail --location --output protoc.zip "https://repo.stackable.tech/repository/packages/protoc/protoc-${PROTOC_VERSION}-linux-${ARCH}.zip" \ - && unzip protoc.zip \ - && rm protoc.zip -ENV PROTOC=/opt/protoc/bin/protoc -WORKDIR / - -# IMPORTANT -# If you change the toolchain version here, make sure to also change the "rust_version" -# property in operator-templating/config/rust.yaml -RUN <