Repository navigation
Conversation
…t server fields on ValidatedCluster
…dation, name the DNS cache properties
maltesander
left a comment
There was a problem hiding this comment.
In validate.rs we now replicate checking the config overrides for every role, same with building the config.
I did not check further, but can this be simplified? E.g. checking the overrides should be possible generically over all roles?
Co-authored-by: maltesander <malte.sander.it@gmail.com>
Co-authored-by: maltesander <malte.sander.it@gmail.com>
Co-authored-by: maltesander <malte.sander.it@gmail.com>
…functions now return inputs with an unambiguous error path
I've had a go at making things more generic and thus more compact (see e42f5a6), but I don't really find it any more readable as we are passing in two functions to get around the fact the generic function cannot know either the config type or the wrapper, so I can revert if we don't want this. The alternative would be a trait on the three wrappers to avoid the closures. What do you think? |
Yeah not as good as expected, we can leave it. |
Description
Part of https://github.com/stackabletech/internal-issues/issues/167
%%{init: {"flowchart": {"wrappingWidth": 900, "htmlLabels": true}}}%% flowchart TB START["`**build()** mod.rs:104`"] START --> LM START --> LR START --> LS subgraph master_track["Master"] direction TB LM["`**loop** over master_role_group_configs · mod.rs:111 **build_pdb()** :120`"] RM["`**master::build()** role_group/master.rs:30 **build_listener_volume()** :51 · ListenerPlacement::PodVolume **RoleGroupInputs { .. }** :55 · master_entries() :80 · HBASE_MASTER_OPTS :79 · TTL 5 :27 · no region mover :68`"] LM --> RM end subgraph region_server_track["RegionServer"] direction TB LR["`**loop** over region_server_role_group_configs · mod.rs:124 **build_pdb()** :133`"] RR["`**region_server::build()** role_group/region_server.rs:27 **build_listener_volume()** :48 · ListenerPlacement::PodVolume **RoleGroupInputs { .. }** :52 · region_server_entries() :77 · HBASE_REGIONSERVER_OPTS :76 · TTL 10 :24 **region_mover_args()** :65 · run_before_shutdown :66`"] LR --> RR end subgraph rest_server_track["RestServer"] direction TB LS["`**loop** over rest_server_role_group_configs · mod.rs:141 **build_pdb()** :151 · only if the role is present`"] RS["`**rest_server::build()** role_group/rest_server.rs:27 **build_listener_pvc()** :46 · ListenerPlacement::ClaimTemplate, unversioned labels **RoleGroupInputs { .. }** :51 · rest_server_entries() :76 · HBASE_REST_OPTS :75 · TTL 30 :24 · no region mover :64`"] LS --> RS end RM --> NEW RR --> NEW RS --> NEW NEW["`**RoleGroupBuilder::new(inputs)** role_group/mod.rs:142 · resolve, same for every role **config_map_data()** resource/config_map.rs:71 · hbase-site.xml :75 (role entries, client_bootstrap_servers :83) · hbase-env.sh :87 (OPTS variable, validated overrides) · security.properties :105 (TTL) · ssl-*.xml · log4j2 · vector.yaml **containers_and_volumes()** container.rs:93 · hbase container with probes and env · pod_volumes :200 (hbase-config, hdfs-discovery, log, log-config) · Kerberos + TLS :237 · listener volume or claim template :247 · Vector sidecar :259`"] NEW --> ADD["`**RoleGroupResources::add()** mod.rs:91 · emit **build_services()** role_group/mod.rs:167 · headless + metrics Service **build_config_map()** resource/config_map.rs:38 · wraps builder.config_map_data **build_statefulset()** resource/statefulset.rs:38 · add_volumes :60 · grace period :78 · containers :82 · pod overrides :88 · volume_claim_templates :109`"] ADD --> OUT["`**KubernetesResources { .. }** mod.rs:166 PDBs from the role level above · **build_discovery_config_map()** :164 · **build_service_account()** · **build_role_binding()**`"] OUT --> APPLY["`**apply()** apply.rs:69 · outside build/`"] classDef master fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a classDef region_server fill:#fde68a,stroke:#b45309,color:#78350f classDef rest_server fill:#bbf7d0,stroke:#15803d,color:#14532d classDef shared fill:#e5e7eb,stroke:#4b5563,color:#111827 classDef edge fill:#ffffff,stroke:#6b7280,color:#111827,stroke-dasharray:4 2 class LM,RM master class LR,RR region_server class LS,RS rest_server class NEW,ADD,OUT shared class START,APPLY edge style master_track fill:#eff6ff,stroke:#93c5fd style region_server_track fill:#fffbeb,stroke:#fcd34d style rest_server_track fill:#f0fdf4,stroke:#86efacDefinition of Done Checklist
Author
Reviewer
Acceptance
type/deprecationlabel & add to the deprecation scheduletype/experimentallabel & add to the experimental features tracker