Skip to content

datastore featureform update with versions - #1147

Draft
SamiulSourav wants to merge 17 commits into
masterfrom
sam-db
Draft

datastore featureform update with versions#1147
SamiulSourav wants to merge 17 commits into
masterfrom
sam-db

Conversation

@SamiulSourav

Copy link
Copy Markdown
Contributor

No description provided.

@SamiulSourav
SamiulSourav marked this pull request as ready for review August 25, 2026 06:17
@SamiulSourav SamiulSourav changed the title wip datastore featureform update with versions datastore featureform update with versions Aug 25, 2026
@SamiulSourav
SamiulSourav force-pushed the sam-db branch 2 times, most recently from dafb844 to 67e3179 Compare August 27, 2026 11:32
1gtm and others added 15 commits August 28, 2026 09:28
ProductLine: ACE

Release: v2026.9.11

Release-tracker: appscode-cloud/CHANGELOG#78

Signed-off-by: 1gtm <1gtm@appscode.com>
…Telemetry Stack sidebar (#1126)

* Redesign kubedb-ui-presets options with a sidebar layout

The preset editor was one long page of nested accordions, so reaching a
single setting meant scrolling past every other group. Move the four
option groups into the sidebar-layout the TelemetryStack editor already
uses: the group headings become sidebar sections, each block becomes its
own page, and the databases sit nested under "Configure Databases".

Every form, field, schema path and function is carried over untouched.
The only per-block change is dropping hideBlock, which used to collapse
the accordion by default and makes no sense now that a block owns the
whole page. The catalog loader stays on a wrapper around the database
pages so FetchAllDbVersions still runs once.

isActivePage() reads the page the sidebar wrote to the discriminator,
same as the TelemetryStack wizard.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* Polish the kubedb-ui-presets sidebar

Every page holds one card whose header just repeats the row you clicked,
and it was collapsible, so a single click emptied the page. fixedBlock
keeps the card as the page heading and drops the toggle.

Dropped the rail's own "KubeDB Presets / Configuration" title. The
breadcrumb and the H1 above it already say that, and the ~56px it took
pushed the first nav row well below the first card.

Icons on all 51 rows, keyed by hugeicons name. The databases are grouped
by what the engine actually is - analytics, search, cache, broker,
vector, proxy - rather than 30 copies of one glyph, so the list stays
scannable when it is expanded. Section headings get none on purpose: an
icon there shifts the heading text 22px right and eats the indent that
separates it from its own rows, which is why TelemetryStack has none
either.

No schema paths, fields, loaders, watchers or functions were touched.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* Keep the preset sidebar labels on one line

Both of these ran past the rail and wrapped. "specifics" reads as filler
on a section header that already sits under a Monitoring & Backups
group, and MachineProfiles is the part of the row that matters.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* hideOptions true for some sidebar

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* Add Basic Info page with release name and namespace

The TelemetryStack sidebar had no inputs for the release name or namespace,
so every stack was created as telemetry-stack/monitoring. The master create
form exposes both, and metadata.release.name/namespace already exist in the
options schema, so only the UI was missing.

Add a Basic Info page holding both inputs and land on it by default.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* Add query frontend replicas to the TelemetryStack options schema

create-ui.yaml already rendered a Frontend Replicas input bound to
spec.metrics.thanos.query.queryFrontend.replicas, but that path existed in
neither the schema nor values.yaml, so the input had no type and no seed.
The cluster-ui master form sends queryFrontend.replicas on every create.

Mirror the CRD's int32 type and seed the same default of 1. Left out of the
required list to match master, where the input carries no required rule.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* Seed the TelemetryStack wizard with cluster-ui master's defaults

An untouched sidebar form submitted different values than the cluster-ui
master create form, because the two seed their fields from different places:
master from its initialValues literal, the sidebar from this values.yaml.

Blank the retention rows, drop the ingester TSDB retention to 3h and pre-fill
the receive router's external labels, so a form nobody edits produces the same
payload master does.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* Match the cluster-ui form's fields and validation

The wizard accepted input the cluster-ui create form rejects: malformed
durations and storage quantities, replication factors outside 1/3/5, half-filled
certificate refs and volume rows, and a blank release name. It also had one
Storage Class dropdown where the form has three, so a topology component could
not be placed on its own class.

Port every validator from that form, wiring the per-row rules to the array
elements since a field validator never sees its own row index, and give the
cluster and keeper their own Storage Class.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* Render the ClickHouse deployment mode as a radio group

cluster-ui master presents the logs ClickHouse deployment mode as two
described radio cards on their own row, above Version. The options chart
had it as a bare select squeezed into the Version / Deletion Policy row,
so the two modes carried no explanation and read as a minor setting
rather than the topology choice it is.

Give it its own full-width radio element with master's wording for both
options. The schema path and the enum values are unchanged, so
isClusterTopology|logs and the generated payload behave exactly as before.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* Make Telemetry Stack Additional Volumes/Volume Mounts single-instance

Additional Volumes and Additional Volume Mounts were array-object-form
(repeatable, arbitrary rows), but master only ever configures one of
each. Rework as single, non-repeatable blocks bound to scratch
temp/additionalVolume(Mount) fields, synced into the real (still
array-shaped, per values.openapiv3_schema.yaml) additionalConfig
fields via a functions.js watcher - so the stored/submitted value
stays a 0-or-1-element array while the UI never offers an Add button.

Mount Name/Mount Path are derived (disabled) from the Volume's
Name/Path, matching master's read-only behavior. Layout matches
master: Volume Type row, then Name + ConfigMap/Secret Name row, then
Key + Path + Mode row.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* set real schema to additional config

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* fix validation issue

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* fix all issues

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* fixes rest of issues given by rafi vai

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* fix nodeselector value

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* remove function

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* Always configure ClickHouse for logs in Telemetry Stack

ClickHouse is the only backend available under LOGS, so the enable/disable
switch was redundant. Remove the switch block along with the pillarStatus
and isPillarEnabled helpers and the guards that depended on them, so the
ClickHouse form is always shown. spec.logs.enabled stays true from
values.yaml, keeping the rendered payload unchanged.

Replace the placeholder circle icons in the sidebar with existing icons
from the form-builder registry: chart-column for Thanos and database for
ClickHouse.

Add mb-16 to the Deployment Mode radio to separate it from the Version and
Deletion Policy row.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* fix(telemetrystack): drop the sidebar rail's side padding

The console page that hosts this wizard already pads its container
(pl-20 pr-20), so the rail's own 16px side padding stacked on top of it
and pushed the nav items off the page gutter. Zero the rail padding for
this wizard only; every other sidebar keeps the form-builder default.

Needs form-builder's customClass-on-rail change to take effect.

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* fix margin

Signed-off-by: Sourav Roy <souravroy@appscode.com>

* fix(telemetrystack): match master's storageclasses request

getStorageClasses sent a `filter` query param and was wired as a per-field
loader, so all three Storage Class selects fetched separately and switching
to Cluster Topology refetched the list twice.

cluster-ui master fetches storageclasses once on mount with no query params
and shares the result across its three dropdowns. Drop the filter param and
memoize the promise per owner/cluster so the wizard issues the identical
request, exactly once.

---------

Signed-off-by: Sourav Roy <souravroy@appscode.com>
* redesign ui interaction in reconfigure ops

Signed-off-by: shofiq <shofiq@appscode.com>

* update by latest form builder schema

Signed-off-by: shofiq <shofiq@appscode.com>

* fix eidtor pennel rendering in remove config

Signed-off-by: shofiq <shofiq@appscode.com>

* fix newly created secret's toast message

Signed-off-by: shofiq <shofiq@appscode.com>

* add directive info message at apply config editor bottom

Signed-off-by: shofiq <shofiq@appscode.com>

* fix singlestore reconfig issues in multi mode

Signed-off-by: shofiq <shofiq@appscode.com>

---------

Signed-off-by: shofiq <shofiq@appscode.com>
Signed-off-by: topoti <topoti@appscode.com>
Signed-off-by: samiul <samiul@appscode.com>
* scaling warning

Signed-off-by: samiul <samiul@appscode.com>

* cleanup

Signed-off-by: samiul <samiul@appscode.com>

* all dbs

Signed-off-by: samiul <samiul@appscode.com>

---------

Signed-off-by: samiul <samiul@appscode.com>
Thanos and ClickHouse are the only providers offered on their sections, so
the tag adds noise and crowds the row against the page error indicator.

Signed-off-by: Sourav Roy <souravroy@appscode.com>
Co-authored-by: Sourav Roy <bishworup11ai@gmail.com>
Signed-off-by: Samiul <samiul@appscode.com>
Signed-off-by: Samiul <samiul@appscode.com>
Signed-off-by: Samiul <samiul@appscode.com>
Signed-off-by: Samiul <samiul@appscode.com>
Signed-off-by: Samiul <samiul@appscode.com>
Signed-off-by: Samiul <samiul@appscode.com>
Signed-off-by: Samiul <samiul@appscode.com>
Signed-off-by: Samiul <samiul@appscode.com>
@SamiulSourav
SamiulSourav marked this pull request as draft September 7, 2026 04:40
@ArnobKumarSaha
ArnobKumarSaha force-pushed the master branch 2 times, most recently from c04edf8 to 1765e49 Compare September 7, 2026 04:51
# Conflicts:
#	charts/kubedbcom-milvus-editor/Chart.yaml
#	charts/monitoringk8sappscodecom-telemetrystack-editor-options/README.md
#	charts/monitoringk8sappscodecom-telemetrystack-editor-options/ui/create-ui.yaml
#	charts/opskubedbcom-cassandraopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-clickhouseopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-documentdbopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-druidopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-hanadbopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-hazelcastopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-igniteopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-milvusopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-neo4jopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-oracleopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-qdrantopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-weaviateopsrequest-editor/ui/create-ui.yaml
#	charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants