Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,15 @@

## [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` ([#752]).

[#752]: https://github.com/stackabletech/hbase-operator/pull/752
Comment thread
Techassi marked this conversation as resolved.
Outdated

### Changed

- Document Helm deployed RBAC permissions and remove unnecessary permissions ([#745]).
- Document Helm deployed RBAC permissions and remove unnecessary permissions ([#745]).
- BREAKING: `configOverrides` now only accepts the known config files (`hbase-site.xml`,
`hbase-env.sh`, `ssl-server.xml`, `ssl-client.xml` and `security.properties`).
Previously, arbitrary file names were silently accepted and ignored ([#751]).
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/hbase-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 @@ -145,8 +145,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 @@ -173,14 +174,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
13 changes: 11 additions & 2 deletions rust/operator-binary/src/crd/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1371,8 +1371,11 @@ mod tests {
use indoc::indoc;
use product_config::{ProductConfigManager, types::PropertyNameKind};
use rstest::rstest;
use stackable_operator::product_config_utils::{
transform_all_roles_to_config, validate_all_roles_and_groups_config,
use stackable_operator::{
product_config_utils::{
transform_all_roles_to_config, validate_all_roles_and_groups_config,
},
versioned::test_utils::RoundtripTestData,
};

use super::*;
Expand Down Expand Up @@ -1543,4 +1546,10 @@ spec:
panic!("this shouldn't happen");
};
}

impl RoundtripTestData for v1alpha1::HbaseClusterSpec {
fn roundtrip_test_data() -> Vec<Self> {
vec![]
}
}
}
10 changes: 8 additions & 2 deletions rust/operator-binary/src/hbase_controller.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ use stackable_operator::{
security::PodSecurityContextBuilder,
},
},
cli::OperatorEnvironmentOptions,
cluster_resources::{ClusterResourceApplyStrategy, ClusterResources},
commons::{
product_image_selection::{self, ResolvedProductImage},
Expand Down Expand Up @@ -106,11 +107,12 @@ const HDFS_DISCOVERY_TMP_DIR: &str = "/stackable/tmp/hdfs";
const HBASE_CONFIG_TMP_DIR: &str = "/stackable/tmp/hbase";
const HBASE_LOG_CONFIG_TMP_DIR: &str = "/stackable/tmp/log_config";

const DOCKER_IMAGE_BASE_NAME: &str = "hbase";
const CONTAINER_IMAGE_BASE_NAME: &str = "hbase";

pub struct Ctx {
pub client: stackable_operator::client::Client,
pub product_config: ProductConfigManager,
pub operator_environment: OperatorEnvironmentOptions,
}

#[derive(Snafu, Debug, EnumDiscriminants)]
Expand Down Expand Up @@ -326,7 +328,11 @@ pub async fn reconcile_hbase(
let resolved_product_image = hbase
.spec
.image
.resolve(DOCKER_IMAGE_BASE_NAME, crate::built_info::PKG_VERSION)
.resolve(
CONTAINER_IMAGE_BASE_NAME,
&ctx.operator_environment.image_repository,
crate::built_info::PKG_VERSION,
)
.context(ResolveProductImageSnafu)?;
let zookeeper_connection_information = ZookeeperConnectionInformation::retrieve(hbase, client)
.await
Expand Down
1 change: 1 addition & 0 deletions rust/operator-binary/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ async fn main() -> anyhow::Result<()> {
hbase_controller::error_policy,
Arc::new(hbase_controller::Ctx {
client: client.clone(),
operator_environment,
product_config,
}),
)
Expand Down
Loading