Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.

## [Unreleased]

### Added

- BREAKING: Add required CLI argument and env var to set the image repository used to construct final product image names: `IMAGE_REPOSITORY` (`--image-repository`), eg. `oci.example.org/my/namespace` ([#778]).

### Changed

- Document Helm deployed RBAC permissions and remove unnecessary permissions ([#770]).
Expand All @@ -15,6 +19,7 @@ All notable changes to this project will be documented in this file.

[#770]: https://github.com/stackabletech/hdfs-operator/pull/770
[#777]: https://github.com/stackabletech/hdfs-operator/pull/777
[#778]: https://github.com/stackabletech/hdfs-operator/pull/778

## [26.3.0] - 2026-03-16

Expand Down
25 changes: 13 additions & 12 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 18 additions & 12 deletions Cargo.nix

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ repository = "https://github.com/stackabletech/hdfs-operator"

[workspace.dependencies]
product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.8.0" }
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.110.1", features = ["crds", "webhook"] }
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.111.1", features = ["crds", "webhook"] }

anyhow = "1.0"
built = { version = "0.8", features = ["chrono", "git2"] }
Expand Down
18 changes: 9 additions & 9 deletions crate-hashes.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 12 additions & 5 deletions extra/crds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1332,8 +1332,9 @@ spec:
properties:
custom:
description: |-
Overwrite the docker image.
Specify the full docker image name, e.g. `oci.stackable.tech/sdp/superset:1.4.1-stackable2.1.0`
Provide a custom container image.

Specify the full container image name, e.g. `oci.example.tech/namespace/superset:1.4.1-my-tag`
type: string
productVersion:
description: Version of the product, e.g. `1.4.1`.
Expand All @@ -1360,14 +1361,20 @@ spec:
nullable: true
type: array
repo:
description: Name of the docker repo, e.g. `oci.stackable.tech/sdp`
description: |-
The repository on the container image registry where the container image is located, e.g.
`oci.example.com/namespace`.

If not specified, the operator will use the image registry provided via the operator
environment options.
nullable: true
type: string
stackableVersion:
description: |-
Stackable version of the product, e.g. `23.4`, `23.4.1` or `0.0.0-dev`.
If not specified, the operator will use its own version, e.g. `23.4.1`.
When using a nightly operator or a pr version, it will use the nightly `0.0.0-dev` image.

If not specified, the operator will use its own version, e.g. `23.4.1`. When using a nightly
operator or a PR version, it will use the nightly `0.0.0-dev` image.
nullable: true
type: string
type: object
Expand Down
75 changes: 73 additions & 2 deletions rust/operator-binary/src/crd/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1698,8 +1698,11 @@ pub struct HdfsClusterStatus {

#[cfg(test)]
mod test {
use stackable_operator::k8s_openapi::{
api::core::v1::ResourceRequirements, apimachinery::pkg::api::resource::Quantity,
use stackable_operator::{
k8s_openapi::{
api::core::v1::ResourceRequirements, apimachinery::pkg::api::resource::Quantity,
},
versioned::test_utils::RoundtripTestData,
};

use super::*;
Expand Down Expand Up @@ -2050,4 +2053,72 @@ spec:
rack_awareness
);
}

impl RoundtripTestData for v1alpha1::HdfsClusterSpec {
fn roundtrip_test_data() -> Vec<Self> {
stackable_operator::utils::yaml_from_str_singleton_map(indoc::indoc! {r#"
- image:
productVersion: 3.4.2
pullPolicy: IfNotPresent
clusterOperation:
reconciliationPaused: false
stopped: true
clusterConfig:
zookeeperConfigMapName: hdfs-zk
dfsReplication: 1
vectorAggregatorConfigMapName: vector-aggregator-discovery
authentication:
tlsSecretClass: tls
kerberos:
secretClass: kerberos
authorization:
opa:
configMapName: opa
package: hdfs
rackAwareness:
- nodeLabel: kubernetes.io/zone
- podLabel: app.kubernetes.io/role-group
nameNodes:
envOverrides:
COMMON_VAR: role-value
ROLE_VAR: role-value
config:
listenerClass: cluster-internal
resources:
cpu:
min: 250m
max: "1"
memory:
limit: 1Gi
logging:
enableVectorAgent: true
containers:
hdfs:
console:
level: INFO
roleGroups:
default:
replicas: 2
envOverrides:
COMMON_VAR: group-value
GROUP_VAR: group-value
dataNodes:
config:
listenerClass: cluster-internal
logging:
enableVectorAgent: true
roleGroups:
default:
replicas: 1
journalNodes:
config:
logging:
enableVectorAgent: true
roleGroups:
default:
replicas: 1
"#})
.expect("Failed to parse HdfsClusterSpec YAML")
}
}
}
Loading
Loading