Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/preflight.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# The primary reason for this is that it made the release process unnecessary
# chaotic. The RH tech portal is notoriously unstable, and in cases where it
# failed to respond, a way to re-run the preflight checks was necessary.
# But the preflight checks were trigerred only after a successful release
# But the preflight checks were triggered only after a successful release
# workflow, which it's self was only triggered by a new tag.
#
# As you can imagine, retagging this repository just to force a new round
Expand Down
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@ default_language_version:
node: system

repos:
- repo: https://github.com/crate-ci/typos
rev: v1.50.1
hooks:
- id: typos
# Drop the upstream default `--write-changes` so the hook reports and
# fails instead of rewriting files. Keep `--force-exclude` so the
# excludes in typos.toml still apply to the paths prek passes in.
args: ["--force-exclude"]

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # 6.0.0
hooks:
Expand Down
4 changes: 2 additions & 2 deletions .scripts/update_feature_tracker_db.sh
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ main() {

IMAGES=$(crane ls "${REPOSITORY_NAME}" | grep "stackable${RELEASE_VERSION}" | xargs -I '{}' echo "${REPOSITORY_NAME}":'{}')

# Linter complains about usless echo in $(echo $IMAGES)
# Linter complains about useless echo in $(echo $IMAGES)
# but the "echo" is necessary to split IMAGES into multiple lines.
# Otherwise IMAGE_NAME contains a long string with all images separated by
# newline.
Expand All @@ -209,7 +209,7 @@ main() {

PRODUCT_IMAGE_DIGEST=$(product_image_digest "${IMAGE_NAME}")

echo "Updating compnents for image $IMAGE_NAME"
echo "Updating components for image $IMAGE_NAME"

update_release_components "${RELEASE_VERSION}" "${PRODUCT_VERSION_ID}" "${REPOSITORY_NAME}" "${PRODUCT_IMAGE_DIGEST}"
done
Expand Down
8 changes: 4 additions & 4 deletions .scripts/update_readme_badges.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ set -euo pipefail

RELATIVE_PATH=$(realpath -s --relative-to "$PWD" "$0")

# START: Configurables
# START: Configurables # spellchecker:disable-line
AUTO_GENERATED_COMMENT="autogenerated by $RELATIVE_PATH"
GITHUB_ACTION_URL_PREFIX="https://github.com/stackabletech/docker-images/actions/workflows"
COLS=4
# END: Configurables
# END: Configurables # spellchecker:disable-line

LINK_SHORTCUTS=()
CURRENT_COLUMN=-1
Expand Down Expand Up @@ -74,8 +74,8 @@ echo "<!-- start:links: $AUTO_GENERATED_COMMENT -->" >> "$LINKS_TMP"
printf '%s\n' "${LINK_SHORTCUTS[@]}" >> "$LINKS_TMP"
echo -n "<!-- end:links -->" >> "$LINKS_TMP"

BADGES_CONTENT=$(sed ':a;N;$!ba;s/\n/\\n/g' "$BADGES_TMP")
LINKS_CONTENT=$(sed ':a;N;$!ba;s/\n/\\n/g' "$LINKS_TMP")
BADGES_CONTENT=$(sed ':a;N;$!ba;s/\n/\\n/g' "$BADGES_TMP") # spellchecker:disable-line
LINKS_CONTENT=$(sed ':a;N;$!ba;s/\n/\\n/g' "$LINKS_TMP") # spellchecker:disable-line

README_TMP=$(mktemp)

Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -963,7 +963,7 @@ All notable changes to this project will be documented in this file.
- trino: Remove unsupported version 428 ([#687]).
- nifi: Remove unsupported version 1.23.2 ([#744]).
- kafka: Remove unsupported version `3.5.2` ([#745]).
- airflow: Remove unsupprted version `2.7.2`, `2.7.3` and `2.8.3` ([#762]).
- airflow: Remove unsupported version `2.7.2`, `2.7.3` and `2.8.3` ([#762]).
- superset: Remove version `2.1.1`, `3.0.1` and `3.0.3` ([#768]).
- druid: Remove support for 27.0.0 ([#731])
- spark-k8s: Remove support for `3.4.1` and `3.5.0` ([#771]).
Expand Down
2 changes: 1 addition & 1 deletion airflow/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ ARG CDXGEN_SPEC_VERSION
# Requires implementation of https://github.com/apache/airflow/blob/main/scripts/docker/install_mysql.sh
# The providers are split into separate lists to make it easier to manage
# (and to compare to the online links). Default values are provided for
# backwards compatability.
# backwards compatibility.
ARG AIRFLOW_EXTRAS_CORE=""
ARG AIRFLOW_EXTRAS_META=""
ARG AIRFLOW_EXTRAS_PROVIDER_APACHE=""
Expand Down
2 changes: 1 addition & 1 deletion airflow/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Successfully pulled new constraints file: constraints-3.0.6-python3.12.txt
## Airflow providers/extras

The providers are released independently of Airflow.
The list of provider packages are listed in the build configuration file, matching the groups used in the online documentation to make them easier to compare and manage (these will be concatentated into a single list in the Dockerfile).
The list of provider packages are listed in the build configuration file, matching the groups used in the online documentation to make them easier to compare and manage (these will be concatenated into a single list in the Dockerfile).
The expected versions are listed in the constraints files, but these can change over time.
To keep the installation tightly coupled to the associated constraints it is best to only use providers listed in the relevant constraints file.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def call_opa(self, url: str, json: dict, timeout: int) -> requests.Response:
"""
Send a POST request to OPA.

This function can be overriden in tests.
This function can be overridden in tests.

:param url: URL for the OPA rule
:param json: json to send in the body
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ def call_opa(self, url: str, json: dict, timeout: int) -> requests.Response:
"""
Send a POST request to OPA.

This function can be overriden in tests.
This function can be overridden in tests.

:param url: URL for the OPA rule
:param json: json to send in the body
Expand Down
4 changes: 2 additions & 2 deletions airflow/stackable/utils/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -284,8 +284,8 @@ unset PIP_USER
# check_uid_gid
# STACKABLE PATCH END

# Set umask to 0002 to make all the directories created by the current user group-writeable
# This allows the same directories to be writeable for any arbitrary user the image will be
# Set umask to 0002 to make all the directories created by the current user group-writable
# This allows the same directories to be writable for any arbitrary user the image will be
# run with, when the directory is created on a mounted volume and when that volume is later
# reused with a different UID (but with GID=0)
umask 0002
Expand Down
2 changes: 1 addition & 1 deletion hbase/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ As of SDP release 25.3, HBase 2.6.x is fully supported.
## Phoenix

HBase 2.6 support [was added](https://github.com/apache/phoenix/pull/1793) with [PHOENIX-7172](https://issues.apache.org/jira/browse/PHOENIX-7172) and released with Phoenix 5.2.1, which is included since SDP 25.3.
SDP 24.7 included Phoenix built from the master branch from commit [4afe457](https://github.com/apache/phoenix/tree/4afe4579bb3ab01725e4939746d0b7b807b438ac).
SDP 24.7 included Phoenix built from the master branch from commit [4afe457](https://github.com/apache/phoenix/tree/4afe4579bb3ab01725e4939746d0b7b807b438ac). <!-- spellchecker:disable-line -->

## HBase operator tools

Expand Down
2 changes: 1 addition & 1 deletion hbase/hbase/stackable/bin/hbase-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
# Entrypoint for HBase that ensures services are shutdown gracefuly
# Entrypoint for HBase that ensures services are shutdown gracefully
#
# Expects the following env vars:
# - RUN_REGION_MOVER: if set to true, the region mover will be run before region server shutdown
Expand Down
2 changes: 1 addition & 1 deletion opa/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ tar -czf /stackable/opa-${NEW_VERSION}-src.tar.gz .
rm .git
git init
git config user.email "fake.commiter@stackable.tech"
git config user.name "Fake commiter"
git config user.name "Fake committer"
git commit --allow-empty --message "Fake commit, so that we can create a tag"
git tag "v${NEW_VERSION}"
go build -o opa -buildmode=exe
Expand Down
2 changes: 1 addition & 1 deletion rust/boil/src/core/bakefile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ impl Targets {
}

// Remove the last dependency as soon as we are done looking at that particular
// dependency (name+version combination). We do this because we are not decending
// dependency (name+version combination). We do this because we are not descending
// down the chain for this particular dependency anymore, but instead move to the
// next dependency at the same level of depth. Illustration:
//
Expand Down
4 changes: 2 additions & 2 deletions rust/boil/src/core/image.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ impl FromStr for ImageSelector {
type Err = ParseImageSelectorError;

fn from_str(input: &str) -> Result<Self, Self::Err> {
// Get rid of any leading and traling whitespace
// Get rid of any leading and trailing whitespace
let input = input.trim();
ensure!(!input.is_empty(), EmptyInputSnafu);

let parts: Vec<_> = input.split('=').collect();

// Ensure that the path/image name is not empty, doesn't contain '~', and is not abolute.
// Ensure that the path/image name is not empty, doesn't contain '~', and is not absolute.
ensure!(!parts[0].is_empty(), InvalidFormatSnafu);
ensure!(!parts[0].contains('~'), UnsupportedCharsSnafu);
ensure!(!parts[0].starts_with('/'), AbsolutePathSnafu);
Expand Down
2 changes: 1 addition & 1 deletion rust/boil/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ mod core;
mod models;
mod utils;

/// This trait extends functionailty provided by [`snafu`].
/// This trait extends functionality provided by [`snafu`].
///
/// [`snafu`] already provides various ways to extend [`Result`]s with additional context-sensitive
/// information. This trait allows calling `if_context` on any type, which runs a predicate to
Expand Down
2 changes: 1 addition & 1 deletion rust/boil/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ static SEMVER_PRERELEASE_FLOATING: LazyLock<Regex> = LazyLock::new(|| {
Regex::new("^dev(?:-.+)?$|^pr.+$").expect("static regular expression must compile")
});

// FIXME (@Techassi): We should pull this in from a central pice of code, like stackable-shared.
// FIXME (@Techassi): We should pull this in from a central piece of code, like stackable-shared.
// stackable-shared needs to add a few features to be able to properly select _only_ what is needed
// without pulling in too many unused deps.
pub trait VersionExt {
Expand Down
2 changes: 1 addition & 1 deletion rustfmt.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file includes unstable features, so you need to run "cargo +nightly fmt" to format your code.
# It's also ok to use the stable toolchain by simple running "cargo fmt", but using the nigthly formatter is prefered.
# It's also ok to use the stable toolchain by simple running "cargo fmt", but using the nightly formatter is preferred.

# https://doc.rust-lang.org/nightly/edition-guide/rust-2024/rustfmt-style-edition.html
style_edition = "2024"
Expand Down
2 changes: 1 addition & 1 deletion shared/statsd-exporter/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ go install "github.com/CycloneDX/cyclonedx-gomod/cmd/cyclonedx-gomod@v${CYCLONED
rm .git
git init
git config user.email "fake.commiter@stackable.tech"
git config user.name "Fake commiter"
git config user.name "Fake committer"
git commit --allow-empty --message "Fake commit, so that we can create a tag"
git tag "v${PRODUCT_VERSION}"
go build -o /statsd_exporter/statsd_exporter
Expand Down
2 changes: 1 addition & 1 deletion spark-k8s/stackable/jmx/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ rules:
app_id: "$1"

# These come from the application driver
# Emulate timers for DAGScheduler like messagePRocessingTime
# Emulate timers for DAGScheduler like messageProcessingTime
- pattern: "metrics<name=(.*)\\.driver\\.DAGScheduler\\.(.*), type=counters><>Count"
name: spark_driver_DAGScheduler_$2_total
type: COUNTER
Expand Down
2 changes: 1 addition & 1 deletion stackable-base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ COPY --chown=${STACKABLE_USER_UID}:0 shared/checks/check-permissions-ownership.s

ENV PATH="${PATH}:/stackable"

# These labels have mostly been superceded by the OpenContainer spec annotations below but it doesn't hurt to include them
# These labels have mostly been superseded by the OpenContainer spec annotations below but it doesn't hurt to include them
# http://label-schema.org/rc1/
LABEL maintainer="info@stackable.tech"
LABEL vendor="Stackable GmbH"
Expand Down
8 changes: 4 additions & 4 deletions superset/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ RUN microdnf update \
# Needed by ./configure to work out SQLite compilation flags, see snippet [1] at the end of file
diffutils \
# According to https://stackoverflow.com/q/19530974 normally sqlite3 should be shipped with the Python
# distribution. However, while addig ARM support we noticed that this does not seem to be the case for the
# distribution. However, while adding ARM support we noticed that this does not seem to be the case for the
# Python installation shipped in the ARM image variant. So I guess Make is used to find out the sqlite
# compilation flags (and propably to not build sqlite from source(?)), see snippet [1] at the end of file
# compilation flags (and probably to not build sqlite from source(?)), see snippet [1] at the end of file
make \
gcc \
gcc-c++ \
Expand Down Expand Up @@ -122,7 +122,7 @@ EOF

# Upgrade pip to the latest version
# Also install uv to get support for build constraints
# DL3042 false-positive, --no-chache-dir is specified a few lines below.
# DL3042 false-positive, --no-cache-dir is specified a few lines below.
# See https://github.com/hadolint/hadolint/issues/1042.
# hadolint ignore=DL3042
RUN <<EOF
Expand Down Expand Up @@ -206,7 +206,7 @@ uv pip install --no-cache-dir \

# We bumped this from 21.2.0 to 22.0.0 to fix CVE-2024-1135
# Superset 4.1.0 will contain at least 22.0.0, the bump was done in https://github.com/apache/superset/commit/4f693c6db0dc5c7286a36b8d23e90541943ff13f
# We only want to bump this for the 4.0.x line, as the others already have updated and we do not want to accidentially downgrade the version
# We only want to bump this for the 4.0.x line, as the others already have updated and we do not want to accidentally downgrade the version
if [[ "$PRODUCT_VERSION" =~ ^4\.0\..* ]]; then
echo "Superset 4.0.x detected, installing gunicorn 22.0.0 to fix CVE-2024-1135"
uv pip install gunicorn==22.0.0
Expand Down
2 changes: 2 additions & 0 deletions trino-cli/upload_new_trino_version.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ curl --fail -LO --progress-bar "https://github.com/trinodb/trino/releases/downlo
# echo "Adding pinned public key for signature"
# # We lock the public key here until trino has a better workflow for signing
# gpg --no-default-keyring --keyring "${WORK_DIR}"/keyring --import <<-EOF
# spellchecker:off
# -----BEGIN PGP PUBLIC KEY BLOCK-----
# Comment: Hostname:
# Version: Hockeypuck 2.1.0-223-gdc2762b
Expand Down Expand Up @@ -76,6 +77,7 @@ curl --fail -LO --progress-bar "https://github.com/trinodb/trino/releases/downlo
# LoKR7XroVADNIdggJawYzZNyU6clw/O1if5vSURumLeul13T
# =p7ZF
# -----END PGP PUBLIC KEY BLOCK-----
# spellchecker:on
# EOF
#
# echo "Validating signature"
Expand Down
4 changes: 2 additions & 2 deletions trino/trino/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,15 @@ tar -czf /stackable/trino-${NEW_VERSION}-src.tar.gz .

# Trino is using something (git-commit-id-plugin in the past, maybe something else now) that is
# reading the Git history and searches for a tag to pull the version from. It sounds weird to me
# why someone would do that over just picking the version from the pom.xml, but they propably
# why someone would do that over just picking the version from the pom.xml, but they probably
# have their reasons. See e.g. https://github.com/trinodb/trino/discussions/18963.
# So we fake it till we make it and create a Git repo and the correct tag. The trino-operator
# smoke test checks that "select version()" is working.
# Also, we need to initialize a new Git repo because `git-commit-id-maven-plugin` has a problem with worktrees, see https://github.com/git-commit-id/git-commit-id-maven-plugin/issues/215
rm .git
git init
git config user.email "fake.commiter@stackable.tech"
git config user.name "Fake commiter"
git config user.name "Fake committer"
git commit --allow-empty --message "Fake commit, so that we can create a tag"
git tag ${NEW_VERSION}

Expand Down
67 changes: 67 additions & 0 deletions typos.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Configuration for typos (https://github.com/crate-ci/typos), run via the prek
# hook in .pre-commit-config.yaml.
#
# The core of this file is the shared block documented in
# stackabletech/operator-templating's README ("Spell checking"). Entries from
# that block which have no counterpart here -- Cargo.nix, generated CRDs,
# draw.io diagrams -- are left out rather than carried as dead config.
#
# typos has no layered configuration
# (https://github.com/crate-ci/typos/issues/193), so this file is the only one
# that applies to this repository.
#
# Before adding an entry here, consider an in-place marker instead. Use one when
# the word is correct at this one site and would still be a typo elsewhere:
#
# # spellchecker:disable-line at the end of the line it applies to
# # spellchecker:ignore-next-line on its own line, above the offending line
# # spellchecker:off / :on around a block
#
# Every entry below gets a one-line comment saying what the word is.

[files]
# Bare `typos` skips hidden directories, but prek passes explicit paths and so
# does check them. Turn it off so a local run and the hook agree.
ignore-hidden = false

extend-exclude = [
# Required once ignore-hidden is off, or typos walks .git/objects.
".git/",
# Upstream patches. The text belongs to the upstream project, and editing a
# patch breaks the context lines it applies against. Their filenames carry
# truncated commit subjects ("...-a-new-patch-updat.patch"), which trip the
# filename check as well.
"*.patch",
# Verbatim third-party licence texts, in 24 product directories. Excluded on
# purpose: these are not ours to correct.
"**/licenses/**",
# Base64-encoded CA certificates.
"stackable-base/stackable/ca-cert-blocklist/**",
# pip constraint files taken from upstream Airflow. They are lists of
# package names, not prose.
"airflow/stackable/constraints/**",
]

[default]
# typos has no native suppression directive
# (https://github.com/crate-ci/typos/issues/316), so these regexes provide one.
# They cover `#`, `//`, `<!-- -->`, `;`, `/* */` and Jinja `{# #}` comments.
#
# Both failure modes are safe: an unterminated `:off` suppresses nothing rather
# than swallowing the rest of the file, and `disable-line` only matches when the
# marker ends the line, so trailing text defeats it instead of widening it.
extend-ignore-re = [
"(?Rm)^.*(#|//|<!--|;|/\\*)\\s*spellchecker:disable-line\\s*(-->|#\\}|\\*/)?\\s*$",
"(#|//|<!--|;|/\\*)\\s*spellchecker:ignore-next-line\\s*(-->|#\\}|\\*/)?\\s*\\n.*",
"(?s)(#|//|<!--|;|/\\*|\")\\s*spellchecker:off\\s*(-->|#\\}|\\*/|\")?.*?(#|//|<!--|;|/\\*|\")\\s*spellchecker:on\\s*(-->|#\\}|\\*/|\")?",
]

[default.extend-words]
# Vertica, the database. `apache-airflow-providers-vertica` is a real package
# name; correcting it to "vertical" would break the Airflow image build.
vertica = "vertica"
# Maven profile activation flag, as in `mvn -Prelease` (hbase/hbase/Dockerfile).
# "Correcting" it to -Prerelease selects a profile that does not exist. This is a
# config entry rather than an in-place marker because the flag sits inside a shell
# line continuation, where a `#` comment would swallow the rest of the command.
Prelease = "Prelease"