hashgraph / hashgraph/solo-weaver

kube cluster install: multi-type --node-type hardware-floor sizing

Open
#1,117 0 comments 0 reactions 0 assignees View on GitHub
New Feature
Dominant language
Go
Stars
3
Forks
0
Avg merge
3d 5h
Merged PRs (30d)
47

Description

## Summary

`kube cluster install` accepts `--node-type` as a comma-separated list of the components that will run on the cluster (drives CRD/operator install). `--profile` sizes the preflight hardware floor but currently requires a **single** `--node-type` — multi-type sizing (e.g. `--node-type consensus,block --profile local`) is rejected with a clear error.

Implement multi-type hardware-floor sizing so a host intended to run multiple components can be validated in one cluster install.

## Design questions

- **Composition:** how to combine per-type floors — **sum** (correct when both workloads share the host, e.g. single-node/dev), **max** (loose upper bound), or validate each independently. `hardware.DeploymentSpec` currently carries a single `NodeType`, so this needs a multi-type spec or an aggregation step.
- **Topology awareness:** on a multi-node cluster, components land on different nodes (affinity), so summing onto the install host is only right for co-located/single-node. Consider whether sizing should stay single-host (the machine running install) or model per-role nodes.

## Current behavior (already implemented)

- `--node-type consensus,block` → installs the solo-operator (any operator-based component ⇒ the single cluster-scoped operator, which bundles all CRDs). Block node is helm-only today; it becomes operator-based later, at which point it joins `operatorBasedNodeTypes` in `cmd/cli/commands/kube/cluster/install.go`.
- `--node-type` may stand alone (dependencies only, substrate floor).
- `--profile` requires `--node-type`, single type only (this ticket lifts the single-type restriction).

## Context

From the consensus-install branch (feat/01044-consensus-node-install). Related: the `--resource-size` presets ticket #1116 (consensus-node container sizing) and the diagnostics epic #1110.

Contributor guide

Open the contributing guide

Research direction

Start in cmd/cli/commands/kube/cluster/install.go, then inspect hardware.DeploymentSpec and the existing --node-type and --profile validation. Decide how multi-type floors should compose and how topology affects sizing before implementing the behavior. Done means a multi-type node selection with a profile is accepted and validates the intended hardware floor without breaking single-type cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
cli, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.