Skip to content

Support configuring JVM arguments #584

@sbernauer

Description

@sbernauer

Tasks

### Tasks
- [x] Come up with a CRD change => https://github.com/stackabletech/decisions/issues/37
- [ ] https://github.com/stackabletech/documentation/pull/697
- [x] operator-rs change => https://github.com/stackabletech/operator-rs/pull/931
- [ ] https://github.com/stackabletech/nifi-operator/pull/724
- [ ] https://github.com/stackabletech/trino-operator/pull/677
- [ ] https://github.com/stackabletech/hdfs-operator/pull/636
- [ ] https://github.com/stackabletech/druid-operator/pull/693
- [ ] https://github.com/stackabletech/hbase-operator/pull/620
- [ ] https://github.com/stackabletech/hive-operator/pull/572
- [ ] https://github.com/stackabletech/kafka-operator/pull/819
- [ ] https://github.com/stackabletech/spark-k8s-operator/pull/532
- [ ] https://github.com/stackabletech/zookeeper-operator/pull/919

Description

(copied from decision)

Often times customers need to set some JVM arguments, e.g. for networking stuff (such as HTTP proxies).
Currently this can not be configured via the CRs.
Additionally, if you try to get it working using podOVerrides you have a very, very hard time, and if you manage to succeed, you have a solution that needs to be updated and maintained for every new SDP version.

Value

Users can set JVM arguments to fix their problems -> Happy customers

Dependencies

None

Acceptance Criteria

(copied from decision)

Users needs to be able to

  • (must): Add a JVM argument that was not added by the operator
  • (must): Override a JVM argument that was added by the operator
  • (must): Remove a JVM argument that was added by the operator
  • (must): Add/Override/Remove for JVM flags as well
  • (should): With all of the listed requirements users should be able to configure the JVM memory size using jvmArgumentOverrides. This is a first step towards Allow users to configure the JVM heap directly #480 and would unblock users that need this feature.
  • (should): As much logic as possible should be in operator-rs
  • (must): While adding this to operator-rs, it should be guaranteed that this new field is only added for JVM-based products, and should not be added "blindly" to all products => Rust generics

(Information Security) Risk Assessment

None

Accessibility Assessment

None

Quality

We have nice unit tests for this

Release Notes

Allow configuring JVM arguments, such as HTTP proxies or other networking settings

Metadata

Metadata

Assignees

Labels

release-noteDenotes a PR that will be considered when it comes time to generate release notes.release/25.3.0

Type

No type

Projects

Status

Done

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions