Skip to content

Commit 424a3a4

Browse files
committed
fix: cleanup, move constants, fix comments
1 parent 634449b commit 424a3a4

11 files changed

Lines changed: 80 additions & 190 deletions

File tree

rust/operator-binary/src/controller/build/properties/hbase_site.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@
44
55
use std::collections::BTreeMap;
66

7-
use stackable_operator::v2::{
8-
config_file_writer::to_hadoop_xml, config_overrides::KeyValueConfigOverrides,
9-
};
7+
use stackable_operator::v2::config_overrides::KeyValueConfigOverrides;
108

119
use crate::{
12-
controller::build::properties::resolved_overrides,
10+
controller::build::properties::build_xml_config,
1311
crd::{
1412
AnyServiceConfig, HBASE_CLUSTER_DISTRIBUTED, HBASE_MASTER_PORT, HBASE_MASTER_UI_PORT,
1513
HBASE_REGIONSERVER_PORT, HBASE_REGIONSERVER_UI_PORT, HBASE_ROOTDIR, HbaseRole,
@@ -110,9 +108,7 @@ pub fn build(
110108
};
111109

112110
// configOverride come last
113-
config.extend(resolved_overrides(overrides));
114-
115-
to_hadoop_xml(config.iter())
111+
build_xml_config(config, overrides)
116112
}
117113

118114
#[cfg(test)]

rust/operator-binary/src/controller/build/properties/mod.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
66
use std::collections::BTreeMap;
77

8-
use stackable_operator::v2::config_overrides::KeyValueConfigOverrides;
8+
use stackable_operator::v2::{
9+
config_file_writer::to_hadoop_xml, config_overrides::KeyValueConfigOverrides,
10+
};
911

1012
pub mod hbase_env;
1113
pub mod hbase_site;
@@ -31,6 +33,16 @@ fn resolved_overrides(
3133
defined_entries(overrides.overrides)
3234
}
3335

36+
/// Render an XML config file from base `settings` merged with user `overrides`
37+
/// (overrides applied last, so users win), serialized to the Hadoop-XML on-wire format.
38+
fn build_xml_config(
39+
mut config: BTreeMap<String, String>,
40+
overrides: KeyValueConfigOverrides,
41+
) -> String {
42+
config.extend(resolved_overrides(overrides));
43+
to_hadoop_xml(config.iter())
44+
}
45+
3446
/// The names of the HBase config files assembled into the rolegroup `ConfigMap`.
3547
#[derive(Clone, Copy, Debug, strum::Display)]
3648
pub enum ConfigFileName {

rust/operator-binary/src/controller/build/properties/ssl_client.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
11
//! Builds the `ssl-client.xml` config file: kerberos/TLS client settings + overrides.
22
use std::collections::BTreeMap;
33

4-
use stackable_operator::v2::{
5-
config_file_writer::to_hadoop_xml, config_overrides::KeyValueConfigOverrides,
6-
};
4+
use stackable_operator::v2::config_overrides::KeyValueConfigOverrides;
75

8-
use crate::controller::build::properties::resolved_overrides;
6+
use crate::controller::build::properties::build_xml_config;
97

108
/// Renders `ssl-client.xml`.
119
pub fn build(settings: BTreeMap<String, String>, overrides: KeyValueConfigOverrides) -> String {
12-
let mut config: BTreeMap<String, String> = BTreeMap::new();
13-
config.extend(settings);
14-
config.extend(resolved_overrides(overrides));
15-
to_hadoop_xml(config.iter())
10+
build_xml_config(settings, overrides)
1611
}
1712

1813
#[cfg(test)]

rust/operator-binary/src/controller/build/properties/ssl_server.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
11
//! Builds the `ssl-server.xml` config file: kerberos/TLS server settings + overrides.
22
use std::collections::BTreeMap;
33

4-
use stackable_operator::v2::{
5-
config_file_writer::to_hadoop_xml, config_overrides::KeyValueConfigOverrides,
6-
};
4+
use stackable_operator::v2::config_overrides::KeyValueConfigOverrides;
75

8-
use crate::controller::build::properties::resolved_overrides;
6+
use crate::controller::build::properties::build_xml_config;
97

108
/// Renders `ssl-server.xml`.
119
pub fn build(settings: BTreeMap<String, String>, overrides: KeyValueConfigOverrides) -> String {
12-
let mut config: BTreeMap<String, String> = BTreeMap::new();
13-
config.extend(settings);
14-
config.extend(resolved_overrides(overrides));
15-
to_hadoop_xml(config.iter())
10+
build_xml_config(settings, overrides)
1611
}
1712

1813
#[cfg(test)]

rust/operator-binary/src/controller/validate.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,7 @@ pub fn validate_cluster(
7272
for hbase_role in HbaseRole::iter() {
7373
let role_group_names = role_group_names(hbase, &hbase_role);
7474

75-
// masters and region servers are required (preserves the old build_role_properties check);
76-
// rest servers are optional.
75+
// masters and region servers are required; rest servers are optional.
7776
if role_group_names.is_empty() {
7877
match hbase_role {
7978
HbaseRole::Master | HbaseRole::RegionServer => {

rust/operator-binary/src/crd/mod.rs

Lines changed: 1 addition & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ pub mod security;
4747

4848
pub const APP_NAME: &str = "hbase";
4949
pub const FIELD_MANAGER: &str = "hbase-operator";
50+
pub const OPERATOR_NAME: &str = "hbase.stackable.com";
5051

5152
// This constant is hard coded in hbase-entrypoint.sh
5253
// You need to change it there too.
@@ -107,12 +108,6 @@ pub type RestServerRoleType =
107108

108109
#[derive(Snafu, Debug)]
109110
pub enum Error {
110-
#[snafu(display("the role [{role}] is invalid and does not exist in HBase"))]
111-
InvalidRole {
112-
source: strum::ParseError,
113-
role: String,
114-
},
115-
116111
#[snafu(display("the HBase role [{role}] is missing from spec"))]
117112
MissingHbaseRole { role: String },
118113

@@ -128,11 +123,6 @@ pub enum Error {
128123
#[snafu(display("role-group not found by name"))]
129124
RoleGroupNotFound,
130125

131-
#[snafu(display("failed to build listener volume source"))]
132-
ListenerVolumeSource {
133-
source: ListenerOperatorVolumeSourceBuilderError,
134-
},
135-
136126
#[snafu(display("failed to build listener volume"))]
137127
BuildListenerVolume {
138128
source: ListenerOperatorVolumeSourceBuilderError,
@@ -441,11 +431,6 @@ impl v1alpha1::HbaseCluster {
441431
}
442432
}
443433

444-
/// The name of the role-level load-balanced Kubernetes `Service`
445-
pub fn server_role_service_name(&self) -> Option<String> {
446-
self.metadata.name.clone()
447-
}
448-
449434
/// Metadata about a server rolegroup
450435
pub fn server_rolegroup_ref(
451436
&self,
@@ -544,70 +529,6 @@ impl HbaseRole {
544529
const DEFAULT_REST_SERVER_GRACEFUL_SHUTDOWN_TIMEOUT: Duration =
545530
Duration::from_minutes_unchecked(5);
546531

547-
pub fn default_config(
548-
&self,
549-
cluster_name: &str,
550-
hdfs_discovery_cm_name: &str,
551-
) -> HbaseConfigFragment {
552-
let resources = match &self {
553-
HbaseRole::Master => ResourcesFragment {
554-
cpu: CpuLimitsFragment {
555-
min: Some(Quantity("250m".to_owned())),
556-
max: Some(Quantity("1".to_owned())),
557-
},
558-
memory: MemoryLimitsFragment {
559-
limit: Some(Quantity("1Gi".to_owned())),
560-
runtime_limits: NoRuntimeLimitsFragment {},
561-
},
562-
storage: HbaseStorageConfigFragment {},
563-
},
564-
HbaseRole::RegionServer => ResourcesFragment {
565-
cpu: CpuLimitsFragment {
566-
min: Some(Quantity("250m".to_owned())),
567-
max: Some(Quantity("1".to_owned())),
568-
},
569-
memory: MemoryLimitsFragment {
570-
limit: Some(Quantity("1Gi".to_owned())),
571-
runtime_limits: NoRuntimeLimitsFragment {},
572-
},
573-
storage: HbaseStorageConfigFragment {},
574-
},
575-
HbaseRole::RestServer => ResourcesFragment {
576-
cpu: CpuLimitsFragment {
577-
min: Some(Quantity("100m".to_owned())),
578-
max: Some(Quantity("400m".to_owned())),
579-
},
580-
memory: MemoryLimitsFragment {
581-
limit: Some(Quantity("512Mi".to_owned())),
582-
runtime_limits: NoRuntimeLimitsFragment {},
583-
},
584-
storage: HbaseStorageConfigFragment {},
585-
},
586-
};
587-
588-
let graceful_shutdown_timeout = match &self {
589-
HbaseRole::Master => Self::DEFAULT_MASTER_GRACEFUL_SHUTDOWN_TIMEOUT,
590-
HbaseRole::RegionServer => Self::DEFAULT_REGION_SERVER_GRACEFUL_SHUTDOWN_TIMEOUT,
591-
HbaseRole::RestServer => Self::DEFAULT_REST_SERVER_GRACEFUL_SHUTDOWN_TIMEOUT,
592-
};
593-
594-
let requested_secret_lifetime = match &self {
595-
HbaseRole::Master => Self::DEFAULT_MASTER_SECRET_LIFETIME,
596-
HbaseRole::RegionServer => Self::DEFAULT_REGION_SECRET_LIFETIME,
597-
HbaseRole::RestServer => Self::DEFAULT_REST_SECRET_LIFETIME,
598-
};
599-
600-
HbaseConfigFragment {
601-
hbase_rootdir: Some(default_hbase_rootdir()),
602-
resources,
603-
logging: product_logging::spec::default_logging(),
604-
affinity: get_affinity(cluster_name, self, hdfs_discovery_cm_name),
605-
graceful_shutdown_timeout: Some(graceful_shutdown_timeout),
606-
requested_secret_lifetime: Some(requested_secret_lifetime),
607-
listener_class: Some(DEFAULT_LISTENER_CLASS.to_string()),
608-
}
609-
}
610-
611532
/// Returns the name of the role as it is needed by the `bin/hbase {cli_role_name} start` command.
612533
pub fn cli_role_name(&self) -> String {
613534
match self {

rust/operator-binary/src/hbase_controller.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,13 @@ use stackable_operator::{
6363
use strum::{EnumDiscriminants, IntoStaticStr};
6464

6565
use crate::{
66-
OPERATOR_NAME,
6766
controller::build::{
6867
discovery::build_discovery_config_map,
6968
properties::logging::{MAX_HBASE_LOG_FILES_SIZE, STACKABLE_LOG_DIR},
7069
},
7170
crd::{
7271
APP_NAME, AnyServiceConfig, CONFIG_DIR_NAME, Container, HbaseClusterStatus, HbaseRole,
73-
LISTENER_VOLUME_DIR, LISTENER_VOLUME_NAME, merged_env, v1alpha1,
72+
LISTENER_VOLUME_DIR, LISTENER_VOLUME_NAME, OPERATOR_NAME, merged_env, v1alpha1,
7473
},
7574
kerberos::{self, add_kerberos_pod_config},
7675
operations::{graceful_shutdown::add_graceful_shutdown_config, pdb::add_pdbs},
@@ -585,7 +584,7 @@ fn build_rolegroup_service(
585584
}
586585

587586
/// The rolegroup metrics [`Service`] is a service that exposes metrics and a prometheus scraping label.
588-
pub fn build_rolegroup_metrics_service(
587+
fn build_rolegroup_metrics_service(
589588
hbase: &v1alpha1::HbaseCluster,
590589
hbase_role: &HbaseRole,
591590
rolegroup: &RoleGroupRef<v1alpha1::HbaseCluster>,

0 commit comments

Comments
 (0)