Skip to content

Smooth operator#1225

Open
siegfriedweber wants to merge 18 commits into
mainfrom
smooth-operator
Open

Smooth operator#1225
siegfriedweber wants to merge 18 commits into
mainfrom
smooth-operator

Conversation

@siegfriedweber

Copy link
Copy Markdown
Member

Description

Add a new v2 module that provides more type-safe variants of the existing functions.

Part of stackabletech/internal-issues#167

Definition of Done Checklist

  • Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant
  • Please make sure all these things are done and tick the boxes

Author

  • Changes are OpenShift compatible

Reviewer

  • Code contains useful comments
  • Code contains useful logging statements
  • (Integration-)Test cases added
  • Documentation added or updated. Follows the style guide.
  • Changelog updated
  • Cargo.toml only contains references to git tags (not specific commits or branches)

Acceptance

  • Feature Tracker has been updated
  • Proper release label has been added

Techassi and others added 13 commits May 13, 2026 09:51
This commit imports the framework code from the opensearch-operator by
first moving over the relevant files (located at rust/operator-binary/
src/framework) commit-by-commit, then squashing them in a interactive
rebase. This commit message includes a list of the individual commit
titles. It also includes all authore and co-authors of the original
commits as co-authors.

List of commits:

- feat: Add listener support (opensearch-operator#17)
- feat: Make OPENSEARCH_HOME and OPENSEARCH_PATH_CONF overridable (opensearch-operator#18)
- Fix technical debts (opensearch-operator#20)
- test: Add unit tests (opensearch-operator#32)
- feat: Improve name types (opensearch-operator#35)
- chore: Upgrade dependencies (opensearch-operator#37)
- feat: Support log configuration and log aggregation (opensearch-operator#40)
- feat: Support regular expressions in attributed_string_type (opensearch-operator#88)
- feat: TLS support (opensearch-operator#55)
- feat: Support objectOverrides (opensearch-operator#93)
- chore: Use anchors in regular expressions (opensearch-operator#102)
- chore: Move controller utility functions to separate module (opensearch-operator#104)
- chore: Add Port type (opensearch-operator#105)
- feat: Service discovery and exposition (opensearch-operator#94)
- chore: Bump OpenSearch version 3.4.0 (opensearch-operator#108)
- chore: Bump to stackable-operator 0.106.1 (opensearch-operator#116)
- feat: Allow the configuration of the security plugin (opensearch-operator#117)
- feat: Support hot-reloading for security configuration files (opensearch-operator#130)
- chore: Upgrade stackable-operator to 0.110.1 (opensearch-operator#137)

Co-authored-by: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com>
Co-authored-by: Benedikt Labrenz <benedikt@labrenz.org>
Co-authored-by: Sebastian Bernauer <sebastian.bernauer@stackable.tech>
Co-authored-by: Siegfried Weber <mail@siegfriedweber.net>
Co-authored-by: Malte Sander <malte.sander.it@gmail.com>
fix(config_overrides): make config_overrides public, fix clippy & doc checks
* deps: add uuid crate 1.23

* fix: add missing traits; macros and types pub.

* fix: adapt pathes

* fix: make builder pub

* fix: make role-utils and role-group-utils pub

* fix: correct fragment and merge macro path

* fix: remaining precommit

* fix: doc tests
* feat(v2): add shared config-file writers (java-properties/Hadoop-XML + Flask)

Adds v2::config_file_writer (to_java_properties_string + to_hadoop_xml, backed
by the java-properties and xml crates) and v2::flask_config_writer (the Flask
App Builder Python config writer), both originally from the product-config
crate's writer modules and until now vendored separately into the operators
(hdfs/hbase/hive byte-identical full copies; kafka/nifi/zookeeper java-only
subsets; airflow/superset identical Flask copies). Unit tests moved along with
the code; minor lint-driven cleanups only (use_self, format_push_string,
identical match arms, no unwrap in Result-returning tests) — rendered output is
unchanged and pinned by the tests.

Operators will migrate to these in follow-up commits, deleting their vendored
copies.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs: fix rustdoc warnings (broken intra-doc links, bare URLs)

stackable-operator: intra-doc links within the crate must use `crate::`
rather than the package name `stackable_operator::`, which is not in
scope and produced `broken_intra_doc_links` warnings. Also wrap two bare
URLs in the scaler docs in angle brackets so rustdoc renders them as
hyperlinks.

stackable-telemetry: `SettingsBuilder` is not imported in
`tracing/mod.rs` (only `Settings` is), so the four doc links to it did
not resolve. Point them at `settings::SettingsBuilder` via the child
module, keeping the rendered link text unchanged.

`cargo doc --document-private-items` is now warning-free across the
workspace.

* Update crates/stackable-operator/src/v2/config_file_writer.rs

Co-authored-by: maltesander <malte.sander.it@gmail.com>

* Apply suggestions from code review

Co-authored-by: maltesander <malte.sander.it@gmail.com>

* remove error suffix and clippy

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: maltesander <malte.sander.it@gmail.com>
* fix: remove option part for properties writer (now takes <String,String> instead of <String,<Option<String>>

* fix: precommit
)

* Relax the length constraints of cluster, role and role group name

* Adapt compile-time assertions

* Check that ensure_max_length is only called with ASCII resource names
refactor: make replicas optional for HPA support
@siegfriedweber siegfriedweber self-assigned this Jun 18, 2026
@siegfriedweber siegfriedweber moved this to Development: Waiting for Review in Stackable Engineering Jun 18, 2026
Comment thread crates/stackable-operator/src/v2/role_utils.rs Outdated
Comment thread crates/stackable-operator/src/v2/mod.rs Outdated
Comment thread crates/stackable-operator/src/v2/builder/pod/container.rs Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Development: Waiting for Review

Development

Successfully merging this pull request may close these issues.

5 participants