diff --git a/charts/corekubestashcom-backupconfiguration-editor-options/ui/create-ui.yaml b/charts/corekubestashcom-backupconfiguration-editor-options/ui/create-ui.yaml
index 91db2819d9..5e33e0a198 100644
--- a/charts/corekubestashcom-backupconfiguration-editor-options/ui/create-ui.yaml
+++ b/charts/corekubestashcom-backupconfiguration-editor-options/ui/create-ui.yaml
@@ -1,125 +1,125 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - loader: getNamespaces
- label: Namespace
+- elements:
+ - label: Namespace
+ loader: getNamespaces
schema: schema/properties/metadata/properties/release/properties/namespace
type: select
- label: Name
schema: schema/properties/metadata/properties/release/properties/name
type: input
- - loader: getData|storageRef
- label: Storage Ref
+ - label: Storage Ref
+ loader: getData|storageRef
schema: schema/properties/spec/properties/backend/properties/storageRef
type: select
- - loader: getData|retentionPolicy
- label: Retention Policy
+ - label: Retention Policy
+ loader: getData|retentionPolicy
schema: schema/properties/spec/properties/backend/properties/retentionPolicy
type: select
- elements:
- - type: object-item
- label: Labels
+ - label: Labels
schema: schema/properties/spec/properties/labels
- - type: object-item
- label: Annotations
+ type: object-item
+ - label: Annotations
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - label: Sessions
- elements:
- - type: input
- label: Session Name
- schema: sessionName
- - type: input
- label: Schedule
- schema: schedule
- - type: input
- label: Security Context (runAsUser)
- schema: addon/properties/jobTemplate/properties/securityContext
- - type: select
- label: Addon Name
- loader: getAddon
- schema: addon/properties/name
- - type: array-object-form
- label: Tasks
- validation:
- type: required
- elements:
- - type: select
- label: Task Name
- loader:
- name: getTaskNames
- watchPaths:
- - schema/properties/spec/properties/sessions/dynamicIndex/properties/addon/properties/name
- schema: name
- validation:
- type: required
- - type: editor
- label: Params
- schema: params
- schema: addon/properties/tasks
- - type: select
- customClass: mt-4
- label: Encryption Secret Namespace
- loader: getNamespaces
- schema: encryptionSecret/properties/namespace
- - type: select
- label: Encryption Secret Name
+ - elements:
+ - label: Session Name
+ schema: sessionName
+ type: input
+ - label: Schedule
+ schema: schedule
+ type: input
+ - label: Security Context (runAsUser)
+ schema: addon/properties/jobTemplate/properties/securityContext
+ type: input
+ - label: Addon Name
+ loader: getAddon
+ schema: addon/properties/name
+ type: select
+ - elements:
+ - label: Task Name
loader:
+ name: getTaskNames
watchPaths:
- - schema/properties/spec/properties/sessions/dynamicIndex/properties/encryptionSecret/properties/namespace
- name: getEncryptionSecretNames
- schema: encryptionSecret/properties/name
- - type: input
- label: Repo Name
- schema: repoName
+ - schema/properties/spec/properties/sessions/dynamicIndex/properties/addon/properties/name
+ schema: name
+ type: select
+ validation:
+ type: required
+ - label: Params
+ schema: params
+ type: editor
+ label: Tasks
+ schema: addon/properties/tasks
+ type: array-object-form
+ validation:
+ type: required
+ - customClass: mt-4
+ label: Encryption Secret Namespace
+ loader: getNamespaces
+ schema: encryptionSecret/properties/namespace
+ type: select
+ - label: Encryption Secret Name
+ loader:
+ name: getEncryptionSecretNames
+ watchPaths:
+ - schema/properties/spec/properties/sessions/dynamicIndex/properties/encryptionSecret/properties/namespace
+ schema: encryptionSecret/properties/name
+ type: select
+ - label: Repo Name
+ schema: repoName
+ type: input
+ label: Sessions
schema: schema/properties/spec/properties/sessions
type: array-object-form
- elements:
- - loader: getApiGroup
- label: Api Group
- validation:
- type: required
+ - label: Api Group
+ loader: getApiGroup
schema: schema/properties/spec/properties/target/properties/apiGroup
type: select
- - loader:
- name: getKinds
- watchPaths:
- - schema/properties/spec/properties/target/properties/apiGroup
- label: Kind
- watcher:
- func: setVersion
- paths:
- - schema/properties/spec/properties/target/properties/kind
validation:
type: required
+ - label: Kind
+ loader:
+ name: getKinds
+ watchPaths:
+ - schema/properties/spec/properties/target/properties/apiGroup
schema: schema/properties/spec/properties/target/properties/kind
type: select
- - loader: getNamespaces
- label: Namespace
validation:
type: required
+ watcher:
+ func: setVersion
+ paths:
+ - schema/properties/spec/properties/target/properties/kind
+ - label: Namespace
+ loader: getNamespaces
schema: schema/properties/spec/properties/target/properties/namespace
type: select
- - loader:
+ validation:
+ type: required
+ - label: Name
+ loader:
name: getTargetName
watchPaths:
- - schema/properties/spec/properties/target/properties/namespace
- - schema/properties/spec/properties/target/properties/kind
- label: Name
+ - schema/properties/spec/properties/target/properties/namespace
+ - schema/properties/spec/properties/target/properties/kind
refresh: true
- validation:
- type: required
schema: schema/properties/spec/properties/target/properties/name
type: select
+ validation:
+ type: required
if:
- type: function
name: showTarget
+ type: function
label: Target
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/corekubestashcom-backupsession-editor-options/ui/create-ui.yaml b/charts/corekubestashcom-backupsession-editor-options/ui/create-ui.yaml
index 4327a0986d..67457154c8 100644
--- a/charts/corekubestashcom-backupsession-editor-options/ui/create-ui.yaml
+++ b/charts/corekubestashcom-backupsession-editor-options/ui/create-ui.yaml
@@ -1,22 +1,21 @@
step:
-- type: single-step-form
- elements:
- - loader: fetchNamespaces
- hasGroup: isRancherManaged
+- elements:
+ - hasGroup: isRancherManaged
label: Namespace
+ loader: fetchNamespaces
schema: schema/properties/metadata/properties/release/properties/namespace
type: select
- - type: block-layout
+ - elements:
+ - label: Labels
+ schema: schema/properties/spec/properties/labels
+ type: object-item
+ - label: Annotations
+ schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/spec/properties/labels
- - type: object-item
- label: Annotations
- schema: schema/properties/spec/properties/annotations
+ type: block-layout
- label: Invoker Kind
options:
- text: Backup Configurations
@@ -25,29 +24,29 @@ step:
value: BackupBlueprint
schema: schema/properties/spec/properties/invoker/properties/kind
type: select
- - loader:
+ - label: Invoker Name
+ loader:
name: fetchInvokerName
watchPaths:
- - schema/properties/spec/properties/invoker/properties/kind
- - schema/properties/metadata/properties/release/properties/namespace
- label: Invoker Name
+ - schema/properties/spec/properties/invoker/properties/kind
+ - schema/properties/metadata/properties/release/properties/namespace
+ schema: schema/properties/spec/properties/invoker/properties/name
+ type: select
watcher:
func: initName
paths:
- - schema/properties/spec/properties/invoker/properties/name
- schema: schema/properties/spec/properties/invoker/properties/name
- type: select
- - loader:
+ - schema/properties/spec/properties/invoker/properties/name
+ - label: Session
+ loader:
name: fetchSessions
watchPaths:
- - schema/properties/spec/properties/invoker/properties/name
- label: Session
+ - schema/properties/spec/properties/invoker/properties/name
+ schema: schema/properties/spec/properties/session
+ type: select
watcher:
func: initName
paths:
- - schema/properties/spec/properties/session
- schema: schema/properties/spec/properties/session
- type: select
+ - schema/properties/spec/properties/session
- label: Timeout
options:
- text: 5 minutes
@@ -67,4 +66,5 @@ step:
schema: schema/properties/spec/properties/backupTimeout
type: select
id: options
+ type: single-step-form
type: multi-step-form
diff --git a/charts/corekubestashcom-backupsession-editor/ui/create-ui.yaml b/charts/corekubestashcom-backupsession-editor/ui/create-ui.yaml
index 59d5bdb05c..3e1f9b239c 100644
--- a/charts/corekubestashcom-backupsession-editor/ui/create-ui.yaml
+++ b/charts/corekubestashcom-backupsession-editor/ui/create-ui.yaml
@@ -1,40 +1,41 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: basic
- # label: Basic Information
- elements:
- - type: label-element
- label: ''
- subtitle: Select a backup configuration and choose which backup sessions to view or manage
- - type: select
- label: Backup Configuration
- subtitle: Select the backup configuration that contains the sessions you want to view
- schema: temp/properties/backup
- validation:
- type: required
- refresh: true
- loader: getOptions
- watcher:
- func: clearModel
- paths:
- - temp/properties/backup
- - type: select
- multiple: true
- label: Backup Sessions
- subtitle: Select one or more backup sessions to view their details and status
- schema: temp/properties/selectedSessions
- refresh: true
- validation:
- type: required
- if:
- type: function
- name: isBackupSelected
- loader:
- name: getSessionOptions
- watchPaths:
- - temp/properties/backup
- watcher:
- func: buildCommand
- paths:
- - temp/properties/selectedSessions
+- elements:
+ - label: ""
+ subtitle: Select a backup configuration and choose which backup sessions to view
+ or manage
+ type: label-element
+ - label: Backup Configuration
+ loader: getOptions
+ refresh: true
+ schema: temp/properties/backup
+ subtitle: Select the backup configuration that contains the sessions you want
+ to view
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: clearModel
+ paths:
+ - temp/properties/backup
+ - if:
+ name: isBackupSelected
+ type: function
+ label: Backup Sessions
+ loader:
+ name: getSessionOptions
+ watchPaths:
+ - temp/properties/backup
+ multiple: true
+ refresh: true
+ schema: temp/properties/selectedSessions
+ subtitle: Select one or more backup sessions to view their details and status
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: buildCommand
+ paths:
+ - temp/properties/selectedSessions
+ id: basic
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/corekubestashcom-restoresession-editor-options/ui/create-ui.yaml b/charts/corekubestashcom-restoresession-editor-options/ui/create-ui.yaml
index a2b08d5b31..819f3bf31e 100644
--- a/charts/corekubestashcom-restoresession-editor-options/ui/create-ui.yaml
+++ b/charts/corekubestashcom-restoresession-editor-options/ui/create-ui.yaml
@@ -1,137 +1,139 @@
-type: multi-step-form
step:
-- type: single-step-form
- id: options
- loader: init
- elements:
- - type: select
- label: Select Namespace
- schema: schema/properties/metadata/properties/release/properties/namespace
- hasGroup: isRancherManaged
- if:
- type: function
+- elements:
+ - hasGroup: isRancherManaged
+ if:
+ name: isConsole
+ type: function
+ label: Select Namespace
+ loader:
+ name: fetchNamespaces
+ watchPaths:
+ - temp/properties/nameSpaceApi
+ schema: schema/properties/metadata/properties/release/properties/namespace
+ type: select
+ - if:
+ name: isConsole
+ type: function
+ label: Name
+ schema: schema/properties/metadata/properties/release/properties/name
+ type: input
+ - elements:
+ - label: ""
+ subtitle: Configure the backup repository and snapshot to restore your data
+ from
+ type: label-element
+ - disableUnselect: true
+ label: Repository
+ loader: getRepositories
+ refresh: true
+ schema: temp/properties/repository
+ subtitle: Select the repository where your backup snapshots are stored
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onRepoChange
+ paths:
+ - temp/properties/repository
+ - disableUnselect: true
+ label: Snapshot
+ loader:
+ name: getSnapshots
+ watchPaths:
+ - temp/properties/repository
+ refresh: true
+ schema: schema/properties/spec/properties/dataSource/properties/snapshot
+ subtitle: Choose a point-in-time backup snapshot to restore from
+ type: select
+ watcher:
+ func: onSnapChange
+ paths:
+ - schema/properties/spec/properties/dataSource/properties/snapshot
+ - if:
name: isConsole
+ type: function
+ label: Addon Name
loader:
- name: fetchNamespaces
+ name: getAddons
watchPaths:
- - temp/properties/nameSpaceApi
- - type: input
- label: Name
- schema: schema/properties/metadata/properties/release/properties/name
- if:
+ - schema/properties/spec/properties/dataSource/properties/snapshot
+ refresh: true
+ schema: schema/properties/spec/properties/addon/properties/name
+ subtitle: Select the restore addon to use
+ type: select
+ watcher:
+ func: clearAddon
+ paths:
+ - schema/properties/spec/properties/dataSource/properties/snapshot
+ - label: Additional Parameters
+ schema: temp/properties/params
+ type: textarea
+ watcher:
+ func: onParameterChange
+ paths:
+ - temp/properties/params
+ fixedBlock: true
+ label: Restore Configuration
+ loader: initMetadata
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Target Resource Configuration
+ subtitle: Specify the Kubernetes resource where you want to restore the data
+ type: label-element
+ - if:
+ name: showGroupKind
type: function
- name: isConsole
- - type: block-layout
- showLabels: true
- fixedBlock: true
- label: Restore Configuration
- loader: initMetadata
- elements:
- - type: label-element
- label: ''
- subtitle: Configure the backup repository and snapshot to restore your data from
- - type: select
- label: Repository
- subtitle: Select the repository where your backup snapshots are stored
- disableUnselect: true
- schema: temp/properties/repository
- refresh: true
- validation:
- type: required
- loader: getRepositories
- watcher:
- func: onRepoChange
- paths:
- - temp/properties/repository
- - type: select
- disableUnselect: true
- label: Snapshot
- subtitle: Choose a point-in-time backup snapshot to restore from
- refresh: true
- schema: schema/properties/spec/properties/dataSource/properties/snapshot
- loader:
- name: getSnapshots
- watchPaths:
- - temp/properties/repository
- watcher:
- func: onSnapChange
- paths:
- - schema/properties/spec/properties/dataSource/properties/snapshot
- - type: select
- label: Addon Name
- subtitle: Select the restore addon to use
- refresh: true
- schema: schema/properties/spec/properties/addon/properties/name
- if:
- type: function
- name: isConsole
- loader:
- name: getAddons
- watchPaths:
- - schema/properties/spec/properties/dataSource/properties/snapshot
- watcher:
- func: clearAddon
- paths:
- - schema/properties/spec/properties/dataSource/properties/snapshot
- - type: textarea
- label: Additional Parameters
- schema: temp/properties/params
- watcher:
- func: onParameterChange
- paths:
- - temp/properties/params
- - type: block-layout
- showLabels: true
- label: Restore Target
- if:
+ label: Api Group
+ loader: getApiGroup
+ schema: schema/properties/spec/properties/target/properties/apiGroup
+ subtitle: Select the API group of the target resource (e.g., apps, kubedb.com)
+ type: select
+ - if:
+ name: showGroupKind
type: function
- name: isConsole
- elements:
- - type: label-element
- label: Target Resource Configuration
- subtitle: Specify the Kubernetes resource where you want to restore the data
- - type: select
- label: Api Group
- subtitle: Select the API group of the target resource (e.g., apps, kubedb.com)
- schema: schema/properties/spec/properties/target/properties/apiGroup
- loader: getApiGroup
- if:
- name: showGroupKind
- type: function
- - type: select
- label: Kind
- subtitle: Select the resource type (e.g., Deployment, StatefulSet, MongoDB, PostgreSQL)
- schema: schema/properties/spec/properties/target/properties/kind
- loader:
- name: getKinds
- watchPaths:
- - schema/properties/spec/properties/target/properties/apiGroup
- - schema/properties/spec/properties/dataSource/properties/snapshot
- watcher:
- func: setVersion
- paths:
- - schema/properties/spec/properties/target/properties/kind
- - schema/properties/spec/properties/target/properties/apiGroup
- if:
- name: showGroupKind
- type: function
- - type: select
- label: Namespace
- subtitle: Select the namespace where the target resource exists
- schema: schema/properties/spec/properties/target/properties/namespace
- loader: fetchNamespaces
- hasGroup: isRancherManaged
- watcher:
- func: fetchNamespaces
- paths:
- - temp/properties/nameSpaceApi
- - type: select
- label: Resource Name
- subtitle: Select the specific resource to restore to
- schema: schema/properties/spec/properties/target/properties/name
- loader:
- name: getTargetName
- watchPaths:
- - schema/properties/spec/properties/target/properties/apiGroup
- - schema/properties/spec/properties/target/properties/namespace
- - schema/properties/spec/properties/target/properties/kind
+ label: Kind
+ loader:
+ name: getKinds
+ watchPaths:
+ - schema/properties/spec/properties/target/properties/apiGroup
+ - schema/properties/spec/properties/dataSource/properties/snapshot
+ schema: schema/properties/spec/properties/target/properties/kind
+ subtitle: Select the resource type (e.g., Deployment, StatefulSet, MongoDB,
+ PostgreSQL)
+ type: select
+ watcher:
+ func: setVersion
+ paths:
+ - schema/properties/spec/properties/target/properties/kind
+ - schema/properties/spec/properties/target/properties/apiGroup
+ - hasGroup: isRancherManaged
+ label: Namespace
+ loader: fetchNamespaces
+ schema: schema/properties/spec/properties/target/properties/namespace
+ subtitle: Select the namespace where the target resource exists
+ type: select
+ watcher:
+ func: fetchNamespaces
+ paths:
+ - temp/properties/nameSpaceApi
+ - label: Resource Name
+ loader:
+ name: getTargetName
+ watchPaths:
+ - schema/properties/spec/properties/target/properties/apiGroup
+ - schema/properties/spec/properties/target/properties/namespace
+ - schema/properties/spec/properties/target/properties/kind
+ schema: schema/properties/spec/properties/target/properties/name
+ subtitle: Select the specific resource to restore to
+ type: select
+ if:
+ name: isConsole
+ type: function
+ label: Restore Target
+ showLabels: true
+ type: block-layout
+ id: options
+ loader: init
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/enginekubevaultcom-mongodbrole-editor/ui/create-ui.yaml b/charts/enginekubevaultcom-mongodbrole-editor/ui/create-ui.yaml
index de85e353b4..e2eb762364 100644
--- a/charts/enginekubevaultcom-mongodbrole-editor/ui/create-ui.yaml
+++ b/charts/enginekubevaultcom-mongodbrole-editor/ui/create-ui.yaml
@@ -1,62 +1,62 @@
step:
-- type: single-step-form
- elements:
- - loader: getDatabases|core.k8s.appscode.com|v1alpha1|genericresources
- if:
+- elements:
+ - if:
name: isConsole
type: function
label: Select Database
+ loader: getDatabases|core.k8s.appscode.com|v1alpha1|genericresources
refresh: true
- validation:
- type: required
schema: temp/properties/database
sortable: true
type: select
- - watcher:
- func: setRoleName
- paths:
- - schema/properties/spec/properties/secretEngineRef/properties/name
- label: Name
validation:
type: required
+ - label: Name
schema: schema/properties/metadata/properties/name
type: input
- - init:
- value: getDbNamespace
- type: func
- disable: true
+ validation:
+ type: required
+ watcher:
+ func: setRoleName
+ paths:
+ - schema/properties/spec/properties/secretEngineRef/properties/name
+ - disable: true
if:
name: isDbSelected
type: function
+ init:
+ type: func
+ value: getDbNamespace
label: Namespace
schema: schema/properties/metadata/properties/namespace
type: input
- - loader: getEngines|engine.kubevault.com|v1alpha1|secretengines
- if:
+ - if:
name: isDbSelected
type: function
label: Select SecretEngine
+ loader: getEngines|engine.kubevault.com|v1alpha1|secretengines
refresh: true
- validation:
- type: required
schema: schema/properties/spec/properties/secretEngineRef/properties/name
type: select
+ validation:
+ type: required
- label: Default TTL
schema: schema/properties/spec/properties/defaultTTL
type: input
- label: Max TTL
schema: schema/properties/spec/properties/maxTTL
type: input
- - type: array-item-form
- element:
+ - element:
label: Statement
type: input
label: Creation Statement
schema: schema/properties/spec/properties/creationStatements
- - type: array-item-form
- element:
+ type: array-item-form
+ - element:
label: Statement
type: input
label: Revocation Statement
schema: schema/properties/spec/properties/revocationStatements
+ type: array-item-form
+ type: single-step-form
type: multi-step-form
diff --git a/charts/enginekubevaultcom-secretaccessrequest-editor/ui/create-ui.yaml b/charts/enginekubevaultcom-secretaccessrequest-editor/ui/create-ui.yaml
index 1d6d431cee..3eb5ae4ace 100644
--- a/charts/enginekubevaultcom-secretaccessrequest-editor/ui/create-ui.yaml
+++ b/charts/enginekubevaultcom-secretaccessrequest-editor/ui/create-ui.yaml
@@ -1,60 +1,59 @@
step:
-- type: single-step-form
- elements:
- - loader: getDatabases|core.k8s.appscode.com|v1alpha1|genericresources
- if:
+- elements:
+ - if:
name: isConsole
type: function
label: Select Database
+ loader: getDatabases|core.k8s.appscode.com|v1alpha1|genericresources
refresh: true
- validation:
- type: required
schema: temp/properties/database
sortable: true
type: select
- - watcher:
- func: setRequestName
- paths:
- - schema/properties/spec/properties/roleRef
- label: Name
validation:
type: required
+ - label: Name
schema: schema/properties/metadata/properties/name
type: input
- - init:
- type: func
- value: getDbNamespace
- disable: true
+ validation:
+ type: required
+ watcher:
+ func: setRequestName
+ paths:
+ - schema/properties/spec/properties/roleRef
+ - disable: true
if:
name: isDbSelected
type: function
+ init:
+ type: func
+ value: getDbNamespace
label: Namespace
schema: schema/properties/metadata/properties/namespace
type: input
- - loader: getDbRoles|engine.kubevault.com|v1alpha1
- if:
+ - if:
name: isDbSelected
type: function
label: Select Role
+ loader: getDbRoles|engine.kubevault.com|v1alpha1
refresh: true
- validation:
- type: required
schema: schema/properties/spec/properties/roleRef
type: select
+ validation:
+ type: required
- elements:
- label: Name
- validation:
- type: required
schema: name
type: input
- - label: Kind
- validation:
+ validation:
type: required
+ - label: Kind
schema: kind
type: input
- - loader: getNamespaces|core|v1|namespaces
- hasGroup: isRancherManaged
+ validation:
+ type: required
+ - hasGroup: isRancherManaged
label: Namespace
+ loader: getNamespaces|core|v1|namespaces
schema: namespace
type: select
- label: APIGroup
@@ -66,4 +65,5 @@ step:
- label: TTL
schema: schema/properties/spec/properties/ttl
type: input
+ type: single-step-form
type: multi-step-form
diff --git a/charts/enginekubevaultcom-secretengine-editor/ui/create-ui.yaml b/charts/enginekubevaultcom-secretengine-editor/ui/create-ui.yaml
index 588622af73..8cfa747987 100644
--- a/charts/enginekubevaultcom-secretengine-editor/ui/create-ui.yaml
+++ b/charts/enginekubevaultcom-secretengine-editor/ui/create-ui.yaml
@@ -1,80 +1,79 @@
step:
-- type: single-step-form
- elements:
- - loader: getDatabases|core.k8s.appscode.com|v1alpha1|genericresources
- if:
+- elements:
+ - if:
name: isConsole
type: function
label: Select Database
- watcher:
- func: getSpecRef
- paths:
- - schema/properties/spec/properties/database
+ loader: getDatabases|core.k8s.appscode.com|v1alpha1|genericresources
refresh: true
- validation:
- type: required
schema: temp/properties/database
sortable: true
type: select
+ validation:
+ type: required
+ watcher:
+ func: getSpecRef
+ paths:
+ - schema/properties/spec/properties/database
- init:
type: func
value: getEngineName
label: Name
- validation:
- type: required
schema: schema/properties/metadata/properties/name
type: input
- - init:
- type: func
- value: getDbNamespace
- disable: true
+ validation:
+ type: required
+ - disable: true
if:
name: isDbSelected
type: function
+ init:
+ type: func
+ value: getDbNamespace
label: Namespace
schema: schema/properties/metadata/properties/namespace
type: input
- - loader: getVaultservers|kubevault.com|v1alpha2|vaultservers
- label: Select VaultServer
+ - label: Select VaultServer
+ loader: getVaultservers|kubevault.com|v1alpha2|vaultservers
refresh: true
+ schema: temp/properties/vaultserver
+ type: select
validation:
type: required
- schema: temp/properties/vaultserver
watcher:
func: getSpecRef
paths:
- - temp/properties/vaultserver
- type: select
- - init:
- value: vaultRefName
- type: func
- disable: true
+ - temp/properties/vaultserver
+ - disable: true
if:
name: isVaultSelected
type: function
+ init:
+ type: func
+ value: vaultRefName
label: Vaultref Name
-
schema: schema/properties/spec/properties/vaultRef/properties/name
type: input
- - init:
- value: vaultRefNamespace
- type: func
- disable: true
+ - disable: true
if:
name: isVaultSelected
type: function
+ init:
+ type: func
+ value: vaultRefNamespace
label: Vaultref Namespace
schema: schema/properties/spec/properties/vaultRef/properties/namespace
type: input
- - watcher:
- func: getPluginName
- paths:
- - schema/properties/spec/properties/database
- disable: true
+ - disable: true
if:
name: isDbSelected
type: function
label: Plugin Name
schema: discriminator/properties/plugin-name
type: input
+ watcher:
+ func: getPluginName
+ paths:
+ - schema/properties/spec/properties/database
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-cassandra-editor-options/ui/create-ui.yaml b/charts/kubedbcom-cassandra-editor-options/ui/create-ui.yaml
index bf299f900e..694bbc156c 100644
--- a/charts/kubedbcom-cassandra-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-cassandra-editor-options/ui/create-ui.yaml
@@ -1,143 +1,144 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Cassandra version you want to deploy on Kubernetes. The chosen version determines the Cassandra engine features, compatibility, and runtime behavior of your distributed database cluster.
+- elements:
+ - label: ""
+ subtitle: Select the Cassandra version you want to deploy on Kubernetes. The chosen
+ version determines the Cassandra engine features, compatibility, and runtime
+ behavior of your distributed database cluster.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Cassandra/versions
if:
- type: function
name: isToggleOn|databases/Cassandra/versions
+ type: function
label: Database version
+ loader: getAdminOptions|databases/Cassandra/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/Cassandra/mode
- loader: getAdminOptions|databases/Cassandra/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/Cassandra/mode
- label: Database mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/Cassandra/mode
isHorizontal: true
+ label: Database mode
+ loader: getAdminOptions|databases/Cassandra/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: toggleTls
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
label: Replicaset number
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
- showLabels: true
- elements:
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
- init:
type: func
value: setMachineToCustom
- loader: getMachineListForOptions
label: Machine
+ loader: getMachineListForOptions
schema: schema/properties/spec/properties/podResources/properties/machine
type: select
- - init:
+ - if:
+ name: isMachineCustom
+ type: function
+ init:
type: func
value: setLimits|cpu
- if:
- type: function
- name: isMachineCustom
label: cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
func: setRequests|cpu
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom
+ type: function
+ init:
type: func
value: setLimits|memory
- if:
- type: function
- name: isMachineCustom
label: memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
func: setRequests|memory
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
label: Machine profile
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Define rack names to organize your Cassandra nodes into racks for improved fault tolerance and data distribution. Each rack represents a group of nodes that share similar characteristics, such as physical location or network topology.
- - type: array-item-form
- element:
+ - label: ""
+ subtitle: Define rack names to organize your Cassandra nodes into racks for
+ improved fault tolerance and data distribution. Each rack represents a group
+ of nodes that share similar characteristics, such as physical location or
+ network topology.
+ type: label-element
+ - element:
label: Rack names
type: input
validation:
- type: custom
name: validateRackName
+ type: custom
label: Rack name
schema: schema/properties/spec/properties/topology/properties/racks
+ type: array-item-form
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
label: Topology
showLabels: true
type: block-layout
- - type: horizontal-layout
- showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
+ - elements:
+ - if:
name: isToggleOn|storageClasses
+ type: function
label: Storage class
+ loader: getAdminOptions|storageClasses
schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
type: select
- label: Storage size
schema: schema/properties/spec/properties/persistence/properties/size
type: input
+ showLabels: true
+ type: horizontal-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: object-item
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -153,59 +154,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
+ name: showReferSecretSwitch
type: function
- name: showReferSecretSwitch
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
+ - temp/referSecret
+ - if:
+ name: showSecretDropdown
type: function
- name: showSecretDropdown
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -217,8 +221,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -231,19 +235,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -256,16 +260,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -279,22 +283,22 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- init:
type: func
@@ -302,31 +306,32 @@ step:
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
type: block-layout
- if:
- type: function
name: isToggleOn|expose
+ type: function
label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-clickhouse-editor-options/ui/create-ui.yaml b/charts/kubedbcom-clickhouse-editor-options/ui/create-ui.yaml
index 537ddcc90c..b17aa39b68 100644
--- a/charts/kubedbcom-clickhouse-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-clickhouse-editor-options/ui/create-ui.yaml
@@ -1,228 +1,233 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the ClickHouse version you want to deploy on Kubernetes. The chosen version determines the ClickHouse engine features, compatibility, and runtime behavior of your analytical database.
+- elements:
+ - label: ""
+ subtitle: Select the ClickHouse version you want to deploy on Kubernetes. The
+ chosen version determines the ClickHouse engine features, compatibility, and
+ runtime behavior of your analytical database.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/ClickHouse/versions
if:
- type: function
name: isToggleOn|databases/ClickHouse/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/ClickHouse/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/ClickHouse/mode
- loader: getAdminOptions|databases/ClickHouse/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/ClickHouse/mode
- label: Database Mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/ClickHouse/mode
isHorizontal: true
+ label: Database Mode
+ loader: getAdminOptions|databases/ClickHouse/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: clearArbiterHidden
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Configure cluster topology for distributed ClickHouse deployment. Specify the number of replicas for high availability and shards for data partitioning and parallel query processing.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Configure cluster topology for distributed ClickHouse deployment.
+ Specify the number of replicas for high availability and shards for data
+ partitioning and parallel query processing.
+ type: label-element
+ - elements:
+ - label: Cluster Replicas
+ schema: schema/properties/spec/properties/topology/properties/cluster/properties/replicas
+ type: input
+ - label: Cluster Shards
+ schema: schema/properties/spec/properties/topology/properties/cluster/properties/shards
+ type: input
showLabels: true
- elements:
- - label: Cluster Replicas
- schema: schema/properties/spec/properties/topology/properties/cluster/properties/replicas
- type: input
- - label: Cluster Shards
- schema: schema/properties/spec/properties/topology/properties/cluster/properties/shards
- type: input
+ type: horizontal-layout
label: Cluster
showLabels: true
type: block-layout
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your analytical database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your analytical database. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - if:
+ name: showStorageSizeField
+ type: function
+ label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - if:
- type: function
- name: showStorageSizeField
- label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
type: block-layout
- label: Externally Managed?
schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/externallyManaged
type: switch
- elements:
- - type: label-element
- label: ''
- subtitle: Configure external ClickHouse Keeper node connection details. Specify the host address and port number for the externally managed keeper service.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Configure external ClickHouse Keeper node connection details. Specify
+ the host address and port number for the externally managed keeper service.
+ type: label-element
+ - elements:
+ - label: Host
+ schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/node/properties/host
+ type: input
+ - label: Port
+ schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/node/properties/port
+ type: input
showLabels: true
- elements:
- - label: Host
- schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/node/properties/host
- type: input
- - label: Port
- schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/node/properties/port
- type: input
+ type: horizontal-layout
if:
- type: function
name: isExternallyManaged|true
+ type: function
label: Node
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Configure managed ClickHouse Keeper instance for cluster coordination. Specify storage size, replica count, and resource allocation for the keeper nodes.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Configure managed ClickHouse Keeper instance for cluster coordination.
+ Specify storage size, replica count, and resource allocation for the keeper
+ nodes.
+ type: label-element
+ - elements:
+ - label: Storage Size
+ schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/persistence/properties/size
+ type: input
+ - label: Replicas
+ schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/replicas
+ type: input
showLabels: true
- elements:
- - label: Storage Size
- schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/persistence/properties/size
- type: input
- - label: Replicas
- schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/replicas
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/clickHouseKeeper/spec
+ init:
+ type: func
+ value: setLimits|cpu|topology/clickHouseKeeper/spec
+ label: CPU
+ loader: setLimits|cpu|topology/clickHouseKeeper/spec
+ schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/clickHouseKeeper/spec
+ paths:
+ - schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/clickHouseKeeper/spec
+ init:
+ type: func
+ value: setLimits|memory|topology/clickHouseKeeper/spec
+ label: Memory
+ loader: setLimits|memory|topology/clickHouseKeeper/spec
+ schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/clickHouseKeeper/spec
+ paths:
+ - schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/clickHouseKeeper/spec
- disable: isMachineNotCustom|topology/clickHouseKeeper/spec
- label: CPU
- loader: setLimits|cpu|topology/clickHouseKeeper/spec
- watcher:
- func: setRequests|cpu|topology/clickHouseKeeper/spec
- paths:
- - schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/clickHouseKeeper/spec
- disable: isMachineNotCustom|topology/clickHouseKeeper/spec
- label: Memory
- loader: setLimits|memory|topology/clickHouseKeeper/spec
- watcher:
- func: setRequests|memory|topology/clickHouseKeeper/spec
- paths:
- - schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/clickHouseKeeper/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: isExternallyManaged|false
+ type: function
label: Spec
showLabels: true
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -238,59 +243,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -302,8 +310,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -316,19 +324,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -341,21 +349,23 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-clickhouse-editor/ui/edit-ui.yaml b/charts/kubedbcom-clickhouse-editor/ui/edit-ui.yaml
index df7b27ea9a..35aa46c455 100644
--- a/charts/kubedbcom-clickhouse-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-clickhouse-editor/ui/edit-ui.yaml
@@ -1,231 +1,221 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setTrigger|autoscalingKubedbComClickHouseAutoscaler/spec/compute/clickhouse/trigger
+ label: Trigger
options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
+ - text: "On"
+ value: "On"
+ - text: "Off"
+ value: "Off"
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/trigger
+ type: select
+ - label: Pod LifeTime Threshold
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/podLifeTimeThreshold
+ type: input
+ - label: Resource Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/resourceDiffPercentage
+ type: threshold-input
+ - elements:
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/minAllowed/properties/cpu
+ type: input
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/minAllowed/properties/memory
+ type: input
+ fixedBlock: true
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/maxAllowed/properties/cpu
+ type: input
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/maxAllowed/properties/memory
+ type: input
+ fixedBlock: true
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
showLabels: false
- elements:
- # clickhouse mode
- - type: block-layout
- label: ClickHouse
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse
- elements:
- - type: select
- label: Trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComClickHouseAutoscaler/spec/compute/clickhouse/trigger
- options:
- - text: 'On'
- value: 'On'
- - text: 'Off'
- value: 'Off'
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/trigger
- - type: input
- label: Pod LifeTime Threshold
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/podLifeTimeThreshold
- - type: threshold-input
- label: Resource Diff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/resourceDiffPercentage
- - type: block-layout
- showLabels: false
- elements:
- - type: block-layout
- label: Min Allowed
- showLabels: true
- fixedBlock: true
- elements:
- - type: input
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/minAllowed/properties/cpu
- - type: input
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/minAllowed/properties/memory
- - type: block-layout
- label: Max Allowed
- showLabels: true
- fixedBlock: true
- elements:
- - type: input
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/maxAllowed/properties/cpu
- - type: input
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|clickhouse
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/controlledResources
-
- - type: block-layout
- label: Node Topology
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select Node Topology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- elements:
- - type: block-layout
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|clickhouse
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/clickhouse/properties/controlledResources
+ type: select
+ label: ClickHouse
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select Node Topology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setTrigger|autoscalingKubedbComClickHouseAutoscaler/spec/storage/clickhouse/trigger
+ label: Trigger
+ options:
+ - text: "On"
+ value: "On"
+ - text: "Off"
+ value: "Off"
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/trigger
+ type: select
+ - label: Expansion Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/expansionMode
+ type: select
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/usageThreshold
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComClickHouse/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComClickHouseAutoscaler/spec/storage/clickhouse/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComClickHouseAutoscaler/spec/storage/clickhouse/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/upperBound
+ label: ClickHouse
+ showLabels: true
+ type: block-layout
showLabels: false
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: block-layout
- label: ClickHouse
- showLabels: true
- elements:
- - type: select
- label: Trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComClickHouseAutoscaler/spec/storage/clickhouse/trigger
- options:
- - text: 'On'
- value: 'On'
- - text: 'Off'
- value: 'Off'
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/trigger
- - type: select
- label: Expansion Mode
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/expansionMode
- - type: threshold-input
- label: UsageThreshold (%)
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComClickHouse/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComClickHouseAutoscaler/spec/storage/clickhouse/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComClickHouseAutoscaler/spec/storage/clickhouse/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/storage/properties/clickhouse/properties/upperBound
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
\ No newline at end of file
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComClickHouseAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-druid-editor-options/ui/create-ui.yaml b/charts/kubedbcom-druid-editor-options/ui/create-ui.yaml
index f89c080af4..55f123daf7 100644
--- a/charts/kubedbcom-druid-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-druid-editor-options/ui/create-ui.yaml
@@ -1,293 +1,299 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Druid version you want to deploy on Kubernetes. The chosen version determines the Druid engine features, compatibility, and runtime behavior of your analytics database.
+- elements:
+ - label: ""
+ subtitle: Select the Druid version you want to deploy on Kubernetes. The chosen
+ version determines the Druid engine features, compatibility, and runtime behavior
+ of your analytics database.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Druid/versions
if:
- type: function
name: isToggleOn|databases/Druid/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/Druid/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions/properties/default
type: select
- elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Middle Manager nodes handle data ingestion tasks. Configure storage, replicas, and resource allocation for efficient data processing and ingestion workloads.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Middle Manager nodes handle data ingestion tasks. Configure storage,
+ replicas, and resource allocation for efficient data processing and ingestion
+ workloads.
+ type: label-element
+ - elements:
+ - label: Storage Size
+ schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/persistence/properties/size
+ type: input
+ - label: Replicaset Number
+ schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/replicas
+ type: input
showLabels: true
- elements:
- - label: Storage Size
- schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/persistence/properties/size
- type: input
- - label: Replicaset Number
- schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/replicas
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/middleManagers
+ if:
+ name: isMachineCustom|topology/middleManagers
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/middleManagers
+ label: CPU
+ loader: setLimits|cpu|topology/middleManagers
+ schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/middleManagers
+ paths:
+ - schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/middleManagers
+ if:
+ name: isMachineCustom|topology/middleManagers
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/middleManagers
+ label: Memory
+ loader: setLimits|memory|topology/middleManagers
+ schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/middleManagers
+ paths:
+ - schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/middleManagers
- disable: isMachineNotCustom|topology/middleManagers
- if:
- type: function
- name: isMachineCustom|topology/middleManagers
- label: CPU
- loader: setLimits|cpu|topology/middleManagers
- watcher:
- func: setRequests|cpu|topology/middleManagers
- paths:
- - schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/middleManagers
- disable: isMachineNotCustom|topology/middleManagers
- if:
- type: function
- name: isMachineCustom|topology/middleManagers
- label: Memory
- loader: setLimits|memory|topology/middleManagers
- watcher:
- func: setRequests|memory|topology/middleManagers
- paths:
- - schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/middleManagers/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Middle Managers
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Historical nodes serve cached and historical data segments. Configure storage, replicas, and resource allocation for optimal query performance on historical data.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Historical nodes serve cached and historical data segments. Configure
+ storage, replicas, and resource allocation for optimal query performance
+ on historical data.
+ type: label-element
+ - elements:
+ - label: Storage Size
+ schema: schema/properties/spec/properties/topology/properties/historicals/properties/persistence/properties/size
+ type: input
+ - label: Replicaset Number
+ schema: schema/properties/spec/properties/topology/properties/historicals/properties/replicas
+ type: input
showLabels: true
- elements:
- - label: Storage Size
- schema: schema/properties/spec/properties/topology/properties/historicals/properties/persistence/properties/size
- type: input
- - label: Replicaset Number
- schema: schema/properties/spec/properties/topology/properties/historicals/properties/replicas
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/historicals
+ if:
+ name: isMachineCustom|topology/historicals
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/historicals
+ label: CPU
+ loader: setLimits|cpu|topology/historicals
+ schema: schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/historicals
+ paths:
+ - schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/historicals
+ if:
+ name: isMachineCustom|topology/historicals
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/historicals
+ label: Memory
+ loader: setLimits|memory|topology/historicals
+ schema: schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/historicals
+ paths:
+ - schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/historicals
- disable: isMachineNotCustom|topology/historicals
- if:
- type: function
- name: isMachineCustom|topology/historicals
- label: CPU
- loader: setLimits|cpu|topology/historicals
- watcher:
- func: setRequests|cpu|topology/historicals
- paths:
- - schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/historicals
- disable: isMachineNotCustom|topology/historicals
- if:
- type: function
- name: isMachineCustom|topology/historicals
- label: Memory
- loader: setLimits|memory|topology/historicals
- watcher:
- func: setRequests|memory|topology/historicals
- paths:
- - schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/historicals/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Historicals
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Broker nodes handle client queries and route them to appropriate data nodes. Configure replicas and resource allocation for efficient query handling and routing.
+ - label: ""
+ subtitle: Broker nodes handle client queries and route them to appropriate
+ data nodes. Configure replicas and resource allocation for efficient query
+ handling and routing.
+ type: label-element
- label: Replicaset Number
schema: schema/properties/spec/properties/topology/properties/brokers/properties/replicas
type: input
- - type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/brokers
+ if:
+ name: isMachineCustom|topology/brokers
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/brokers
+ label: CPU
+ loader: setLimits|cpu|topology/brokers
+ schema: schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/brokers
+ paths:
+ - schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/brokers
+ if:
+ name: isMachineCustom|topology/brokers
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/brokers
+ label: Memory
+ loader: setLimits|memory|topology/brokers
+ schema: schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/brokers
+ paths:
+ - schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/brokers
- disable: isMachineNotCustom|topology/brokers
- if:
- type: function
- name: isMachineCustom|topology/brokers
- label: CPU
- loader: setLimits|cpu|topology/brokers
- watcher:
- func: setRequests|cpu|topology/brokers
- paths:
- - schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/brokers
- disable: isMachineNotCustom|topology/brokers
- if:
- type: function
- name: isMachineCustom|topology/brokers
- label: Memory
- loader: setLimits|memory|topology/brokers
- watcher:
- func: setRequests|memory|topology/brokers
- paths:
- - schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/brokers/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Brokers
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Coordinator nodes manage data availability and segment distribution across the cluster. Configure replicas and resource allocation for reliable cluster coordination.
+ - label: ""
+ subtitle: Coordinator nodes manage data availability and segment distribution
+ across the cluster. Configure replicas and resource allocation for reliable
+ cluster coordination.
+ type: label-element
- label: Replicaset Number
schema: schema/properties/spec/properties/topology/properties/coordinators/properties/replicas
type: input
- - type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/coordinators
+ if:
+ name: isMachineCustom|topology/coordinators
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/coordinators
+ label: CPU
+ loader: setLimits|cpu|topology/coordinators
+ schema: schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/coordinators
+ paths:
+ - schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/coordinators
+ if:
+ name: isMachineCustom|topology/coordinators
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/coordinators
+ label: Memory
+ loader: setLimits|memory|topology/coordinators
+ schema: schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/coordinators
+ paths:
+ - schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/coordinators
- disable: isMachineNotCustom|topology/coordinators
- if:
- type: function
- name: isMachineCustom|topology/coordinators
- label: CPU
- loader: setLimits|cpu|topology/coordinators
- watcher:
- func: setRequests|cpu|topology/coordinators
- paths:
- - schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/coordinators
- disable: isMachineNotCustom|topology/coordinators
- if:
- type: function
- name: isMachineCustom|topology/coordinators
- label: Memory
- loader: setLimits|memory|topology/coordinators
- watcher:
- func: setRequests|memory|topology/coordinators
- paths:
- - schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/coordinators/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Coordinators
showLabels: true
type: block-layout
type: block-layout
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - label: Deep Storage
+ options:
+ - s3
+ - google
+ - azure
+ - hdfs
+ schema: schema/properties/spec/properties/deepStorage/properties/type
+ type: select
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - label: Deep Storage
- options:
- - s3
- - google
- - azure
- - hdfs
- schema: schema/properties/spec/properties/deepStorage/properties/type
- type: select
- - loader: getSecrets
- label: Config Secret
+ type: horizontal-layout
+ - label: Config Secret
+ loader: getSecrets
refresh: true
schema: schema/properties/spec/properties/deepStorage/properties/configSecret
type: select
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -303,17 +309,17 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- label: Metadata Storage External
schema: schema/properties/spec/properties/metadataStorage/properties/externallyManaged
type: switch
- if:
- type: function
name: isExternallyManaged|metadataStorage
+ type: function
label: Metadata Storage Type
- watcher:
- func: clearRefs|metadataStorage
- paths:
- - schema/properties/spec/properties/metadataStorage/properties/type
options:
- text: MySQL
value: MySQL
@@ -321,104 +327,107 @@ step:
value: Postgres
schema: schema/properties/spec/properties/metadataStorage/properties/type
type: select
- - loader: getAppBindings|mysql
- if:
- type: function
- name: isMetadataStorageTypeEqualsTo|MySQL
- label: MySQL
watcher:
- func: onRefChange|metadataStorage
+ func: clearRefs|metadataStorage
paths:
- - temp/metadataStorage
+ - schema/properties/spec/properties/metadataStorage/properties/type
+ - if:
+ name: isMetadataStorageTypeEqualsTo|MySQL
+ type: function
+ label: MySQL
+ loader: getAppBindings|mysql
refresh: true
- validation:
- type: required
schema: temp/metadataStorage
type: select
- - loader: getAppBindings|postgres
- if:
- type: function
- name: isMetadataStorageTypeEqualsTo|Postgres
- label: Postgres
+ validation:
+ type: required
watcher:
func: onRefChange|metadataStorage
paths:
- - temp/metadataStorage
+ - temp/metadataStorage
+ - if:
+ name: isMetadataStorageTypeEqualsTo|Postgres
+ type: function
+ label: Postgres
+ loader: getAppBindings|postgres
refresh: true
- validation:
- type: required
schema: temp/metadataStorage
type: select
+ validation:
+ type: required
+ watcher:
+ func: onRefChange|metadataStorage
+ paths:
+ - temp/metadataStorage
- label: Zookeeper External
schema: schema/properties/spec/properties/zookeeperRef/properties/externallyManaged
type: switch
- - loader: getAppBindings|zookeeper
- if:
- type: function
+ - if:
name: isExternallyManaged|zookeeperRef
+ type: function
label: Zookeeper
- watcher:
- func: onRefChange|zookeeperRef
- paths:
- - temp/zookeeperRef
+ loader: getAppBindings|zookeeper
refresh: true
- validation:
- type: required
schema: temp/zookeeperRef
type: select
+ validation:
+ type: required
+ watcher:
+ func: onRefChange|zookeeperRef
+ paths:
+ - temp/zookeeperRef
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -430,8 +439,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -444,19 +453,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -469,16 +478,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -492,35 +501,37 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
if:
- type: function
name: isToggleOn|expose
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-druid-editor/ui/edit-ui.yaml b/charts/kubedbcom-druid-editor/ui/edit-ui.yaml
index 50e83471a8..836c3f7e87 100644
--- a/charts/kubedbcom-druid-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-druid-editor/ui/edit-ui.yaml
@@ -1,909 +1,901 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # brokers mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/compute/brokers/trigger
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/podLifeTimeThreshold
- - type: block-layout
- label: Brokers
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-brokers-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|brokers|min
- loader:
- name: getMachines|brokers|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-brokers-max
- watcher:
- func: onMachineChange|brokers
- paths:
- - temp/properties/allowedMachine-brokers-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-brokers-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|brokers|max
- loader:
- name: getMachines|brokers|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-brokers-min
- watcher:
- func: onMachineChange|brokers
- paths:
- - temp/properties/allowedMachine-brokers-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|brokers
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/controlledResources
-
- # coordinators mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/compute/coordinators/trigger
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/podLifeTimeThreshold
- - type: block-layout
- label: Coordinators
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-coordinators-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|coordinators|min
- loader:
- name: getMachines|coordinators|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-coordinators-max
- watcher:
- func: onMachineChange|coordinators
- paths:
- - temp/properties/allowedMachine-coordinators-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-coordinators-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|coordinators|max
- loader:
- name: getMachines|coordinators|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-coordinators-min
- watcher:
- func: onMachineChange|coordinators
- paths:
- - temp/properties/allowedMachine-coordinators-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|coordinators
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/controlledResources
-
- # historicals mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/compute/historicals/trigger
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/podLifeTimeThreshold
- - type: block-layout
- label: Historicals
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-historicals-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|historicals|min
- loader:
- name: getMachines|historicals|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-historicals-max
- watcher:
- func: onMachineChange|historicals
- paths:
- - temp/properties/allowedMachine-historicals-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-historicals-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|historicals|max
- loader:
- name: getMachines|historicals|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-historicals-min
- watcher:
- func: onMachineChange|historicals
- paths:
- - temp/properties/allowedMachine-historicals-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|historicals
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/controlledResources
-
-
- # middleManagers mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/compute/middleManagers/trigger
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/podLifeTimeThreshold
- - type: block-layout
- label: Middle Managers
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-middleManagers-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|middleManagers|min
- loader:
- name: getMachines|middleManagers|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-middleManagers-max
- watcher:
- func: onMachineChange|middleManagers
- paths:
- - temp/properties/allowedMachine-middleManagers-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-middleManagers-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|middleManagers|max
- loader:
- name: getMachines|middleManagers|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-middleManagers-min
- watcher:
- func: onMachineChange|middleManagers
- paths:
- - temp/properties/allowedMachine-middleManagers-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|middleManagers
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/controlledResources
-
- - type: block-layout
- label: Node Topology
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/storage/historicals/trigger
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/expansionMode
- - type: block-layout
- label: Historicals
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComDruid/spec/topology/historicals/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComDruidAutoscaler/spec/storage/historicals/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComDruidAutoscaler/spec/storage/historicals/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/upperBound
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/storage/middleManagers/trigger
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/expansionMode
- - type: block-layout
- label: MiddleManagers
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComDruid/spec/topology/middleManagers/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComDruidAutoscaler/spec/storage/middleManagers/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComDruidAutoscaler/spec/storage/middleManagers/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/upperBound
- - type: block-layout
- label: OpsRequest Options
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/compute/brokers/trigger
+ label: Trigger
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/trigger
+ type: switch
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|brokers|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|brokers|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-brokers-max
+ schema: temp/properties/allowedMachine-brokers-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|brokers
+ paths:
+ - temp/properties/allowedMachine-brokers-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
+ init:
+ type: func
+ value: setAllowedMachine|brokers|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|brokers|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-brokers-min
+ schema: temp/properties/allowedMachine-brokers-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|brokers
+ paths:
+ - temp/properties/allowedMachine-brokers-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|brokers
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/brokers/properties/controlledResources
+ type: select
+ label: Brokers
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
init:
type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
+ value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/compute/coordinators/trigger
+ label: Trigger
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/trigger
+ type: switch
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|coordinators|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|coordinators|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-coordinators-max
+ schema: temp/properties/allowedMachine-coordinators-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|coordinators
+ paths:
+ - temp/properties/allowedMachine-coordinators-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|coordinators|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|coordinators|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-coordinators-min
+ schema: temp/properties/allowedMachine-coordinators-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|coordinators
+ paths:
+ - temp/properties/allowedMachine-coordinators-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|coordinators
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/coordinators/properties/controlledResources
+ type: select
+ label: Coordinators
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
init:
type: func
- value: isValueExistInModel|/resources/kubedbComDruid/spec/monitor
- watcher:
- func: onEnableMonitoringChange
- paths:
- - temp/properties/enableMonitoring
- - type: block-layout
- if:
- type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
+ value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/compute/historicals/trigger
+ label: Trigger
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/trigger
+ type: switch
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
init:
- type: static
- value: prometheus.io/operator
+ type: func
+ value: setAllowedMachine|historicals|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|historicals|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-historicals-max
+ schema: temp/properties/allowedMachine-historicals-min
+ type: machine-compare
watcher:
- func: onAgentChange
+ func: onMachineChange|historicals
paths:
- - schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
+ - temp/properties/allowedMachine-historicals-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComDruid/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
+ init:
+ type: func
+ value: setAllowedMachine|historicals|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|historicals|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-historicals-min
+ schema: temp/properties/allowedMachine-historicals-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|historicals
+ paths:
+ - temp/properties/allowedMachine-historicals-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|historicals
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/historicals/properties/controlledResources
+ type: select
+ label: Historicals
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/compute/middleManagers/trigger
+ label: Trigger
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/trigger
+ type: switch
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComDruid/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
+ init:
+ type: func
+ value: setAllowedMachine|middleManagers|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|middleManagers|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-middleManagers-max
+ schema: temp/properties/allowedMachine-middleManagers-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|middleManagers
+ paths:
+ - temp/properties/allowedMachine-middleManagers-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComDruid/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
init:
- type: static
- value: true
+ type: func
+ value: setAllowedMachine|middleManagers|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|middleManagers|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-middleManagers-min
+ schema: temp/properties/allowedMachine-middleManagers-max
+ type: machine-compare
watcher:
- func: onCustomizeExporterChange
+ func: onMachineChange|middleManagers
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
+ - temp/properties/allowedMachine-middleManagers-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComDruid/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComDruid/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|middleManagers
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/middleManagers/properties/controlledResources
+ type: select
+ label: Middle Managers
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/storage/historicals/trigger
+ label: Trigger
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/trigger
+ type: switch
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComDruid/spec/topology/historicals/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComDruidAutoscaler/spec/storage/historicals/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComDruidAutoscaler/spec/storage/historicals/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/historicals/properties/upperBound
+ label: Historicals
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComDruidAutoscaler/spec/storage/middleManagers/trigger
+ label: Trigger
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/trigger
+ type: switch
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComDruid/spec/topology/middleManagers/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComDruidAutoscaler/spec/storage/middleManagers/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComDruidAutoscaler/spec/storage/middleManagers/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/storage/properties/middleManagers/properties/upperBound
+ label: MiddleManagers
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComDruidAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComDruid/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComDruid/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - buttonClass: is-light is-outlined
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComDruid/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComDruid/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
init:
- type: func
- value: isBindingAlreadyOn
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
watcher:
- func: addOrRemoveBinding
+ func: onCustomizeExporterChange
paths:
- - temp/properties/binding
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComDruid/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
+ type: function
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComDruid/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComDruid/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
+ init:
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
+ watcher:
+ func: onEnvArrayChange
+ paths:
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-elasticsearch-editor-options/ui/create-ui.yaml b/charts/kubedbcom-elasticsearch-editor-options/ui/create-ui.yaml
index 683ac16b33..a3bd63d712 100644
--- a/charts/kubedbcom-elasticsearch-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-elasticsearch-editor-options/ui/create-ui.yaml
@@ -1,314 +1,319 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Elasticsearch version you want to deploy on Kubernetes. The chosen version determines the Elasticsearch engine features, compatibility, and runtime behavior of your analytics database.
+- elements:
+ - label: ""
+ subtitle: Select the Elasticsearch version you want to deploy on Kubernetes. The
+ chosen version determines the Elasticsearch engine features, compatibility,
+ and runtime behavior of your analytics database.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Elasticsearch/versions
if:
- type: function
name: isToggleOn|databases/Elasticsearch/versions
+ type: function
label: Database version
+ loader: getAdminOptions|databases/Elasticsearch/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/Elasticsearch/mode
+ type: function
+ init:
type: func
value: getDefault|databases/Elasticsearch/mode
- loader: getAdminOptions|databases/Elasticsearch/mode
- if:
- type: function
- name: isToggleOn|databases/Elasticsearch/mode
- label: Database mode
isHorizontal: true
+ label: Database mode
+ loader: getAdminOptions|databases/Elasticsearch/mode
schema: schema/properties/spec/properties/mode
type: radio
- elements:
- - label: Replicaset number
+ - customClass: mb-20
+ label: Replicaset number
schema: schema/properties/spec/properties/replicas
type: input
- customClass: mb-20
if:
- type: function
name: isEqualToModelPathValue|Combined|/spec/mode
+ type: function
type: block-layout
- elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Master nodes manage cluster state and coordinate operations. Configure replicas, storage, and resource allocation for reliable cluster management.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Master nodes manage cluster state and coordinate operations. Configure
+ replicas, storage, and resource allocation for reliable cluster management.
+ type: label-element
+ - elements:
+ - label: Replicaset number
+ schema: schema/properties/spec/properties/topology/properties/master/properties/replicas
+ type: input
+ - label: Storage size
+ schema: schema/properties/spec/properties/topology/properties/master/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - label: Replicaset number
- schema: schema/properties/spec/properties/topology/properties/master/properties/replicas
- type: input
- - label: Storage size
- schema: schema/properties/spec/properties/topology/properties/master/properties/persistence/properties/size
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/master
+ if:
+ name: isMachineCustom|topology/master
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/master
+ label: cpu
+ loader: setLimits|cpu|topology/master
+ schema: schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/master
+ paths:
+ - schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/master
+ if:
+ name: isMachineCustom|topology/master
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/master
+ label: memory
+ loader: setLimits|memory|topology/master
+ schema: schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/master
+ paths:
+ - schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/master
- disable: isMachineNotCustom|topology/master
- if:
- type: function
- name: isMachineCustom|topology/master
- label: cpu
- loader: setLimits|cpu|topology/master
- watcher:
- func: setRequests|cpu|topology/master
- paths:
- - schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/master
- disable: isMachineNotCustom|topology/master
- if:
- type: function
- name: isMachineCustom|topology/master
- label: memory
- loader: setLimits|memory|topology/master
- watcher:
- func: setRequests|memory|topology/master
- paths:
- - schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/master/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Master nodes
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Data nodes store and index documents. Configure replicas, storage capacity, and resource allocation to handle your data ingestion and query workload.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Data nodes store and index documents. Configure replicas, storage
+ capacity, and resource allocation to handle your data ingestion and query
+ workload.
+ type: label-element
+ - elements:
+ - label: Replicaset number
+ schema: schema/properties/spec/properties/topology/properties/data/properties/replicas
+ type: input
+ - label: Storage size
+ schema: schema/properties/spec/properties/topology/properties/data/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - label: Replicaset number
- schema: schema/properties/spec/properties/topology/properties/data/properties/replicas
- type: input
- - label: Storage size
- schema: schema/properties/spec/properties/topology/properties/data/properties/persistence/properties/size
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/data
+ if:
+ name: isMachineCustom|topology/data
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/data
+ label: cpu
+ loader: setLimits|cpu|topology/data
+ schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/data
+ paths:
+ - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/data
+ if:
+ name: isMachineCustom|topology/data
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/data
+ label: memory
+ loader: setLimits|memory|topology/data
+ schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/data
+ paths:
+ - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/data
- disable: isMachineNotCustom|topology/data
- if:
- type: function
- name: isMachineCustom|topology/data
- label: cpu
- loader: setLimits|cpu|topology/data
- watcher:
- func: setRequests|cpu|topology/data
- paths:
- - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/data
- disable: isMachineNotCustom|topology/data
- if:
- type: function
- name: isMachineCustom|topology/data
- label: memory
- loader: setLimits|memory|topology/data
- watcher:
- func: setRequests|memory|topology/data
- paths:
- - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Data nodes
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Ingest nodes preprocess documents before indexing using pipelines. Configure replicas, storage, and resources for data transformation and enrichment workloads.
- - type: horizontal-layout
- showLabels: true
- elements:
- - label: Replicaset number
- schema: schema/properties/spec/properties/topology/properties/ingest/properties/replicas
- type: input
- - label: Storage size
- schema: schema/properties/spec/properties/topology/properties/ingest/properties/persistence/properties/size
- type: input
- - type: horizontal-layout
+ - label: ""
+ subtitle: Ingest nodes preprocess documents before indexing using pipelines.
+ Configure replicas, storage, and resources for data transformation and enrichment
+ workloads.
+ type: label-element
+ - elements:
+ - label: Replicaset number
+ schema: schema/properties/spec/properties/topology/properties/ingest/properties/replicas
+ type: input
+ - label: Storage size
+ schema: schema/properties/spec/properties/topology/properties/ingest/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/ingest
- disable: isMachineNotCustom|topology/ingest
- if:
- type: function
- name: isMachineCustom|topology/ingest
- label: cpu
- loader: setLimits|cpu|topology/ingest
- watcher:
- func: setRequests|cpu|topology/ingest
- paths:
- - schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/ingest
- disable: isMachineNotCustom|topology/ingest
- if:
- type: function
- name: isMachineCustom|topology/ingest
- label: memory
- loader: setLimits|memory|topology/ingest
- watcher:
- func: setRequests|memory|topology/ingest
- paths:
- - schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
- label: Ingest nodes
- showLabels: true
- type: block-layout
- if:
- type: function
- name: isEqualToModelPathValue|Topology|/spec/mode
- type: block-layout
- - elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
- showLabels: true
- elements:
+ type: horizontal-layout
+ - elements:
- init:
type: func
value: setMachineToCustom
- loader: getMachineListForOptions
label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/machine
type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
+ - disable: isMachineNotCustom|topology/ingest
if:
+ name: isMachineCustom|topology/ingest
type: function
- name: isMachineCustom
+ init:
+ type: func
+ value: setLimits|cpu|topology/ingest
label: cpu
- loader: setLimits|cpu
+ loader: setLimits|cpu|topology/ingest
+ schema: schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
- func: setRequests|cpu
+ func: setRequests|cpu|topology/ingest
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
+ - schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/ingest
+ if:
+ name: isMachineCustom|topology/ingest
+ type: function
+ init:
type: func
- value: setLimits|memory
- disable: isMachineNotCustom|schema/properties/spec/properties/podResources/properties/machine
+ value: setLimits|memory|topology/ingest
label: memory
- loader: setLimits|memory
+ loader: setLimits|memory|topology/ingest
+ schema: schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
- func: setRequests|memory
+ func: setRequests|memory|topology/ingest
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/ingest/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
+ label: Ingest nodes
+ showLabels: true
+ type: block-layout
if:
+ name: isEqualToModelPathValue|Topology|/spec/mode
type: function
+ type: block-layout
+ - elements:
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: cpu
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|schema/properties/spec/properties/podResources/properties/machine
+ init:
+ type: func
+ value: setLimits|memory
+ label: memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
+ if:
name: isEqualToModelPathValue|Combined|/spec/mode
+ type: function
label: Machine_profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Storage class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - if:
+ name: isEqualToModelPathValue|Combined|/spec/mode
+ type: function
+ label: Storage size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- label: Storage class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - if:
- type: function
- name: isEqualToModelPathValue|Combined|/spec/mode
- label: Storage size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Combined|/spec/mode
+ type: function
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -324,59 +329,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -388,8 +396,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -402,19 +410,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -423,23 +431,23 @@ step:
- description: Enable Backup, Monitoring, TLS etc.
elements:
- elements:
- - init:
+ - if:
+ name: isToggleOn|monitoring
+ type: function
+ init:
type: func
value: setMonitoring
- if:
- type: function
- name: isToggleOn|monitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -453,40 +461,40 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- if:
- type: function
name: isToggleOn|tls
+ type: function
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|expose
+ type: function
label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
@@ -497,10 +505,12 @@ step:
type: switch
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-elasticsearch-editor/ui/edit-ui.yaml b/charts/kubedbcom-elasticsearch-editor/ui/edit-ui.yaml
index 36f8901901..0f72256da3 100644
--- a/charts/kubedbcom-elasticsearch-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-elasticsearch-editor/ui/edit-ui.yaml
@@ -1,1169 +1,1156 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: backupconfiguration
- # label: Backup
- schema: schema/
- elements:
- - type: radio
- label: Schedule a Backup?
- schema: temp/properties/scheduleBackup
- isHorizontal: true
- options:
- - text: 'Yes'
- value: 'yes'
- - text: 'No'
- value: 'no'
- if:
+- elements:
+ - if:
+ name: showScheduleBackup
+ type: function
+ init:
+ type: func
+ value: initScheduleBackupForEdit
+ isHorizontal: true
+ label: Schedule a Backup?
+ options:
+ - text: "Yes"
+ value: "yes"
+ - text: "No"
+ value: "no"
+ schema: temp/properties/scheduleBackup
+ type: radio
+ watcher:
+ func: onScheduleBackupChange
+ paths:
+ - temp/properties/scheduleBackup
+ - elements:
+ - if:
+ name: isBackupDataLoadedTrue
type: function
- name: showScheduleBackup
init:
type: func
- value: initScheduleBackupForEdit
+ value: setBackupType
+ isHorizontal: true
+ label: Select Backup Type
+ loader: getTypes
+ options:
+ - description: Create, Delete or Modify BackupConfig
+ text: BackupConfig
+ value: BackupConfig
+ - description: Enable/Disable BackupBlueprint
+ text: BackupBlueprint
+ value: BackupBlueprint
+ schema: temp/properties/backupType
+ type: radio
watcher:
- func: onScheduleBackupChange
+ func: onBackupTypeChange
paths:
- - temp/properties/scheduleBackup
- - type: block-layout
- label: Backup Form
- showLabels: false
- loader: initBackupData
+ - temp/properties/backupType
+ - elements:
+ - label: Select Context
+ loader: getContext
+ schema: temp/properties/backupConfigContext
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onContextChange
+ paths:
+ - temp/properties/backupConfigContext
+ - if:
+ name: showConfigList
+ type: function
+ label: Select BackupConfig
+ loader: getConfigList
+ schema: temp/properties/config
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onConfigChange
+ paths:
+ - temp/properties/config
+ - if:
+ name: showSchedule
+ type: function
+ label: Schedule
+ loader:
+ name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
+ watchPaths:
+ - temp/properties/config
+ schema: temp/properties/schedule
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
+ paths:
+ - temp/properties/schedule
+ - fullwidth: true
+ if:
+ name: showPause
+ type: function
+ init:
+ type: func
+ value: setPausedValue
+ label: Paused
+ schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
+ type: switch
+ watcher:
+ func: setPausedValue
+ paths:
+ - temp/properties/config
if:
+ name: isBackupType|BackupConfig
type: function
- name: showBackupForm
- elements:
- - type: radio
- label: Select Backup Type
- schema: temp/properties/backupType
- isHorizontal: true
- options:
- - text: BackupConfig
- value: BackupConfig
- description: 'Create, Delete or Modify BackupConfig'
- - text: BackupBlueprint
- value: BackupBlueprint
- description: Enable/Disable BackupBlueprint
- if:
- type: function
- name: isBackupDataLoadedTrue
- init:
- type: func
- value: setBackupType
- loader: getTypes
- watcher:
- func: onBackupTypeChange
- paths:
- - temp/properties/backupType
- - type: block-layout
- label: Config
- if:
- type: function
- name: isBackupType|BackupConfig
- elements:
- - type: select
- label: Select Context
- schema: temp/properties/backupConfigContext
- validation:
- type: required
- loader: getContext
- watcher:
- func: onContextChange
- paths:
- - temp/properties/backupConfigContext
- - type: select
- label: Select BackupConfig
- schema: temp/properties/config
- validation:
- type: required
- if:
- type: function
- name: showConfigList
- loader: getConfigList
- watcher:
- func: onConfigChange
- paths:
- - temp/properties/config
- - type: input
- label: Schedule
- schema: temp/properties/schedule
- validation:
- type: required
- if:
- type: function
- name: showSchedule
- loader:
- name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
- watchPaths:
- - temp/properties/config
- watcher:
- func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
- paths:
- - temp/properties/schedule
- - type: switch
- label: Paused
- fullwidth: true
- schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
- if:
- type: function
- name: showPause
- watcher:
- func: setPausedValue
- paths:
- - temp/properties/config
- init:
- type: func
- value: setPausedValue
- - type: block-layout
- label: Blueprint
- if:
- type: function
- name: isBackupType|BackupBlueprint
- elements:
- - type: switch
- label: Enable Backup Blueprint
- fullwidth: true
- subtitle: Use a backup blueprint template to automatically configure backups for similar databases
- schema: temp/properties/blueprintEnabled
- init:
- type: func
- value: setBlueprintSwitch
- watcher:
- func: onBlueprintChange
- paths:
- - temp/properties/blueprintEnabled
- - type: block-layout
- label: Archiver
- if:
- type: function
- name: isBackupType|Archiver
- elements:
- - type: switch
- label: Enable Archiver
- fullwidth: true
- schema: temp/properties/archiverEnabled
- init:
- type: func
- value: setArchiverSwitch
- watcher:
- func: onArchiverChange
- paths:
- - temp/properties/archiverEnabled
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComElasticsearch/spec/monitor
+ label: Config
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setBlueprintSwitch
+ label: Enable Backup Blueprint
+ schema: temp/properties/blueprintEnabled
+ subtitle: Use a backup blueprint template to automatically configure backups
+ for similar databases
+ type: switch
+ watcher:
+ func: onBlueprintChange
+ paths:
+ - temp/properties/blueprintEnabled
+ if:
+ name: isBackupType|BackupBlueprint
+ type: function
+ label: Blueprint
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setArchiverSwitch
+ label: Enable Archiver
+ schema: temp/properties/archiverEnabled
+ type: switch
+ watcher:
+ func: onArchiverChange
+ paths:
+ - temp/properties/archiverEnabled
+ if:
+ name: isBackupType|Archiver
+ type: function
+ label: Archiver
+ type: block-layout
+ if:
+ name: showBackupForm
+ type: function
+ label: Backup Form
+ loader: initBackupData
+ showLabels: false
+ type: block-layout
+ id: backupconfiguration
+ schema: schema/
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComElasticsearch/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/agent
+ type: radio
watcher:
- func: onEnableMonitoringChange
+ func: onAgentChange
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComElasticsearch/spec/monitor/agent
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComElasticsearch/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComElasticsearch/spec/monitor/agent
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComElasticsearch/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComElasticsearch/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComElasticsearch/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComElasticsearch/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComElasticsearch/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
- type: static
- value: true
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onCustomizeExporterChange
+ func: onEnvArrayChange
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- loader: setMetadata
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComElasticsearch/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComElasticsearch/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComElasticsearch/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ loader: setMetadata
showLabels: false
- loader: fetchTopologyMachines
- elements:
- # Node mode (Combined)
- - type: switch
- label: Trigger
- fullwidth: true
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
+ if:
+ name: dbTypeEqualsTo|node
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/compute/node/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/node/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/node
+ paths:
+ - temp/properties/compute/properties/node/properties/trigger
+ - if:
+ name: dbTypeEqualsTo|node
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ if:
+ name: dbTypeEqualsTo|node
+ type: function
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: dbTypeEqualsTo|node
init:
type: func
- value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/compute/node/trigger
- schema: temp/properties/compute/properties/node/properties/trigger
+ value: setAllowedMachine|node|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|node|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-node-max
+ schema: temp/properties/allowedMachine-node-min
+ type: machine-compare
watcher:
- func: onTriggerChange|compute/node
+ func: onMachineChange|node
paths:
- - temp/properties/compute/properties/node/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- if:
- type: function
- name: dbTypeEqualsTo|node
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/podLifeTimeThreshold
- customClass: width-300
- if:
- type: function
- name: dbTypeEqualsTo|node
- - type: block-layout
- label: Node
- if:
- type: function
- name: dbTypeEqualsTo|node
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-node-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|node|min
- loader:
- name: getMachines|node|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-node-max
- watcher:
- func: onMachineChange|node
- paths:
- - temp/properties/allowedMachine-node-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-node-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|node|max
- loader:
- name: getMachines|node|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-node-min
- watcher:
- func: onMachineChange|node
- paths:
- - temp/properties/allowedMachine-node-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/node
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/controlledResources
-
- # Topology mode
- - type: block-layout
- showLabels: false
- if:
- type: function
- name: dbTypeEqualsTo|topology
- elements:
- # Data
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/compute/data/trigger
- schema: temp/properties/compute/properties/data/properties/trigger
- watcher:
- func: onTriggerChange|compute/data
- paths:
- - temp/properties/compute/properties/data/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Data
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-data-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|data|min
- loader:
- name: getMachines|data|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-data-max
- watcher:
- func: onMachineChange|data
- paths:
- - temp/properties/allowedMachine-data-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-data-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|data|max
- loader:
- name: getMachines|data|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-data-min
- watcher:
- func: onMachineChange|data
- paths:
- - temp/properties/allowedMachine-data-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/data
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/controlledResources
-
- # Ingest
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/compute/ingest/trigger
- schema: temp/properties/compute/properties/ingest/properties/trigger
- watcher:
- func: onTriggerChange|compute/ingest
- paths:
- - temp/properties/compute/properties/ingest/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Ingest
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-ingest-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|ingest|min
- loader:
- name: getMachines|ingest|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-ingest-max
- watcher:
- func: onMachineChange|ingest
- paths:
- - temp/properties/allowedMachine-ingest-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-ingest-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|ingest|max
- loader:
- name: getMachines|ingest|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-ingest-min
- watcher:
- func: onMachineChange|ingest
- paths:
- - temp/properties/allowedMachine-ingest-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/ingest
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/controlledResources
-
- # Master
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/compute/master/trigger
- schema: temp/properties/compute/properties/master/properties/trigger
- watcher:
- func: onTriggerChange|compute/master
- paths:
- - temp/properties/compute/properties/master/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Master
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-master-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|master|min
- loader:
- name: getMachines|master|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-master-max
- watcher:
- func: onMachineChange|master
- paths:
- - temp/properties/allowedMachine-master-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-master-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|master|max
- loader:
- name: getMachines|master|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-master-min
- watcher:
- func: onMachineChange|master
- paths:
- - temp/properties/allowedMachine-master-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/master
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/controlledResources
-
- - type: block-layout
- label: NodeTopology
+ - temp/properties/allowedMachine-node-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
- type: function
name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: Scale Up DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: Scale Down DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- showLabels: false
- elements:
- # Node mode (Combined)
- - type: switch
- label: Trigger
- fullwidth: true
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: dbTypeEqualsTo|node
init:
type: func
- value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/node/trigger
- schema: temp/properties/storage/properties/node/properties/trigger
+ value: setAllowedMachine|node|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|node|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-node-min
+ schema: temp/properties/allowedMachine-node-max
+ type: machine-compare
watcher:
- func: onTriggerChange|storage/node
+ func: onMachineChange|node
paths:
- - temp/properties/storage/properties/node/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: dbTypeEqualsTo|node
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: dbTypeEqualsTo|node
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/expansionMode
- - type: block-layout
- label: Node
+ - temp/properties/allowedMachine-node-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: dbTypeEqualsTo|node
+ label: Max Allowed
showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComElasticsearch/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/node/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
-
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/node/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
-
- # Topology mode
- - type: block-layout
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/node
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/node/properties/controlledResources
+ type: select
+ if:
+ name: dbTypeEqualsTo|node
+ type: function
+ label: Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/compute/data/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/data/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/data
+ paths:
+ - temp/properties/compute/properties/data/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|data|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|data|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-data-max
+ schema: temp/properties/allowedMachine-data-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|data
+ paths:
+ - temp/properties/allowedMachine-data-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|data|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|data|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-data-min
+ schema: temp/properties/allowedMachine-data-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|data
+ paths:
+ - temp/properties/allowedMachine-data-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
showLabels: false
- if:
- type: function
- name: dbTypeEqualsTo|topology
- elements:
- # Data
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/data/trigger
- schema: temp/properties/storage/properties/data/properties/trigger
- watcher:
- func: onTriggerChange|storage/data
- paths:
- - temp/properties/storage/properties/data/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/expansionMode
- - type: block-layout
- label: Data
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComElasticsearch/spec/topology/data/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/data/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/scalingRules
-
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/data/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/upperBound
-
- # Ingest
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/ingest/trigger
- schema: temp/properties/storage/properties/ingest/properties/trigger
- watcher:
- func: onTriggerChange|storage/ingest
- paths:
- - temp/properties/storage/properties/ingest/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/expansionMode
- - type: block-layout
- label: Ingest
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComElasticsearch/spec/topology/ingest/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/ingest/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/ingest/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/upperBound
-
- # Master
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/master/trigger
- schema: temp/properties/storage/properties/master/properties/trigger
- watcher:
- func: onTriggerChange|storage/master
- paths:
- - temp/properties/storage/properties/master/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/expansionMode
- - type: block-layout
- label: Master
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComElasticsearch/spec/topology/master/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/master/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/scalingRules
-
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/master/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/upperBound
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/data
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/data/properties/controlledResources
+ type: select
+ label: Data
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/compute/ingest/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/ingest/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/ingest
+ paths:
+ - temp/properties/compute/properties/ingest/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|ingest|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|ingest|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-ingest-max
+ schema: temp/properties/allowedMachine-ingest-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|ingest
+ paths:
+ - temp/properties/allowedMachine-ingest-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|ingest|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|ingest|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-ingest-min
+ schema: temp/properties/allowedMachine-ingest-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|ingest
+ paths:
+ - temp/properties/allowedMachine-ingest-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/ingest
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/ingest/properties/controlledResources
+ type: select
+ label: Ingest
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/compute/master/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/master/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/master
+ paths:
+ - temp/properties/compute/properties/master/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|master|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|master|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-master-max
+ schema: temp/properties/allowedMachine-master-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|master
+ paths:
+ - temp/properties/allowedMachine-master-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|master|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|master|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-master-min
+ schema: temp/properties/allowedMachine-master-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|master
+ paths:
+ - temp/properties/allowedMachine-master-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/master
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/master/properties/controlledResources
+ type: select
+ label: Master
+ showLabels: true
+ type: block-layout
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Up DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Down DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: NodeTopology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
+ if:
+ name: dbTypeEqualsTo|node
+ type: function
init:
type: func
- value: isBindingAlreadyOn
+ value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/node/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/node/properties/trigger
+ type: switch
watcher:
- func: addOrRemoveBinding
+ func: onTriggerChange|storage/node
paths:
- - temp/properties/binding
+ - temp/properties/storage/properties/node/properties/trigger
+ - if:
+ name: dbTypeEqualsTo|node
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: dbTypeEqualsTo|node
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComElasticsearch/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/node/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/node/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
+ if:
+ name: dbTypeEqualsTo|node
+ type: function
+ label: Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/data/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/data/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/data
+ paths:
+ - temp/properties/storage/properties/data/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComElasticsearch/spec/topology/data/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/data/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/data/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/data/properties/upperBound
+ label: Data
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/ingest/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/ingest/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/ingest
+ paths:
+ - temp/properties/storage/properties/ingest/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComElasticsearch/spec/topology/ingest/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/ingest/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/ingest/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/ingest/properties/upperBound
+ label: Ingest
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/master/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/master/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/master
+ paths:
+ - temp/properties/storage/properties/master/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComElasticsearch/spec/topology/master/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/master/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComElasticsearchAutoscaler/spec/storage/master/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/storage/properties/master/properties/upperBound
+ label: Master
+ showLabels: true
+ type: block-layout
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComElasticsearchAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-ferretdb-editor-options/ui/create-ui.yaml b/charts/kubedbcom-ferretdb-editor-options/ui/create-ui.yaml
index 606b76c941..6e7e30d0f3 100644
--- a/charts/kubedbcom-ferretdb-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-ferretdb-editor-options/ui/create-ui.yaml
@@ -1,232 +1,237 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the FerretDB version you want to deploy on Kubernetes. The chosen version determines the FerretDB engine features, compatibility, and runtime behavior of your document database proxy.
+- elements:
+ - label: ""
+ subtitle: Select the FerretDB version you want to deploy on Kubernetes. The chosen
+ version determines the FerretDB engine features, compatibility, and runtime
+ behavior of your document database proxy.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/FerretDB/versions
if:
- type: function
name: isToggleOn|databases/FerretDB/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/FerretDB/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/FerretDB/mode
- loader: getAdminOptions|databases/FerretDB/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/FerretDB/mode
- label: Database Mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/FerretDB/mode
isHorizontal: true
+ label: Database Mode
+ loader: getAdminOptions|databases/FerretDB/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: onModeChange
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- elements:
- - type: label-element
- label: ''
- subtitle: Configure primary FerretDB server nodes that handle read and write operations. Select a machine profile to allocate CPU and memory resources, or choose 'custom' to manually specify requirements.
+ - label: ""
+ subtitle: Configure primary FerretDB server nodes that handle read and write
+ operations. Select a machine profile to allocate CPU and memory resources,
+ or choose 'custom' to manually specify requirements.
+ type: label-element
- label: Replicaset Number
schema: schema/properties/spec/properties/server/properties/primary/properties/replicas
type: input
- - type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|server/primary
+ if:
+ name: isMachineCustom|server/primary
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|server/primary
+ label: CPU
+ loader: setLimits|cpu|server/primary
+ schema: schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|server/primary
+ paths:
+ - schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|server/primary
+ if:
+ name: isMachineCustom|server/primary
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|server/primary
+ label: Memory
+ loader: setLimits|memory|server/primary
+ schema: schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|server/primary
+ paths:
+ - schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|server/primary
- disable: isMachineNotCustom|server/primary
- if:
- type: function
- name: isMachineCustom|server/primary
- label: CPU
- loader: setLimits|cpu|server/primary
- watcher:
- func: setRequests|cpu|server/primary
- paths:
- - schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|server/primary
- disable: isMachineNotCustom|server/primary
- if:
- type: function
- name: isMachineCustom|server/primary
- label: Memory
- loader: setLimits|memory|server/primary
- watcher:
- func: setRequests|memory|server/primary
- paths:
- - schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/server/properties/primary/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Primary
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Configure secondary FerretDB server nodes for read scaling and high availability. Select a machine profile to allocate CPU and memory resources, or choose 'custom' to manually specify requirements.
+ - label: ""
+ subtitle: Configure secondary FerretDB server nodes for read scaling and high
+ availability. Select a machine profile to allocate CPU and memory resources,
+ or choose 'custom' to manually specify requirements.
+ type: label-element
- label: Replicaset Number
schema: schema/properties/spec/properties/server/properties/secondary/properties/replicas
type: input
- - type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|server/secondary
+ if:
+ name: isMachineCustom|server/secondary
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|server/secondary
+ label: CPU
+ loader: setLimits|cpu|server/secondary
+ schema: schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|server/secondary
+ paths:
+ - schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|server/secondary
+ if:
+ name: isMachineCustom|server/secondary
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|server/secondary
+ label: Memory
+ loader: setLimits|memory|server/secondary
+ schema: schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|server/secondary
+ paths:
+ - schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|server/secondary
- disable: isMachineNotCustom|server/secondary
- if:
- type: function
- name: isMachineCustom|server/secondary
- label: CPU
- loader: setLimits|cpu|server/secondary
- watcher:
- func: setRequests|cpu|server/secondary
- paths:
- - schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|server/secondary
- disable: isMachineNotCustom|server/secondary
- if:
- type: function
- name: isMachineCustom|server/secondary
- label: Memory
- loader: setLimits|memory|server/secondary
- watcher:
- func: setRequests|memory|server/secondary
- paths:
- - schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/server/properties/secondary/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|PrimaryAndSecondary|/spec/mode
+ type: function
label: Secondary
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Configure the backend database that FerretDB uses for data storage. Specify storage class, persistent volume size, and replica count. Select a machine profile to allocate CPU and memory resources, or choose 'custom' to manually specify requirements.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Configure the backend database that FerretDB uses for data storage.
+ Specify storage class, persistent volume size, and replica count. Select a
+ machine profile to allocate CPU and memory resources, or choose 'custom' to
+ manually specify requirements.
+ type: label-element
+ - elements:
+ - label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - label: Storage Size
+ schema: schema/properties/spec/properties/backend/properties/persistence/properties/size
+ type: input
+ - label: Replicaset Number
+ schema: schema/properties/spec/properties/backend/properties/replicas
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - label: Storage Size
- schema: schema/properties/spec/properties/backend/properties/persistence/properties/size
- type: input
- - label: Replicaset Number
- schema: schema/properties/spec/properties/backend/properties/replicas
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/backend/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|backend
+ if:
+ name: isMachineCustom|backend
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|backend
+ label: CPU
+ loader: setLimits|cpu|backend
+ schema: schema/properties/spec/properties/backend/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|backend
+ paths:
+ - schema/properties/spec/properties/backend/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/backend/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|backend
+ if:
+ name: isMachineCustom|backend
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|backend
+ label: Memory
+ loader: setLimits|memory|backend
+ schema: schema/properties/spec/properties/backend/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|backend
+ paths:
+ - schema/properties/spec/properties/backend/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/backend/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/backend/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|backend
- disable: isMachineNotCustom|backend
- if:
- type: function
- name: isMachineCustom|backend
- label: CPU
- loader: setLimits|cpu|backend
- watcher:
- func: setRequests|cpu|backend
- paths:
- - schema/properties/spec/properties/backend/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/backend/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/backend/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|backend
- disable: isMachineNotCustom|backend
- if:
- type: function
- name: isMachineCustom|backend
- label: Memory
- loader: setLimits|memory|backend
- watcher:
- func: setRequests|memory|backend
- paths:
- - schema/properties/spec/properties/backend/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/backend/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/backend/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Backend
showLabels: true
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -242,59 +247,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
+ name: showReferSecretSwitch
type: function
- name: showReferSecretSwitch
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
+ - temp/referSecret
+ - if:
+ name: showSecretDropdown
type: function
- name: showSecretDropdown
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -306,8 +314,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -320,19 +328,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -345,61 +353,62 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- elements:
- - init:
+ - if:
+ name: isToggleOn|tls
+ type: function
+ init:
type: func
value: checkHostnameOrIP
- if:
- type: function
- name: isToggleOn|tls
label: Enable TLS?
+ schema: schema/properties/spec/properties/admin/properties/tls/properties/default
+ type: switch
watcher:
func: checkHostnameOrIP
paths:
- - schema/properties/spec/properties/admin/properties/tls/properties/default
- schema: schema/properties/spec/properties/admin/properties/tls/properties/default
- type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - schema/properties/spec/properties/admin/properties/tls/properties/default
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
- elements:
- init:
type: func
value: checkHostnameOrIP
label: Expose via Gateway?
+ schema: schema/properties/spec/properties/admin/properties/expose/properties/default
+ type: switch
watcher:
func: checkHostnameOrIP
paths:
- - schema/properties/spec/properties/admin/properties/expose/properties/default
- schema: schema/properties/spec/properties/admin/properties/expose/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/expose/properties/default
if:
- type: function
name: isToggleOn|expose
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-ferretdb-editor/ui/edit-ui.yaml b/charts/kubedbcom-ferretdb-editor/ui/edit-ui.yaml
index ccf66527a3..b686f3577e 100644
--- a/charts/kubedbcom-ferretdb-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-ferretdb-editor/ui/edit-ui.yaml
@@ -1,593 +1,584 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # primary
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComFerretDBAutoscaler/spec/compute/primary/trigger
- schema: temp/properties/compute/properties/primary/properties/trigger
- watcher:
- func: onTriggerChange|compute/primary
- paths:
- - temp/properties/compute/properties/primary/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Primary
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-primary-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|primary|min
- loader:
- name: getMachines|primary|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-primary-max
- watcher:
- func: onMachineChange|primary
- paths:
- - temp/properties/allowedMachine-primary-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-primary-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|primary|max
- loader:
- name: getMachines|primary|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-primary-min
- watcher:
- func: onMachineChange|primary
- paths:
- - temp/properties/allowedMachine-primary-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/primary
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/controlledResources
-
- # secondary
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: ferretTypeEqualsTo|secondary
- init:
- type: func
- value: setTrigger|autoscalingKubedbComFerretDBAutoscaler/spec/compute/secondary/trigger
- schema: temp/properties/compute/properties/secondary/properties/trigger
- watcher:
- func: onTriggerChange|compute/secondary
- paths:
- - temp/properties/compute/properties/secondary/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- if:
- type: function
- name: ferretTypeEqualsTo|secondary
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/podLifeTimeThreshold
- customClass: width-300
- if:
- type: function
- name: ferretTypeEqualsTo|secondary
- - type: block-layout
- label: Secondary
- if:
- type: function
- name: ferretTypeEqualsTo|secondary
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-secondary-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|secondary|min
- loader:
- name: getMachines|secondary|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-secondary-max
- watcher:
- func: onMachineChange|secondary
- paths:
- - temp/properties/allowedMachine-secondary-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-secondary-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|secondary|max
- loader:
- name: getMachines|secondary|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-secondary-min
- watcher:
- func: onMachineChange|secondary
- paths:
- - temp/properties/allowedMachine-secondary-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/secondary
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/controlledResources
-
- - type: block-layout
- label: Node Topology
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
+ value: setTrigger|autoscalingKubedbComFerretDBAutoscaler/spec/compute/primary/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/primary/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/primary
+ paths:
+ - temp/properties/compute/properties/primary/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|primary|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|primary|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-primary-max
+ schema: temp/properties/allowedMachine-primary-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|primary
+ paths:
+ - temp/properties/allowedMachine-primary-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|primary|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|primary|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-primary-min
+ schema: temp/properties/allowedMachine-primary-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|primary
+ paths:
+ - temp/properties/allowedMachine-primary-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/primary
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/primary/properties/controlledResources
+ type: select
+ label: Primary
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: ferretTypeEqualsTo|secondary
+ type: function
+ init:
type: func
- value: isValueExistInModel|/resources/kubedbComFerretDB/spec/monitor
+ value: setTrigger|autoscalingKubedbComFerretDBAutoscaler/spec/compute/secondary/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/secondary/properties/trigger
+ type: switch
watcher:
- func: onEnableMonitoringChange
+ func: onTriggerChange|compute/secondary
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - temp/properties/compute/properties/secondary/properties/trigger
+ - if:
+ name: ferretTypeEqualsTo|secondary
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
if:
+ name: ferretTypeEqualsTo|secondary
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
init:
- type: static
- value: prometheus.io/operator
+ type: func
+ value: setAllowedMachine|secondary|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|secondary|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-secondary-max
+ schema: temp/properties/allowedMachine-secondary-min
+ type: machine-compare
watcher:
- func: onAgentChange
+ func: onMachineChange|secondary
paths:
- - schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComFerretDB/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
+ - temp/properties/allowedMachine-secondary-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComFerretDB/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- buttonClass: is-light is-outlined
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComFerretDB/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
- init:
- type: static
- value: true
+ init:
+ type: func
+ value: setAllowedMachine|secondary|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|secondary|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-secondary-min
+ schema: temp/properties/allowedMachine-secondary-max
+ type: machine-compare
watcher:
- func: onCustomizeExporterChange
- paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
+ func: onMachineChange|secondary
+ paths:
+ - temp/properties/allowedMachine-secondary-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: showCustomizeExporterSection
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/secondary
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/secondary/properties/controlledResources
+ type: select
+ if:
+ name: ferretTypeEqualsTo|secondary
+ type: function
+ label: Secondary
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComFerretDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComFerretDB/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComFerretDB/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComFerretDB/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComFerretDB/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- schema: schema/properties/resources/properties/kubedbComFerretDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- buttonClass: is-light is-outlined
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComFerretDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComFerretDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
+ type: function
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComFerretDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComFerretDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
+ init:
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
+ watcher:
+ func: onEnvArrayChange
+ paths:
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-hazelcast-editor-options/ui/create-ui.yaml b/charts/kubedbcom-hazelcast-editor-options/ui/create-ui.yaml
index 63f3fe7801..112bcefced 100644
--- a/charts/kubedbcom-hazelcast-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-hazelcast-editor-options/ui/create-ui.yaml
@@ -1,129 +1,127 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Hazlecast version you want to deploy on Kubernetes. The chosen version determines the Hazlecast engine features, compatibility, and runtime behavior of your document database proxy.
+- elements:
+ - label: ""
+ subtitle: Select the Hazlecast version you want to deploy on Kubernetes. The chosen
+ version determines the Hazlecast engine features, compatibility, and runtime
+ behavior of your document database proxy.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Hazelcast/versions
if:
- type: function
name: isToggleOn|databases/Hazelcast/versions
+ type: function
label: Database version
+ loader: getAdminOptions|databases/Hazelcast/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/Hazelcast/mode
- loader: getAdminOptions|databases/Hazelcast/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/Hazelcast/mode
- label: Database mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/Hazelcast/mode
isHorizontal: true
+ label: Database mode
+ loader: getAdminOptions|databases/Hazelcast/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: toggleTls
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- if:
- type: function
name: isEqualToModelPathValue|Replicaset|/spec/mode
+ type: function
label: Replicaset number
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your analytical database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- if:
- type: function
- name: isMachineCustom
- label: cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- if:
- type: function
- name: isMachineCustom
- label: memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your analytical database. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
label: Machine_profile
showLabels: true
type: block-layout
- - type: horizontal-layout
- showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - label: Storage size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
- - loader: getSecrets
- label: License Secret
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - label: Storage size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
+ showLabels: true
+ type: horizontal-layout
+ - label: License Secret
+ loader: getSecrets
refresh: true
schema: schema/properties/spec/properties/licenseSecret/properties/name
type: select
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: object-item
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -139,59 +137,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -203,8 +204,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -217,19 +218,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -237,82 +238,83 @@ step:
type: block-layout
- description: Enable Backup, Monitoring, TLS etc.
elements:
- - init:
+ - if:
+ name: returnFalse
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: returnFalse
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- disable: showArchiverAlert
label: Enable Archiver?
+ schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
+ type: switch
watcher:
func: onArchiverChange
paths:
- - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- if:
- type: function
name: showArchiverAlert
+ type: function
label: The selected StorageClass does not support Archiver
type: warning
if:
- type: function
name: returnFalse
+ type: function
type: block-layout
- elements:
- - init:
+ - if:
+ name: isToggleOn|tls
+ type: function
+ init:
type: func
value: checkHostnameOrIP
- if:
- type: function
- name: isToggleOn|tls
label: Enable TLS?
+ schema: schema/properties/spec/properties/admin/properties/tls/properties/default
+ type: switch
watcher:
func: checkHostnameOrIP
paths:
- - schema/properties/spec/properties/admin/properties/tls/properties/default
- schema: schema/properties/spec/properties/admin/properties/tls/properties/default
- type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - schema/properties/spec/properties/admin/properties/tls/properties/default
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
- elements:
- - init:
+ - if:
+ name: isToggleOn|expose
+ type: function
+ init:
type: func
value: checkHostnameOrIP
- if:
- type: function
- name: isToggleOn|expose
label: Expose via Gateway?
+ schema: schema/properties/spec/properties/admin/properties/expose/properties/default
+ type: switch
watcher:
func: checkHostnameOrIP
paths:
- - schema/properties/spec/properties/admin/properties/expose/properties/default
- schema: schema/properties/spec/properties/admin/properties/expose/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/expose/properties/default
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-ignite-editor-options/ui/create-ui.yaml b/charts/kubedbcom-ignite-editor-options/ui/create-ui.yaml
index 5202a7f4ef..9bc24a4dd6 100644
--- a/charts/kubedbcom-ignite-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-ignite-editor-options/ui/create-ui.yaml
@@ -1,124 +1,122 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Ignite version you want to deploy on Kubernetes. The chosen version determines the Ignite engine features, compatibility, and runtime behavior of your analytical database.
+- elements:
+ - label: ""
+ subtitle: Select the Ignite version you want to deploy on Kubernetes. The chosen
+ version determines the Ignite engine features, compatibility, and runtime behavior
+ of your analytical database.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Ignite/versions
if:
- type: function
name: isToggleOn|databases/Ignite/versions
+ type: function
label: Database version
+ loader: getAdminOptions|databases/Ignite/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/Ignite/mode
- loader: getAdminOptions|databases/Ignite/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/Ignite/mode
- label: Database mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/Ignite/mode
isHorizontal: true
+ label: Database mode
+ loader: getAdminOptions|databases/Ignite/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: toggleTls
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- if:
- type: function
name: isEqualToModelPathValue|Replicaset|/spec/mode
+ type: function
label: Replicaset number
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your analytical database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
- showLabels: true
- elements:
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your analytical database. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
- init:
type: func
value: setMachineToCustom
- loader: getMachineListForOptions
label: Machine
+ loader: getMachineListForOptions
schema: schema/properties/spec/properties/podResources/properties/machine
type: select
- - init:
+ - if:
+ name: isMachineCustom
+ type: function
+ init:
type: func
value: setLimits|cpu
- if:
- type: function
- name: isMachineCustom
label: cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
func: setRequests|cpu
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom
+ type: function
+ init:
type: func
value: setLimits|memory
- if:
- type: function
- name: isMachineCustom
label: memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
func: setRequests|memory
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
label: Machine_profile
showLabels: true
type: block-layout
- - type: horizontal-layout
- showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
+ - elements:
+ - if:
name: isToggleOn|storageClasses
+ type: function
label: Storage class
+ loader: getAdminOptions|storageClasses
schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
type: select
- label: Storage size
schema: schema/properties/spec/properties/persistence/properties/size
type: input
+ showLabels: true
+ type: horizontal-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: object-item
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -134,59 +132,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -198,8 +199,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -212,23 +213,25 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-kafka-editor-options/ui/create-ui.yaml b/charts/kubedbcom-kafka-editor-options/ui/create-ui.yaml
index 4209e2ef96..9a3607aec4 100644
--- a/charts/kubedbcom-kafka-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-kafka-editor-options/ui/create-ui.yaml
@@ -1,259 +1,263 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Kafka version you want to deploy on Kubernetes. The chosen version determines the Kafka engine features, compatibility, and runtime behavior of your message broker cluster.
+- elements:
+ - label: ""
+ subtitle: Select the Kafka version you want to deploy on Kubernetes. The chosen
+ version determines the Kafka engine features, compatibility, and runtime behavior
+ of your message broker cluster.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Kafka/versions
if:
- type: function
name: isToggleOn|databases/Kafka/versions
+ type: function
label: Database version
+ loader: getAdminOptions|databases/Kafka/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/Kafka/mode
- loader: getAdminOptions|databases/Kafka/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/Kafka/mode
- label: Database mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/Kafka/mode
isHorizontal: true
+ label: Database mode
+ loader: getAdminOptions|databases/Kafka/mode
schema: schema/properties/spec/properties/mode
type: radio
- elements:
- - label: Replicaset number
+ - customClass: mb-20
+ label: Replicaset number
schema: schema/properties/spec/properties/replicas
type: input
- customClass: mb-20
if:
- type: function
name: isEqualToModelPathValue|Combined|/spec/mode
+ type: function
type: block-layout
- elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Controller nodes manage cluster metadata and coordinate partition leadership. Configure replicas, storage, and resource allocation for reliable cluster coordination.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Controller nodes manage cluster metadata and coordinate partition
+ leadership. Configure replicas, storage, and resource allocation for reliable
+ cluster coordination.
+ type: label-element
+ - elements:
+ - label: Replicaset number
+ schema: schema/properties/spec/properties/topology/properties/controller/properties/replicas
+ type: input
+ - label: Storage size
+ schema: schema/properties/spec/properties/topology/properties/controller/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - label: Replicaset number
- schema: schema/properties/spec/properties/topology/properties/controller/properties/replicas
- type: input
- - label: Storage size
- schema: schema/properties/spec/properties/topology/properties/controller/properties/persistence/properties/size
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/controller
+ if:
+ name: isMachineCustom|topology/controller
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/controller
+ label: cpu
+ loader: setLimits|cpu|topology/controller
+ schema: schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/controller
+ paths:
+ - schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/controller
+ if:
+ name: isMachineCustom|topology/controller
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/controller
+ label: memory
+ loader: setLimits|memory|topology/controller
+ schema: schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/controller
+ paths:
+ - schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/controller
- disable: isMachineNotCustom|topology/controller
- if:
- type: function
- name: isMachineCustom|topology/controller
- label: cpu
- loader: setLimits|cpu|topology/controller
- watcher:
- func: setRequests|cpu|topology/controller
- paths:
- - schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/controller
- disable: isMachineNotCustom|topology/controller
- if:
- type: function
- name: isMachineCustom|topology/controller
- label: memory
- loader: setLimits|memory|topology/controller
- watcher:
- func: setRequests|memory|topology/controller
- paths:
- - schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/controller/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Controller nodes
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Broker nodes handle message storage and serve client requests. Configure replicas, storage capacity, and resource allocation to handle your message throughput and retention requirements.
- - type: horizontal-layout
- showLabels: true
- elements:
- - label: Replicaset number
- schema: schema/properties/spec/properties/topology/properties/broker/properties/replicas
- type: input
- - label: Storage size
- schema: schema/properties/spec/properties/topology/properties/broker/properties/persistence/properties/size
- type: input
- - type: horizontal-layout
+ - label: ""
+ subtitle: Broker nodes handle message storage and serve client requests. Configure
+ replicas, storage capacity, and resource allocation to handle your message
+ throughput and retention requirements.
+ type: label-element
+ - elements:
+ - label: Replicaset number
+ schema: schema/properties/spec/properties/topology/properties/broker/properties/replicas
+ type: input
+ - label: Storage size
+ schema: schema/properties/spec/properties/topology/properties/broker/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/broker
- disable: isMachineNotCustom|topology/broker
- if:
- type: function
- name: isMachineCustom|topology/broker
- label: cpu
- loader: setLimits|cpu|topology/broker
- watcher:
- func: setRequests|cpu|topology/broker
- paths:
- - schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/broker
- disable: isMachineNotCustom|topology/broker
- if:
- type: function
- name: isMachineCustom|topology/broker
- label: memory
- loader: setLimits|memory|topology/broker
- watcher:
- func: setRequests|memory|topology/broker
- paths:
- - schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
- label: Broker nodes
- showLabels: true
- type: block-layout
- if:
- type: function
- name: isEqualToModelPathValue|Topology|/spec/mode
- type: block-layout
- - elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
- showLabels: true
- elements:
+ type: horizontal-layout
+ - elements:
- init:
type: func
value: setMachineToCustom
- loader: getMachineListForOptions
label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/machine
type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
+ - disable: isMachineNotCustom|topology/broker
if:
+ name: isMachineCustom|topology/broker
type: function
- name: isMachineCustom
+ init:
+ type: func
+ value: setLimits|cpu|topology/broker
label: cpu
- loader: setLimits|cpu
+ loader: setLimits|cpu|topology/broker
+ schema: schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
- func: setRequests|cpu
+ func: setRequests|cpu|topology/broker
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
+ - schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/broker
if:
+ name: isMachineCustom|topology/broker
type: function
- name: isMachineCustom
+ init:
+ type: func
+ value: setLimits|memory|topology/broker
label: memory
- loader: setLimits|memory
+ loader: setLimits|memory|topology/broker
+ schema: schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
- func: setRequests|memory
+ func: setRequests|memory|topology/broker
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/broker/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
+ label: Broker nodes
+ showLabels: true
+ type: block-layout
if:
+ name: isEqualToModelPathValue|Topology|/spec/mode
type: function
+ type: block-layout
+ - elements:
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: cpu
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
+ if:
name: notEqualToDatabaseMode|Topology
+ type: function
label: Machine_profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Storage class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - if:
+ name: isEqualToModelPathValue|Combined|/spec/mode
+ type: function
+ label: Storage size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- label: Storage class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - if:
- type: function
- name: isEqualToModelPathValue|Combined|/spec/mode
- label: Storage size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Combined|/spec/mode
+ type: function
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.wipeOut.description
text: WipeOut
@@ -263,59 +267,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -327,8 +334,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -341,19 +348,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -366,16 +373,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -389,40 +396,41 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|tls
+ type: function
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
- elements:
- label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
if:
- type: function
name: isToggleOn|expose
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-kafka-editor/ui/edit-ui.yaml b/charts/kubedbcom-kafka-editor/ui/edit-ui.yaml
index d9f6481358..3512b74f91 100644
--- a/charts/kubedbcom-kafka-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-kafka-editor/ui/edit-ui.yaml
@@ -1,1006 +1,994 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/compute/broker/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/broker/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/broker
+ paths:
+ - temp/properties/compute/properties/broker/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/namespace
+ init:
+ type: func
+ value: setAllowedMachine|broker|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|broker|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-broker-max
+ schema: temp/properties/allowedMachine-broker-min
+ type: machine-compare
watcher:
- func: onNamespaceChange
+ func: onMachineChange|broker
paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/databaseRef/properties/name
+ - temp/properties/allowedMachine-broker-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|broker|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|broker|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-broker-min
+ schema: temp/properties/allowedMachine-broker-max
+ type: machine-compare
watcher:
- func: initMetadata
+ func: onMachineChange|broker
paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
+ - temp/properties/allowedMachine-broker-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/broker
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/containerControlledValues
+ type: select
+ label: Broker
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/compute/controller/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/controller/properties/trigger
+ type: switch
watcher:
- func: initMetadata
+ func: onTriggerChange|compute/controller
paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # topology mode - broker and controller
- - type: block-layout
- label: Topology
+ - temp/properties/compute/properties/controller/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: dbTypeEqualsTo|topology
- showLabels: false
- # schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute
- elements:
- # Broker section
- - type: switch
- label: Trigger
- fullwidth: true
- schema: temp/properties/compute/properties/broker/properties/trigger
- watcher:
- func: onTriggerChange|compute/broker
- paths:
- - temp/properties/compute/properties/broker/properties/trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/compute/broker/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/podLifeTimeThreshold
- - type: block-layout
- label: Broker
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-broker-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|broker|min
- loader:
- name: getMachines|broker|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-broker-max
- watcher:
- func: onMachineChange|broker
- paths:
- - temp/properties/allowedMachine-broker-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-broker-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|broker|max
- loader:
- name: getMachines|broker|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-broker-min
- watcher:
- func: onMachineChange|broker
- paths:
- - temp/properties/allowedMachine-broker-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/broker
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/broker/properties/containerControlledValues
-
- # Controller section
- - type: switch
- label: Trigger
- fullwidth: true
- schema: temp/properties/compute/properties/controller/properties/trigger
- watcher:
- func: onTriggerChange|compute/controller
- paths:
- - temp/properties/compute/properties/controller/properties/trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/compute/controller/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/podLifeTimeThreshold
- - type: block-layout
- label: Controller
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-controller-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|controller|min
- loader:
- name: getMachines|controller|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-controller-max
- watcher:
- func: onMachineChange|controller
- paths:
- - temp/properties/allowedMachine-controller-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-controller-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|controller|max
- loader:
- name: getMachines|controller|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-controller-min
- watcher:
- func: onMachineChange|controller
- paths:
- - temp/properties/allowedMachine-controller-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/controller
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/containerControlledValues
-
- # combined mode - node only
- - type: block-layout
- label: Combined
+ init:
+ type: func
+ value: setAllowedMachine|controller|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|controller|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-controller-max
+ schema: temp/properties/allowedMachine-controller-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|controller
+ paths:
+ - temp/properties/allowedMachine-controller-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: dbTypeEqualsTo|combined
- showLabels: false
- # schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute
- elements:
- # Node section
- - type: switch
- label: Trigger
- fullwidth: true
- schema: temp/properties/compute/properties/node/properties/trigger
- watcher:
- func: onTriggerChange|compute/node
- paths:
- - temp/properties/compute/properties/node/properties/trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/compute/node/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/podLifeTimeThreshold
- - type: block-layout
- label: Node
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-node-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|node|min
- loader:
- name: getMachines|node|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-node-max
- watcher:
- func: onMachineChange|node
- paths:
- - temp/properties/allowedMachine-node-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-node-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|node|max
- loader:
- name: getMachines|node|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-node-min
- watcher:
- func: onMachineChange|node
- paths:
- - temp/properties/allowedMachine-node-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/node
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/containerControlledValues
-
- - type: block-layout
- label: Node Topology
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
+ init:
+ type: func
+ value: setAllowedMachine|controller|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|controller|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-controller-min
+ schema: temp/properties/allowedMachine-controller-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|controller
+ paths:
+ - temp/properties/allowedMachine-controller-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
name: hasNoAnnotations
+ type: function
+ label: Max Allowed
showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select Node Topology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/controller
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/controller/properties/containerControlledValues
+ type: select
+ label: Controller
+ showLabels: true
+ type: block-layout
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Topology
+ showLabels: false
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/compute/node/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/node/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/node
+ paths:
+ - temp/properties/compute/properties/node/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|node|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|node|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-node-max
+ schema: temp/properties/allowedMachine-node-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|node
+ paths:
+ - temp/properties/allowedMachine-node-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: block-layout
- showLabels: true
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/name
- - type: select
- label: SelectNamespace
- loader: getNamespaces
- hasGroup: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- refresh: true
- validation:
- type: required
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/databaseRef/properties/name
- - type: radio
- label: Select Type
- validation:
- type: required
- isHorizontal: true
- schema: discriminator/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
- if:
- type: function
- name: isConsole
- watcher:
- func: initMetadata
- paths:
- - discriminator/properties/autoscalingType
- # Broker mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: dbTypeEqualsTo|topology
- schema: temp/properties/storage/properties/broker/properties/trigger
- watcher:
- func: onTriggerChange|storage/broker
- paths:
- - temp/properties/storage/properties/broker/properties/trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/storage/broker/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: dbTypeEqualsTo|topology
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: dbTypeEqualsTo|topology
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/expansionMode
- - type: block-layout
- label: Broker
- showLabels: true
- loader: getDbDetails
- if:
- type: function
- name: dbTypeEqualsTo|topology
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the storage usage percentage that triggers automatic expansion
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComKafka/spec/topology/broker/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/broker/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/broker/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/upperBound
- # Controller mode
- - type: switch
- label: Trigger
- fullwidth: true
- schema: temp/properties/storage/properties/controller/properties/trigger
- if:
- type: function
- name: dbTypeEqualsTo|topology
- watcher:
- func: onTriggerChange|storage/controller
- paths:
- - temp/properties/storage/properties/controller/properties/trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/storage/controller/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: dbTypeEqualsTo|topology
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: dbTypeEqualsTo|topology
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/expansionMode
- - type: block-layout
- label: Controller
- showLabels: true
- loader: getDbDetails
- if:
- type: function
- name: dbTypeEqualsTo|topology
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the storage usage percentage that triggers automatic expansion
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComKafka/spec/topology/controller/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/controller/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/controller/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/upperBound
- # Node mode
- - type: switch
- label: Trigger
- fullwidth: true
- schema: temp/properties/storage/properties/node/properties/trigger
- if:
- type: function
- name: dbTypeEqualsTo|combined
- watcher:
- func: onTriggerChange|storage/node
- paths:
- - temp/properties/storage/properties/node/properties/trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/storage/node/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: dbTypeEqualsTo|combined
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: dbTypeEqualsTo|combined
+ init:
+ type: func
+ value: setAllowedMachine|node|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|node|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-node-min
+ schema: temp/properties/allowedMachine-node-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|node
+ paths:
+ - temp/properties/allowedMachine-node-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/node
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/expansionMode
- - type: block-layout
- label: Node
- showLabels: true
- loader: getDbDetails
- if:
- type: function
- name: dbTypeEqualsTo|combined
- elements:
- - type: threshold-input
- label: Usage Threshold (%)
- subtitle: Set the storage usage percentage that triggers automatic expansion
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComKafka/spec/topology/node/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/node/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/node/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
- # Ops Request Options
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/node/properties/containerControlledValues
+ type: select
+ label: Node
+ showLabels: true
+ type: block-layout
+ if:
+ name: dbTypeEqualsTo|combined
+ type: function
+ label: Combined
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Select Node Topology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/name
+ type: input
+ - hasGroup: isRancherManaged
+ label: SelectNamespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ showLabels: true
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ isHorizontal: true
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: discriminator/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - discriminator/properties/autoscalingType
+ - fullwidth: true
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
init:
type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
+ value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/storage/broker/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/broker/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/broker
+ paths:
+ - temp/properties/storage/properties/broker/properties/trigger
+ - if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/usageThreshold
+ subtitle: Set the storage usage percentage that triggers automatic expansion
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComKafka/spec/topology/broker/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/broker/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/broker/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/broker/properties/upperBound
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Broker
+ loader: getDbDetails
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
init:
type: func
- value: isValueExistInModel|/resources/kubedbComKafka/spec/monitor
+ value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/storage/controller/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/controller/properties/trigger
+ type: switch
watcher:
- func: onEnableMonitoringChange
+ func: onTriggerChange|storage/controller
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - temp/properties/storage/properties/controller/properties/trigger
+ - if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
if:
+ name: dbTypeEqualsTo|topology
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComKafka/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComKafka/spec/monitor/agent
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/usageThreshold
+ subtitle: Set the storage usage percentage that triggers automatic expansion
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComKafka/spec/topology/controller/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/controller/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/controller/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/controller/properties/upperBound
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Controller
+ loader: getDbDetails
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: dbTypeEqualsTo|combined
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComKafkaAutoscaler/spec/storage/node/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/node/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/node
+ paths:
+ - temp/properties/storage/properties/node/properties/trigger
+ - if:
+ name: dbTypeEqualsTo|combined
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: dbTypeEqualsTo|combined
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/expansionMode
+ type: select
+ - elements:
+ - customClass: width-300
+ label: Usage Threshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/usageThreshold
+ subtitle: Set the storage usage percentage that triggers automatic expansion
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComKafka/spec/topology/node/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/node/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComKafkaAutoscaler/spec/storage/node/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
+ if:
+ name: dbTypeEqualsTo|combined
+ type: function
+ label: Node
+ loader: getDbDetails
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComKafkaAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComKafka/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComKafka/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - buttonClass: is-light is-outlined
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComKafka/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComKafka/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
+ type: function
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComKafka/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComKafka/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComKafka/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
- type: static
- value: true
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onCustomizeExporterChange
+ func: onEnvArrayChange
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComKafka/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComKafka/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComKafka/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
- init:
- type: func
- value: isBindingAlreadyOn
- watcher:
- func: addOrRemoveBinding
- paths:
- - temp/properties/binding
\ No newline at end of file
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-mariadb-editor-options/ui/create-ui.yaml b/charts/kubedbcom-mariadb-editor-options/ui/create-ui.yaml
index b1161f744c..bd7a713bc5 100644
--- a/charts/kubedbcom-mariadb-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-mariadb-editor-options/ui/create-ui.yaml
@@ -1,129 +1,129 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the MariaDB version you want to deploy on Kubernetes. The chosen version determines the MariaDB engine features, compatibility, and runtime behavior of your database cluster.
+- elements:
+ - label: ""
+ subtitle: Select the MariaDB version you want to deploy on Kubernetes. The chosen
+ version determines the MariaDB engine features, compatibility, and runtime behavior
+ of your database cluster.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/MariaDB/versions
if:
- type: function
name: isToggleOn|databases/MariaDB/versions
+ type: function
label: Database version
+ loader: getAdminOptions|databases/MariaDB/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/MariaDB/mode
- loader: getAdminOptions|databases/MariaDB/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/MariaDB/mode
- label: Database mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/MariaDB/mode
isHorizontal: true
+ label: Database mode
+ loader: getAdminOptions|databases/MariaDB/mode
schema: schema/properties/spec/properties/mode
type: radio
- if:
- type: function
name: EqualToDatabaseMode|Replicaset
+ type: function
label: Replicas
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database cluster. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database cluster. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -139,91 +139,96 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
+ name: showReferSecretSwitch
type: function
- name: showReferSecretSwitch
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
+ - temp/referSecret
+ - if:
+ name: showSecretDropdown
type: function
- name: showSecretDropdown
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- - init:
+ - if:
+ name: isToggleOn|pointInTimeRecovery
+ type: function
+ init:
type: func
value: getDefault|pointInTimeRecovery
- if:
- type: function
- name: isToggleOn|pointInTimeRecovery
label: Point in-time Recovery?
schema: temp/recovery
type: switch
- elements:
- - type: label-element
- label: ''
- subtitle: Configure point-in-time recovery to restore your database to a specific moment. Specify the source database namespace, name, and the exact timestamp for recovery.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Configure point-in-time recovery to restore your database to a specific
+ moment. Specify the source database namespace, name, and the exact timestamp
+ for recovery.
+ type: label-element
+ - elements:
+ - forceRequired: true
+ label: Namespace
+ schema: temp/refNamespace
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refNamespace
+ - label: Name
+ schema: temp/refDBName
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refDBName
showLabels: true
- elements:
- - label: Namespace
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refNamespace
- forceRequired: true
- validation:
- type: required
- schema: temp/refNamespace
- type: input
- - label: Name
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refDBName
- validation:
- type: required
- schema: temp/refDBName
- type: input
+ type: horizontal-layout
- customClass: mt-10
label: Recovery Timestamp
schema: schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
@@ -231,16 +236,16 @@ step:
watcher:
func: onTimestampChange
paths:
- - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
+ - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
if:
- type: function
name: showRecovery
+ type: function
label: Point in-time Recovery
showLabels: true
type: block-layout
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -252,8 +257,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -266,19 +271,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -291,16 +296,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -314,70 +319,72 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- disable: showArchiverAlert
label: Enable Archiver?
+ schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
+ type: switch
watcher:
func: onArchiverChange
paths:
- - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- if:
- type: function
name: showArchiverAlert
+ type: function
label: The selected StorageClass does not support Archiver
type: warning
if:
- type: function
name: showArchiver
+ type: function
type: block-layout
- elements:
- label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
if:
- type: function
name: isToggleOn|tls
+ type: function
type: block-layout
- elements:
- label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
if:
- type: function
name: isToggleOn|expose
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-mariadb-editor/ui/edit-ui.yaml b/charts/kubedbcom-mariadb-editor/ui/edit-ui.yaml
index 0682bfbac9..cf3c850a81 100644
--- a/charts/kubedbcom-mariadb-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-mariadb-editor/ui/edit-ui.yaml
@@ -1,722 +1,706 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: backupconfiguration
- # label: Backup
- schema: schema/
- elements:
- - type: radio
- label: Schedule a Backup?
- schema: temp/properties/scheduleBackup
+- elements:
+ - if:
+ name: showScheduleBackup
+ type: function
+ init:
+ type: func
+ value: initScheduleBackupForEdit
+ isHorizontal: true
+ label: Schedule a Backup?
+ options:
+ - text: "Yes"
+ value: "yes"
+ - text: "No"
+ value: "no"
+ schema: temp/properties/scheduleBackup
+ type: radio
+ watcher:
+ func: onScheduleBackupChange
+ paths:
+ - temp/properties/scheduleBackup
+ - elements:
+ - if:
+ name: isBackupDataLoadedTrue
+ type: function
+ init:
+ type: func
+ value: setBackupType
isHorizontal: true
+ label: Select Backup Type
+ loader: getTypes
options:
- - text: 'Yes'
- value: 'yes'
- - text: 'No'
- value: 'no'
+ - description: Create, Delete or Modify BackupConfig
+ text: BackupConfig
+ value: BackupConfig
+ - description: Enable/Disable BackupBlueprint
+ text: BackupBlueprint
+ value: BackupBlueprint
+ schema: temp/properties/backupType
+ type: radio
+ watcher:
+ func: onBackupTypeChange
+ paths:
+ - temp/properties/backupType
+ - elements:
+ - label: Select Context
+ loader: getContext
+ schema: temp/properties/backupConfigContext
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onContextChange
+ paths:
+ - temp/properties/backupConfigContext
+ - if:
+ name: showConfigList
+ type: function
+ label: Select BackupConfig
+ loader: getConfigList
+ schema: temp/properties/config
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onConfigChange
+ paths:
+ - temp/properties/config
+ - if:
+ name: showSchedule
+ type: function
+ label: Schedule
+ loader:
+ name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
+ watchPaths:
+ - temp/properties/config
+ schema: temp/properties/schedule
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
+ paths:
+ - temp/properties/schedule
+ - fullwidth: true
+ if:
+ name: showPause
+ type: function
+ init:
+ type: func
+ value: setPausedValue
+ label: Paused
+ schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
+ type: switch
+ watcher:
+ func: setPausedValue
+ paths:
+ - temp/properties/config
+ if:
+ name: isBackupType|BackupConfig
+ type: function
+ label: Config
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setBlueprintSwitch
+ label: Enable Backup Blueprint
+ schema: temp/properties/blueprintEnabled
+ type: switch
+ watcher:
+ func: onBlueprintChange
+ paths:
+ - temp/properties/blueprintEnabled
if:
+ name: isBackupType|BackupBlueprint
type: function
- name: showScheduleBackup
+ label: Blueprint
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setArchiverSwitch
+ label: Enable Archiver
+ schema: temp/properties/archiverEnabled
+ type: switch
+ watcher:
+ func: onArchiverChange
+ paths:
+ - temp/properties/archiverEnabled
+ if:
+ name: isBackupType|Archiver
+ type: function
+ label: Archiver
+ type: block-layout
+ if:
+ name: showBackupForm
+ type: function
+ label: Backup Form
+ loader: initBackupData
+ showLabels: false
+ type: block-layout
+ id: backupconfiguration
+ schema: schema/
+ type: single-step-form
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getMariaDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: initScheduleBackupForEdit
+ value: setTrigger|autoscalingKubedbComMariaDBAutoscaler/spec/compute/mariadb/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/mariadb/properties/trigger
+ type: switch
watcher:
- func: onScheduleBackupChange
+ func: onTriggerChange|compute/mariadb
paths:
- - temp/properties/scheduleBackup
- - type: block-layout
- label: Backup Form
- showLabels: false
- loader: initBackupData
- if:
- type: function
- name: showBackupForm
- elements:
- - type: radio
- label: Select Backup Type
- schema: temp/properties/backupType
- isHorizontal: true
- options:
- - text: BackupConfig
- value: BackupConfig
- description: 'Create, Delete or Modify BackupConfig'
- - text: BackupBlueprint
- value: BackupBlueprint
- description: Enable/Disable BackupBlueprint
+ - temp/properties/compute/properties/mariadb/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupDataLoadedTrue
init:
type: func
- value: setBackupType
- loader: getTypes
+ value: setAllowedMachine|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
watcher:
- func: onBackupTypeChange
+ func: onMachineChange
paths:
- - temp/properties/backupType
- - type: block-layout
- label: Config
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|BackupConfig
- elements:
- - type: select
- label: Select Context
- schema: temp/properties/backupConfigContext
- validation:
- type: required
- loader: getContext
- watcher:
- func: onContextChange
- paths:
- - temp/properties/backupConfigContext
- - type: select
- label: Select BackupConfig
- schema: temp/properties/config
- validation:
- type: required
- if:
- type: function
- name: showConfigList
- loader: getConfigList
- watcher:
- func: onConfigChange
- paths:
- - temp/properties/config
- - type: input
- label: Schedule
- schema: temp/properties/schedule
- validation:
- type: required
- if:
- type: function
- name: showSchedule
- loader:
- name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
- watchPaths:
- - temp/properties/config
- watcher:
- func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
- paths:
- - temp/properties/schedule
- - type: switch
- label: Paused
- fullwidth: true
- schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
- if:
- type: function
- name: showPause
- watcher:
- func: setPausedValue
- paths:
- - temp/properties/config
- init:
- type: func
- value: setPausedValue
- - type: block-layout
- label: Blueprint
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupType|BackupBlueprint
- elements:
- - type: switch
- label: Enable Backup Blueprint
- fullwidth: true
- schema: temp/properties/blueprintEnabled
- init:
- type: func
- value: setBlueprintSwitch
- watcher:
- func: onBlueprintChange
- paths:
- - temp/properties/blueprintEnabled
- - type: block-layout
- label: Archiver
+ init:
+ type: func
+ value: setAllowedMachine|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange
+ paths:
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|Archiver
- elements:
- - type: switch
- label: Enable Archiver
- fullwidth: true
- schema: temp/properties/archiverEnabled
- init:
- type: func
- value: setArchiverSwitch
- watcher:
- func: onArchiverChange
- paths:
- - temp/properties/archiverEnabled
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|mariadb
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/controlledResources
+ type: select
+ label: Mariadb
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMariaDBAutoscaler/spec/storage/mariadb/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/mariadb/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/mariadb
+ paths:
+ - temp/properties/storage/properties/mariadb/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/expansionMode
+ type: select
+ - elements:
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComMariaDB/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComMariaDBAutoscaler/spec/storage/mariadb/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComMariaDBAutoscaler/spec/storage/mariadb/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/upperBound
+ label: Mariadb
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComMariaDB/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMariaDB/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getMariaDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
if:
+ name: returnFalse
type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
showLabels: false
- loader: fetchTopologyMachines
- elements:
- # mariadb mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMariaDB/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMariaDB/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
type: func
- value: setTrigger|autoscalingKubedbComMariaDBAutoscaler/spec/compute/mariadb/trigger
- schema: temp/properties/compute/properties/mariadb/properties/trigger
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
watcher:
- func: onTriggerChange|compute/mariadb
+ func: onValueFromChange
paths:
- - temp/properties/compute/properties/mariadb/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Mariadb
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|min
- loader:
- name: getMachines|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|max
- loader:
- name: getMachines|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|mariadb
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/mariadb/properties/controlledResources
-
- - type: block-layout
- label: Node Topology
- if:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: switch
- label: Trigger
- fullwidth: true
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComMariaDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComMariaDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
type: func
- value: setTrigger|autoscalingKubedbComMariaDBAutoscaler/spec/storage/mariadb/trigger
- schema: temp/properties/storage/properties/mariadb/properties/trigger
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onTriggerChange|storage/mariadb
+ func: onEnvArrayChange
paths:
- - temp/properties/storage/properties/mariadb/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/expansionMode
- - type: block-layout
- showLabels: false
- elements:
- - type: block-layout
- label: Mariadb
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComMariaDB/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComMariaDBAutoscaler/spec/storage/mariadb/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/scalingRules
- # elements:
- # - type: input
- # label: AppliesUpto (In Storage units)
- # schema: appliesUpto
- # - type: input
- # label: Threshold (In %, Or In Storage Units)
- # schema: threshold
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComMariaDBAutoscaler/spec/storage/mariadb/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/storage/properties/mariadb/properties/upperBound
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComMariaDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComMariaDB/spec/monitor
- watcher:
- func: onEnableMonitoringChange
- paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
if:
+ name: showCustomizeExporterSection
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMariaDB/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMariaDB/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMariaDB/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
- init:
- type: static
- value: true
- watcher:
- func: onCustomizeExporterChange
- paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComMariaDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComMariaDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComMariaDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
- init:
- type: func
- value: isBindingAlreadyOn
- watcher:
- func: addOrRemoveBinding
- paths:
- - temp/properties/binding
\ No newline at end of file
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-memcached-editor-options/ui/create-ui.yaml b/charts/kubedbcom-memcached-editor-options/ui/create-ui.yaml
index d74b4dc185..e410b6614d 100644
--- a/charts/kubedbcom-memcached-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-memcached-editor-options/ui/create-ui.yaml
@@ -1,102 +1,104 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Memcached version you want to deploy on Kubernetes. The chosen version determines the Memcached engine features, compatibility, and runtime behavior of your database.
+- elements:
+ - label: ""
+ subtitle: Select the Memcached version you want to deploy on Kubernetes. The chosen
+ version determines the Memcached engine features, compatibility, and runtime
+ behavior of your database.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Memcached/versions
if:
- type: function
name: isToggleOn|databases/Memcached/versions
+ type: function
label: Database version
+ loader: getAdminOptions|databases/Memcached/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/Memcached/mode
- loader: getAdminOptions|databases/Memcached/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/Memcached/mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/Memcached/mode
isHorizontal: true
label: Database mode
+ loader: getAdminOptions|databases/Memcached/mode
schema: schema/properties/spec/properties/mode
type: radio
- if:
- type: function
name: isEqualToModelPathValue|Replicaset|/spec/mode
+ type: function
label: Replicaset number
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
- showLabels: true
- elements:
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
- init:
type: func
value: setMachineToCustom
- loader: getMachineListForOptions
label: Machine
+ loader: getMachineListForOptions
schema: schema/properties/spec/properties/podResources/properties/machine
type: select
- - init:
+ - if:
+ name: isMachineCustom
+ type: function
+ init:
type: func
value: setLimits|cpu
- if:
- type: function
- name: isMachineCustom
label: cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
func: setRequests|cpu
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom
+ type: function
+ init:
type: func
value: setLimits|memory
- if:
- type: function
- name: isMachineCustom
label: memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
func: setRequests|memory
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
label: Machine_profile
showLabels: true
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: object-item
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
options:
- description: options.deletionPolicy.delete.description
@@ -114,58 +116,57 @@ step:
schema: schema/properties/spec/properties/deletionPolicy
type: select
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -177,8 +178,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -191,19 +192,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -216,22 +217,23 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-memcached-editor/ui/edit-ui.yaml b/charts/kubedbcom-memcached-editor/ui/edit-ui.yaml
index e8f40bda5c..eaedbedf3f 100644
--- a/charts/kubedbcom-memcached-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-memcached-editor/ui/edit-ui.yaml
@@ -1,474 +1,470 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComMemcached/spec/monitor
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComMemcached/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/agent
+ type: radio
watcher:
- func: onEnableMonitoringChange
+ func: onAgentChange
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMemcached/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMemcached/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMemcached/spec/monitor/agent
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
+ type: function
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComMemcached/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComMemcached/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
- type: static
- value: prometheus.io/operator
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onAgentChange
+ func: onEnvArrayChange
paths:
- - schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMemcachedAutoscaler/spec/compute/memcached/trigger
+ label: Trigger
+ options:
+ - text: "On"
+ value: "On"
+ - text: "Off"
+ value: "Off"
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/trigger
+ type: select
+ - label: Pod LifeTime Threshold
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/podLifeTimeThreshold
+ type: input
+ - label: Resource Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/resourceDiffPercentage
+ type: threshold-input
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMemcached/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
+ init:
+ type: func
+ value: setAllowedMachine|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|memcached
+ paths:
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMemcached/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- buttonClass: is-light is-outlined
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMemcached/spec/monitor/agent
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
- init:
- type: static
- value: true
+ init:
+ type: func
+ value: setAllowedMachine|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
watcher:
- func: onCustomizeExporterChange
- paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
+ func: onMachineChange|memcached
+ paths:
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- schema: schema/properties/resources/properties/kubedbComMemcached/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComMemcached/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComMemcached/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|memcached
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/controlledResources
+ type: select
+ label: Memcached
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select Node Topology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # memcached mode
- - type: block-layout
- label: Memcached
- showLabels: true
- elements:
- - type: select
- label: Trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComMemcachedAutoscaler/spec/compute/memcached/trigger
- options:
- - text: 'On'
- value: 'On'
- - text: 'Off'
- value: 'Off'
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/trigger
- - type: input
- label: Pod LifeTime Threshold
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/podLifeTimeThreshold
- - type: threshold-input
- label: Resource Diff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/resourceDiffPercentage
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|min
- loader:
- name: getMachines|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange|memcached
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|max
- loader:
- name: getMachines|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange|memcached
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|memcached
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/memcached/properties/controlledResources
-
- - type: block-layout
- label: Node Topology
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: select
- label: Select Node Topology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: select
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- options:
- - text: 5 minutes
- value: 5m0s
- - text: 10 minutes
- value: 10m0s
- - text: 30 minutes
- value: 30m0s
- - text: 1 hour
- value: 1h0m
- - text: 2 hours
- value: 2h0m
- - text: 5 hours
- value: 5h0m
- - text: 10 hours
- value: 10h0m
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ - text: 5 minutes
+ value: 5m0s
+ - text: 10 minutes
+ value: 10m0s
+ - text: 30 minutes
+ value: 30m0s
+ - text: 1 hour
+ value: 1h0m
+ - text: 2 hours
+ value: 2h0m
+ - text: 5 hours
+ value: 5h0m
+ - text: 10 hours
+ value: 10h0m
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: select
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComMemcachedAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-mongodb-editor-options/ui/create-ui.yaml b/charts/kubedbcom-mongodb-editor-options/ui/create-ui.yaml
index f3ba788bff..2ad0ca6fed 100644
--- a/charts/kubedbcom-mongodb-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-mongodb-editor-options/ui/create-ui.yaml
@@ -1,90 +1,89 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the MongoDB version you want to deploy on Kubernetes. The chosen version determines the MongoDB engine features, compatibility, and runtime behavior of your database cluster.
+- elements:
+ - label: ""
+ subtitle: Select the MongoDB version you want to deploy on Kubernetes. The chosen
+ version determines the MongoDB engine features, compatibility, and runtime behavior
+ of your database cluster.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/MongoDB/versions
if:
- type: function
name: isToggleOn|databases/MongoDB/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/MongoDB/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/MongoDB/mode
- loader: getAdminOptions|databases/MongoDB/mode
- isHorizontal: true
- if:
- type: function
+ - if:
name: isToggleOn|databases/MongoDB/mode
- label: Database Mode
- watcher:
- func: clearArbiterHidden
- paths:
- - schema/properties/spec/properties/mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/MongoDB/mode
+ isHorizontal: true
+ label: Database Mode
+ loader: getAdminOptions|databases/MongoDB/mode
schema: schema/properties/spec/properties/mode
type: radio
+ watcher:
+ func: clearArbiterHidden
+ paths:
+ - schema/properties/spec/properties/mode
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Replicaset Name
+ schema: schema/properties/spec/properties/replicaSet/properties/name
+ type: input
+ - label: Replicaset Number
+ schema: schema/properties/spec/properties/replicaSet/properties/replicas
+ type: input
+ watcher:
+ func: updateSuffix
+ paths:
+ - schema/properties/spec/properties/replicaSet/properties/replicas
showLabels: true
- elements:
- - label: Replicaset Name
- schema: schema/properties/spec/properties/replicaSet/properties/name
- type: input
- - label: Replicaset Number
- watcher:
- func: updateSuffix
- paths:
- - schema/properties/spec/properties/replicaSet/properties/replicas
- schema: schema/properties/spec/properties/replicaSet/properties/replicas
- type: input
+ type: horizontal-layout
- if:
- type: function
- name: isTlsOn
+ name: isTlsOn
+ type: function
label: Do you want to access mongodb+srv style DNS?
- watcher:
- func: onHorizonsChange
- paths:
- - discriminator/enableHorizons
schema: discriminator/enableHorizons
type: switch
- - if:
- type: function
+ watcher:
+ func: onHorizonsChange
+ paths:
+ - discriminator/enableHorizons
+ - if:
name: isHorizonsOn
+ type: function
label: Horizons count should be equal to Replica Number.
type: alert
- - type: array-item-form
- element:
+ - element:
label: Add a new horizon dns for pod
type: input
if:
- type: function
name: isHorizonsOn
+ type: function
label: Horizons
+ schema: schema/properties/spec/properties/replicaSet/properties/horizons
+ type: array-item-form
+ validation:
+ name: isHorizonsValid
+ type: custom
watcher:
func: updateSuffix
paths:
- - schema/properties/spec/properties/replicaSet/properties/horizons
- schema: schema/properties/spec/properties/replicaSet/properties/horizons
- validation:
- type: custom
- name: isHorizonsValid
+ - schema/properties/spec/properties/replicaSet/properties/horizons
if:
- type: function
name: isEqualToModelPathValue|Replicaset|/spec/mode
+ type: function
type: block-layout
- elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Configure Shard Nodes to define how MongoDB data is partitioned, replicated, and resourced across your Kubernetes cluster.
- - type: horizontal-layout
- showLabels: true
- elements:
+ - label: ""
+ subtitle: Configure Shard Nodes to define how MongoDB data is partitioned,
+ replicated, and resourced across your Kubernetes cluster.
+ type: label-element
+ - elements:
- label: Shards
schema: schema/properties/spec/properties/shardTopology/properties/shard/properties/shards
type: input
@@ -94,253 +93,259 @@ step:
- label: Storage size
schema: schema/properties/spec/properties/shardTopology/properties/shard/properties/persistence/properties/size
type: input
+ showLabels: true
+ type: horizontal-layout
- elements:
- - type : horizontal-layout
- showLabels: true
- elements:
- - init:
+ - elements:
+ - init:
type: func
value: setMachineToCustom|shardTopology/shard
- loader: getMachineListForOptions
label: Machine
+ loader: getMachineListForOptions
schema: schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/machine
type: select
- - init:
+ - if:
+ name: isMachineCustom|shardTopology/shard
+ type: function
+ init:
type: func
value: setLimits|cpu|shardTopology/shard
- if:
- type: function
- name: isMachineCustom|shardTopology/shard
label: cpu
+ schema: schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
func: setRequests|cpu|shardTopology/shard
paths:
- - schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
+ - schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom|shardTopology/shard
+ type: function
+ init:
type: func
value: setLimits|memory|shardTopology/shard
- if:
- type: function
- name: isMachineCustom|shardTopology/shard
label: memory
+ schema: schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
func: setRequests|memory|shardTopology/shard
paths:
- - schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/shardTopology/properties/shard/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
type: block-layout
- label: Shard Nodes
+ label: Shard Nodes
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Config Servers store metadata about the sharded cluster, including chunk distribution and shard configuration.They must run as a replica set to ensure cluster consistency and availability.
- - type: horizontal-layout
- showLabels: true
- elements:
+ - label: ""
+ subtitle: Config Servers store metadata about the sharded cluster, including
+ chunk distribution and shard configuration.They must run as a replica set
+ to ensure cluster consistency and availability.
+ type: label-element
+ - elements:
- label: Replicaset Number
schema: schema/properties/spec/properties/shardTopology/properties/configServer/properties/replicas
type: input
- label: Storage size
schema: schema/properties/spec/properties/shardTopology/properties/configServer/properties/persistence/properties/size
type: input
+ showLabels: true
+ type: horizontal-layout
- elements:
- - type : horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom|shardTopology/configServer
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/machine
+ type: select
+ - if:
+ name: isMachineCustom|shardTopology/configServer
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|shardTopology/configServer
+ label: cpu
+ schema: schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|shardTopology/configServer
+ paths:
+ - schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom|shardTopology/configServer
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|shardTopology/configServer
+ label: memory
+ schema: schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|shardTopology/configServer
+ paths:
+ - schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom|shardTopology/configServer
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|shardTopology/configServer
- if:
- type: function
- name: isMachineCustom|shardTopology/configServer
- label: cpu
- watcher:
- func: setRequests|cpu|shardTopology/configServer
- paths:
- - schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|shardTopology/configServer
- if:
- type: function
- name: isMachineCustom|shardTopology/configServer
- label: memory
- watcher:
- func: setRequests|memory|shardTopology/configServer
- paths:
- - schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/shardTopology/properties/configServer/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
type: block-layout
label: Config Server
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Mongos acts as the query router for the sharded cluster, directing client requests to the appropriate shards based on metadata from Config Servers.
+ - label: ""
+ subtitle: Mongos acts as the query router for the sharded cluster, directing
+ client requests to the appropriate shards based on metadata from Config
+ Servers.
+ type: label-element
- customClass: mt-10
label: Replicaset number
schema: schema/properties/spec/properties/shardTopology/properties/mongos/properties/replicas
type: input
- - type: horizontal-layout
- showLabels: true
- elements:
+ - elements:
- init:
type: func
value: setMachineToCustom|shardTopology/mongos
- loader: getMachineListForOptions
label: Machine
+ loader: getMachineListForOptions
schema: schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/machine
type: select
- - init:
+ - if:
+ name: isMachineCustom|shardTopology/mongos
+ type: function
+ init:
type: func
value: setLimits|cpu|shardTopology/mongos
- if:
- type: function
- name: isMachineCustom|shardTopology/mongos
label: Cpu
+ schema: schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
func: setRequests|cpu|shardTopology/mongos
paths:
- - schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
+ - schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom|shardTopology/mongos
+ type: function
+ init:
type: func
value: setLimits|memory|shardTopology/mongos
- if:
- type: function
- name: isMachineCustom|shardTopology/mongos
label: Memory
+ schema: schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
func: setRequests|memory|shardTopology/mongos
paths:
- - schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/shardTopology/properties/mongos/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
label: Mongos
showLabels: true
type: block-layout
- if:
- type: function
+ if:
name: isEqualToModelPathValue|Sharded|/spec/mode
+ type: function
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|schema/properties/spec/properties/podResources/properties/machine
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom|schema/properties/spec/properties/podResources/properties/machine
- if:
- type: function
- name: isMachineCustom
- label: cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- if:
- type: function
- name: isMachineCustom
- label: Memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: notEqualToDatabaseMode|Sharded
+ type: function
label: Machine profile
showLabels: true
type: block-layout
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage select
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - if:
+ name: showStorageSizeField
+ type: function
+ label: Storage size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage select
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - if:
- type: function
- name: showStorageSizeField
- label: Storage size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -356,224 +361,232 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
- - if:
- type: function
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
+ - if:
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
- - if:
+ - temp/createAuthSecret
+ - if:
+ name: showReferSecretSwitch
type: function
- name: showReferSecretSwitch
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
+ - temp/referSecret
+ - if:
+ name: showSecretDropdown
type: function
- name: showSecretDropdown
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: notEqualToDatabaseMode|Standalone
+ type: function
label: Enable Arbiter?
schema: schema/properties/spec/properties/arbiter/properties/enabled
type: switch
- elements:
- - type: label-element
- label: ''
- subtitle: Configure resource allocation for arbiter nodes, which participate in elections but do not store data. Arbiters help maintain quorum in replica sets with minimal resource overhead.
- - type: horizontal-layout
- showLabels: true
- elements:
+ - label: ""
+ subtitle: Configure resource allocation for arbiter nodes, which participate
+ in elections but do not store data. Arbiters help maintain quorum in replica
+ sets with minimal resource overhead.
+ type: label-element
+ - elements:
- init:
type: func
value: setMachineToCustom|arbiter
- loader: getMachineListForOptions
label: Machine
+ loader: getMachineListForOptions
schema: schema/properties/spec/properties/arbiter/properties/podResources/properties/machine
type: select
- - init:
+ - if:
+ name: isMachineCustom|arbiter
+ type: function
+ init:
type: func
value: setLimits|cpu|arbiter
- if:
- type: function
- name: isMachineCustom|arbiter
label: cpu
+ schema: schema/properties/spec/properties/arbiter/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
func: setRequests|cpu|arbiter
paths:
- - schema/properties/spec/properties/arbiter/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/arbiter/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/arbiter/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
+ - schema/properties/spec/properties/arbiter/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/arbiter/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom|arbiter
+ type: function
+ init:
type: func
value: setLimits|memory|arbiter
- if:
- type: function
- name: isMachineCustom|arbiter
label: memory
+ schema: schema/properties/spec/properties/arbiter/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
func: setRequests|memory|arbiter
paths:
- - schema/properties/spec/properties/arbiter/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/arbiter/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/arbiter/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/arbiter/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/arbiter/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
if:
- type: function
name: showArbiter
+ type: function
label: Arbiter
showLabels: true
type: block-layout
- if:
- type: function
name: notEqualToDatabaseMode|Standalone
+ type: function
label: Enable hidden?
schema: schema/properties/spec/properties/hidden/properties/enabled
type: switch
- elements:
- - type: label-element
- label: ''
- subtitle: Configure hidden members that replicate data invisibly to clients. Define replicas, storage, and resource allocation for dedicated backup, analytics, or reporting operations.
- - type: horizontal-layout
- showLabels: true
- elements:
+ - label: ""
+ subtitle: Configure hidden members that replicate data invisibly to clients.
+ Define replicas, storage, and resource allocation for dedicated backup,
+ analytics, or reporting operations.
+ type: label-element
+ - elements:
- label: Replicas
schema: schema/properties/spec/properties/hidden/properties/replicas
type: input
- label: Persistence Size
schema: schema/properties/spec/properties/hidden/properties/persistence/properties/size
type: input
- - type: horizontal-layout
showLabels: true
- elements:
+ type: horizontal-layout
+ - elements:
- init:
type: func
value: setMachineToCustom|hidden
- loader: getMachineListForOptions
label: Machine
+ loader: getMachineListForOptions
schema: schema/properties/spec/properties/hidden/properties/podResources/properties/machine
type: select
- - init:
+ - if:
+ name: isMachineCustom|hidden
+ type: function
+ init:
type: func
value: setLimits|cpu|hidden
- if:
- type: function
- name: isMachineCustom|hidden
label: cpu
+ schema: schema/properties/spec/properties/hidden/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
func: setRequests|cpu|hidden
paths:
- - schema/properties/spec/properties/hidden/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/hidden/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/hidden/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
+ - schema/properties/spec/properties/hidden/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/hidden/properties/podResources/properties/machine
+ - if:
+ name: isMachineCustom|hidden
+ type: function
+ init:
type: func
value: setLimits|memory|hidden
- if:
- type: function
- name: isMachineCustom|hidden
label: memory
+ schema: schema/properties/spec/properties/hidden/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
func: setRequests|memory|hidden
paths:
- - schema/properties/spec/properties/hidden/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/hidden/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/hidden/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/hidden/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/hidden/properties/podResources/properties/machine
+ showLabels: true
+ type: horizontal-layout
if:
- type: function
name: showHidden
+ type: function
label: Hidden
showLabels: true
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|pointInTimeRecovery
+ type: function
+ init:
type: func
value: getDefault|pointInTimeRecovery
- if:
- type: function
- name: isToggleOn|pointInTimeRecovery
label: Point in-time Recovery?
schema: temp/recovery
type: switch
- elements:
- - type: label-element
- label: ''
- subtitle: Restore your database to a specific point in time by selecting the source backup namespace, database name, and the exact timestamp for recovery.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Restore your database to a specific point in time by selecting the
+ source backup namespace, database name, and the exact timestamp for recovery.
+ type: label-element
+ - elements:
+ - forceRequired: true
+ label: Namespace
+ schema: temp/refNamespace
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refNamespace
+ - label: Name
+ schema: temp/refDBName
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refDBName
showLabels: true
- elements:
- - label: Namespace
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refNamespace
- forceRequired: true
- validation:
- type: required
- schema: temp/refNamespace
- type: input
- - label: Name
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refDBName
- validation:
- type: required
- schema: temp/refDBName
- type: input
+ type: horizontal-layout
- label: Recovery Timestamp
schema: schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
type: date-time
watcher:
func: onTimestampChange
paths:
- - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
+ - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
if:
- type: function
name: showRecovery
+ type: function
label: Point in-time Recovery
showLabels: true
type: block-layout
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment
options:
- description: shared
@@ -585,8 +598,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: ClusterTier
options:
@@ -599,19 +612,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: labels.placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: NodeTopology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -624,16 +637,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -647,86 +660,86 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
-
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- disable: showArchiverAlert
label: Enable Archiver?
+ schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
+ type: switch
watcher:
func: onArchiverChange
paths:
- - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- if:
- type: function
name: showArchiverAlert
+ type: function
label: The selected StorageClass does not support Archiver
type: warning
if:
- type: function
name: showArchiver
+ type: function
type: block-layout
- elements:
- - init:
+ - if:
+ name: isToggleOn|tls
+ type: function
+ init:
type: func
value: checkHostnameOrIP
- if:
- type: function
- name: isToggleOn|tls
label: Enable TLS?
+ schema: schema/properties/spec/properties/admin/properties/tls/properties/default
+ type: switch
watcher:
func: checkHostnameOrIP
paths:
- - schema/properties/spec/properties/admin/properties/tls/properties/default
- schema: schema/properties/spec/properties/admin/properties/tls/properties/default
- type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - schema/properties/spec/properties/admin/properties/tls/properties/default
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
- elements:
- - init:
+ - if:
+ name: isToggleOn|expose
+ type: function
+ init:
type: func
value: checkHostnameOrIP
- if:
- type: function
- name: isToggleOn|expose
label: Expose via Gateway?
+ schema: schema/properties/spec/properties/admin/properties/expose/properties/default
+ type: switch
watcher:
func: checkHostnameOrIP
paths:
- - schema/properties/spec/properties/admin/properties/expose/properties/default
- schema: schema/properties/spec/properties/admin/properties/expose/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/expose/properties/default
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
-type: multi-step-form
\ No newline at end of file
+ loader: initBundle
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-mongodb-editor/ui/edit-ui.yaml b/charts/kubedbcom-mongodb-editor/ui/edit-ui.yaml
index ca0aaac393..6b41d1823f 100644
--- a/charts/kubedbcom-mongodb-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-mongodb-editor/ui/edit-ui.yaml
@@ -1,1725 +1,1725 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: backupconfiguration
- # label: Backup
- schema: schema/
- elements:
- - type: radio
- label: Schedule a Backup?
- schema: temp/properties/scheduleBackup
- isHorizontal: true
- options:
- - text: 'Yes'
- value: 'yes'
- - text: 'No'
- value: 'no'
+- elements:
+ - if:
+ name: showScheduleBackup
+ type: function
+ init:
+ type: func
+ value: initScheduleBackupForEdit
+ isHorizontal: true
+ label: Schedule a Backup?
+ options:
+ - text: "Yes"
+ value: "yes"
+ - text: "No"
+ value: "no"
+ schema: temp/properties/scheduleBackup
+ type: radio
+ watcher:
+ func: onScheduleBackupChange
+ paths:
+ - temp/properties/scheduleBackup
+ - elements:
+ - if:
+ name: isBackupDataLoadedTrue
+ type: function
+ init:
+ type: func
+ value: setBackupType
+ isHorizontal: true
+ label: Select Backup Type
+ loader: getTypes
+ options:
+ - description: Create, Delete or Modify BackupConfig
+ text: BackupConfig
+ value: BackupConfig
+ - description: Enable/Disable BackupBlueprint
+ text: BackupBlueprint
+ value: BackupBlueprint
+ schema: temp/properties/backupType
+ type: radio
+ watcher:
+ func: onBackupTypeChange
+ paths:
+ - temp/properties/backupType
+ - elements:
+ - label: Select Context
+ loader: getContext
+ schema: temp/properties/backupConfigContext
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onContextChange
+ paths:
+ - temp/properties/backupConfigContext
+ - if:
+ name: showConfigList
+ type: function
+ label: Select BackupConfig
+ loader: getConfigList
+ schema: temp/properties/config
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onConfigChange
+ paths:
+ - temp/properties/config
+ - if:
+ name: showSchedule
+ type: function
+ label: Schedule
+ loader:
+ name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
+ watchPaths:
+ - temp/properties/config
+ schema: temp/properties/schedule
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
+ paths:
+ - temp/properties/schedule
+ - fullwidth: true
if:
+ name: showPause
type: function
- name: showScheduleBackup
init:
type: func
- value: initScheduleBackupForEdit
+ value: setPausedValue
+ label: Paused
+ schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
+ type: switch
watcher:
- func: onScheduleBackupChange
+ func: setPausedValue
paths:
- - temp/properties/scheduleBackup
- - type: block-layout
- label: Backup Form
- showLabels: false
- loader: initBackupData
+ - temp/properties/config
+ if:
+ name: isBackupType|BackupConfig
+ type: function
+ label: Config
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setBlueprintSwitch
+ label: Enable Backup Blueprint
+ schema: temp/properties/blueprintEnabled
+ subtitle: Use a backup blueprint template to automatically configure backups
+ for similar databases
+ type: switch
+ watcher:
+ func: onBlueprintChange
+ paths:
+ - temp/properties/blueprintEnabled
+ if:
+ name: isBackupType|BackupBlueprint
+ type: function
+ label: Blueprint
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setArchiverSwitch
+ label: Enable Archiver
+ schema: temp/properties/archiverEnabled
+ type: switch
+ watcher:
+ func: onArchiverChange
+ paths:
+ - temp/properties/archiverEnabled
+ if:
+ name: isBackupType|Archiver
+ type: function
+ label: Archiver
+ type: block-layout
+ if:
+ name: showBackupForm
+ type: function
+ label: Backup Form
+ loader: initBackupData
+ showLabels: false
+ type: block-layout
+ id: backupconfiguration
+ schema: schema/
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComMongoDB/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMongoDB/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
if:
+ name: returnFalse
type: function
- name: showBackupForm
- elements:
- - type: radio
- label: Select Backup Type
- schema: temp/properties/backupType
- isHorizontal: true
- options:
- - text: BackupConfig
- value: BackupConfig
- description: 'Create, Delete or Modify BackupConfig'
- - text: BackupBlueprint
- value: BackupBlueprint
- description: Enable/Disable BackupBlueprint
- if:
- type: function
- name: isBackupDataLoadedTrue
- init:
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMongoDB/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMongoDB/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
type: func
- value: setBackupType
- loader: getTypes
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
watcher:
- func: onBackupTypeChange
+ func: onValueFromChange
paths:
- - temp/properties/backupType
- - type: block-layout
- label: Config
- if:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
type: function
- name: isBackupType|BackupConfig
- elements:
- - type: select
- label: Select Context
- schema: temp/properties/backupConfigContext
- validation:
- type: required
- loader: getContext
- watcher:
- func: onContextChange
- paths:
- - temp/properties/backupConfigContext
- - type: select
- label: Select BackupConfig
- schema: temp/properties/config
- validation:
- type: required
- if:
- type: function
- name: showConfigList
- loader: getConfigList
- watcher:
- func: onConfigChange
- paths:
- - temp/properties/config
- - type: input
- label: Schedule
- schema: temp/properties/schedule
- validation:
- type: required
- if:
- type: function
- name: showSchedule
- loader:
- name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
- watchPaths:
- - temp/properties/config
- watcher:
- func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
- paths:
- - temp/properties/schedule
- - type: switch
- label: Paused
- fullwidth: true
- schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
- if:
- type: function
- name: showPause
- watcher:
- func: setPausedValue
- paths:
- - temp/properties/config
- init:
- type: func
- value: setPausedValue
- - type: block-layout
- label: Blueprint
- if:
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: isBackupType|BackupBlueprint
- elements:
- - type: switch
- label: Enable Backup Blueprint
- fullwidth: true
- subtitle: Use a backup blueprint template to automatically configure backups for similar databases
- schema: temp/properties/blueprintEnabled
- init:
- type: func
- value: setBlueprintSwitch
- watcher:
- func: onBlueprintChange
- paths:
- - temp/properties/blueprintEnabled
- - type: block-layout
- label: Archiver
- if:
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: isBackupType|Archiver
- elements:
- - type: switch
- label: Enable Archiver
- fullwidth: true
- schema: temp/properties/archiverEnabled
- init:
- type: func
- value: setArchiverSwitch
- watcher:
- func: onArchiverChange
- paths:
- - temp/properties/archiverEnabled
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComMongoDB/spec/monitor
- watcher:
- func: onEnableMonitoringChange
- paths:
- - temp/properties/enableMonitoring
- - type: block-layout
- if:
- type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMongoDB/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMongoDB/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComMongoDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMongoDB/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComMongoDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
- type: static
- value: true
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onCustomizeExporterChange
+ func: onEnvArrayChange
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- loader: setMetadata
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComMongoDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComMongoDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComMongoDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ loader: setMetadata
showLabels: false
- loader: fetchTopologyMachines
- elements:
- # standalone mode
- - type: switch
- label: Trigger
- fullwidth: true
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
+ if:
+ name: mongoTypeEqualsTo|standalone|compute
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/standalone/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/standalone/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/standalone
+ paths:
+ - temp/properties/compute/properties/standalone/properties/trigger
+ - if:
+ name: mongoTypeEqualsTo|standalone|compute
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ if:
+ name: mongoTypeEqualsTo|standalone|compute
+ type: function
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: mongoTypeEqualsTo|standalone|compute
init:
type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/standalone/trigger
- schema: temp/properties/compute/properties/standalone/properties/trigger
+ value: setAllowedMachine|standalone|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|standalone|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-standalone-max
+ schema: temp/properties/allowedMachine-standalone-min
+ type: machine-compare
watcher:
- func: onTriggerChange|compute/standalone
+ func: onMachineChange|standalone
paths:
- - temp/properties/compute/properties/standalone/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- if:
- type: function
- name: mongoTypeEqualsTo|standalone|compute
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/podLifeTimeThreshold
- customClass: width-300
- if:
- type: function
- name: mongoTypeEqualsTo|standalone|compute
- - type: block-layout
- label: Standalone
+ - temp/properties/allowedMachine-standalone-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: mongoTypeEqualsTo|standalone|compute
+ label: Min Allowed
showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-standalone-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|standalone|min
- loader:
- name: getMachines|standalone|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-standalone-max
- watcher:
- func: onMachineChange|standalone
- paths:
- - temp/properties/allowedMachine-standalone-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-standalone-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|standalone|max
- loader:
- name: getMachines|standalone|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-standalone-min
- watcher:
- func: onMachineChange|standalone
- paths:
- - temp/properties/allowedMachine-standalone-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/standalone
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/containerControlledValues
- - type: block-layout
- label: In Memory Storage
- showLabels: true
- if:
- type: function
- name: showStorageMemoryOption
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/inMemoryStorage
- elements:
- - type: threshold-input
- label: Scaling Factor Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/inMemoryStorage/properties/scalingFactorPercentage
- - type: threshold-input
- label: Usage Threshold Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/inMemoryStorage/properties/usageThresholdPercentage
- # replicaset mode
- - type: switch
- label: Trigger
- fullwidth: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: mongoTypeEqualsTo|replicaSet|compute
init:
type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/replicaSet/trigger
- schema: temp/properties/compute/properties/replicaSet/properties/trigger
+ value: setAllowedMachine|standalone|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|standalone|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-standalone-min
+ schema: temp/properties/allowedMachine-standalone-max
+ type: machine-compare
watcher:
- func: onTriggerChange|compute/replicaSet
+ func: onMachineChange|standalone
paths:
- - temp/properties/compute/properties/replicaSet/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- if:
- type: function
- name: mongoTypeEqualsTo|replicaSet|compute
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/podLifeTimeThreshold
- customClass: width-300
- if:
- type: function
- name: mongoTypeEqualsTo|replicaSet|compute
- - type: block-layout
- label: ReplicaSet
- if:
- type: function
- name: mongoTypeEqualsTo|replicaSet|compute
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-replicaSet-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|replicaSet|min
- loader:
- name: getMachines|replicaSet|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-replicaSet-max
- watcher:
- func: onMachineChange|replicaSet
- paths:
- - temp/properties/allowedMachine-replicaSet-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-replicaSet-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|replicaSet|max
- loader:
- name: getMachines|replicaSet|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-replicaSet-min
- watcher:
- func: onMachineChange|replicaSet
- paths:
- - temp/properties/allowedMachine-replicaSet-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/replicaSet
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/containerControlledValues
- - type: block-layout
- label: In Memory Storage
- if:
- type: function
- name: showStorageMemoryOption
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/inMemoryStorage
- elements:
- - type: threshold-input
- label: Scaling Factor Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/inMemoryStorage/properties/scalingFactorPercentage
- - type: threshold-input
- label: Usage Threshold Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/inMemoryStorage/properties/usageThresholdPercentage
- # type sharded
- - type: block-layout
- showLabels: false
- if:
- type: function
- name: mongoTypeEqualsTo|sharded|compute
- elements:
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/shard/trigger
- schema: temp/properties/compute/properties/shard/properties/trigger
- watcher:
- func: onTriggerChange|compute/shard
- paths:
- - temp/properties/compute/properties/shard/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Shard
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-shard-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|shard|min
- loader:
- name: getMachines|shard|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-shard-max
- watcher:
- func: onMachineChange|shard
- paths:
- - temp/properties/allowedMachine-shard-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-shard-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|shard|max
- loader:
- name: getMachines|shard|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-shard-min
- watcher:
- func: onMachineChange|shard
- paths:
- - temp/properties/allowedMachine-shard-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/shard
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/containerControlledValues
- - type: block-layout
- label: In Memory Storage
- if:
- type: function
- name: showStorageMemoryOption
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/inMemoryStorage
- elements:
- - type: threshold-input
- label: Scaling Factor Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/inMemoryStorage/properties/scalingFactorPercentage
- - type: threshold-input
- label: Usage Threshold Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/inMemoryStorage/properties/usageThresholdPercentage
-
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/configServer/trigger
- schema: temp/properties/compute/properties/configServer/properties/trigger
- watcher:
- func: onTriggerChange|compute/configServer
- paths:
- - temp/properties/compute/properties/configServer/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Config Server
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-configServer-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|configServer|min
- loader:
- name: getMachines|configServer|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-configServer-max
- watcher:
- func: onMachineChange|configServer
- paths:
- - temp/properties/allowedMachine-configServer-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-configServer-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|configServer|max
- loader:
- name: getMachines|configServer|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-configServer-min
- watcher:
- func: onMachineChange|configServer
- paths:
- - temp/properties/allowedMachine-configServer-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/configServer
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/containerControlledValues
- - type: block-layout
- label: In Memory Storage
- if:
- type: function
- name: showStorageMemoryOption
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/inMemoryStorage
- elements:
- - type: threshold-input
- label: Scaling Factor Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/inMemoryStorage/properties/scalingFactorPercentage
- - type: threshold-input
- label: Usage Threshold Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/inMemoryStorage/properties/usageThresholdPercentage
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/arbiter/trigger
- schema: temp/properties/compute/properties/arbiter/properties/trigger
- watcher:
- func: onTriggerChange|compute/arbiter
- paths:
- - temp/properties/compute/properties/arbiter/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Arbiter
- showLabels: true
- hideBlock: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-arbiter-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|arbiter|min
- loader:
- name: getMachines|arbiter|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-arbiter-max
- watcher:
- func: onMachineChange|arbiter
- paths:
- - temp/properties/allowedMachine-arbiter-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-arbiter-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|arbiter|max
- loader:
- name: getMachines|arbiter|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-arbiter-min
- watcher:
- func: onMachineChange|arbiter
- paths:
- - temp/properties/allowedMachine-arbiter-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/arbiter
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/containerControlledValues
- - type: block-layout
- label: In Memory Storage
- if:
- type: function
- name: showStorageMemoryOption
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/inMemoryStorage
- elements:
- - type: threshold-input
- label: Scaling Factor Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/inMemoryStorage/properties/scalingFactorPercentage
- - type: threshold-input
- label: Usage Threshold Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/inMemoryStorage/properties/usageThresholdPercentage
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/hidden/trigger
- schema: temp/properties/compute/properties/hidden/properties/trigger
- watcher:
- func: onTriggerChange|compute/hidden
- paths:
- - temp/properties/compute/properties/hidden/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Hidden
- showLabels: true
- hideBlock: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-hidden-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|hidden|min
- loader:
- name: getMachines|hidden|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-hidden-max
- watcher:
- func: onMachineChange|hidden
- paths:
- - temp/properties/allowedMachine-hidden-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-hidden-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|hidden|max
- loader:
- name: getMachines|hidden|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-hidden-min
- watcher:
- func: onMachineChange|hidden
- paths:
- - temp/properties/allowedMachine-hidden-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/hidden
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/containerControlledValues
- - type: block-layout
- label: In Memory Storage
- if:
- type: function
- name: showStorageMemoryOption
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/inMemoryStorage
- elements:
- - type: threshold-input
- label: Scaling Factor Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/inMemoryStorage/properties/scalingFactorPercentage
- - type: threshold-input
- label: Usage Threshold Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/inMemoryStorage/properties/usageThresholdPercentage
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/mongos/trigger
- schema: temp/properties/compute/properties/mongos/properties/trigger
- watcher:
- func: onTriggerChange|compute/mongos
- paths:
- - temp/properties/compute/properties/mongos/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Mongos
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-mongos-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|mongos|min
- loader:
- name: getMachines|mongos|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-mongos-max
- watcher:
- func: onMachineChange|mongos
- paths:
- - temp/properties/allowedMachine-mongos-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-mongos-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|mongos|max
- loader:
- name: getMachines|mongos|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-mongos-min
- watcher:
- func: onMachineChange|mongos
- paths:
- - temp/properties/allowedMachine-mongos-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/mongos
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/containerControlledValues
- - type: block-layout
- label: In Memory Storage
- if:
- type: function
- name: showStorageMemoryOption
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/inMemoryStorage
- elements:
- - type: threshold-input
- label: Scaling Factor Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/inMemoryStorage/properties/scalingFactorPercentage
- - type: threshold-input
- label: Usage Threshold Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/inMemoryStorage/properties/usageThresholdPercentage
- - type: block-layout
- label: NodeTopology
+ - temp/properties/allowedMachine-standalone-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
- type: function
name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: Scale Up DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: Scale Down DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: block-layout
- label: Readiness Criteria
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/readinessCriteria
- elements:
- - type: threshold-input
- label: Objects Count Diff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/readinessCriteria/properties/objectsCountDiffPercentage
- - type: input
- label: Oplog Max Lag Seconds
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/readinessCriteria/properties/oplogMaxLagSeconds
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- showLabels: false
- elements:
- # standalone mode
- - type: switch
- label: Trigger
- fullwidth: true
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/standalone
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/containerControlledValues
+ type: select
+ - elements:
+ - label: Scaling Factor Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/inMemoryStorage/properties/scalingFactorPercentage
+ type: threshold-input
+ - label: Usage Threshold Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/standalone/properties/inMemoryStorage/properties/usageThresholdPercentage
+ type: threshold-input
+ if:
+ name: showStorageMemoryOption
+ type: function
+ label: In Memory Storage
+ showLabels: true
+ type: block-layout
+ if:
+ name: mongoTypeEqualsTo|standalone|compute
+ type: function
+ label: Standalone
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: mongoTypeEqualsTo|replicaSet|compute
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/replicaSet/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/replicaSet/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/replicaSet
+ paths:
+ - temp/properties/compute/properties/replicaSet/properties/trigger
+ - if:
+ name: mongoTypeEqualsTo|replicaSet|compute
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ if:
+ name: mongoTypeEqualsTo|replicaSet|compute
+ type: function
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: mongoTypeEqualsTo|standalone|storage
init:
type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/standalone/trigger
- schema: temp/properties/storage/properties/standalone/properties/trigger
+ value: setAllowedMachine|replicaSet|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|replicaSet|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-replicaSet-max
+ schema: temp/properties/allowedMachine-replicaSet-min
+ type: machine-compare
watcher:
- func: onTriggerChange|storage/standalone
+ func: onMachineChange|replicaSet
paths:
- - temp/properties/storage/properties/standalone/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: mongoTypeEqualsTo|standalone|storage
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: mongoTypeEqualsTo|standalone|storage
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/expansionMode
- - type: block-layout
- label: Standalone
+ - temp/properties/allowedMachine-replicaSet-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: mongoTypeEqualsTo|standalone|storage
+ label: Min Allowed
showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/standalone/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/standalone/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/upperBound
- # replicaset mode
- - type: switch
- label: Trigger
- fullwidth: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: mongoTypeEqualsTo|replicaSet|storage
init:
type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/replicaSet/trigger
- schema: temp/properties/storage/properties/replicaSet/properties/trigger
+ value: setAllowedMachine|replicaSet|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|replicaSet|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-replicaSet-min
+ schema: temp/properties/allowedMachine-replicaSet-max
+ type: machine-compare
watcher:
- func: onTriggerChange|storage/replicaSet
+ func: onMachineChange|replicaSet
paths:
- - temp/properties/storage/properties/replicaSet/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: mongoTypeEqualsTo|replicaSet|storage
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
+ - temp/properties/allowedMachine-replicaSet-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: mongoTypeEqualsTo|replicaSet|storage
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/replicaSet
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/containerControlledValues
+ type: select
+ - elements:
+ - label: Scaling Factor Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/inMemoryStorage/properties/scalingFactorPercentage
+ type: threshold-input
+ - label: Usage Threshold Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/replicaSet/properties/inMemoryStorage/properties/usageThresholdPercentage
+ type: threshold-input
+ if:
+ name: showStorageMemoryOption
+ type: function
+ label: In Memory Storage
+ showLabels: true
+ type: block-layout
+ if:
+ name: mongoTypeEqualsTo|replicaSet|compute
+ type: function
+ label: ReplicaSet
+ showLabels: true
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/shard/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/shard/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/shard
+ paths:
+ - temp/properties/compute/properties/shard/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|shard|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|shard|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-shard-max
+ schema: temp/properties/allowedMachine-shard-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|shard
+ paths:
+ - temp/properties/allowedMachine-shard-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|shard|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|shard|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-shard-min
+ schema: temp/properties/allowedMachine-shard-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|shard
+ paths:
+ - temp/properties/allowedMachine-shard-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/shard
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/expansionMode
- - type: block-layout
- label: ReplicaSet
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/containerControlledValues
+ type: select
+ - elements:
+ - label: Scaling Factor Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/inMemoryStorage/properties/scalingFactorPercentage
+ type: threshold-input
+ - label: Usage Threshold Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/shard/properties/inMemoryStorage/properties/usageThresholdPercentage
+ type: threshold-input
if:
+ name: showStorageMemoryOption
type: function
- name: mongoTypeEqualsTo|replicaSet|storage
+ label: In Memory Storage
showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/replicaSet/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/replicaSet/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/upperBound
- # sharded mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: mongoTypeEqualsTo|sharded|storage
- init:
- type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/shard/trigger
- schema: temp/properties/storage/properties/shard/properties/trigger
- watcher:
- func: onTriggerChange|storage/shard
- paths:
- - temp/properties/storage/properties/shard/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
+ type: block-layout
+ label: Shard
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/configServer/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/configServer/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/configServer
+ paths:
+ - temp/properties/compute/properties/configServer/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|configServer|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|configServer|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-configServer-max
+ schema: temp/properties/allowedMachine-configServer-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|configServer
+ paths:
+ - temp/properties/allowedMachine-configServer-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|configServer|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|configServer|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-configServer-min
+ schema: temp/properties/allowedMachine-configServer-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|configServer
+ paths:
+ - temp/properties/allowedMachine-configServer-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/configServer
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/containerControlledValues
+ type: select
+ - elements:
+ - label: Scaling Factor Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/inMemoryStorage/properties/scalingFactorPercentage
+ type: threshold-input
+ - label: Usage Threshold Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/configServer/properties/inMemoryStorage/properties/usageThresholdPercentage
+ type: threshold-input
if:
+ name: showStorageMemoryOption
type: function
- name: mongoTypeEqualsTo|sharded|storage
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
+ label: In Memory Storage
+ showLabels: true
+ type: block-layout
+ label: Config Server
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/arbiter/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/arbiter/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/arbiter
+ paths:
+ - temp/properties/compute/properties/arbiter/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|arbiter|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|arbiter|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-arbiter-max
+ schema: temp/properties/allowedMachine-arbiter-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|arbiter
+ paths:
+ - temp/properties/allowedMachine-arbiter-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|arbiter|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|arbiter|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-arbiter-min
+ schema: temp/properties/allowedMachine-arbiter-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|arbiter
+ paths:
+ - temp/properties/allowedMachine-arbiter-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/arbiter
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/containerControlledValues
+ type: select
+ - elements:
+ - label: Scaling Factor Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/inMemoryStorage/properties/scalingFactorPercentage
+ type: threshold-input
+ - label: Usage Threshold Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/arbiter/properties/inMemoryStorage/properties/usageThresholdPercentage
+ type: threshold-input
if:
+ name: showStorageMemoryOption
type: function
- name: mongoTypeEqualsTo|sharded|storage
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/expansionMode
- - type: block-layout
+ label: In Memory Storage
+ showLabels: true
+ type: block-layout
+ hideBlock: true
+ label: Arbiter
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/hidden/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/hidden/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/hidden
+ paths:
+ - temp/properties/compute/properties/hidden/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|hidden|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|hidden|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-hidden-max
+ schema: temp/properties/allowedMachine-hidden-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|hidden
+ paths:
+ - temp/properties/allowedMachine-hidden-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|hidden|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|hidden|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-hidden-min
+ schema: temp/properties/allowedMachine-hidden-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|hidden
+ paths:
+ - temp/properties/allowedMachine-hidden-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/hidden
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/containerControlledValues
+ type: select
+ - elements:
+ - label: Scaling Factor Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/inMemoryStorage/properties/scalingFactorPercentage
+ type: threshold-input
+ - label: Usage Threshold Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/hidden/properties/inMemoryStorage/properties/usageThresholdPercentage
+ type: threshold-input
if:
+ name: showStorageMemoryOption
type: function
- name: mongoTypeEqualsTo|sharded|storage
- elements:
- - type: block-layout
- label: Shard
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/shardTopology/shard/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/shard/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/shard/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/upperBound
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/configServer/trigger
- schema: temp/properties/storage/properties/configServer/properties/trigger
- watcher:
- func: onTriggerChange|storage/configServer
- paths:
- - temp/properties/storage/properties/configServer/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/expansionMode
- - type: block-layout
- label: Config Server
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/shardTopology/configServer/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/configServer/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/configServer/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/upperBound
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/hidden/trigger
- schema: temp/properties/storage/properties/hidden/properties/trigger
- watcher:
- func: onTriggerChange|storage/hidden
- paths:
- - temp/properties/storage/properties/hidden/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/expansionMode
- - type: block-layout
- label: Hidden
- showLabels: true
- if:
- name: isHidden|resources/kubedbComMongoDB/spec/hidden
- type: function
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/hidden/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/hidden/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/hidden/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/upperBound
- - type: block-layout
- label: Ops Request Options
+ label: In Memory Storage
showLabels: true
+ type: block-layout
+ hideBlock: true
+ label: Hidden
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/compute/mongos/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/mongos/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/mongos
+ paths:
+ - temp/properties/compute/properties/mongos/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|mongos|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|mongos|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-mongos-max
+ schema: temp/properties/allowedMachine-mongos-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|mongos
+ paths:
+ - temp/properties/allowedMachine-mongos-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|mongos|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|mongos|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-mongos-min
+ schema: temp/properties/allowedMachine-mongos-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|mongos
+ paths:
+ - temp/properties/allowedMachine-mongos-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/mongos
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/containerControlledValues
+ type: select
+ - elements:
+ - label: Scaling Factor Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/inMemoryStorage/properties/scalingFactorPercentage
+ type: threshold-input
+ - label: Usage Threshold Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/mongos/properties/inMemoryStorage/properties/usageThresholdPercentage
+ type: threshold-input
if:
+ name: showStorageMemoryOption
type: function
- name: showOpsRequestOptions
- elements:
- - type: block-layout
- label: Readiness Criteria
- showLabels: true
- elements:
- - type: threshold-input
- label: Objects Count Diff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/readinessCriteria/properties/objectsCountDiffPercentage
- - type: input
- label: Oplog Max Lag Seconds
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/readinessCriteria/properties/oplogMaxLagSeconds
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
+ label: In Memory Storage
+ showLabels: true
+ type: block-layout
+ label: Mongos
+ showLabels: true
+ type: block-layout
+ if:
+ name: mongoTypeEqualsTo|sharded|compute
+ type: function
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Up DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Down DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: NodeTopology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - label: Objects Count Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/readinessCriteria/properties/objectsCountDiffPercentage
+ type: threshold-input
+ - label: Oplog Max Lag Seconds
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/readinessCriteria/properties/oplogMaxLagSeconds
+ type: input
+ label: Readiness Criteria
+ showLabels: true
+ type: block-layout
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
+ if:
+ name: mongoTypeEqualsTo|standalone|storage
+ type: function
init:
type: func
- value: isBindingAlreadyOn
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/standalone/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/standalone/properties/trigger
+ type: switch
watcher:
- func: addOrRemoveBinding
+ func: onTriggerChange|storage/standalone
paths:
- - temp/properties/binding
\ No newline at end of file
+ - temp/properties/storage/properties/standalone/properties/trigger
+ - if:
+ name: mongoTypeEqualsTo|standalone|storage
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: mongoTypeEqualsTo|standalone|storage
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/standalone/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/standalone/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/standalone/properties/upperBound
+ if:
+ name: mongoTypeEqualsTo|standalone|storage
+ type: function
+ label: Standalone
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: mongoTypeEqualsTo|replicaSet|storage
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/replicaSet/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/replicaSet/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/replicaSet
+ paths:
+ - temp/properties/storage/properties/replicaSet/properties/trigger
+ - if:
+ name: mongoTypeEqualsTo|replicaSet|storage
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: mongoTypeEqualsTo|replicaSet|storage
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/replicaSet/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/replicaSet/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/replicaSet/properties/upperBound
+ if:
+ name: mongoTypeEqualsTo|replicaSet|storage
+ type: function
+ label: ReplicaSet
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: mongoTypeEqualsTo|sharded|storage
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/shard/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/shard/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/shard
+ paths:
+ - temp/properties/storage/properties/shard/properties/trigger
+ - if:
+ name: mongoTypeEqualsTo|sharded|storage
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: mongoTypeEqualsTo|sharded|storage
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/expansionMode
+ type: select
+ - elements:
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/shardTopology/shard/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/shard/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/shard/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/shard/properties/upperBound
+ label: Shard
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/configServer/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/configServer/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/configServer
+ paths:
+ - temp/properties/storage/properties/configServer/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/shardTopology/configServer/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/configServer/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/configServer/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/configServer/properties/upperBound
+ label: Config Server
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMongoDBAutoscaler/spec/storage/hidden/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/hidden/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/hidden
+ paths:
+ - temp/properties/storage/properties/hidden/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComMongoDB/spec/hidden/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/hidden/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComMongoDBAutoscaler/spec/storage/hidden/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/storage/properties/hidden/properties/upperBound
+ if:
+ name: isHidden|resources/kubedbComMongoDB/spec/hidden
+ type: function
+ label: Hidden
+ showLabels: true
+ type: block-layout
+ if:
+ name: mongoTypeEqualsTo|sharded|storage
+ type: function
+ showLabels: false
+ type: block-layout
+ - elements:
+ - elements:
+ - label: Objects Count Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/readinessCriteria/properties/objectsCountDiffPercentage
+ type: threshold-input
+ - label: Oplog Max Lag Seconds
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/readinessCriteria/properties/oplogMaxLagSeconds
+ type: input
+ label: Readiness Criteria
+ showLabels: true
+ type: block-layout
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComMongoDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-mssqlserver-editor-options/ui/create-ui.yaml b/charts/kubedbcom-mssqlserver-editor-options/ui/create-ui.yaml
index 79a5ce84f0..178d4b6b87 100644
--- a/charts/kubedbcom-mssqlserver-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-mssqlserver-editor-options/ui/create-ui.yaml
@@ -1,119 +1,121 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the MSSQLServer version you want to deploy on Kubernetes. The chosen version determines the SQL Server engine features, compatibility, and runtime behavior of your database cluster.
+- elements:
+ - label: ""
+ subtitle: Select the MSSQLServer version you want to deploy on Kubernetes. The
+ chosen version determines the SQL Server engine features, compatibility, and
+ runtime behavior of your database cluster.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/MSSQLServer/versions
if:
- type: function
name: isToggleOn|databases/MSSQLServer/versions
+ type: function
label: Database version
+ loader: getAdminOptions|databases/MSSQLServer/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/MSSQLServer/mode
- loader: getAdminOptions|databases/MSSQLServer/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/MSSQLServer/mode
- label: Database mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/MSSQLServer/mode
isHorizontal: true
+ label: Database mode
+ loader: getAdminOptions|databases/MSSQLServer/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: onModeChange
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
- - type: array-item-form
- element:
+ - schema/properties/spec/properties/mode
+ - element:
label: Databases
type: input
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
label: Availability Group
schema: schema/properties/spec/properties/topology/properties/availabilityGroup/properties/databases
+ type: array-item-form
- if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
label: Replicaset number
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database cluster. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database cluster. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - if:
+ name: showStorageSizeField
+ type: function
+ label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - if:
- type: function
- name: showStorageSizeField
- label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
type: block-layout
- elements:
- - loader: getAdminOptions|clusterIssuers
- label: Cluster Issuers
- validation:
- type: required
+ - label: Cluster Issuers
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
- label: Accept EULA?
schema: schema/properties/spec/properties/acceptEULA
@@ -122,10 +124,6 @@ step:
type: func
value: getDefaulPid
label: PID
- watcher:
- func: onPidChange
- paths:
- - temp/pid
options:
- Developer
- Express
@@ -134,52 +132,54 @@ step:
- Enterprise
- EnterpriseCore
- Custom
- validation:
- type: required
schema: temp/pid
type: select
+ validation:
+ type: required
+ watcher:
+ func: onPidChange
+ paths:
+ - temp/pid
- if:
- type: function
name: isPidCustom
+ type: function
label: Custom PID
+ schema: temp/customPid
+ type: input
+ validation:
+ type: required
watcher:
func: onCustomPidChange
paths:
- - temp/customPid
- validation:
- type: required
- schema: temp/customPid
- type: input
+ - temp/customPid
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -195,91 +195,96 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
- # hasCopy: true
schema: schema/properties/spec/properties/configuration
type: textarea
- - init:
+ - if:
+ name: isToggleOn|pointInTimeRecovery
+ type: function
+ init:
type: func
value: getDefault|pointInTimeRecovery
- if:
- type: function
- name: isToggleOn|pointInTimeRecovery
label: Point in-time Recovery?
schema: temp/recovery
type: switch
- elements:
- - type: label-element
- label: ''
- subtitle: Configure point-in-time recovery to restore your database to a specific moment. Specify the source database namespace, name, and the exact timestamp for recovery.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Configure point-in-time recovery to restore your database to a specific
+ moment. Specify the source database namespace, name, and the exact timestamp
+ for recovery.
+ type: label-element
+ - elements:
+ - forceRequired: true
+ label: Namespace
+ schema: temp/refNamespace
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refNamespace
+ - label: Name
+ schema: temp/refDBName
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refDBName
showLabels: true
- elements:
- - label: Namespace
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refNamespace
- forceRequired: true
- validation:
- type: required
- schema: temp/refNamespace
- type: input
- - label: Name
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refDBName
- validation:
- type: required
- schema: temp/refDBName
- type: input
+ type: horizontal-layout
- customClass: mt-10
label: Recovery Timestamp
schema: schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
@@ -287,16 +292,16 @@ step:
watcher:
func: onTimestampChange
paths:
- - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
+ - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
if:
- type: function
name: showRecovery
+ type: function
label: Point in-time Recovery
showLabels: true
type: block-layout
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment name
options:
- description: labels.deployment.shared
@@ -308,8 +313,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -322,19 +327,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -343,54 +348,54 @@ step:
- description: Enable Backup, Monitoring, TLS etc.
elements:
- elements:
- - init:
+ - if:
+ name: isToggleOn|monitoring
+ type: function
+ init:
type: func
value: setMonitoring
- if:
- type: function
- name: isToggleOn|monitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- disable: showArchiverAlert
label: Enable Archiver?
+ schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
+ type: switch
watcher:
func: onArchiverChange
paths:
- - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- if:
- type: function
name: showArchiverAlert
+ type: function
label: The selected StorageClass does not support Archiver
type: warning
if:
- type: function
name: showArchiver
+ type: function
type: block-layout
- if:
- type: function
name: isToggleOn|tls
+ type: function
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
@@ -399,15 +404,16 @@ step:
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
if:
- type: function
name: isToggleOn|expose
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-mssqlserver-editor/ui/edit-ui.yaml b/charts/kubedbcom-mssqlserver-editor/ui/edit-ui.yaml
index 5340a0b127..d8adfbc3f6 100644
--- a/charts/kubedbcom-mssqlserver-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-mssqlserver-editor/ui/edit-ui.yaml
@@ -1,721 +1,714 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: backupconfiguration
- # label: Backup
- schema: schema/
- elements:
- - type: radio
- label: Schedule a Backup?
- schema: temp/properties/scheduleBackup
+- elements:
+ - if:
+ name: showScheduleBackup
+ type: function
+ init:
+ type: func
+ value: initScheduleBackupForEdit
+ isHorizontal: true
+ label: Schedule a Backup?
+ options:
+ - text: "Yes"
+ value: "yes"
+ - text: "No"
+ value: "no"
+ schema: temp/properties/scheduleBackup
+ type: radio
+ watcher:
+ func: onScheduleBackupChange
+ paths:
+ - temp/properties/scheduleBackup
+ - elements:
+ - if:
+ name: isBackupDataLoadedTrue
+ type: function
+ init:
+ type: func
+ value: setBackupType
isHorizontal: true
+ label: Select Backup Type
+ loader: getTypes
options:
- - text: 'Yes'
- value: 'yes'
- - text: 'No'
- value: 'no'
+ - description: Create, Delete or Modify BackupConfig
+ text: BackupConfig
+ value: BackupConfig
+ - description: Enable/Disable BackupBlueprint
+ text: BackupBlueprint
+ value: BackupBlueprint
+ schema: temp/properties/backupType
+ type: radio
+ watcher:
+ func: onBackupTypeChange
+ paths:
+ - temp/properties/backupType
+ - elements:
+ - label: Select Context
+ loader: getContext
+ schema: temp/properties/backupConfigContext
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onContextChange
+ paths:
+ - temp/properties/backupConfigContext
+ - if:
+ name: showConfigList
+ type: function
+ label: Select BackupConfig
+ loader: getConfigList
+ schema: temp/properties/config
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onConfigChange
+ paths:
+ - temp/properties/config
+ - if:
+ name: showSchedule
+ type: function
+ label: Schedule
+ loader:
+ name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
+ watchPaths:
+ - temp/properties/config
+ schema: temp/properties/schedule
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
+ paths:
+ - temp/properties/schedule
+ - fullwidth: true
+ if:
+ name: showPause
+ type: function
+ init:
+ type: func
+ value: setPausedValue
+ label: Paused
+ schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
+ type: switch
+ watcher:
+ func: setPausedValue
+ paths:
+ - temp/properties/config
if:
+ name: isBackupType|BackupConfig
type: function
- name: showScheduleBackup
- init:
- type: func
- value: initScheduleBackupForEdit
+ label: Config
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setBlueprintSwitch
+ label: Enable Backup Blueprint
+ schema: temp/properties/blueprintEnabled
+ type: switch
+ watcher:
+ func: onBlueprintChange
+ paths:
+ - temp/properties/blueprintEnabled
+ if:
+ name: isBackupType|BackupBlueprint
+ type: function
+ label: Blueprint
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setArchiverSwitch
+ label: Enable Archiver
+ schema: temp/properties/archiverEnabled
+ type: switch
+ watcher:
+ func: onArchiverChange
+ paths:
+ - temp/properties/archiverEnabled
+ if:
+ name: isBackupType|Archiver
+ type: function
+ label: Archiver
+ type: block-layout
+ if:
+ name: showBackupForm
+ type: function
+ label: Backup Form
+ loader: initBackupData
+ showLabels: false
+ type: block-layout
+ id: backupconfiguration
+ schema: schema/
+ type: single-step-form
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/metadata/properties/namespace
+ type: select
watcher:
- func: onScheduleBackupChange
+ func: onNamespaceChange
paths:
- - temp/properties/scheduleBackup
- - type: block-layout
- label: Backup Form
- showLabels: false
- loader: initBackupData
+ - schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComMSSQLServer/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMSSQLServer/spec/monitor/agent
type: function
- name: showBackupForm
- elements:
- - type: radio
- label: Select Backup Type
- schema: temp/properties/backupType
- isHorizontal: true
- options:
- - text: BackupConfig
- value: BackupConfig
- description: 'Create, Delete or Modify BackupConfig'
- - text: BackupBlueprint
- value: BackupBlueprint
- description: Enable/Disable BackupBlueprint
- if:
- type: function
- name: isBackupDataLoadedTrue
- init:
- type: func
- value: setBackupType
- loader: getTypes
- watcher:
- func: onBackupTypeChange
- paths:
- - temp/properties/backupType
- - type: block-layout
- label: Config
- if:
- type: function
- name: isBackupType|BackupConfig
- elements:
- - type: select
- label: Select Context
- schema: temp/properties/backupConfigContext
- validation:
- type: required
- loader: getContext
- watcher:
- func: onContextChange
- paths:
- - temp/properties/backupConfigContext
- - type: select
- label: Select BackupConfig
- schema: temp/properties/config
- validation:
- type: required
- if:
- type: function
- name: showConfigList
- loader: getConfigList
- watcher:
- func: onConfigChange
- paths:
- - temp/properties/config
- - type: input
- label: Schedule
- schema: temp/properties/schedule
- validation:
- type: required
- if:
- type: function
- name: showSchedule
- loader:
- name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
- watchPaths:
- - temp/properties/config
- watcher:
- func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
- paths:
- - temp/properties/schedule
- - type: switch
- label: Paused
- fullwidth: true
- schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
- if:
- type: function
- name: showPause
- watcher:
- func: setPausedValue
- paths:
- - temp/properties/config
- init:
- type: func
- value: setPausedValue
- - type: block-layout
- label: Blueprint
- if:
- type: function
- name: isBackupType|BackupBlueprint
- elements:
- - type: switch
- label: Enable Backup Blueprint
- fullwidth: true
- schema: temp/properties/blueprintEnabled
- init:
- type: func
- value: setBlueprintSwitch
- watcher:
- func: onBlueprintChange
- paths:
- - temp/properties/blueprintEnabled
- - type: block-layout
- label: Archiver
- if:
- type: function
- name: isBackupType|Archiver
- elements:
- - type: switch
- label: Enable Archiver
- fullwidth: true
- schema: temp/properties/archiverEnabled
- init:
- type: func
- value: setArchiverSwitch
- watcher:
- func: onArchiverChange
- paths:
- - temp/properties/archiverEnabled
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/databaseRef/properties/name
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMSSQLServer/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMSSQLServer/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
init:
- type: func
- value: isValueExistInModel|/resources/kubedbComMSSQLServer/spec/monitor
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
watcher:
- func: onEnableMonitoringChange
+ func: onCustomizeExporterChange
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
- if:
- type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMSSQLServer/spec/monitor/agent
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMSSQLServer/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- fullwidth: true
- label: Honor labels
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMSSQLServer/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComMSSQLServer/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComMSSQLServer/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
- type: static
- value: true
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onCustomizeExporterChange
+ func: onEnvArrayChange
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- loader: setMetadata
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComMSSQLServer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComMSSQLServer/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComMSSQLServer/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ loader: setMetadata
showLabels: false
- loader: fetchTopologyMachines
- elements:
- # mssqlserver mode
- - type: switch
- label: Trigger
- fullwidth: true
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
+ if:
+ name: mssqlserverTypeEqualsTo|mssqlserver|compute
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMSSQLServerAutoscaler/spec/compute/mssqlserver/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/mssqlserver/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/mssqlserver
+ paths:
+ - temp/properties/compute/properties/mssqlserver/properties/trigger
+ - if:
+ name: mssqlserverTypeEqualsTo|mssqlserver|compute
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ if:
+ name: mssqlserverTypeEqualsTo|mssqlserver|compute
+ type: function
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: mssqlserverTypeEqualsTo|mssqlserver|compute
init:
type: func
- value: setTrigger|autoscalingKubedbComMSSQLServerAutoscaler/spec/compute/mssqlserver/trigger
- schema: temp/properties/compute/properties/mssqlserver/properties/trigger
+ value: setAllowedMachine|mssqlserver|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|mssqlserver|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-mssqlserver-max
+ schema: temp/properties/allowedMachine-mssqlserver-min
+ type: machine-compare
watcher:
- func: onTriggerChange|compute/mssqlserver
+ func: onMachineChange|mssqlserver
paths:
- - temp/properties/compute/properties/mssqlserver/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
+ - temp/properties/allowedMachine-mssqlserver-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
- type: function
- name: mssqlserverTypeEqualsTo|mssqlserver|compute
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/podLifeTimeThreshold
- customClass: width-300
- if:
- type: function
- name: mssqlserverTypeEqualsTo|mssqlserver|compute
- - type: block-layout
- label: MSSQLServer
- if:
- type: function
- name: mssqlserverTypeEqualsTo|mssqlserver|compute
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-mssqlserver-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|mssqlserver|min
- loader:
- name: getMachines|mssqlserver|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-mssqlserver-max
- watcher:
- func: onMachineChange|mssqlserver
- paths:
- - temp/properties/allowedMachine-mssqlserver-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-mssqlserver-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|mssqlserver|max
- loader:
- name: getMachines|mssqlserver|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-mssqlserver-min
- watcher:
- func: onMachineChange|mssqlserver
- paths:
- - temp/properties/allowedMachine-mssqlserver-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/mssqlserver
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/controlledResources
- - type: block-layout
- label: NodeTopology
- if:
- type: function
name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: Scale Up DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: Scale Down DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- showLabels: false
- elements:
- # mssqlserver mode
- - type: switch
- label: Trigger
- fullwidth: true
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: mssqlserverTypeEqualsTo|mssqlserver|storage
init:
type: func
- value: setTrigger|autoscalingKubedbComMSSQLServerAutoscaler/spec/storage/mssqlserver/trigger
- schema: temp/properties/storage/properties/mssqlserver/properties/trigger
+ value: setAllowedMachine|mssqlserver|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|mssqlserver|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-mssqlserver-min
+ schema: temp/properties/allowedMachine-mssqlserver-max
+ type: machine-compare
watcher:
- func: onTriggerChange|storage/mssqlserver
+ func: onMachineChange|mssqlserver
paths:
- - temp/properties/storage/properties/mssqlserver/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: mssqlserverTypeEqualsTo|mssqlserver|storage
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: mssqlserverTypeEqualsTo|mssqlserver|storage
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/expansionMode
- - type: block-layout
- label: MSSQLServer
+ - temp/properties/allowedMachine-mssqlserver-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: mssqlserverTypeEqualsTo|mssqlserver|storage
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComMSSQLServer/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComMSSQLServerAutoscaler/spec/storage/mssqlserver/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComMSSQLServerAutoscaler/spec/storage/mssqlserver/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/upperBound
- - type: block-layout
- label: Ops Request Options
+ label: Max Allowed
showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/mssqlserver
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/mssqlserver/properties/controlledResources
+ type: select
+ if:
+ name: mssqlserverTypeEqualsTo|mssqlserver|compute
+ type: function
+ label: MSSQLServer
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Up DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Down DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: NodeTopology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
+ if:
+ name: mssqlserverTypeEqualsTo|mssqlserver|storage
+ type: function
init:
type: func
- value: isBindingAlreadyOn
+ value: setTrigger|autoscalingKubedbComMSSQLServerAutoscaler/spec/storage/mssqlserver/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/mssqlserver/properties/trigger
+ type: switch
watcher:
- func: addOrRemoveBinding
+ func: onTriggerChange|storage/mssqlserver
paths:
- - temp/properties/binding
+ - temp/properties/storage/properties/mssqlserver/properties/trigger
+ - if:
+ name: mssqlserverTypeEqualsTo|mssqlserver|storage
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: mssqlserverTypeEqualsTo|mssqlserver|storage
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComMSSQLServer/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComMSSQLServerAutoscaler/spec/storage/mssqlserver/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComMSSQLServerAutoscaler/spec/storage/mssqlserver/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/storage/properties/mssqlserver/properties/upperBound
+ if:
+ name: mssqlserverTypeEqualsTo|mssqlserver|storage
+ type: function
+ label: MSSQLServer
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComMSSQLServerAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-mysql-editor-options/ui/create-ui.yaml b/charts/kubedbcom-mysql-editor-options/ui/create-ui.yaml
index d384260e83..f8519f7e77 100644
--- a/charts/kubedbcom-mysql-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-mysql-editor-options/ui/create-ui.yaml
@@ -1,197 +1,197 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the MySQL version you want to deploy on Kubernetes. The chosen version determines the MongoDB engine features, compatibility, and runtime behavior of your database cluster.
+- elements:
+ - label: ""
+ subtitle: Select the MySQL version you want to deploy on Kubernetes. The chosen
+ version determines the MongoDB engine features, compatibility, and runtime behavior
+ of your database cluster.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/MySQL/versions
if:
- type: function
name: isToggleOn|databases/MySQL/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/MySQL/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/MySQL/mode
+ type: function
+ init:
type: func
value: getDefault|databases/MySQL/mode
- loader: getAdminOptions|databases/MySQL/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/MySQL/mode
label: Database Mode
+ loader: getAdminOptions|databases/MySQL/mode
schema: schema/properties/spec/properties/mode
type: radio
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Replicaset Number
+ schema: schema/properties/spec/properties/replicas
+ type: input
+ - label: Mode
+ options:
+ - text: Single-Primary
+ value: Single-Primary
+ - text: Multi-Primary
+ value: Multi-Primary
+ schema: schema/properties/spec/properties/groupReplication/properties/mode
+ type: select
showLabels: true
- elements:
- - label: Replicaset Number
- schema: schema/properties/spec/properties/replicas
- type: input
- - label: Mode
- options:
- - text: Single-Primary
- value: Single-Primary
- - text: Multi-Primary
- value: Multi-Primary
- schema: schema/properties/spec/properties/groupReplication/properties/mode
- type: select
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|GroupReplication|/spec/mode
+ type: function
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Replicaset Number
+ schema: schema/properties/spec/properties/replicas
+ type: input
+ - label: Router Number
+ schema: schema/properties/spec/properties/innoDBCluster/properties/router/properties/replicas
+ type: input
+ - label: Mode
+ options:
+ - text: Single-Primary
+ value: Single-Primary
+ - text: Multi-Primary
+ value: Multi-Primary
+ schema: schema/properties/spec/properties/innoDBCluster/properties/mode
+ type: select
showLabels: true
- elements:
- - label: Replicaset Number
- schema: schema/properties/spec/properties/replicas
- type: input
- - label: Router Number
- schema: schema/properties/spec/properties/innoDBCluster/properties/router/properties/replicas
- type: input
- - label: Mode
- options:
- - text: Single-Primary
- value: Single-Primary
- - text: Multi-Primary
- value: Multi-Primary
- schema: schema/properties/spec/properties/innoDBCluster/properties/mode
- type: select
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|InnoDBCluster|/spec/mode
+ type: function
type: block-layout
- elements:
- - loader: getAppBindings
- label: RemoteReplica SourceRef
- validation:
- type: required
+ - label: RemoteReplica SourceRef
+ loader: getAppBindings
schema: schema/properties/spec/properties/remoteReplica/properties/sourceRef
type: select
+ validation:
+ type: required
if:
- type: function
name: isEqualToModelPathValue|RemoteReplica|/spec/mode
+ type: function
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: RemoteReplica SourceRef
+ loader: getAppBindings
+ schema: schema/properties/spec/properties/remoteReplica/properties/sourceRef
+ type: select
+ validation:
+ type: required
+ - label: Errant Transaction Recovery Policy
+ options:
+ - text: Clone
+ value: Clone
+ - text: PseudoTransaction
+ value: PseudoTransaction
+ schema: schema/properties/spec/properties/semiSync/properties/errantTransactionRecoveryPolicy
+ type: select
showLabels: true
- elements:
- - loader: getAppBindings
- label: RemoteReplica SourceRef
- validation:
- type: required
- schema: schema/properties/spec/properties/remoteReplica/properties/sourceRef
- type: select
- - label: Errant Transaction Recovery Policy
- options:
- - text: Clone
- value: Clone
- - text: PseudoTransaction
- value: PseudoTransaction
- schema: schema/properties/spec/properties/semiSync/properties/errantTransactionRecoveryPolicy
- type: select
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|SemiSync|/spec/mode
+ type: function
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: Cpu
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Cpu
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - label: Storage size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - label: Storage size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -207,106 +207,112 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- - init:
+ - if:
+ name: isToggleOn|pointInTimeRecovery
+ type: function
+ init:
type: func
value: getDefault|pointInTimeRecovery
- if:
- type: function
- name: isToggleOn|pointInTimeRecovery
label: Point in-time Recovery?
schema: temp/recovery
type: switch
- elements:
- - type: label-element
- label: ''
- subtitle: Restore your database to a specific point in time by specifying the source database namespace, name, and the exact recovery timestamp for data restoration.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Restore your database to a specific point in time by specifying
+ the source database namespace, name, and the exact recovery timestamp for
+ data restoration.
+ type: label-element
+ - elements:
+ - forceRequired: true
+ label: Namespace
+ schema: temp/refNamespace
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refNamespace
+ - label: Name
+ schema: temp/refDBName
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refDBName
showLabels: true
- elements:
- - label: Namespace
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refNamespace
- forceRequired: true
- validation:
- type: required
- schema: temp/refNamespace
- type: input
- - label: Name
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refDBName
- validation:
- type: required
- schema: temp/refDBName
- type: input
+ type: horizontal-layout
- label: Recovery Timestamp
schema: schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
type: date-time
watcher:
func: onTimestampChange
paths:
- - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
+ - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
if:
- type: function
name: showRecovery
+ type: function
label: Point in-time Recovery
showLabels: true
type: block-layout
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment
options:
- description: shared
@@ -318,8 +324,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: ClusterTier
options:
@@ -332,19 +338,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: NodeTopology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -353,23 +359,23 @@ step:
- description: Enable Backup, Monitoring, TLS etc.
elements:
- elements:
- - init:
+ - if:
+ name: isToggleOn|monitoring
+ type: function
+ init:
type: func
value: setMonitoring
- if:
- type: function
- name: isToggleOn|monitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -383,68 +389,69 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- disable: showArchiverAlert
label: Enable Archiver?
+ schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
+ type: switch
watcher:
func: onArchiverChange
paths:
- - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- if:
- type: function
name: showArchiverAlert
+ type: function
label: The selected StorageClass does not support Archiver
type: warning
if:
- type: function
name: showArchiver
+ type: function
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|tls
+ type: function
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|expose
+ type: function
label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-mysql-editor/ui/edit-ui.yaml b/charts/kubedbcom-mysql-editor/ui/edit-ui.yaml
index 7ded163508..1d58ee3546 100644
--- a/charts/kubedbcom-mysql-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-mysql-editor/ui/edit-ui.yaml
@@ -1,735 +1,724 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: backupconfiguration
- # label: Backup
- schema: schema/
- elements:
- - type: radio
- label: Schedule a Backup?
- schema: temp/properties/scheduleBackup
+- elements:
+ - if:
+ name: showScheduleBackup
+ type: function
+ init:
+ type: func
+ value: initScheduleBackupForEdit
+ isHorizontal: true
+ label: Schedule a Backup?
+ options:
+ - text: "Yes"
+ value: "yes"
+ - text: "No"
+ value: "no"
+ schema: temp/properties/scheduleBackup
+ type: radio
+ watcher:
+ func: onScheduleBackupChange
+ paths:
+ - temp/properties/scheduleBackup
+ - elements:
+ - if:
+ name: isBackupDataLoadedTrue
+ type: function
+ init:
+ type: func
+ value: setBackupType
isHorizontal: true
+ label: Select Backup Type
+ loader: getTypes
options:
- - text: 'Yes'
- value: 'yes'
- - text: 'No'
- value: 'no'
+ - description: Create, Delete or Modify BackupConfig
+ text: BackupConfig
+ value: BackupConfig
+ - description: Enable/Disable BackupBlueprint
+ text: BackupBlueprint
+ value: BackupBlueprint
+ schema: temp/properties/backupType
+ type: radio
+ watcher:
+ func: onBackupTypeChange
+ paths:
+ - temp/properties/backupType
+ - elements:
+ - label: Select Context
+ loader: getContext
+ schema: temp/properties/backupConfigContext
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onContextChange
+ paths:
+ - temp/properties/backupConfigContext
+ - if:
+ name: showConfigList
+ type: function
+ label: Select BackupConfig
+ loader: getConfigList
+ schema: temp/properties/config
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onConfigChange
+ paths:
+ - temp/properties/config
+ - if:
+ name: showSchedule
+ type: function
+ label: Schedule
+ loader:
+ name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
+ watchPaths:
+ - temp/properties/config
+ schema: temp/properties/schedule
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
+ paths:
+ - temp/properties/schedule
+ - fullwidth: true
+ if:
+ name: showPause
+ type: function
+ init:
+ type: func
+ value: setPausedValue
+ label: Paused
+ schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
+ type: switch
+ watcher:
+ func: setPausedValue
+ paths:
+ - temp/properties/config
+ if:
+ name: isBackupType|BackupConfig
+ type: function
+ label: Config
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setBlueprintSwitch
+ label: Enable Backup Blueprint
+ schema: temp/properties/blueprintEnabled
+ type: switch
+ watcher:
+ func: onBlueprintChange
+ paths:
+ - temp/properties/blueprintEnabled
if:
+ name: isBackupType|BackupBlueprint
type: function
- name: showScheduleBackup
+ label: Blueprint
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setArchiverSwitch
+ label: Enable Archiver
+ schema: temp/properties/archiverEnabled
+ type: switch
+ watcher:
+ func: onArchiverChange
+ paths:
+ - temp/properties/archiverEnabled
+ if:
+ name: isBackupType|Archiver
+ type: function
+ label: Archiver
+ type: block-layout
+ if:
+ name: showBackupForm
+ type: function
+ label: Backup Form
+ loader: initBackupData
+ showLabels: false
+ type: block-layout
+ id: backupconfiguration
+ schema: schema/
+ type: single-step-form
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getMysqlDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: initScheduleBackupForEdit
+ value: setTrigger|autoscalingKubedbComMySQLAutoscaler/spec/compute/mysql/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/mysql/properties/trigger
+ type: switch
watcher:
- func: onScheduleBackupChange
+ func: onTriggerChange|compute/mysql
paths:
- - temp/properties/scheduleBackup
- - type: block-layout
- label: Backup Form
- showLabels: false
- loader: initBackupData
- if:
- type: function
- name: showBackupForm
- elements:
- - type: radio
- label: Select Backup Type
- schema: temp/properties/backupType
- isHorizontal: true
- options:
- - text: BackupConfig
- value: BackupConfig
- description: 'Create, Delete or Modify BackupConfig'
- - text: BackupBlueprint
- value: BackupBlueprint
- description: Enable/Disable BackupBlueprint
+ - temp/properties/compute/properties/mysql/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupDataLoadedTrue
init:
type: func
- value: setBackupType
- loader: getTypes
+ value: setAllowedMachine|mysql|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|mysql|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
watcher:
- func: onBackupTypeChange
+ func: onMachineChange|mysql
paths:
- - temp/properties/backupType
- - type: block-layout
- label: Config
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|BackupConfig
- elements:
- - type: select
- label: Select Context
- schema: temp/properties/backupConfigContext
- validation:
- type: required
- loader: getContext
- watcher:
- func: onContextChange
- paths:
- - temp/properties/backupConfigContext
- - type: select
- label: Select BackupConfig
- schema: temp/properties/config
- validation:
- type: required
- if:
- type: function
- name: showConfigList
- loader: getConfigList
- watcher:
- func: onConfigChange
- paths:
- - temp/properties/config
- - type: input
- label: Schedule
- schema: temp/properties/schedule
- validation:
- type: required
- if:
- type: function
- name: showSchedule
- loader:
- name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
- watchPaths:
- - temp/properties/config
- watcher:
- func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
- paths:
- - temp/properties/schedule
- - type: switch
- label: Paused
- fullwidth: true
- schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
- if:
- type: function
- name: showPause
- watcher:
- func: setPausedValue
- paths:
- - temp/properties/config
- init:
- type: func
- value: setPausedValue
- - type: block-layout
- label: Blueprint
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupType|BackupBlueprint
- elements:
- - type: switch
- label: Enable Backup Blueprint
- fullwidth: true
- schema: temp/properties/blueprintEnabled
- init:
- type: func
- value: setBlueprintSwitch
- watcher:
- func: onBlueprintChange
- paths:
- - temp/properties/blueprintEnabled
- - type: block-layout
- label: Archiver
+ init:
+ type: func
+ value: setAllowedMachine|mysql|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|mysql|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|mysql
+ paths:
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|Archiver
- elements:
- - type: switch
- label: Enable Archiver
- fullwidth: true
- schema: temp/properties/archiverEnabled
- init:
- type: func
- value: setArchiverSwitch
- watcher:
- func: onArchiverChange
- paths:
- - temp/properties/archiverEnabled
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getMysqlDbs
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getMysqlDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|mysql
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/containerControlledValues
+ type: select
+ - elements:
+ - label: Scaling Factor Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/inMemoryStorage/properties/scalingFactorPercentage
+ type: threshold-input
+ - label: Usage Threshold Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/inMemoryStorage/properties/usageThresholdPercentage
+ type: threshold-input
if:
+ name: showStorageMemoryOption
type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
+ label: In Memory Storage
+ showLabels: true
+ type: block-layout
+ label: Mysql
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getMysqlDbs
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComMySQLAutoscaler/spec/storage/mysql/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/mysql/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/mysql
+ paths:
+ - temp/properties/storage/properties/mysql/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComMySQL/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/scalingRules
+ type: scaling-rules
watcher:
- func: initMetadata
+ func: handleUnit|autoscalingKubedbComMySQLAutoscaler/spec/storage/mysql/scalingRules|scalingRules
paths:
- - temp/properties/autoscalingType
+ - schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComMySQLAutoscaler/spec/storage/mysql/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/upperBound
+ label: Mysql
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComMySQL/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMySQL/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- # mysql mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMySQL/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMySQL/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
type: func
- value: setTrigger|autoscalingKubedbComMySQLAutoscaler/spec/compute/mysql/trigger
- schema: temp/properties/compute/properties/mysql/properties/trigger
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
watcher:
- func: onTriggerChange|compute/mysql
+ func: onValueFromChange
paths:
- - temp/properties/compute/properties/mysql/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Mysql
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|mysql|min
- loader:
- name: getMachines|mysql|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange|mysql
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|mysql|max
- loader:
- name: getMachines|mysql|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange|mysql
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|mysql
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/containerControlledValues
- - type: block-layout
- label: In Memory Storage
- showLabels: true
- if:
- type: function
- name: showStorageMemoryOption
- # schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/inMemoryStorage
- elements:
- - type: threshold-input
- label: Scaling Factor Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/inMemoryStorage/properties/scalingFactorPercentage
- - type: threshold-input
- label: Usage Threshold Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/mysql/properties/inMemoryStorage/properties/usageThresholdPercentage
-
- - type: block-layout
- label: Node Topology
- if:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: switch
- label: Trigger
- fullwidth: true
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComMySQL/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComMySQL/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
type: func
- value: setTrigger|autoscalingKubedbComMySQLAutoscaler/spec/storage/mysql/trigger
- schema: temp/properties/storage/properties/mysql/properties/trigger
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onTriggerChange|storage/mysql
+ func: onEnvArrayChange
paths:
- - temp/properties/storage/properties/mysql/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/expansionMode
- - type: block-layout
- label: Mysql
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComMySQL/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComMySQLAutoscaler/spec/storage/mysql/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComMySQLAutoscaler/spec/storage/mysql/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/storage/properties/mysql/properties/upperBound
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComMySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComMySQL/spec/monitor
- watcher:
- func: onEnableMonitoringChange
- paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
if:
+ name: showCustomizeExporterSection
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComMySQL/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMySQL/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- buttonClass: is-light is-outlined
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComMySQL/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
- init:
- type: static
- value: true
- watcher:
- func: onCustomizeExporterChange
- paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- schema: schema/properties/resources/properties/kubedbComMySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- buttonClass: is-light is-outlined
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComMySQL/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComMySQL/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
- init:
- type: func
- value: isBindingAlreadyOn
- watcher:
- func: addOrRemoveBinding
- paths:
- - temp/properties/binding
\ No newline at end of file
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-oracle-editor-options/ui/create-ui.yaml b/charts/kubedbcom-oracle-editor-options/ui/create-ui.yaml
index e0eade71cf..cf55d4c9dc 100644
--- a/charts/kubedbcom-oracle-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-oracle-editor-options/ui/create-ui.yaml
@@ -1,127 +1,127 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Oracle version you want to deploy on Kubernetes. The chosen version determines the Oracle engine features, compatibility, and runtime behavior of your database.
+- elements:
+ - label: ""
+ subtitle: Select the Oracle version you want to deploy on Kubernetes. The chosen
+ version determines the Oracle engine features, compatibility, and runtime behavior
+ of your database.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Oracle/versions
if:
- type: function
name: isToggleOn|databases/Oracle/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/Oracle/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/Oracle/mode
+ type: function
+ init:
type: func
value: getDefault|databases/Oracle/mode
- loader: getAdminOptions|databases/Oracle/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/Oracle/mode
label: Database Mode
+ loader: getAdminOptions|databases/Oracle/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: toggleTls
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- if:
- type: function
name: isEqualToModelPathValue|Replicaset|/spec/mode
+ type: function
label: Replica number
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
- showLabels: true
- elements:
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
- init:
type: func
value: setMachineToCustom
- loader: getMachineListForOptions
label: Machine
+ loader: getMachineListForOptions
schema: schema/properties/spec/properties/podResources/properties/machine
type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
+ - disable: isMachineNotCustom
if:
- type: function
name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
label: CPU
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
watcher:
func: setRequests|cpu
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - disable: isMachineNotCustom
if:
- type: function
name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
label: Memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
watcher:
func: setRequests|memory
paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ showLabels: true
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- - type: horizontal-layout
- showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
+ - elements:
+ - if:
name: isToggleOn|storageClasses
+ type: function
label: Storage Class
+ loader: getAdminOptions|storageClasses
schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
type: select
- label: Storage Size
schema: schema/properties/spec/properties/persistence/properties/size
type: input
+ showLabels: true
+ type: horizontal-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -137,59 +137,63 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- - isHorizontal: true
- if:
- type: function
+ - if:
name: isToggleOn|deployment
+ type: function
+ isHorizontal: true
label: Deployment Mode
options:
- description: Shared
@@ -201,8 +205,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -215,19 +219,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement Policy
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -235,81 +239,83 @@ step:
type: block-layout
- description: Enable Backup, Monitoring, TLS etc.
elements:
- - init:
+ - if:
+ name: returnFalse
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: returnFalse
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- disable: showArchiverAlert
label: Enable Archiver?
+ schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
+ type: switch
watcher:
func: onArchiverChange
paths:
- - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- if:
- type: function
name: showArchiverAlert
+ type: function
label: The selected StorageClass does not support Archiver
type: warning
if:
- type: function
name: returnFalse
+ type: function
type: block-layout
- elements:
- - init:
+ - if:
+ name: returnFalse
+ type: function
+ init:
type: func
value: checkHostnameOrIP
- if:
- type: function
- name: returnFalse
label: Enable TLS?
+ schema: schema/properties/spec/properties/admin/properties/tls/properties/default
+ type: switch
watcher:
func: checkHostnameOrIP
paths:
- - schema/properties/spec/properties/admin/properties/tls/properties/default
- schema: schema/properties/spec/properties/admin/properties/tls/properties/default
- type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - schema/properties/spec/properties/admin/properties/tls/properties/default
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
- elements:
- - init:
+ - if:
+ name: isToggleOn|expose
+ type: function
+ init:
type: func
value: checkHostnameOrIP
- if:
- type: function
- name: isToggleOn|expose
label: Expose via Gateway?
+ schema: schema/properties/spec/properties/admin/properties/expose/properties/default
+ type: switch
watcher:
func: checkHostnameOrIP
paths:
- - schema/properties/spec/properties/admin/properties/expose/properties/default
- schema: schema/properties/spec/properties/admin/properties/expose/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/expose/properties/default
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-perconaxtradb-editor-options/ui/create-ui.yaml b/charts/kubedbcom-perconaxtradb-editor-options/ui/create-ui.yaml
index 339f143b76..960d8c59c1 100644
--- a/charts/kubedbcom-perconaxtradb-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-perconaxtradb-editor-options/ui/create-ui.yaml
@@ -1,118 +1,118 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the PerconaXtraDB version you want to deploy on Kubernetes. The chosen version determines the PerconaXtraDB engine features, compatibility, and runtime behavior of your database cluster.
- - type: horizontal-layout
+- elements:
+ - label: ""
+ subtitle: Select the PerconaXtraDB version you want to deploy on Kubernetes. The
+ chosen version determines the PerconaXtraDB engine features, compatibility,
+ and runtime behavior of your database cluster.
+ type: label-element
+ - elements:
+ - disableUnselect: true
+ if:
+ name: isToggleOn|databases/PerconaXtraDB/versions
+ type: function
+ label: Database Version
+ loader: getAdminOptions|databases/PerconaXtraDB/versions
+ schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions/properties/default
+ type: select
+ - label: Replicaset Number
+ schema: schema/properties/spec/properties/replicas
+ type: input
showLabels: true
- elements:
- - disableUnselect: true
- loader: getAdminOptions|databases/PerconaXtraDB/versions
+ type: horizontal-layout
+ - elements:
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database cluster. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
if:
+ name: isMachineCustom
type: function
- name: isToggleOn|databases/PerconaXtraDB/versions
- label: Database Version
- schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions/properties/default
- type: select
- - label: Replicaset Number
- schema: schema/properties/spec/properties/replicas
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
type: input
- - elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database cluster. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -128,58 +128,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment
options:
- description: shared
@@ -191,8 +195,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: ClusterTier
options:
@@ -205,19 +209,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: labels.placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: NodeTopology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
hideBlock: true
@@ -231,16 +235,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -254,32 +258,33 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|tls
+ type: function
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-perconaxtradb-editor/ui/edit-ui.yaml b/charts/kubedbcom-perconaxtradb-editor/ui/edit-ui.yaml
index 2f91897ee9..0526174194 100644
--- a/charts/kubedbcom-perconaxtradb-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-perconaxtradb-editor/ui/edit-ui.yaml
@@ -1,558 +1,552 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # perconaxtradb mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComPerconaXtraDBAutoscaler/spec/compute/perconaxtradb/trigger
- schema: temp/properties/compute/properties/perconaxtradb/properties/trigger
- watcher:
- func: onTriggerChange|compute/perconaxtradb
- paths:
- - temp/properties/compute/properties/perconaxtradb/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: PerconaXtraDB
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-perconaxtradb-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|perconaxtradb|min
- loader:
- name: getMachines|perconaxtradb|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-perconaxtradb-max
- watcher:
- func: onMachineChange|perconaxtradb
- paths:
- - temp/properties/allowedMachine-perconaxtradb-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-perconaxtradb-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|perconaxtradb|max
- loader:
- name: getMachines|perconaxtradb|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-perconaxtradb-min
- watcher:
- func: onMachineChange|perconaxtradb
- paths:
- - temp/properties/allowedMachine-perconaxtradb-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/perconaxtradb
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/containerControlledValues
-
- - type: block-layout
- label: Node Topology
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: switch
- label: Trigger
- fullwidth: true
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComPerconaXtraDBAutoscaler/spec/compute/perconaxtradb/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/perconaxtradb/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/perconaxtradb
+ paths:
+ - temp/properties/compute/properties/perconaxtradb/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
init:
type: func
- value: setTrigger|autoscalingKubedbComPerconaXtraDBAutoscaler/spec/storage/perconaxtradb/trigger
- schema: temp/properties/storage/properties/perconaxtradb/properties/trigger
+ value: setAllowedMachine|perconaxtradb|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|perconaxtradb|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-perconaxtradb-max
+ schema: temp/properties/allowedMachine-perconaxtradb-min
+ type: machine-compare
watcher:
- func: onTriggerChange|storage/perconaxtradb
+ func: onMachineChange|perconaxtradb
paths:
- - temp/properties/storage/properties/perconaxtradb/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/expansionMode
- - type: block-layout
- label: PerconaXtraDB
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComPerconaXtraDB/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComPerconaXtraDBAutoscaler/spec/storage/perconaxtradb/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComPerconaXtraDBAutoscaler/spec/storage/perconaxtradb/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/upperBound
- - type: block-layout
- label: OpsRequest Options
+ - temp/properties/allowedMachine-perconaxtradb-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
+ init:
+ type: func
+ value: setAllowedMachine|perconaxtradb|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|perconaxtradb|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-perconaxtradb-min
+ schema: temp/properties/allowedMachine-perconaxtradb-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|perconaxtradb
+ paths:
+ - temp/properties/allowedMachine-perconaxtradb-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/perconaxtradb
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/perconaxtradb/properties/containerControlledValues
+ type: select
+ label: PerconaXtraDB
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
init:
type: func
- value: isValueExistInModel|/resources/kubedbComPerconaXtraDB/spec/monitor
+ value: setTrigger|autoscalingKubedbComPerconaXtraDBAutoscaler/spec/storage/perconaxtradb/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/perconaxtradb/properties/trigger
+ type: switch
watcher:
- func: onEnableMonitoringChange
+ func: onTriggerChange|storage/perconaxtradb
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - temp/properties/storage/properties/perconaxtradb/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComPerconaXtraDB/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComPerconaXtraDBAutoscaler/spec/storage/perconaxtradb/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComPerconaXtraDBAutoscaler/spec/storage/perconaxtradb/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/storage/properties/perconaxtradb/properties/upperBound
+ label: PerconaXtraDB
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComPerconaXtraDBAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
if:
+ name: showOpsRequestOptions
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComPerconaXtraDB/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPerconaXtraDB/spec/monitor/agent
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComPerconaXtraDB/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComPerconaXtraDB/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPerconaXtraDB/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPerconaXtraDB/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPerconaXtraDB/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComPerconaXtraDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComPerconaXtraDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
- type: static
- value: true
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onCustomizeExporterChange
+ func: onEnvArrayChange
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComPerconaXtraDB/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComPerconaXtraDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComPerconaXtraDB/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-pgbouncer-editor-options/ui/create-ui.yaml b/charts/kubedbcom-pgbouncer-editor-options/ui/create-ui.yaml
index 443365664b..f11c4cdd7e 100644
--- a/charts/kubedbcom-pgbouncer-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-pgbouncer-editor-options/ui/create-ui.yaml
@@ -1,132 +1,136 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the PgBouncer version you want to deploy on Kubernetes. The chosen version determines the PgBouncer engine features, compatibility, and runtime behavior of your connection pooler.
+- elements:
+ - label: ""
+ subtitle: Select the PgBouncer version you want to deploy on Kubernetes. The chosen
+ version determines the PgBouncer engine features, compatibility, and runtime
+ behavior of your connection pooler.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/PgBouncer/versions
if:
- type: function
name: isToggleOn|databases/PgBouncer/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/PgBouncer/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/PgBouncer/mode
+ type: function
+ init:
type: func
value: getDefault|databases/PgBouncer/mode
- loader: getAdminOptions|databases/PgBouncer/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/PgBouncer/mode
label: Database Mode
+ loader: getAdminOptions|databases/PgBouncer/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: onDatabaseModeChange
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- if:
- type: function
name: isEqualToModelPathValue|Replicaset|/spec/mode
+ type: function
label: Replica number
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your connection pooler. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your connection pooler. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- label: CPU
- loader: setLimits|cpu
- if:
- type: function
- name: isMachineCustom
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Database Reference Name
+ schema: schema/properties/spec/properties/database/properties/databaseName
+ type: input
+ - label: Select Database Reference
+ loader: getAppBindings|postgres
+ refresh: true
+ schema: temp/pgRef
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onRefChange
+ paths:
+ - temp/pgRef
showLabels: true
- elements:
- - label: Database Reference Name
- schema: schema/properties/spec/properties/database/properties/databaseName
- type: input
- - loader: getAppBindings|postgres
- label: Select Database Reference
- watcher:
- func: onRefChange
- paths:
- - temp/pgRef
- refresh: true
- validation:
- type: required
- schema: temp/pgRef
- type: select
+ type: horizontal-layout
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
options:
- description: options.deletionPolicy.delete.description
@@ -141,61 +145,61 @@ step:
schema: schema/properties/spec/properties/deletionPolicy
type: select
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- label: Sync Users
schema: schema/properties/spec/properties/database/properties/syncUsers
type: switch
- - isHorizontal: true
- if:
- type: function
+ - if:
name: isToggleOn|deployment
+ type: function
+ isHorizontal: true
label: Deployment Mode
options:
- description: Shared
@@ -207,8 +211,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -221,19 +225,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement Policy
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -246,16 +250,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -267,34 +271,35 @@ step:
- text: Info
value: info
schema: schema/properties/form/properties/alert/properties/enabled
- # sortable: true
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|tls
+ type: function
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-pgbouncer-editor/ui/edit-ui.yaml b/charts/kubedbcom-pgbouncer-editor/ui/edit-ui.yaml
index 95c9c4b554..d6d34c3430 100644
--- a/charts/kubedbcom-pgbouncer-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-pgbouncer-editor/ui/edit-ui.yaml
@@ -1,481 +1,467 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # pgbouncer mode - Trigger OUTSIDE block-layout
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComPgBouncerAutoscaler/spec/compute/pgbouncer/trigger
- schema: temp/properties/compute/properties/pgbouncer/properties/trigger
- watcher:
- func: onTriggerChange|compute/pgbouncer
- paths:
- - temp/properties/compute/properties/pgbouncer/properties/trigger
-
- # Pod LifeTime label OUTSIDE block-layout
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
-
- # Pod LifeTime input OUTSIDE block-layout
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/podLifeTimeThreshold
- customClass: width-300
-
- # NOW the pgbouncer block-layout
- - type: block-layout
- label: PgBouncer
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|min
- loader:
- name: getMachines|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange|pgbouncer
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|max
- loader:
- name: getMachines|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange|pgbouncer
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|pgbouncer
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/controlledResources
-
- - type: block-layout
- label: Node Topology
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select Node Topology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: isValueExistInModel|/resources/kubedbComPgBouncer/spec/monitor
+ value: setTrigger|autoscalingKubedbComPgBouncerAutoscaler/spec/compute/pgbouncer/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/pgbouncer/properties/trigger
+ type: switch
watcher:
- func: onEnableMonitoringChange
+ func: onTriggerChange|compute/pgbouncer
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
- if:
- type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
+ - temp/properties/compute/properties/pgbouncer/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
init:
- type: static
- value: prometheus.io/operator
+ type: func
+ value: setAllowedMachine|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
watcher:
- func: onAgentChange
+ func: onMachineChange|pgbouncer
paths:
- - schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComPgBouncer/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
+ label: Min Allowed
showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPgBouncer/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPgBouncer/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
init:
- type: static
- value: true
+ type: func
+ value: setAllowedMachine|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
watcher:
- func: onCustomizeExporterChange
+ func: onMachineChange|pgbouncer
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: showCustomizeExporterSection
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|pgbouncer
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/pgbouncer/properties/controlledResources
+ type: select
+ label: PgBouncer
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select Node Topology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgBouncerAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComPgBouncer/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComPgBouncer/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPgBouncer/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPgBouncer/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComPgBouncer/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComPgBouncer/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComPgBouncer/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
\ No newline at end of file
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
+ type: function
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComPgBouncer/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComPgBouncer/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
+ init:
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
+ watcher:
+ func: onEnvArrayChange
+ paths:
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-pgpool-editor-options/ui/create-ui.yaml b/charts/kubedbcom-pgpool-editor-options/ui/create-ui.yaml
index 3c0987b7ea..fffc1778a0 100644
--- a/charts/kubedbcom-pgpool-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-pgpool-editor-options/ui/create-ui.yaml
@@ -1,142 +1,142 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Pgpool version you want to deploy on Kubernetes.The chosen version determines the Pgpool engine features, compatibility, and runtime behavior of your connection pooler.
+- elements:
+ - label: ""
+ subtitle: Select the Pgpool version you want to deploy on Kubernetes.The chosen
+ version determines the Pgpool engine features, compatibility, and runtime behavior
+ of your connection pooler.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Pgpool/versions
if:
- type: function
name: isToggleOn|databases/Pgpool/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/Pgpool/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/Pgpool/mode
+ type: function
+ init:
type: func
value: getDefault|databases/Pgpool/mode
- loader: getAdminOptions|databases/Pgpool/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/Pgpool/mode
label: Database Mode
+ loader: getAdminOptions|databases/Pgpool/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: onModeChange
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- if:
- type: function
name: isEqualToModelPathValue|Replicaset|/spec/mode
+ type: function
label: Replica Number
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your connection pooler. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your connection pooler. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
+ - customClass: mt-10
+ init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- customClass: mt-10
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - label: Select Database Reference
+ loader: getAppBindings|postgres
+ refresh: true
+ schema: temp/properties/postgresRef
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onRefChange|postgresRef
+ paths:
+ - temp/properties/postgresRef
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - loader: getAppBindings|postgres
- label: Select Database Reference
- watcher:
- func: onRefChange|postgresRef
- paths:
- - temp/properties/postgresRef
- refresh: true
- validation:
- type: required
- schema: temp/properties/postgresRef
- type: select
+ type: horizontal-layout
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -152,62 +152,66 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- label: Sync Users
schema: schema/properties/spec/properties/syncUsers
type: switch
- - isHorizontal: true
- if:
- type: function
+ - if:
name: isToggleOn|deployment
+ type: function
+ isHorizontal: true
label: Deployment Mode
options:
- description: Shared
@@ -219,8 +223,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -233,19 +237,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement Policy
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
label: Advanced Configuration
@@ -258,16 +262,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -281,31 +285,33 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|tls
+ type: function
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-pgpool-editor/ui/edit-ui.yaml b/charts/kubedbcom-pgpool-editor/ui/edit-ui.yaml
index 1ff9bf3056..04d02489eb 100644
--- a/charts/kubedbcom-pgpool-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-pgpool-editor/ui/edit-ui.yaml
@@ -1,494 +1,492 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # pgpool mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComPgpoolAutoscaler/spec/compute/pgpool/trigger
- schema: temp/properties/compute/properties/pgpool/properties/trigger
- watcher:
- func: onTriggerChange|compute/pgpool
- paths:
- - temp/properties/compute/properties/pgpool/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before being considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Pgpool
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool
- elements:
- - type: threshold-input
- label: Resource Diff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|min
- loader:
- name: getMachines|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange|pgpool
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|max
- loader:
- name: getMachines|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange|pgpool
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/pgpool
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/containerControlledValues
- - type: block-layout
- label: Node Topology
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: label-element
- label: Node Topology Configuration
- subtitle: Configure node topology constraints to control where your database pods are scheduled based on node labels
- - type: select
- label: Select Node Topology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30s, 1m (1 minute) or 2h (2 hours).
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComPgpool/spec/monitor
+ value: setTrigger|autoscalingKubedbComPgpoolAutoscaler/spec/compute/pgpool/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/pgpool/properties/trigger
+ type: switch
watcher:
- func: onEnableMonitoringChange
+ func: onTriggerChange|compute/pgpool
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
- label: Monitoring Configuration
- showLabels: false
- if:
- type: function
- name: showMonitoringSection
- elements:
- - type: label-element
- label: Monitoring Method Selection
- subtitle: Choose the monitoring approach that best fits your infrastructure. Prometheus Operator provides automated ServiceMonitor creation, while custom options give you more control.
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scraper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
+ - temp/properties/compute/properties/pgpool/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before being considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: Resource Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
init:
- type: static
- value: prometheus.io/operator
+ type: func
+ value: setAllowedMachine|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
watcher:
- func: onAgentChange
+ func: onMachineChange|pgpool
paths:
- - schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComPgpool/spec/monitor/agent
- elements:
- - type: label-element
- label: Scraping Interval
- subtitle: Define how frequently Prometheus should scrape metrics from your database
- - type: input
- label: Scraping Interval
- schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- - type: block-layout
- label: Service Monitor
- showLabels: true
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPgpool/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPgpool/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
- init:
- type: static
- value: true
+ init:
+ type: func
+ value: setAllowedMachine|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
watcher:
- func: onCustomizeExporterChange
- paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
+ func: onMachineChange|pgpool
+ paths:
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: showCustomizeExporterSection
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/pgpool
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/pgpool/properties/containerControlledValues
+ type: select
+ label: Pgpool
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Node Topology Configuration
+ subtitle: Configure node topology constraints to control where your database
+ pods are scheduled based on node labels
+ type: label-element
+ - label: Select Node Topology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30s, 1m (1 minute) or 2h (2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComPgpoolAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComPgpool/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - label: Monitoring Method Selection
+ subtitle: Choose the monitoring approach that best fits your infrastructure.
+ Prometheus Operator provides automated ServiceMonitor creation, while custom
+ options give you more control.
+ type: label-element
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scraper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scraping Interval
+ subtitle: Define how frequently Prometheus should scrape metrics from your
+ database
+ type: label-element
+ - label: Scraping Interval
+ schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComPgpool/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPgpool/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPgpool/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComPgpool/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComPgpool/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComPgpool/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
+ type: function
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComPgpool/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComPgpool/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
+ init:
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
+ watcher:
+ func: onEnvArrayChange
+ paths:
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ label: Monitoring Configuration
+ showLabels: false
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-postgres-editor-options/ui/create-ui.yaml b/charts/kubedbcom-postgres-editor-options/ui/create-ui.yaml
index 251833b5cd..d196f788a0 100644
--- a/charts/kubedbcom-postgres-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-postgres-editor-options/ui/create-ui.yaml
@@ -1,152 +1,154 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Postgres version you want to deploy on Kubernetes. The chosen version determines the Postgres engine features, compatibility, and runtime behavior of your database cluster.
+- elements:
+ - label: ""
+ subtitle: Select the Postgres version you want to deploy on Kubernetes. The chosen
+ version determines the Postgres engine features, compatibility, and runtime
+ behavior of your database cluster.
+ type: label-element
- disableUnselect: false
- loader: getAdminOptions|databases/Postgres/versions
if:
- type: function
name: isToggleOn|databases/Postgres/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/Postgres/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions/properties/default
type: select
- - init:
- type: func
- value: getDefault|databases/Postgres/mode
- loader: getAdminOptions|databases/Postgres/mode
- if:
- type: function
+ - if:
name: isToggleOn|databases/Postgres/mode
- label: Database Mode
+ type: function
+ init:
+ type: func
+ value: getDefault|databases/Postgres/mode
isHorizontal: true
+ label: Database Mode
+ loader: getAdminOptions|databases/Postgres/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: clearArbiterHidden
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- if:
- type: function
name: EqualToDatabaseMode|Cluster
+ type: function
label: Replicas
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Configure a remote replica to replicate data from an external PostgreSQL source. Select the source database binding for asynchronous replication across clusters or regions.
- - loader: getAppBindings
- label: RemoteReplica SourceRef
- validation:
- type: required
+ - label: ""
+ subtitle: Configure a remote replica to replicate data from an external PostgreSQL
+ source. Select the source database binding for asynchronous replication across
+ clusters or regions.
+ type: label-element
+ - label: RemoteReplica SourceRef
+ loader: getAppBindings
schema: schema/properties/spec/properties/remoteReplica/properties/sourceRef
type: select
+ validation:
+ type: required
if:
- type: function
name: EqualToDatabaseMode|RemoteReplica
+ type: function
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
- showLabels: true
- customClass: mb-16
+ - customClass: mb-16
elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage Class
- validation:
- type: required
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - if:
- type: function
- name: showStorageSizeField
- label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ validation:
+ type: required
+ - if:
+ name: showStorageSizeField
+ type: function
+ label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
+ showLabels: true
+ type: horizontal-layout
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
label: Labels & Annotations
showLabels: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -162,106 +164,112 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
+ name: showReferSecretSwitch
type: function
- name: showReferSecretSwitch
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
+ - temp/referSecret
+ - if:
+ name: showSecretDropdown
type: function
- name: showSecretDropdown
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: editor
- - init:
+ - if:
+ name: isToggleOn|pointInTimeRecovery
+ type: function
+ init:
type: func
value: getDefault|pointInTimeRecovery
- if:
- type: function
- name: isToggleOn|pointInTimeRecovery
label: Point in-time Recovery?
schema: temp/recovery
type: switch
- elements:
- - type: label-element
- label: ''
- subtitle: Restore your database to a specific point in time by specifying the source database namespace, name, and the exact recovery timestamp for data restoration.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Restore your database to a specific point in time by specifying
+ the source database namespace, name, and the exact recovery timestamp for
+ data restoration.
+ type: label-element
+ - elements:
+ - forceRequired: true
+ label: Namespace
+ schema: temp/refNamespace
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refNamespace
+ - label: Name
+ schema: temp/refDBName
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: setPointInTimeRecovery
+ paths:
+ - temp/refDBName
showLabels: true
- elements:
- - label: Namespace
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refNamespace
- forceRequired: true
- validation:
- type: required
- schema: temp/refNamespace
- type: input
- - label: Name
- watcher:
- func: setPointInTimeRecovery
- paths:
- - temp/refDBName
- validation:
- type: required
- schema: temp/refDBName
- type: input
+ type: horizontal-layout
- label: Recovery Timestamp
schema: schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
type: date-time
watcher:
func: onTimestampChange
paths:
- - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
+ - schema/properties/spec/properties/init/properties/archiver/properties/recoveryTimestamp
if:
- type: function
name: showRecovery
+ type: function
label: Point in-time Recovery
showLabels: true
type: block-layout
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment
options:
- description: labels.deployment.shared
@@ -273,8 +281,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -287,44 +295,44 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Standby Mode
+ options:
+ - text: Hot
+ value: Hot
+ - text: Warm
+ value: Warm
+ schema: schema/properties/spec/properties/standbyMode
+ type: select
+ - label: Streaming Mode
+ options:
+ - text: Synchronous
+ value: Synchronous
+ - text: Asynchronous
+ value: Asynchronous
+ schema: schema/properties/spec/properties/streamingMode
+ type: select
showLabels: true
- elements:
- - label: Standby Mode
- options:
- - text: Hot
- value: Hot
- - text: Warm
- value: Warm
- schema: schema/properties/spec/properties/standbyMode
- type: select
- - label: Streaming Mode
- options:
- - text: Synchronous
- value: Synchronous
- - text: Asynchronous
- value: Asynchronous
- schema: schema/properties/spec/properties/streamingMode
- type: select
+ type: horizontal-layout
if:
- type: function
name: EqualToDatabaseMode|Cluster
+ type: function
type: block-layout
label: Advanced Configuration
showLabels: true
@@ -336,16 +344,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring?
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -359,72 +367,72 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
-
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- disable: showArchiverAlert
label: Enable Archiver?
+ schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
+ type: switch
watcher:
func: onArchiverChange
paths:
- - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- type: switch
+ - schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default
- if:
- type: function
name: showArchiverAlert
+ type: function
label: The selected StorageClass does not support Archiver
type: warning
if:
- type: function
name: showArchiver
+ type: function
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|tls
+ type: function
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|expose
+ type: function
label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-postgres-editor/ui/edit-ui.yaml b/charts/kubedbcom-postgres-editor/ui/edit-ui.yaml
index cde79a6ad0..ab8a1c2a7d 100644
--- a/charts/kubedbcom-postgres-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-postgres-editor/ui/edit-ui.yaml
@@ -1,734 +1,724 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: backupconfiguration
- # label: Backup
- schema: schema/
- elements:
- - type: radio
- label: Schedule a Backup?
- schema: temp/properties/scheduleBackup
+- elements:
+ - if:
+ name: showScheduleBackup
+ type: function
+ init:
+ type: func
+ value: initScheduleBackupForEdit
+ isHorizontal: true
+ label: Schedule a Backup?
+ options:
+ - text: "Yes"
+ value: "yes"
+ - text: "No"
+ value: "no"
+ schema: temp/properties/scheduleBackup
+ type: radio
+ watcher:
+ func: onScheduleBackupChange
+ paths:
+ - temp/properties/scheduleBackup
+ - elements:
+ - if:
+ name: isBackupDataLoadedTrue
+ type: function
+ init:
+ type: func
+ value: setBackupType
isHorizontal: true
+ label: Select Backup Type
+ loader: getTypes
options:
- - text: 'Yes'
- value: 'yes'
- - text: 'No'
- value: 'no'
+ - description: Create, Delete or Modify BackupConfig
+ text: BackupConfig
+ value: BackupConfig
+ - description: Enable/Disable BackupBlueprint
+ text: BackupBlueprint
+ value: BackupBlueprint
+ schema: temp/properties/backupType
+ type: radio
+ watcher:
+ func: onBackupTypeChange
+ paths:
+ - temp/properties/backupType
+ - elements:
+ - label: Select Context
+ loader: getContext
+ schema: temp/properties/backupConfigContext
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onContextChange
+ paths:
+ - temp/properties/backupConfigContext
+ - if:
+ name: showConfigList
+ type: function
+ label: Select BackupConfig
+ loader: getConfigList
+ schema: temp/properties/config
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onConfigChange
+ paths:
+ - temp/properties/config
+ - if:
+ name: showSchedule
+ type: function
+ label: Schedule
+ loader:
+ name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
+ watchPaths:
+ - temp/properties/config
+ schema: temp/properties/schedule
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
+ paths:
+ - temp/properties/schedule
+ - fullwidth: true
+ if:
+ name: showPause
+ type: function
+ init:
+ type: func
+ value: setPausedValue
+ label: Paused
+ schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
+ type: switch
+ watcher:
+ func: setPausedValue
+ paths:
+ - temp/properties/config
if:
+ name: isBackupType|BackupConfig
type: function
- name: showScheduleBackup
+ label: Config
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setBlueprintSwitch
+ label: Enable Backup Blueprint
+ schema: temp/properties/blueprintEnabled
+ type: switch
+ watcher:
+ func: onBlueprintChange
+ paths:
+ - temp/properties/blueprintEnabled
+ if:
+ name: isBackupType|BackupBlueprint
+ type: function
+ label: Blueprint
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setArchiverSwitch
+ label: Enable Archiver
+ schema: temp/properties/archiverEnabled
+ type: switch
+ watcher:
+ func: onArchiverChange
+ paths:
+ - temp/properties/archiverEnabled
+ if:
+ name: isBackupType|Archiver
+ type: function
+ label: Archiver
+ type: block-layout
+ if:
+ name: showBackupForm
+ type: function
+ label: Backup Form
+ loader: initBackupData
+ showLabels: false
+ type: block-layout
+ id: backupconfiguration
+ schema: schema/
+ type: single-step-form
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getPostgresDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: initScheduleBackupForEdit
+ value: setTrigger|autoscalingKubedbComPostgresAutoscaler/spec/compute/postgres/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/postgres/properties/trigger
+ type: switch
watcher:
- func: onScheduleBackupChange
+ func: onTriggerChange|compute/postgres
paths:
- - temp/properties/scheduleBackup
- - type: block-layout
- label: Backup Form
- showLabels: false
- loader: initBackupData
- if:
- type: function
- name: showBackupForm
- elements:
- - type: radio
- label: Select Backup Type
- schema: temp/properties/backupType
- isHorizontal: true
- options:
- - text: BackupConfig
- value: BackupConfig
- description: 'Create, Delete or Modify BackupConfig'
- - text: BackupBlueprint
- value: BackupBlueprint
- description: Enable/Disable BackupBlueprint
+ - temp/properties/compute/properties/postgres/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupDataLoadedTrue
init:
type: func
- value: setBackupType
- loader: getTypes
+ value: setAllowedMachine|postgres|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|postgres|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
watcher:
- func: onBackupTypeChange
+ func: onMachineChange|postgres
paths:
- - temp/properties/backupType
- - type: block-layout
- label: Config
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|BackupConfig
- elements:
- - type: select
- label: Select Context
- schema: temp/properties/backupConfigContext
- validation:
- type: required
- loader: getContext
- watcher:
- func: onContextChange
- paths:
- - temp/properties/backupConfigContext
- - type: select
- label: Select BackupConfig
- schema: temp/properties/config
- validation:
- type: required
- if:
- type: function
- name: showConfigList
- loader: getConfigList
- watcher:
- func: onConfigChange
- paths:
- - temp/properties/config
- - type: input
- label: Schedule
- schema: temp/properties/schedule
- validation:
- type: required
- if:
- type: function
- name: showSchedule
- loader:
- name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
- watchPaths:
- - temp/properties/config
- watcher:
- func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
- paths:
- - temp/properties/schedule
- - type: switch
- label: Paused
- fullwidth: true
- schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
- if:
- type: function
- name: showPause
- watcher:
- func: setPausedValue
- paths:
- - temp/properties/config
- init:
- type: func
- value: setPausedValue
- - type: block-layout
- label: Blueprint
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupType|BackupBlueprint
- elements:
- - type: switch
- label: Enable Backup Blueprint
- fullwidth: true
- schema: temp/properties/blueprintEnabled
- init:
- type: func
- value: setBlueprintSwitch
- watcher:
- func: onBlueprintChange
- paths:
- - temp/properties/blueprintEnabled
- - type: block-layout
- label: Archiver
+ init:
+ type: func
+ value: setAllowedMachine|postgres|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|postgres|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|postgres
+ paths:
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|Archiver
- elements:
- - type: switch
- label: Enable Archiver
- fullwidth: true
- schema: temp/properties/archiverEnabled
- init:
- type: func
- value: setArchiverSwitch
- watcher:
- func: onArchiverChange
- paths:
- - temp/properties/archiverEnabled
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|postgres
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/containerControlledValues
+ type: select
+ - elements:
+ - label: Scaling Factor Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/inMemoryStorage/properties/scalingFactorPercentage
+ type: threshold-input
+ - label: Usage Threshold Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/inMemoryStorage/properties/usageThresholdPercentage
+ type: threshold-input
if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getPostgresDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
+ name: showStorageMemoryOption
type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
+ label: In Memory Storage
+ showLabels: true
+ type: block-layout
+ label: Postgres
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComPostgresAutoscaler/spec/storage/postgres/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/postgres/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/postgres
+ paths:
+ - temp/properties/storage/properties/postgres/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically resizing
+ storage while the database remains operational and Offline Mode performs storage
+ scaling during scheduled downtime, ensuring consistency but requiring database
+ restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComPostgres/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/scalingRules
+ type: scaling-rules
watcher:
- func: initMetadata
+ func: handleUnit|autoscalingKubedbComPostgresAutoscaler/spec/storage/postgres/scalingRules|scalingRules
paths:
- - temp/properties/autoscalingType
+ - schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComPostgresAutoscaler/spec/storage/postgres/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/upperBound
+ label: Postgres
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComPostgres/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComPostgres/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- # postgres mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPostgres/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPostgres/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
type: func
- value: setTrigger|autoscalingKubedbComPostgresAutoscaler/spec/compute/postgres/trigger
- schema: temp/properties/compute/properties/postgres/properties/trigger
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
watcher:
- func: onTriggerChange|compute/postgres
+ func: onValueFromChange
paths:
- - temp/properties/compute/properties/postgres/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Postgres
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|postgres|min
- loader:
- name: getMachines|postgres|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange|postgres
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|postgres|max
- loader:
- name: getMachines|postgres|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange|postgres
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|postgres
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/containerControlledValues
- - type: block-layout
- label: In Memory Storage
- showLabels: true
- if:
- type: function
- name: showStorageMemoryOption
- # schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/inMemoryStorage
- elements:
- - type: threshold-input
- label: Scaling Factor Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/inMemoryStorage/properties/scalingFactorPercentage
- - type: threshold-input
- label: Usage Threshold Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/postgres/properties/inMemoryStorage/properties/usageThresholdPercentage
-
- - type: block-layout
- label: Node Topology
- if:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: switch
- label: Trigger
- fullwidth: true
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComPostgres/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComPostgres/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
type: func
- value: setTrigger|autoscalingKubedbComPostgresAutoscaler/spec/storage/postgres/trigger
- schema: temp/properties/storage/properties/postgres/properties/trigger
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onTriggerChange|storage/postgres
+ func: onEnvArrayChange
paths:
- - temp/properties/storage/properties/postgres/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/expansionMode
- - type: block-layout
- label: Postgres
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComPostgres/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComPostgresAutoscaler/spec/storage/postgres/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComPostgresAutoscaler/spec/storage/postgres/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/storage/properties/postgres/properties/upperBound
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComPostgresAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComPostgres/spec/monitor
- watcher:
- func: onEnableMonitoringChange
- paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
if:
+ name: showCustomizeExporterSection
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComPostgres/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPostgres/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- buttonClass: is-light is-outlined
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComPostgres/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
- init:
- type: static
- value: true
- watcher:
- func: onCustomizeExporterChange
- paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- schema: schema/properties/resources/properties/kubedbComPostgres/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- buttonClass: is-light is-outlined
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComPostgres/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComPostgres/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
- init:
- type: func
- value: isBindingAlreadyOn
- watcher:
- func: addOrRemoveBinding
- paths:
- - temp/properties/binding
\ No newline at end of file
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-proxysql-editor-options/ui/create-ui.yaml b/charts/kubedbcom-proxysql-editor-options/ui/create-ui.yaml
index 9e07f25045..3d9248107a 100644
--- a/charts/kubedbcom-proxysql-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-proxysql-editor-options/ui/create-ui.yaml
@@ -1,128 +1,132 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the ProxySQL version you want to deploy on Kubernetes. The chosen version determines the ProxySQL engine features, compatibility, and runtime behavior of your database proxy.
+- elements:
+ - label: ""
+ subtitle: Select the ProxySQL version you want to deploy on Kubernetes. The chosen
+ version determines the ProxySQL engine features, compatibility, and runtime
+ behavior of your database proxy.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/ProxySQL/versions
if:
- type: function
name: isToggleOn|databases/ProxySQL/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/ProxySQL/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/ProxySQL/mode
+ type: function
+ init:
type: func
value: getDefault|databases/ProxySQL/mode
- loader: getAdminOptions|databases/ProxySQL/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/ProxySQL/mode
label: Database Mode
+ loader: getAdminOptions|databases/ProxySQL/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: clearArbiterHidden
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- if:
- type: function
name: EqualToDatabaseMode|Replicaset
+ type: function
label: Replicas
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database proxy. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database proxy. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- - loader: getAdminOptions|storageClasses
- if:
- type: function
+ - if:
name: isToggleOn|storageClasses
+ type: function
label: Storage Class
+ loader: getAdminOptions|storageClasses
schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
type: select
- label: Backend Section
- type: label-element
subtitle: Specify the backend databases for ProxySQL to route queries.
- - loader: getAppBindings
- label: Backend
+ type: label-element
+ - label: Backend
+ loader: getAppBindings
refresh: true
schema: schema/properties/spec/properties/backend
type: select
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
options:
- description: options.deletionPolicy.delete.description
@@ -137,51 +141,51 @@ step:
schema: schema/properties/spec/properties/deletionPolicy
type: select
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
@@ -189,8 +193,8 @@ step:
schema: schema/properties/spec/properties/syncUsers
type: switch
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment Mode
options:
- description: Postgres sharded cluster for high performance and high availability.
@@ -202,8 +206,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -216,25 +220,25 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement Policy
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
refresh: true
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
+ hideBlock: true
label: Advanced Configuration
showLabels: true
- hideBlock: true
type: block-layout
- description: Enable Backup, Monitoring, TLS etc.
elements:
@@ -243,16 +247,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -266,32 +270,33 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- elements:
- label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
if:
- type: function
name: isToggleOn|tls
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-proxysql-editor/ui/edit-ui.yaml b/charts/kubedbcom-proxysql-editor/ui/edit-ui.yaml
index 63da2d2b31..351f618b64 100644
--- a/charts/kubedbcom-proxysql-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-proxysql-editor/ui/edit-ui.yaml
@@ -1,482 +1,475 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # proxysql mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComProxySQLAutoscaler/spec/compute/proxysql/trigger
- schema: temp/properties/compute/properties/proxysql/properties/trigger
- watcher:
- func: onTriggerChange|compute/proxysql
- paths:
- - temp/properties/compute/properties/proxysql/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: ProxySQL
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-proxysql-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|proxysql|min
- loader:
- name: getMachines|proxysql|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-proxysql-max
- watcher:
- func: onMachineChange|proxysql
- paths:
- - temp/properties/allowedMachine-proxysql-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-proxysql-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|proxysql|max
- loader:
- name: getMachines|proxysql|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-proxysql-min
- watcher:
- func: onMachineChange|proxysql
- paths:
- - temp/properties/allowedMachine-proxysql-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|compute/proxysql
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/containerControlledValues
- - type: block-layout
- label: NodeTopology
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: Scale Up DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: Scale Down DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: isValueExistInModel|/resources/kubedbComProxySQL/spec/monitor
+ value: setTrigger|autoscalingKubedbComProxySQLAutoscaler/spec/compute/proxysql/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/proxysql/properties/trigger
+ type: switch
watcher:
- func: onEnableMonitoringChange
+ func: onTriggerChange|compute/proxysql
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
- if:
- type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
+ - temp/properties/compute/properties/proxysql/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
init:
- type: static
- value: prometheus.io/operator
+ type: func
+ value: setAllowedMachine|proxysql|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|proxysql|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-proxysql-max
+ schema: temp/properties/allowedMachine-proxysql-min
+ type: machine-compare
watcher:
- func: onAgentChange
+ func: onMachineChange|proxysql
paths:
- - schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
+ - temp/properties/allowedMachine-proxysql-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComProxySQL/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
+ label: Min Allowed
showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComProxySQL/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComProxySQL/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
init:
- type: static
- value: true
+ type: func
+ value: setAllowedMachine|proxysql|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|proxysql|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-proxysql-min
+ schema: temp/properties/allowedMachine-proxysql-max
+ type: machine-compare
watcher:
- func: onCustomizeExporterChange
+ func: onMachineChange|proxysql
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
+ - temp/properties/allowedMachine-proxysql-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: showCustomizeExporterSection
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|compute/proxysql
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/proxysql/properties/containerControlledValues
+ type: select
+ label: ProxySQL
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Up DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Down DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: NodeTopology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComProxySQLAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComProxySQL/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComProxySQL/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComProxySQL/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComProxySQL/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComProxySQL/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComProxySQL/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComProxySQL/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
\ No newline at end of file
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
+ type: function
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComProxySQL/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComProxySQL/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
+ init:
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
+ watcher:
+ func: onEnvArrayChange
+ paths:
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-rabbitmq-editor-options/ui/create-ui.yaml b/charts/kubedbcom-rabbitmq-editor-options/ui/create-ui.yaml
index ea1a59616b..035922e50e 100644
--- a/charts/kubedbcom-rabbitmq-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-rabbitmq-editor-options/ui/create-ui.yaml
@@ -1,133 +1,133 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the RabbitMQ version you want to deploy on Kubernetes. The chosen version determines the RabbitMQ engine features, compatibility, and runtime behavior of your database cluster.
+- elements:
+ - label: ""
+ subtitle: Select the RabbitMQ version you want to deploy on Kubernetes. The chosen
+ version determines the RabbitMQ engine features, compatibility, and runtime
+ behavior of your database cluster.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/RabbitMQ/versions
if:
- type: function
name: isToggleOn|databases/RabbitMQ/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/RabbitMQ/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/RabbitMQ/mode
+ type: function
+ init:
type: func
value: getDefault|databases/RabbitMQ/mode
- loader: getAdminOptions|databases/RabbitMQ/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/RabbitMQ/mode
label: Database Mode
+ loader: getAdminOptions|databases/RabbitMQ/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: onModeChange
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- if:
- type: function
name: showReplicaField
+ type: function
label: Replica number
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete ( Keep only database Secrets and backed up data )
@@ -143,58 +143,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password (leave it blank to auto generate password)
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment Mode
options:
- description: Postgres sharded cluster for high performance and high availability.
@@ -206,8 +210,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -220,25 +224,25 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement Policy
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
refresh: true
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
+ hideBlock: true
label: Advanced Configuration
showLabels: true
- hideBlock: true
type: block-layout
- description: Enable Backup, Monitoring, TLS etc.
elements:
@@ -247,16 +251,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -270,40 +274,41 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- elements:
- label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
if:
- type: function
name: isToggleOn|tls
+ type: function
type: block-layout
- elements:
- label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
if:
- type: function
name: isToggleOn|expose
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-rabbitmq-editor/ui/edit-ui.yaml b/charts/kubedbcom-rabbitmq-editor/ui/edit-ui.yaml
index 24e58243ef..d270926db7 100644
--- a/charts/kubedbcom-rabbitmq-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-rabbitmq-editor/ui/edit-ui.yaml
@@ -1,568 +1,561 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # rabbitmq mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComRabbitMQAutoscaler/spec/compute/rabbitmq/trigger
- schema: temp/properties/compute/properties/rabbitmq/properties/trigger
- watcher:
- func: onTriggerChange|compute/rabbitmq
- paths:
- - temp/properties/compute/properties/rabbitmq/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before being considered for autoscaling. This helps prevent frequent scaling operations on short-lived pods.
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/podLifeTimeThreshold
- - type: block-layout
- label: RabbitMQ
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources for autoscaling. The autoscaler will keep resource allocation within these bounds.
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|min
- loader:
- name: getMachines|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange|rabbitmq
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|max
- loader:
- name: getMachines|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange|rabbitmq
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|rabbitmq
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/controlledResources
-
- - type: block-layout
- label: Node Topology
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComRabbitMQAutoscaler/spec/storage/rabbitmq/trigger
- schema: temp/properties/storage/properties/rabbitmq/properties/trigger
- watcher:
- func: onTriggerChange|storage/rabbitmq
- paths:
- - temp/properties/storage/properties/rabbitmq/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing volumes. Offline Mode requires brief downtime but ensures data integrity during expansion.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled. Online mode allows expansion without downtime, while Offline mode may require a restart.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/expansionMode
- - type: block-layout
- label: RabbitMQ Storage
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage that triggers autoscaling
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- init:
- type: func
- value: setValueFromDbDetails|resources/kubedbComRabbitMQ/spec/storage/resources/requests/storage
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComRabbitMQ/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComRabbitMQAutoscaler/spec/storage/rabbitmq/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComRabbitMQAutoscaler/spec/storage/rabbitmq/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/upperBound
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: isValueExistInModel|/resources/kubedbComRabbitMQ/spec/monitor
+ value: setTrigger|autoscalingKubedbComRabbitMQAutoscaler/spec/compute/rabbitmq/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/rabbitmq/properties/trigger
+ type: switch
watcher:
- func: onEnableMonitoringChange
+ func: onTriggerChange|compute/rabbitmq
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
- if:
- type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
+ - temp/properties/compute/properties/rabbitmq/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before being considered for
+ autoscaling. This helps prevent frequent scaling operations on short-lived
+ pods.
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources for autoscaling. The
+ autoscaler will keep resource allocation within these bounds.
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
init:
- type: static
- value: prometheus.io/operator
+ type: func
+ value: setAllowedMachine|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
watcher:
- func: onAgentChange
+ func: onMachineChange|rabbitmq
paths:
- - schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComRabbitMQ/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
+ label: Min Allowed
showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComRabbitMQ/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComRabbitMQ/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
init:
- type: static
- value: true
+ type: func
+ value: setAllowedMachine|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
watcher:
- func: onCustomizeExporterChange
+ func: onMachineChange|rabbitmq
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: []
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComRabbitMQ/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComRabbitMQ/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|rabbitmq
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/rabbitmq/properties/controlledResources
+ type: select
+ label: RabbitMQ
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComRabbitMQAutoscaler/spec/storage/rabbitmq/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/rabbitmq/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/rabbitmq
+ paths:
+ - temp/properties/storage/properties/rabbitmq/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing volumes. Offline Mode requires brief downtime but ensures data
+ integrity during expansion.
+ type: label-element
+ - description: Select how the storage expansion should be handled. Online mode
+ allows expansion without downtime, while Offline mode may require a restart.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage that triggers autoscaling
+ type: threshold-input
+ - init:
+ type: func
+ value: setValueFromDbDetails|resources/kubedbComRabbitMQ/spec/storage/resources/requests/storage
+ label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComRabbitMQ/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComRabbitMQAutoscaler/spec/storage/rabbitmq/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComRabbitMQAutoscaler/spec/storage/rabbitmq/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/storage/properties/rabbitmq/properties/upperBound
+ label: RabbitMQ Storage
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComRabbitMQAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComRabbitMQ/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComRabbitMQ/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComRabbitMQ/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComRabbitMQ/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
init:
- type: func
- value: isBindingAlreadyOn
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
watcher:
- func: addOrRemoveBinding
+ func: onCustomizeExporterChange
paths:
- - temp/properties/binding
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value: []
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComRabbitMQ/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
+ type: function
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComRabbitMQ/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComRabbitMQ/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
+ init:
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
+ watcher:
+ func: onEnvArrayChange
+ paths:
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-redis-editor-options/ui/create-ui.yaml b/charts/kubedbcom-redis-editor-options/ui/create-ui.yaml
index 3001789b35..614844cc52 100644
--- a/charts/kubedbcom-redis-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-redis-editor-options/ui/create-ui.yaml
@@ -1,53 +1,49 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the Redis version you want to deploy on Kubernetes. The chosen version determines the Redis engine features, compatibility, and runtime behavior of your in-memory data store.
+- elements:
+ - label: ""
+ subtitle: Select the Redis version you want to deploy on Kubernetes. The chosen
+ version determines the Redis engine features, compatibility, and runtime behavior
+ of your in-memory data store.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/Redis/versions
if:
- type: function
name: isToggleOn|databases/Redis/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/Redis/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/Redis/mode
+ type: function
+ init:
type: func
value: getDefault|databases/Redis/mode
- loader: getAdminOptions|databases/Redis/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/Redis/mode
label: Database Mode
+ loader: getAdminOptions|databases/Redis/mode
schema: schema/properties/spec/properties/mode
type: radio
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Shards
+ schema: schema/properties/spec/properties/cluster/properties/master
+ type: input
+ - customClass: mb-20
+ label: Replica Number
+ schema: schema/properties/spec/properties/cluster/properties/replicas
+ type: input
showLabels: true
- elements:
- - label: Shards
- schema: schema/properties/spec/properties/cluster/properties/master
- type: input
- - label: Replica Number
- schema: schema/properties/spec/properties/cluster/properties/replicas
- customClass: mb-20
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Cluster|/spec/mode
+ type: function
type: block-layout
- elements:
- init:
type: func
value: returnTrue
label: Sentinel Type
- watcher:
- func: onCreateSentinelChange
- paths:
- - temp/createSentinel
options:
- text: Use Existing Sentinel
value: "false"
@@ -55,109 +51,117 @@ step:
value: "true"
schema: temp/createSentinel
type: radio
- - loader: getResources|core|v1|namespaces
- if:
- type: function
+ watcher:
+ func: onCreateSentinelChange
+ paths:
+ - temp/createSentinel
+ - if:
name: showSentinelNameAndNamespace
+ type: function
label: Namespace
+ loader: getResources|core|v1|namespaces
schema: schema/properties/spec/properties/sentinelRef/properties/namespace
type: select
- - loader: getRedisSentinels
- if:
- type: function
+ - if:
name: showSentinelNameAndNamespace
+ type: function
label: Name
+ loader: getRedisSentinels
schema: schema/properties/spec/properties/sentinelRef/properties/name
type: select
- - label: Replica Number
+ - customClass: mb-20
+ label: Replica Number
schema: schema/properties/spec/properties/replicas
type: input
- customClass: mb-20
if:
- type: function
name: isEqualToModelPathValue|Sentinel|/spec/mode
+ type: function
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your in-memory data store. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your in-memory data store. Choose 'custom' to manually specify resource requirements
+ or select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: notEqualToDatabaseMode|Sharded
+ type: function
label: Machine profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - if:
+ name: isNotEqualToModelPathValue|Sentinel|/spec/mode
+ type: function
+ label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - if:
- type: function
- name: isNotEqualToModelPathValue|Sentinel|/spec/mode
- label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
type: block-layout
- init:
type: func
value: setAnnounce
label: Announce Redis Endpoints ?
+ schema: temp/announce
+ type: switch
watcher:
func: setAnnounce
paths:
- - temp/announce
- schema: temp/announce
- type: switch
+ - temp/announce
- elements:
- - type: label-element
- label: ''
- subtitle: Configure how Redis cluster endpoints are announced to clients. Specify the announcement type (IP or hostname) and define shard endpoints for cluster mode connectivity.
+ - label: ""
+ subtitle: Configure how Redis cluster endpoints are announced to clients. Specify
+ the announcement type (IP or hostname) and define shard endpoints for cluster
+ mode connectivity.
+ type: label-element
- label: Type
options:
- text: ip
@@ -166,48 +170,46 @@ step:
value: hostname
schema: schema/properties/spec/properties/cluster/properties/announce/properties/type
type: select
- - type: array-item-form
- element:
+ - element:
label: Shard Endpoints (comma-separated, e.g. "endpoint1,endpoint2,endpoint3")
type: input
label: Shards
schema: schema/properties/spec/properties/cluster/properties/announce/properties/shards
+ type: array-item-form
if:
- type: function
name: showAnnounce
+ type: function
label: Announce
showLabels: true
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
hideBlock: true
label: Labels & Annotations
showLabels: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete ( Keep only database Secrets and backed up data )
@@ -223,58 +225,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password (leave it blank to auto generate password)
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment Mode
options:
- description: For exploring databases when high-performance is not required.
@@ -286,8 +292,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -300,19 +306,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement Policy
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
hideBlock: true
@@ -326,16 +332,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -349,53 +355,54 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
if:
- type: function
name: isToggleOn|tls
+ type: function
type: block-layout
- elements:
- if:
- type: function
name: isToggleOn|expose
+ type: function
label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-redis-editor/ui/edit-ui.yaml b/charts/kubedbcom-redis-editor/ui/edit-ui.yaml
index 61c4ab9e23..c67d7b5b4f 100644
--- a/charts/kubedbcom-redis-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-redis-editor/ui/edit-ui.yaml
@@ -1,946 +1,935 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: backupconfiguration
- # label: Backup
- schema: schema/
- elements:
- - type: radio
- label: Schedule a Backup?
- schema: temp/properties/scheduleBackup
+- elements:
+ - if:
+ name: showScheduleBackup
+ type: function
+ init:
+ type: func
+ value: initScheduleBackupForEdit
+ isHorizontal: true
+ label: Schedule a Backup?
+ options:
+ - text: "Yes"
+ value: "yes"
+ - text: "No"
+ value: "no"
+ schema: temp/properties/scheduleBackup
+ type: radio
+ watcher:
+ func: onScheduleBackupChange
+ paths:
+ - temp/properties/scheduleBackup
+ - elements:
+ - if:
+ name: isBackupDataLoadedTrue
+ type: function
+ init:
+ type: func
+ value: setBackupType
isHorizontal: true
+ label: Select Backup Type
+ loader: getTypes
options:
- - text: 'Yes'
- value: 'yes'
- - text: 'No'
- value: 'no'
+ - description: Create, Delete or Modify BackupConfig
+ text: BackupConfig
+ value: BackupConfig
+ - description: Enable/Disable BackupBlueprint
+ text: BackupBlueprint
+ value: BackupBlueprint
+ schema: temp/properties/backupType
+ type: radio
+ watcher:
+ func: onBackupTypeChange
+ paths:
+ - temp/properties/backupType
+ - elements:
+ - label: Select Context
+ loader: getContext
+ schema: temp/properties/backupConfigContext
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onContextChange
+ paths:
+ - temp/properties/backupConfigContext
+ - if:
+ name: showConfigList
+ type: function
+ label: Select BackupConfig
+ loader: getConfigList
+ schema: temp/properties/config
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onConfigChange
+ paths:
+ - temp/properties/config
+ - if:
+ name: showSchedule
+ type: function
+ label: Schedule
+ loader:
+ name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
+ watchPaths:
+ - temp/properties/config
+ schema: temp/properties/schedule
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
+ paths:
+ - temp/properties/schedule
+ - fullwidth: true
+ if:
+ name: showPause
+ type: function
+ init:
+ type: func
+ value: setPausedValue
+ label: Paused
+ schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
+ type: switch
+ watcher:
+ func: setPausedValue
+ paths:
+ - temp/properties/config
if:
+ name: isBackupType|BackupConfig
+ type: function
+ label: Config
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setBlueprintSwitch
+ label: Enable Backup Blueprint
+ schema: temp/properties/blueprintEnabled
+ type: switch
+ watcher:
+ func: onBlueprintChange
+ paths:
+ - temp/properties/blueprintEnabled
+ if:
+ name: isBackupType|BackupBlueprint
+ type: function
+ label: Blueprint
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setArchiverSwitch
+ label: Enable Archiver
+ schema: temp/properties/archiverEnabled
+ type: switch
+ watcher:
+ func: onArchiverChange
+ paths:
+ - temp/properties/archiverEnabled
+ if:
+ name: isBackupType|Archiver
+ type: function
+ label: Archiver
+ type: block-layout
+ if:
+ name: showBackupForm
+ type: function
+ label: Backup Form
+ loader: initBackupData
+ showLabels: false
+ type: block-layout
+ id: backupconfiguration
+ schema: schema/
+ type: single-step-form
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
+ if:
+ name: dbTypeEqualsTo|standalone
type: function
- name: showScheduleBackup
init:
type: func
- value: initScheduleBackupForEdit
+ value: setTrigger|autoscalingKubedbComRedisAutoscaler/spec/compute/standalone/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/standalone/properties/trigger
+ type: switch
watcher:
- func: onScheduleBackupChange
+ func: onTriggerChange|compute/standalone
paths:
- - temp/properties/scheduleBackup
- - type: block-layout
- label: Backup Form
- showLabels: false
- loader: initBackupData
+ - temp/properties/compute/properties/standalone/properties/trigger
+ - if:
+ name: dbTypeEqualsTo|standalone
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before being considered for
+ autoscaling. This helps prevent frequent scaling operations on short-lived
+ pods.
+ type: label-element
+ - customClass: width-300
if:
+ name: dbTypeEqualsTo|standalone
type: function
- name: showBackupForm
- elements:
- - type: radio
- label: Select Backup Type
- schema: temp/properties/backupType
- isHorizontal: true
- options:
- - text: BackupConfig
- value: BackupConfig
- description: 'Create, Delete or Modify BackupConfig'
- - text: BackupBlueprint
- value: BackupBlueprint
- description: Enable/Disable BackupBlueprint
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources for autoscaling. The
+ autoscaler will keep resource allocation within these bounds.
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupDataLoadedTrue
init:
type: func
- value: setBackupType
- loader: getTypes
+ value: setAllowedMachine|standalone|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|standalone|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
watcher:
- func: onBackupTypeChange
+ func: onMachineChange|standalone
paths:
- - temp/properties/backupType
- - type: block-layout
- label: Config
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|BackupConfig
- elements:
- - type: select
- label: Select Context
- schema: temp/properties/backupConfigContext
- validation:
- type: required
- loader: getContext
- watcher:
- func: onContextChange
- paths:
- - temp/properties/backupConfigContext
- - type: select
- label: Select BackupConfig
- schema: temp/properties/config
- validation:
- type: required
- if:
- type: function
- name: showConfigList
- loader: getConfigList
- watcher:
- func: onConfigChange
- paths:
- - temp/properties/config
- - type: input
- label: Schedule
- schema: temp/properties/schedule
- validation:
- type: required
- if:
- type: function
- name: showSchedule
- loader:
- name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
- watchPaths:
- - temp/properties/config
- watcher:
- func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
- paths:
- - temp/properties/schedule
- - type: switch
- label: Paused
- fullwidth: true
- schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
- if:
- type: function
- name: showPause
- watcher:
- func: setPausedValue
- paths:
- - temp/properties/config
- init:
- type: func
- value: setPausedValue
- - type: block-layout
- label: Blueprint
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupType|BackupBlueprint
- elements:
- - type: switch
- label: Enable Backup Blueprint
- fullwidth: true
- schema: temp/properties/blueprintEnabled
- init:
- type: func
- value: setBlueprintSwitch
- watcher:
- func: onBlueprintChange
- paths:
- - temp/properties/blueprintEnabled
- - type: block-layout
- label: Archiver
+ init:
+ type: func
+ value: setAllowedMachine|standalone|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|standalone|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|standalone
+ paths:
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|Archiver
- elements:
- - type: switch
- label: Enable Archiver
- fullwidth: true
- schema: temp/properties/archiverEnabled
- init:
- type: func
- value: setArchiverSwitch
- watcher:
- func: onArchiverChange
- paths:
- - temp/properties/archiverEnabled
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
- if:
- type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # standalone mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: dbTypeEqualsTo|standalone
- init:
- type: func
- value: setTrigger|autoscalingKubedbComRedisAutoscaler/spec/compute/standalone/trigger
- schema: temp/properties/compute/properties/standalone/properties/trigger
- watcher:
- func: onTriggerChange|compute/standalone
- paths:
- - temp/properties/compute/properties/standalone/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before being considered for autoscaling. This helps prevent frequent scaling operations on short-lived pods.
- if:
- type: function
- name: dbTypeEqualsTo|standalone
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- if:
- type: function
- name: dbTypeEqualsTo|standalone
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/podLifeTimeThreshold
- - type: block-layout
- label: Standalone
- showLabels: true
- if:
- type: function
- name: dbTypeEqualsTo|standalone
- # schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources for autoscaling. The autoscaler will keep resource allocation within these bounds.
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|standalone|min
- loader:
- name: getMachines|standalone|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange|standalone
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|standalone|max
- loader:
- name: getMachines|standalone|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange|standalone
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|standalone
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/controlledResources
-
- # cluster mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: dbTypeEqualsTo|cluster
- init:
- type: func
- value: setTrigger|autoscalingKubedbComRedisAutoscaler/spec/compute/cluster/trigger
- schema: temp/properties/compute/properties/cluster/properties/trigger
- watcher:
- func: onTriggerChange|compute/cluster
- paths:
- - temp/properties/compute/properties/cluster/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before being considered for autoscaling. This helps prevent frequent scaling operations on short-lived pods.
- if:
- type: function
- name: dbTypeEqualsTo|cluster
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- customClass: width-300
- if:
- type: function
- name: dbTypeEqualsTo|cluster
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/podLifeTimeThreshold
- - type: block-layout
- label: Cluster
- showLabels: true
- if:
- type: function
- name: dbTypeEqualsTo|cluster
- # schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/resourceDiffPercentage
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources for autoscaling. The autoscaler will keep resource allocation within these bounds.
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|cluster|min
- loader:
- name: getMachines|cluster|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange|cluster
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|cluster|max
- loader:
- name: getMachines|cluster|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange|cluster
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|cluster
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/controlledResources
-
- # sentinel mode
- - type: block-layout
- label: Sentinel
- showLabels: true
- if:
- type: function
- name: dbTypeEqualsTo|sentinel
- # schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel
- elements:
- - type: select
- label: Trigger
- init:
- type: func
- value: setTrigger|autoscalingKubedbComRedisAutoscaler/spec/compute/sentinel/trigger
- options:
- - text: 'On'
- value: 'On'
- - text: 'Off'
- value: 'Off'
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/trigger
- - type: input
- label: Pod LifeTime Threshold
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/podLifeTimeThreshold
- - type: threshold-input
- label: Resource Diff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/resourceDiffPercentage
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|min
- loader:
- name: getMachines|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-max
- watcher:
- func: onMachineChange|sentinel
- paths:
- - temp/properties/allowedMachine-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|max
- loader:
- name: getMachines|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-min
- watcher:
- func: onMachineChange|sentinel
- paths:
- - temp/properties/allowedMachine-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|sentinel
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/controlledResources
-
- - type: block-layout
- label: Node Topology
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComRedisAutoscaler/spec/storage/redis/trigger
- schema: temp/properties/storage/properties/redis/properties/trigger
- watcher:
- func: onTriggerChange|storage/redis
- paths:
- - temp/properties/storage/properties/redis/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing volumes. Offline Mode requires brief downtime but ensures data integrity during expansion.
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled. Online mode allows expansion without downtime, while Offline mode may require a restart.
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/expansionMode
- - type: block-layout
- label: Cluster
- showLabels: true
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage that triggers autoscaling
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- init:
- type: func
- value: setValueFromDbDetails|resources/kubedbComRedis/spec/storage/resources/requests/storage
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComRedis/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComRedisAutoscaler/spec/storage/redis/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComRedisAutoscaler/spec/storage/redis/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/upperBound
- - type: block-layout
- label: OpsRequest Options
+ label: Max Allowed
showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|standalone
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/standalone/properties/controlledResources
+ type: select
+ if:
+ name: dbTypeEqualsTo|standalone
+ type: function
+ label: Standalone
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: dbTypeEqualsTo|cluster
+ type: function
init:
type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComRedis/spec/monitor
+ value: setTrigger|autoscalingKubedbComRedisAutoscaler/spec/compute/cluster/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/cluster/properties/trigger
+ type: switch
watcher:
- func: onEnableMonitoringChange
+ func: onTriggerChange|compute/cluster
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - temp/properties/compute/properties/cluster/properties/trigger
+ - if:
+ name: dbTypeEqualsTo|cluster
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before being considered for
+ autoscaling. This helps prevent frequent scaling operations on short-lived
+ pods.
+ type: label-element
+ - customClass: width-300
if:
+ name: dbTypeEqualsTo|cluster
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources for autoscaling. The
+ autoscaler will keep resource allocation within these bounds.
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
init:
- type: static
- value: prometheus.io/operator
+ type: func
+ value: setAllowedMachine|cluster|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|cluster|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
watcher:
- func: onAgentChange
+ func: onMachineChange|cluster
paths:
- - schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComRedis/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
+ label: Min Allowed
showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComRedis/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
- type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
- type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
+ init:
+ type: func
+ value: setAllowedMachine|cluster|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|cluster|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|cluster
+ paths:
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComRedis/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
- init:
- type: static
- value: true
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|cluster
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/cluster/properties/controlledResources
+ type: select
+ if:
+ name: dbTypeEqualsTo|cluster
+ type: function
+ label: Cluster
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setTrigger|autoscalingKubedbComRedisAutoscaler/spec/compute/sentinel/trigger
+ label: Trigger
+ options:
+ - text: "On"
+ value: "On"
+ - text: "Off"
+ value: "Off"
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/trigger
+ type: select
+ - label: Pod LifeTime Threshold
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/podLifeTimeThreshold
+ type: input
+ - label: Resource Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/resourceDiffPercentage
+ type: threshold-input
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-max
+ schema: temp/properties/allowedMachine-min
+ type: machine-compare
watcher:
- func: onCustomizeExporterChange
- paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
+ func: onMachineChange|sentinel
+ paths:
+ - temp/properties/allowedMachine-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComRedis/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComRedis/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-min
+ schema: temp/properties/allowedMachine-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|sentinel
+ paths:
+ - temp/properties/allowedMachine-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|sentinel
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/sentinel/properties/controlledResources
+ type: select
+ if:
+ name: dbTypeEqualsTo|sentinel
+ type: function
+ label: Sentinel
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComRedisAutoscaler/spec/storage/redis/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/redis/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/redis
+ paths:
+ - temp/properties/storage/properties/redis/properties/trigger
+ - label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing volumes. Offline Mode requires brief downtime but ensures data
+ integrity during expansion.
+ type: label-element
+ - description: Select how the storage expansion should be handled. Online mode
+ allows expansion without downtime, while Offline mode may require a restart.
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage that triggers autoscaling
+ type: threshold-input
+ - init:
+ type: func
+ value: setValueFromDbDetails|resources/kubedbComRedis/spec/storage/resources/requests/storage
+ label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComRedis/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComRedisAutoscaler/spec/storage/redis/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComRedisAutoscaler/spec/storage/redis/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/storage/properties/redis/properties/upperBound
+ label: Cluster
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComRedisAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComRedis/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComRedis/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComRedis/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComRedis/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
init:
- type: func
- value: isBindingAlreadyOn
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
watcher:
- func: addOrRemoveBinding
+ func: onCustomizeExporterChange
paths:
- - temp/properties/binding
\ No newline at end of file
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComRedis/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
+ type: function
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComRedis/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComRedis/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
+ init:
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
+ watcher:
+ func: onEnvArrayChange
+ paths:
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-singlestore-editor-options/ui/create-ui.yaml b/charts/kubedbcom-singlestore-editor-options/ui/create-ui.yaml
index 984927985d..01f3dd4248 100644
--- a/charts/kubedbcom-singlestore-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-singlestore-editor-options/ui/create-ui.yaml
@@ -1,274 +1,277 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
+- elements:
- if:
- type: function
name: returnFalse
+ type: function
init:
type: func
value: initBundle
- label: ''
+ label: ""
+ type: label-element
+ - label: ""
+ subtitle: Select the SingleStore version you want to deploy on Kubernetes. The
+ chosen version determines the SingleStore engine features, compatibility, and
+ runtime behavior of your distributed SQL database.
type: label-element
- - type: label-element
- label: ''
- subtitle: Select the SingleStore version you want to deploy on Kubernetes. The chosen version determines the SingleStore engine features, compatibility, and runtime behavior of your distributed SQL database.
- disableUnselect: true
- loader: getAdminOptions|databases/Singlestore/versions
if:
- type: function
name: isToggleOn|databases/Singlestore/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/Singlestore/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/Singlestore/mode
+ type: function
+ init:
type: func
value: getDefault|databases/Singlestore/mode
- loader: getAdminOptions|databases/Singlestore/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/Singlestore/mode
label: Database Mode
+ loader: getAdminOptions|databases/Singlestore/mode
+ schema: schema/properties/spec/properties/mode
+ type: radio
watcher:
func: toggleTls
paths:
- - schema/properties/spec/properties/mode
- schema: schema/properties/spec/properties/mode
- type: radio
+ - schema/properties/spec/properties/mode
- elements:
- - type: label-element
- label: ''
- subtitle: Aggregator nodes handle query processing and coordination. Configure replicas, storage, and resource allocation for efficient query execution and result aggregation.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Aggregator nodes handle query processing and coordination. Configure
+ replicas, storage, and resource allocation for efficient query execution and
+ result aggregation.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setReplicaNumber
+ label: Replica number
+ schema: schema/properties/spec/properties/topology/properties/aggregator/properties/replicas
+ type: input
+ - label: Storage Size
+ schema: schema/properties/spec/properties/topology/properties/aggregator/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - init:
- type: func
- value: setReplicaNumber
- label: Replica number
- schema: schema/properties/spec/properties/topology/properties/aggregator/properties/replicas
- type: input
- - label: Storage Size
- schema: schema/properties/spec/properties/topology/properties/aggregator/properties/persistence/properties/size
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/aggregator
+ if:
+ name: isMachineCustom|topology/aggregator
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/aggregator
+ label: CPU
+ loader: setLimits|cpu|topology/aggregator
+ schema: schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/aggregator
+ paths:
+ - schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/aggregator
+ if:
+ name: isMachineCustom|topology/aggregator
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/aggregator
+ label: Memory
+ loader: setLimits|memory|topology/aggregator
+ schema: schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/aggregator
+ paths:
+ - schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/aggregator
- disable: isMachineNotCustom|topology/aggregator
- if:
- type: function
- name: isMachineCustom|topology/aggregator
- label: CPU
- loader: setLimits|cpu|topology/aggregator
- watcher:
- func: setRequests|cpu|topology/aggregator
- paths:
- - schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/aggregator
- disable: isMachineNotCustom|topology/aggregator
- if:
- type: function
- name: isMachineCustom|topology/aggregator
- label: Memory
- loader: setLimits|memory|topology/aggregator
- watcher:
- func: setRequests|memory|topology/aggregator
- paths:
- - schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/aggregator/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
label: Aggregator
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Leaf nodes store and manage data partitions. Configure replicas, storage, and resource allocation for optimal data storage and query performance.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Leaf nodes store and manage data partitions. Configure replicas, storage,
+ and resource allocation for optimal data storage and query performance.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setReplicaNumber
+ label: Replica number
+ schema: schema/properties/spec/properties/topology/properties/leaf/properties/replicas
+ type: input
+ - label: Storage Size
+ schema: schema/properties/spec/properties/topology/properties/leaf/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - init:
- type: func
- value: setReplicaNumber
- label: Replica number
- schema: schema/properties/spec/properties/topology/properties/leaf/properties/replicas
- type: input
- - label: Storage Size
- schema: schema/properties/spec/properties/topology/properties/leaf/properties/persistence/properties/size
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/leaf
+ if:
+ name: isMachineCustom|topology/leaf
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/leaf
+ label: CPU
+ loader: setLimits|cpu|topology/leaf
+ schema: schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/leaf
+ paths:
+ - schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/leaf
+ if:
+ name: isMachineCustom|topology/leaf
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/leaf
+ label: Memory
+ loader: setLimits|memory|topology/leaf
+ schema: schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/leaf
+ paths:
+ - schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/leaf
- disable: isMachineNotCustom|topology/leaf
- if:
- type: function
- name: isMachineCustom|topology/leaf
- label: CPU
- loader: setLimits|cpu|topology/leaf
- watcher:
- func: setRequests|cpu|topology/leaf
- paths:
- - schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/leaf
- disable: isMachineNotCustom|topology/leaf
- if:
- type: function
- name: isMachineCustom|topology/leaf
- label: Memory
- loader: setLimits|memory|topology/leaf
- watcher:
- func: setRequests|memory|topology/leaf
- paths:
- - schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/leaf/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
label: Leaf
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your distributed SQL database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your distributed SQL database. Choose 'custom' to manually specify resource
+ requirements or select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Standalone|/spec/mode
+ type: function
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Standalone|/spec/mode
+ type: function
type: block-layout
- - loader: getSecrets
- label: License Secret
+ - label: License Secret
+ loader: getSecrets
refresh: true
schema: schema/properties/spec/properties/licenseSecret/properties/name
type: select
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
hideBlock: true
label: Labels & Annotations
showLabels: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -284,58 +287,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment Mode
options:
- description: shared
@@ -347,8 +354,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -361,19 +368,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement Policy
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
hideBlock: true
@@ -387,16 +394,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -410,22 +417,22 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- init:
type: func
@@ -433,31 +440,32 @@ step:
label: Enable TLS?
schema: schema/properties/spec/properties/admin/properties/tls/properties/default
type: switch
- - loader: getAdminOptions|clusterIssuers
- if:
- type: function
+ - if:
name: showIssuer
+ type: function
label: Cluster Issuers
- validation:
- type: required
+ loader: getAdminOptions|clusterIssuers
schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default
type: select
+ validation:
+ type: required
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
type: block-layout
- if:
- type: function
name: isToggleOn|expose
+ type: function
label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-singlestore-editor/ui/edit-ui.yaml b/charts/kubedbcom-singlestore-editor/ui/edit-ui.yaml
index 59b975b0e5..ba1e3284bb 100644
--- a/charts/kubedbcom-singlestore-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-singlestore-editor/ui/edit-ui.yaml
@@ -1,1086 +1,1069 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: backupconfiguration
- # label: Backup
- schema: schema/
- elements:
- - type: radio
- label: Schedule a Backup?
- schema: temp/properties/scheduleBackup
+- elements:
+ - if:
+ name: showScheduleBackup
+ type: function
+ init:
+ type: func
+ value: initScheduleBackupForEdit
+ isHorizontal: true
+ label: Schedule a Backup?
+ options:
+ - text: "Yes"
+ value: "yes"
+ - text: "No"
+ value: "no"
+ schema: temp/properties/scheduleBackup
+ type: radio
+ watcher:
+ func: onScheduleBackupChange
+ paths:
+ - temp/properties/scheduleBackup
+ - elements:
+ - if:
+ name: isBackupDataLoadedTrue
+ type: function
+ init:
+ type: func
+ value: setBackupType
isHorizontal: true
+ label: Select Backup Type
+ loader: getTypes
options:
- - text: 'Yes'
- value: 'yes'
- - text: 'No'
- value: 'no'
+ - description: Create, Delete or Modify BackupConfig
+ text: BackupConfig
+ value: BackupConfig
+ - description: Enable/Disable BackupBlueprint
+ text: BackupBlueprint
+ value: BackupBlueprint
+ schema: temp/properties/backupType
+ type: radio
+ watcher:
+ func: onBackupTypeChange
+ paths:
+ - temp/properties/backupType
+ - elements:
+ - label: Select Context
+ loader: getContext
+ schema: temp/properties/backupConfigContext
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onContextChange
+ paths:
+ - temp/properties/backupConfigContext
+ - if:
+ name: showConfigList
+ type: function
+ label: Select BackupConfig
+ loader: getConfigList
+ schema: temp/properties/config
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onConfigChange
+ paths:
+ - temp/properties/config
+ - if:
+ name: showSchedule
+ type: function
+ label: Schedule
+ loader:
+ name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
+ watchPaths:
+ - temp/properties/config
+ schema: temp/properties/schedule
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
+ paths:
+ - temp/properties/schedule
+ - fullwidth: true
+ if:
+ name: showPause
+ type: function
+ init:
+ type: func
+ value: setPausedValue
+ label: Paused
+ schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
+ type: switch
+ watcher:
+ func: setPausedValue
+ paths:
+ - temp/properties/config
if:
+ name: isBackupType|BackupConfig
type: function
- name: showScheduleBackup
+ label: Config
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setBlueprintSwitch
+ label: Enable Backup Blueprint
+ schema: temp/properties/blueprintEnabled
+ type: switch
+ watcher:
+ func: onBlueprintChange
+ paths:
+ - temp/properties/blueprintEnabled
+ if:
+ name: isBackupType|BackupBlueprint
+ type: function
+ label: Blueprint
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setArchiverSwitch
+ label: Enable Archiver
+ schema: temp/properties/archiverEnabled
+ type: switch
+ watcher:
+ func: onArchiverChange
+ paths:
+ - temp/properties/archiverEnabled
+ if:
+ name: isBackupType|Archiver
+ type: function
+ label: Archiver
+ type: block-layout
+ if:
+ name: showBackupForm
+ type: function
+ label: Backup Form
+ loader: initBackupData
+ showLabels: false
+ type: block-layout
+ id: backupconfiguration
+ schema: schema/
+ type: single-step-form
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: initScheduleBackupForEdit
+ value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/compute/aggregator/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/aggregator/properties/trigger
+ type: switch
watcher:
- func: onScheduleBackupChange
+ func: onTriggerChange|compute/aggregator
paths:
- - temp/properties/scheduleBackup
- - type: block-layout
- label: Backup Form
- showLabels: false
- loader: initBackupData
- if:
- type: function
- name: showBackupForm
- elements:
- - type: radio
- label: Select Backup Type
- schema: temp/properties/backupType
- isHorizontal: true
- options:
- - text: BackupConfig
- value: BackupConfig
- description: 'Create, Delete or Modify BackupConfig'
- - text: BackupBlueprint
- value: BackupBlueprint
- description: Enable/Disable BackupBlueprint
+ - temp/properties/compute/properties/aggregator/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupDataLoadedTrue
init:
type: func
- value: setBackupType
- loader: getTypes
+ value: setAllowedMachine|aggregator|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|aggregator|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-aggregator-max
+ schema: temp/properties/allowedMachine-aggregator-min
+ type: machine-compare
watcher:
- func: onBackupTypeChange
+ func: onMachineChange|aggregator
paths:
- - temp/properties/backupType
- - type: block-layout
- label: Config
+ - temp/properties/allowedMachine-aggregator-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|BackupConfig
- elements:
- - type: select
- label: Select Context
- schema: temp/properties/backupConfigContext
- validation:
- type: required
- loader: getContext
- watcher:
- func: onContextChange
- paths:
- - temp/properties/backupConfigContext
- - type: select
- label: Select BackupConfig
- schema: temp/properties/config
- validation:
- type: required
- if:
- type: function
- name: showConfigList
- loader: getConfigList
- watcher:
- func: onConfigChange
- paths:
- - temp/properties/config
- - type: input
- label: Schedule
- schema: temp/properties/schedule
- validation:
- type: required
- if:
- type: function
- name: showSchedule
- loader:
- name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
- watchPaths:
- - temp/properties/config
- watcher:
- func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
- paths:
- - temp/properties/schedule
- - type: switch
- label: Paused
- fullwidth: true
- schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
- if:
- type: function
- name: showPause
- watcher:
- func: setPausedValue
- paths:
- - temp/properties/config
- init:
- type: func
- value: setPausedValue
- - type: block-layout
- label: Blueprint
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupType|BackupBlueprint
- elements:
- - type: switch
- label: Enable Backup Blueprint
- fullwidth: true
- schema: temp/properties/blueprintEnabled
- init:
- type: func
- value: setBlueprintSwitch
- watcher:
- func: onBlueprintChange
- paths:
- - temp/properties/blueprintEnabled
- - type: block-layout
- label: Archiver
+ init:
+ type: func
+ value: setAllowedMachine|aggregator|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|aggregator|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-aggregator-min
+ schema: temp/properties/allowedMachine-aggregator-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|aggregator
+ paths:
+ - temp/properties/allowedMachine-aggregator-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|Archiver
- elements:
- - type: switch
- label: Enable Archiver
- fullwidth: true
- schema: temp/properties/archiverEnabled
- init:
- type: func
- value: setArchiverSwitch
- watcher:
- func: onArchiverChange
- paths:
- - temp/properties/archiverEnabled
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|aggregator
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/controlledResources
+ type: select
+ label: Aggregator
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/compute/leaf/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/leaf/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/leaf
+ paths:
+ - temp/properties/compute/properties/leaf/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|leaf|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|leaf|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-leaf-max
+ schema: temp/properties/allowedMachine-leaf-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|leaf
+ paths:
+ - temp/properties/allowedMachine-leaf-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|leaf|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|leaf|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-leaf-min
+ schema: temp/properties/allowedMachine-leaf-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|leaf
+ paths:
+ - temp/properties/allowedMachine-leaf-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|leaf
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/controlledResources
+ type: select
+ label: Leaf
+ showLabels: true
+ type: block-layout
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Topology
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/compute/node/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/node/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/node
+ paths:
+ - temp/properties/compute/properties/node/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|node|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|node|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-node-max
+ schema: temp/properties/allowedMachine-node-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|node
+ paths:
+ - temp/properties/allowedMachine-node-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|node|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|node|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-node-min
+ schema: temp/properties/allowedMachine-node-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|node
+ paths:
+ - temp/properties/allowedMachine-node-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|node
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/controlledResources
+ type: select
+ label: Node
+ showLabels: true
+ type: block-layout
+ if:
+ name: dbTypeEqualsTo|standalone
+ type: function
+ label: Combined
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Select Node Topology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - elements:
+ - fullwidth: true
if:
+ name: dbTypeEqualsTo|topology
type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/aggregator/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/aggregator/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/aggregator
+ paths:
+ - temp/properties/storage/properties/aggregator/properties/trigger
+ - if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
if:
+ name: dbTypeEqualsTo|topology
type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComSinglestore/spec/topology/aggregator/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/aggregator/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/aggregator/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/upperBound
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Aggregator
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/leaf/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/leaf/properties/trigger
+ type: switch
watcher:
- func: initMetadata
+ func: onTriggerChange|storage/leaf
paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- label: Topology
+ - temp/properties/storage/properties/leaf/properties/trigger
+ - if:
+ name: dbTypeEqualsTo|topology
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
if:
+ name: dbTypeEqualsTo|topology
type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComSinglestore/spec/topology/leaf/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/leaf/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/leaf/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/upperBound
+ if:
name: dbTypeEqualsTo|topology
- showLabels: false
- loader: fetchTopologyMachines
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute
- elements:
- # Aggregator section
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/compute/aggregator/trigger
- schema: temp/properties/compute/properties/aggregator/properties/trigger
- watcher:
- func: onTriggerChange|compute/aggregator
- paths:
- - temp/properties/compute/properties/aggregator/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Aggregator
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-aggregator-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|aggregator|min
- loader:
- name: getMachines|aggregator|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-aggregator-max
- watcher:
- func: onMachineChange|aggregator
- paths:
- - temp/properties/allowedMachine-aggregator-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-aggregator-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|aggregator|max
- loader:
- name: getMachines|aggregator|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-aggregator-min
- watcher:
- func: onMachineChange|aggregator
- paths:
- - temp/properties/allowedMachine-aggregator-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|aggregator
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/aggregator/properties/controlledResources
-
- # Leaf section
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/compute/leaf/trigger
- schema: temp/properties/compute/properties/leaf/properties/trigger
- watcher:
- func: onTriggerChange|compute/leaf
- paths:
- - temp/properties/compute/properties/leaf/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Leaf
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-leaf-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|leaf|min
- loader:
- name: getMachines|leaf|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-leaf-max
- watcher:
- func: onMachineChange|leaf
- paths:
- - temp/properties/allowedMachine-leaf-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-leaf-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|leaf|max
- loader:
- name: getMachines|leaf|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-leaf-min
- watcher:
- func: onMachineChange|leaf
- paths:
- - temp/properties/allowedMachine-leaf-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|leaf
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/leaf/properties/controlledResources
-
- # combined mode - node only
- - type: block-layout
- label: Combined
+ type: function
+ label: Leaf
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - elements:
+ - fullwidth: true
if:
+ name: dbTypeEqualsTo|standalone
type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/node/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/node/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/node
+ paths:
+ - temp/properties/storage/properties/node/properties/trigger
+ - if:
name: dbTypeEqualsTo|standalone
- showLabels: false
- loader: fetchTopologyMachines
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute
- elements:
- # Node section
- - type: switch
- label: Trigger
- fullwidth: true
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/compute/node/trigger
- schema: temp/properties/compute/properties/node/properties/trigger
- watcher:
- func: onTriggerChange|compute/node
- paths:
- - temp/properties/compute/properties/node/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Node
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-node-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|node|min
- loader:
- name: getMachines|node|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-node-max
- watcher:
- func: onMachineChange|node
- paths:
- - temp/properties/allowedMachine-node-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-node-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|node|max
- loader:
- name: getMachines|node|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-node-min
- watcher:
- func: onMachineChange|node
- paths:
- - temp/properties/allowedMachine-node-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|node
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/node/properties/controlledResources
-
- - type: block-layout
- label: Node Topology
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
if:
+ name: dbTypeEqualsTo|standalone
type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select Node Topology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/expansionMode
+ type: select
+ - elements:
+ - label: UsageThreshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComSinglestore/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/node/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
+ - label: UpperBound
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/node/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
if:
+ name: dbTypeEqualsTo|standalone
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: storage-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
+ label: Node
+ showLabels: true
+ type: block-layout
showLabels: false
- elements:
- - type: block-layout
- showLabels: false
- elements:
- # aggregator storage
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: dbTypeEqualsTo|topology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/aggregator/trigger
- schema: temp/properties/storage/properties/aggregator/properties/trigger
- watcher:
- func: onTriggerChange|storage/aggregator
- paths:
- - temp/properties/storage/properties/aggregator/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: dbTypeEqualsTo|topology
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: dbTypeEqualsTo|topology
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/expansionMode
- - type: block-layout
- label: Aggregator
- if:
- type: function
- name: dbTypeEqualsTo|topology
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComSinglestore/spec/topology/aggregator/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/aggregator/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/aggregator/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/aggregator/properties/upperBound
-
- - type: block-layout
- showLabels: false
- elements:
- # leaf storage
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: dbTypeEqualsTo|topology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/leaf/trigger
- schema: temp/properties/storage/properties/leaf/properties/trigger
- watcher:
- func: onTriggerChange|storage/leaf
- paths:
- - temp/properties/storage/properties/leaf/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: dbTypeEqualsTo|topology
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: dbTypeEqualsTo|topology
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/expansionMode
- - type: block-layout
- label: Leaf
- if:
- type: function
- name: dbTypeEqualsTo|topology
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComSinglestore/spec/topology/leaf/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/leaf/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/leaf/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/leaf/properties/upperBound
-
- - type: block-layout
- showLabels: false
- elements:
- # node storage (standalone)
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: dbTypeEqualsTo|standalone
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/node/trigger
- schema: temp/properties/storage/properties/node/properties/trigger
- watcher:
- func: onTriggerChange|storage/node
- paths:
- - temp/properties/storage/properties/node/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: dbTypeEqualsTo|standalone
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: dbTypeEqualsTo|standalone
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/expansionMode
- - type: block-layout
- label: Node
- if:
- type: function
- name: dbTypeEqualsTo|standalone
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node
- elements:
- - type: threshold-input
- label: UsageThreshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComSinglestore/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/node/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
- - type: input
- label: UpperBound
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComSinglestoreAutoscaler/spec/storage/node/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
-
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComSinglestore/spec/monitor
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComSinglestoreAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComSinglestore/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/agent
+ type: radio
watcher:
- func: onEnableMonitoringChange
+ func: onAgentChange
paths:
- - temp/properties/enableMonitoring
- - type: block-layout
+ - schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComSinglestore/spec/monitor/agent
type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComSinglestore/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComSinglestore/spec/monitor/agent
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
+ if:
+ name: returnFalse
+ type: function
+ showLabels: false
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComSinglestore/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComSinglestore/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
+ type: func
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: onValueFromChange
+ paths:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComSinglestore/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
+ type: function
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComSinglestore/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComSinglestore/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
init:
- type: static
- value: true
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onCustomizeExporterChange
+ func: onEnvArrayChange
paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComSinglestore/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComSinglestore/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComSinglestore/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
-
- - type: single-step-form
- id: binding
- elements:
- - type: switch
- label: Expose Database
- schema: temp/properties/binding
- fullwidth: true
- init:
- type: func
- value: isBindingAlreadyOn
- watcher:
- func: addOrRemoveBinding
- paths:
- - temp/properties/binding
\ No newline at end of file
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+- elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: isBindingAlreadyOn
+ label: Expose Database
+ schema: temp/properties/binding
+ type: switch
+ watcher:
+ func: addOrRemoveBinding
+ paths:
+ - temp/properties/binding
+ id: binding
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-solr-editor-options/ui/create-ui.yaml b/charts/kubedbcom-solr-editor-options/ui/create-ui.yaml
index 0d7e59a860..a2a7cf2d2e 100644
--- a/charts/kubedbcom-solr-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-solr-editor-options/ui/create-ui.yaml
@@ -1,35 +1,35 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
+- elements:
- if:
- type: function
name: returnFalse
+ type: function
init:
type: func
value: initBundle
- label: ''
+ label: ""
+ type: label-element
+ - label: ""
+ subtitle: Select the Solr version you want to deploy on Kubernetes. The chosen
+ version determines the Solr engine features, compatibility, and runtime behavior
+ of your database.
type: label-element
- - type: label-element
- label: ''
- subtitle: Select the Solr version you want to deploy on Kubernetes. The chosen version determines the Solr engine features, compatibility, and runtime behavior of your database.
- disableUnselect: true
- loader: getAdminOptions|databases/Solr/versions
if:
- type: function
name: isToggleOn|databases/Solr/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/Solr/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/Solr/mode
+ type: function
+ init:
type: func
value: getDefault|databases/Solr/mode
- loader: getAdminOptions|databases/Solr/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/Solr/mode
label: Database Mode
+ loader: getAdminOptions|databases/Solr/mode
schema: schema/properties/spec/properties/mode
type: radio
- elements:
@@ -37,270 +37,276 @@ step:
schema: schema/properties/spec/properties/replicas
type: input
if:
- type: function
name: isEqualToModelPathValue|Replicaset|/spec/mode
+ type: function
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Overseer nodes coordinate cluster operations and manage shard assignments. Configure replicas, storage, and resource allocation for reliable cluster coordination.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Overseer nodes coordinate cluster operations and manage shard assignments.
+ Configure replicas, storage, and resource allocation for reliable cluster
+ coordination.
+ type: label-element
+ - elements:
+ - label: Replica number
+ schema: schema/properties/spec/properties/topology/properties/overseer/properties/replicas
+ type: input
+ - label: Storage Size
+ schema: schema/properties/spec/properties/topology/properties/overseer/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - label: Replica number
- schema: schema/properties/spec/properties/topology/properties/overseer/properties/replicas
- type: input
- - label: Storage Size
- schema: schema/properties/spec/properties/topology/properties/overseer/properties/persistence/properties/size
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/overseer
+ if:
+ name: isMachineCustom|topology/overseer
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/overseer
+ label: CPU
+ loader: setLimits|cpu|topology/overseer
+ schema: schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/overseer
+ paths:
+ - schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/overseer
+ if:
+ name: isMachineCustom|topology/overseer
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/overseer
+ label: Memory
+ loader: setLimits|memory|topology/overseer
+ schema: schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/overseer
+ paths:
+ - schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/overseer
- disable: isMachineNotCustom|topology/overseer
- if:
- type: function
- name: isMachineCustom|topology/overseer
- label: CPU
- loader: setLimits|cpu|topology/overseer
- watcher:
- func: setRequests|cpu|topology/overseer
- paths:
- - schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/overseer
- disable: isMachineNotCustom|topology/overseer
- if:
- type: function
- name: isMachineCustom|topology/overseer
- label: Memory
- loader: setLimits|memory|topology/overseer
- watcher:
- func: setRequests|memory|topology/overseer
- paths:
- - schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/overseer/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
label: Overseer
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Data nodes store and serve search documents. Configure replicas, storage, and resource allocation for optimal search performance and data persistence.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Data nodes store and serve search documents. Configure replicas, storage,
+ and resource allocation for optimal search performance and data persistence.
+ type: label-element
+ - elements:
+ - label: Replica number
+ schema: schema/properties/spec/properties/topology/properties/data/properties/replicas
+ type: input
+ - label: Storage Size
+ schema: schema/properties/spec/properties/topology/properties/data/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - label: Replica number
- schema: schema/properties/spec/properties/topology/properties/data/properties/replicas
- type: input
- - label: Storage Size
- schema: schema/properties/spec/properties/topology/properties/data/properties/persistence/properties/size
- type: input
-
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/data
+ if:
+ name: isMachineCustom|topology/data
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/data
+ label: CPU
+ loader: setLimits|cpu|topology/data
+ schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/data
+ paths:
+ - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/data
+ if:
+ name: isMachineCustom|topology/data
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/data
+ label: Memory
+ loader: setLimits|memory|topology/data
+ schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/data
+ paths:
+ - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/data
- disable: isMachineNotCustom|topology/data
- if:
- type: function
- name: isMachineCustom|topology/data
- label: CPU
- loader: setLimits|cpu|topology/data
- watcher:
- func: setRequests|cpu|topology/data
- paths:
- - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/data
- disable: isMachineNotCustom|topology/data
- if:
- type: function
- name: isMachineCustom|topology/data
- label: Memory
- loader: setLimits|memory|topology/data
- watcher:
- func: setRequests|memory|topology/data
- paths:
- - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/data/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
label: Data
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Coordinator nodes handle query routing and aggregation. Configure replicas, storage, and resource allocation for efficient query distribution and response coordination.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Coordinator nodes handle query routing and aggregation. Configure
+ replicas, storage, and resource allocation for efficient query distribution
+ and response coordination.
+ type: label-element
+ - elements:
+ - customClass: mb-20
+ label: Replica number
+ schema: schema/properties/spec/properties/topology/properties/coordinator/properties/replicas
+ type: input
+ - label: Storage Size
+ schema: schema/properties/spec/properties/topology/properties/coordinator/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - label: Replica number
- schema: schema/properties/spec/properties/topology/properties/coordinator/properties/replicas
- type: input
- customClass: mb-20
- - label: Storage Size
- schema: schema/properties/spec/properties/topology/properties/coordinator/properties/persistence/properties/size
- type: input
- - type: horizontal-layout
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom|topology/coordinator
+ if:
+ name: isMachineCustom|topology/coordinator
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu|topology/coordinator
+ label: CPU
+ loader: setLimits|cpu|topology/coordinator
+ schema: schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu|topology/coordinator
+ paths:
+ - schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/machine
+ - disable: isMachineNotCustom|topology/coordinator
+ if:
+ name: isMachineCustom|topology/coordinator
+ type: function
+ init:
+ type: func
+ value: setLimits|memory|topology/coordinator
+ label: Memory
+ loader: setLimits|memory|topology/coordinator
+ schema: schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory|topology/coordinator
+ paths:
+ - schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu|topology/coordinator
- disable: isMachineNotCustom|topology/coordinator
- if:
- type: function
- name: isMachineCustom|topology/coordinator
- label: CPU
- loader: setLimits|cpu|topology/coordinator
- watcher:
- func: setRequests|cpu|topology/coordinator
- paths:
- - schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory|topology/coordinator
- disable: isMachineNotCustom|topology/coordinator
- if:
- type: function
- name: isMachineCustom|topology/coordinator
- label: Memory
- loader: setLimits|memory|topology/coordinator
- watcher:
- func: setRequests|memory|topology/coordinator
- paths:
- - schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/topology/properties/coordinator/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Topology|/spec/mode
+ type: function
label: Coordinator
showLabels: true
type: block-layout
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Replicaset,Standalone|/spec/mode
+ type: function
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - if:
+ name: isToggleOn|storageClasses
+ type: function
+ label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - if:
+ name: showStorageSizeField
+ type: function
+ label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- if:
- type: function
- name: isToggleOn|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - if:
- type: function
- name: showStorageSizeField
- label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
if:
- type: function
name: isEqualToModelPathValue|Replicaset,Standalone|/spec/mode
+ type: function
type: block-layout
- elements:
- - loader: getAppBindings
- label: Name
+ - label: Name
+ loader: getAppBindings
schema: schema/properties/spec/properties/zookeeperRef/properties/name
type: select
label: ZookeeperRef
@@ -309,33 +315,31 @@ step:
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
hideBlock: true
label: Labels & Annotations
showLabels: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete
@@ -351,58 +355,62 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment Mode
options:
- description: For exploring databases when high-performance is not required.
@@ -414,8 +422,8 @@ step:
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -428,19 +436,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement Policy
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
hideBlock: true
@@ -454,16 +462,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -477,22 +485,24 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- elements:
- label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
if:
- type: function
name: isToggleOn|expose
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-solr-editor/ui/edit-ui.yaml b/charts/kubedbcom-solr-editor/ui/edit-ui.yaml
index 424799e954..30325b04aa 100644
--- a/charts/kubedbcom-solr-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-solr-editor/ui/edit-ui.yaml
@@ -1,974 +1,954 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: storage-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - elements:
+ - fullwidth: true
+ if:
+ name: isTopology
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/storage/coordinator/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/coordinator/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/coordinator
+ paths:
+ - temp/properties/storage/properties/coordinator/properties/trigger
+ - if:
+ name: isTopology
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
if:
- type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
+ name: isTopology
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/expansionMode
+ type: select
+ - elements:
+ - customClass: width-300
+ label: Usage Threshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComSolr/spec/topology/coordinator/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/coordinator/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/scalingRules
+ - label: Upper Bound
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/coordinator/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/upperBound
+ if:
+ name: isTopology
+ type: function
+ label: Coordinator
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: isTopology
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/storage/data/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/data/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/data
+ paths:
+ - temp/properties/storage/properties/data/properties/trigger
+ - if:
+ name: isTopology
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: isTopology
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/expansionMode
+ type: select
+ - elements:
+ - customClass: width-300
+ label: Usage Threshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComSolr/spec/topology/data/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/data/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/scalingRules
+ - label: Upper Bound
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/data/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/upperBound
+ if:
+ name: isTopology
+ type: function
+ label: Data
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: isTopology
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/storage/overseer/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/overseer/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/overseer
+ paths:
+ - temp/properties/storage/properties/overseer/properties/trigger
+ - if:
+ name: isTopology
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: isTopology
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/expansionMode
+ type: select
+ - elements:
+ - customClass: width-300
+ label: Usage Threshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComSolr/spec/topology/overseer/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/overseer/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/scalingRules
+ - label: Upper Bound
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/overseer/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/upperBound
+ if:
+ name: isTopology
+ type: function
+ label: Overseer
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: isNotTopology
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/storage/node/trigger
+ label: Trigger
+ schema: temp/properties/storage/properties/node/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|storage/node
+ paths:
+ - temp/properties/storage/properties/node/properties/trigger
+ - if:
+ name: isNotTopology
+ type: function
+ label: Expansion Mode (Online/Offline)
+ subtitle: For Online Mode enables scaling without downtime by dynamically
+ resizing storage while the database remains operational and Offline Mode
+ performs storage scaling during scheduled downtime, ensuring consistency
+ but requiring database restarts.
+ type: label-element
+ - description: Select how the storage expansion should be handled.
+ if:
+ name: isNotTopology
+ type: function
+ label: Mode
+ options:
+ - text: Online
+ value: Online
+ - text: Offline
+ value: Offline
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/expansionMode
+ type: select
+ - elements:
+ - customClass: width-300
+ label: Usage Threshold (%)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/usageThreshold
+ subtitle: Set the threshold percentage of storage usage to trigger scaling.
+ type: threshold-input
+ - label: Scaling Rules
+ loader: setValueFromDbDetails|resources/kubedbComSolr/spec/storage/resources/requests/storage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
+ type: scaling-rules
+ watcher:
+ func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/node/scalingRules|scalingRules
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
+ - label: Upper Bound
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
+ type: input
+ watcher:
+ func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/node/upperBound
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
+ if:
+ name: isNotTopology
+ type: function
+ label: Node
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected|storage
+ type: function
+ label: ScaleUp Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected|storage
+ type: function
+ label: ScaleDown Diff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ id: storage-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - elements:
+ - fullwidth: true
+ if:
+ name: isTopology
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/compute/coordinator/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/coordinator/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/coordinator
+ paths:
+ - temp/properties/compute/properties/coordinator/properties/trigger
+ - if:
+ name: isTopology
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ if:
+ name: isTopology
+ type: function
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/namespace
+ init:
+ type: func
+ value: setAllowedMachine|coordinator|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|coordinator|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-coordinator-max
+ schema: temp/properties/allowedMachine-coordinator-min
+ type: machine-compare
watcher:
- func: onNamespaceChange
+ func: onMachineChange|coordinator
paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/databaseRef/properties/name
+ - temp/properties/allowedMachine-coordinator-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|coordinator|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|coordinator|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-coordinator-min
+ schema: temp/properties/allowedMachine-coordinator-max
+ type: machine-compare
watcher:
- func: initMetadata
+ func: onMachineChange|coordinator
paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
+ - temp/properties/allowedMachine-coordinator-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|coordinator
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/containerControlledValues
+ type: select
if:
+ name: isTopology
type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
+ label: Coordinator
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: isTopology
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/compute/data/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/data/properties/trigger
+ type: switch
watcher:
- func: initMetadata
+ func: onTriggerChange|compute/data
paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- elements:
- # Storage sections for different node types
- - type: block-layout
- showLabels: false
- elements:
- # Coordinator - Topology Mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: isTopology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/storage/coordinator/trigger
- schema: temp/properties/storage/properties/coordinator/properties/trigger
- watcher:
- func: onTriggerChange|storage/coordinator
- paths:
- - temp/properties/storage/properties/coordinator/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: isTopology
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: isTopology
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/expansionMode
- - type: block-layout
- label: Coordinator
- showLabels: true
- if:
- type: function
- name: isTopology
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator
- elements:
- - type: threshold-input
- label: Usage Threshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComSolr/spec/topology/coordinator/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/coordinator/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/scalingRules
- - type: input
- label: Upper Bound
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/coordinator/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/coordinator/properties/upperBound
-
- # Data - Topology Mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: isTopology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/storage/data/trigger
- schema: temp/properties/storage/properties/data/properties/trigger
- watcher:
- func: onTriggerChange|storage/data
- paths:
- - temp/properties/storage/properties/data/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: isTopology
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: isTopology
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/expansionMode
- - type: block-layout
- label: Data
- showLabels: true
- if:
- type: function
- name: isTopology
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data
- elements:
- - type: threshold-input
- label: Usage Threshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComSolr/spec/topology/data/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/data/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/scalingRules
- - type: input
- label: Upper Bound
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/data/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/data/properties/upperBound
-
- # Overseer - Topology Mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: isTopology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/storage/overseer/trigger
- schema: temp/properties/storage/properties/overseer/properties/trigger
- watcher:
- func: onTriggerChange|storage/overseer
- paths:
- - temp/properties/storage/properties/overseer/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: isTopology
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: isTopology
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/expansionMode
- - type: block-layout
- label: Overseer
- showLabels: true
- if:
- type: function
- name: isTopology
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer
- elements:
- - type: threshold-input
- label: Usage Threshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComSolr/spec/topology/overseer/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/overseer/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/scalingRules
- - type: input
- label: Upper Bound
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/overseer/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/overseer/properties/upperBound
-
- # Node - Combined/Standalone Mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: isNotTopology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/storage/node/trigger
- schema: temp/properties/storage/properties/node/properties/trigger
- watcher:
- func: onTriggerChange|storage/node
- paths:
- - temp/properties/storage/properties/node/properties/trigger
- - type: label-element
- label: Expansion Mode (Online/Offline)
- subtitle: For Online Mode enables scaling without downtime by dynamically resizing storage while the database remains operational and Offline Mode performs storage scaling during scheduled downtime, ensuring consistency but requiring database restarts.
- if:
- type: function
- name: isNotTopology
- - type: select
- label: Mode
- description: Select how the storage expansion should be handled.
- if:
- type: function
- name: isNotTopology
- options:
- - text: Online
- value: Online
- - text: Offline
- value: Offline
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/expansionMode
- - type: block-layout
- label: Node
- showLabels: true
- if:
- type: function
- name: isNotTopology
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node
- elements:
- - type: threshold-input
- label: Usage Threshold (%)
- subtitle: Set the threshold percentage of storage usage to trigger scaling.
- customClass: width-300
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/usageThreshold
- - type: scaling-rules
- label: Scaling Rules
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
- loader: setValueFromDbDetails|resources/kubedbComSolr/spec/storage/resources/requests/storage
- watcher:
- func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/node/scalingRules|scalingRules
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/scalingRules
- - type: input
- label: Upper Bound
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
- watcher:
- func: handleUnit|autoscalingKubedbComSolrAutoscaler/spec/storage/node/upperBound
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/node/properties/upperBound
-
- # Node Topology
- - type: block-layout
- label: Node Topology
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/nodeTopology/properties/name
- - type: threshold-input
- label: ScaleUp Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected|storage
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: ScaleDown Diff Percentage
- if:
- type: function
- name: isNodeTopologySelected|storage
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/storage/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- # Ops Request Options
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
- type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
-
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
+ - temp/properties/compute/properties/data/properties/trigger
+ - if:
+ name: isTopology
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
if:
+ name: isTopology
type: function
- name: isConsole
- elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/namespace
+ init:
+ type: func
+ value: setAllowedMachine|data|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|data|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-data-max
+ schema: temp/properties/allowedMachine-data-min
+ type: machine-compare
watcher:
- func: onNamespaceChange
+ func: onMachineChange|data
paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/databaseRef/properties/name
+ - temp/properties/allowedMachine-data-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|data|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|data|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-data-min
+ schema: temp/properties/allowedMachine-data-max
+ type: machine-compare
watcher:
- func: initMetadata
+ func: onMachineChange|data
paths:
- - schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
+ - temp/properties/allowedMachine-data-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|data
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/containerControlledValues
+ type: select
if:
+ name: isTopology
type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
+ label: Data
+ showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: isTopology
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/compute/overseer/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/overseer/properties/trigger
+ type: switch
watcher:
- func: initMetadata
+ func: onTriggerChange|compute/overseer
paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
- showLabels: false
- elements:
- - type: block-layout
- showLabels: false
- loader: fetchTopologyMachines
- elements:
- # Coordinator - Topology Mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: isTopology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/compute/coordinator/trigger
- schema: temp/properties/compute/properties/coordinator/properties/trigger
- watcher:
- func: onTriggerChange|compute/coordinator
- paths:
- - temp/properties/compute/properties/coordinator/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- if:
- type: function
- name: isTopology
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/podLifeTimeThreshold
- customClass: width-300
- if:
- type: function
- name: isTopology
- - type: block-layout
- label: Coordinator
- showLabels: true
- if:
- type: function
- name: isTopology
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-coordinator-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|coordinator|min
- loader:
- name: getMachines|coordinator|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-coordinator-max
- watcher:
- func: onMachineChange|coordinator
- paths:
- - temp/properties/allowedMachine-coordinator-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-coordinator-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|coordinator|max
- loader:
- name: getMachines|coordinator|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-coordinator-min
- watcher:
- func: onMachineChange|coordinator
- paths:
- - temp/properties/allowedMachine-coordinator-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|coordinator
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/coordinator/properties/containerControlledValues
-
- # Data - Topology Mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: isTopology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/compute/data/trigger
- schema: temp/properties/compute/properties/data/properties/trigger
- watcher:
- func: onTriggerChange|compute/data
- paths:
- - temp/properties/compute/properties/data/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- if:
- type: function
- name: isTopology
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/podLifeTimeThreshold
- customClass: width-300
- if:
- type: function
- name: isTopology
- - type: block-layout
- label: Data
- showLabels: true
- if:
- type: function
- name: isTopology
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-data-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|data|min
- loader:
- name: getMachines|data|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-data-max
- watcher:
- func: onMachineChange|data
- paths:
- - temp/properties/allowedMachine-data-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-data-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|data|max
- loader:
- name: getMachines|data|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-data-min
- watcher:
- func: onMachineChange|data
- paths:
- - temp/properties/allowedMachine-data-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|data
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/data/properties/containerControlledValues
-
- # Overseer - Topology Mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: isTopology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/compute/overseer/trigger
- schema: temp/properties/compute/properties/overseer/properties/trigger
- watcher:
- func: onTriggerChange|compute/overseer
- paths:
- - temp/properties/compute/properties/overseer/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- if:
- type: function
- name: isTopology
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/podLifeTimeThreshold
- customClass: width-300
- if:
- type: function
- name: isTopology
- - type: block-layout
- label: Overseer
- showLabels: true
- if:
- type: function
- name: isTopology
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-overseer-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|overseer|min
- loader:
- name: getMachines|overseer|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-overseer-max
- watcher:
- func: onMachineChange|overseer
- paths:
- - temp/properties/allowedMachine-overseer-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-overseer-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|overseer|max
- loader:
- name: getMachines|overseer|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-overseer-min
- watcher:
- func: onMachineChange|overseer
- paths:
- - temp/properties/allowedMachine-overseer-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|overseer
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/containerControlledValues
-
- # Node - Combined/Standalone Mode
- - type: switch
- label: Trigger
- fullwidth: true
- if:
- type: function
- name: isNotTopology
- init:
- type: func
- value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/compute/node/trigger
- schema: temp/properties/compute/properties/node/properties/trigger
- watcher:
- func: onTriggerChange|compute/node
- paths:
- - temp/properties/compute/properties/node/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- if:
- type: function
- name: isNotTopology
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/podLifeTimeThreshold
- customClass: width-300
- if:
- type: function
- name: isNotTopology
- - type: block-layout
- label: Node
- showLabels: true
- if:
- type: function
- name: isNotTopology
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-node-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|node|min
- loader:
- name: getMachines|node|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-node-max
- watcher:
- func: onMachineChange|node
- paths:
- - temp/properties/allowedMachine-node-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-node-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|node|max
- loader:
- name: getMachines|node|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-node-min
- watcher:
- func: onMachineChange|node
- paths:
- - temp/properties/allowedMachine-node-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|node
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/containerControlledValues
-
- # Node Topology
- - type: block-layout
- label: NodeTopology
+ - temp/properties/compute/properties/overseer/properties/trigger
+ - if:
+ name: isTopology
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ if:
+ name: isTopology
+ type: function
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|overseer|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|overseer|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-overseer-max
+ schema: temp/properties/allowedMachine-overseer-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|overseer
+ paths:
+ - temp/properties/allowedMachine-overseer-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|overseer|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|overseer|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-overseer-min
+ schema: temp/properties/allowedMachine-overseer-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|overseer
+ paths:
+ - temp/properties/allowedMachine-overseer-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
name: hasNoAnnotations
+ type: function
+ label: Max Allowed
showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select NodeTopology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: Scale Up DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected|compute
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: Scale Down DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected|compute
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- # Ops Request Options
- - type: block-layout
- label: Ops Request Options
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|overseer
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/overseer/properties/containerControlledValues
+ type: select
+ if:
+ name: isTopology
+ type: function
+ label: Overseer
showLabels: true
+ type: block-layout
+ - fullwidth: true
+ if:
+ name: isNotTopology
+ type: function
+ init:
+ type: func
+ value: setTrigger|autoscalingKubedbComSolrAutoscaler/spec/compute/node/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/node/properties/trigger
+ type: switch
+ watcher:
+ func: onTriggerChange|compute/node
+ paths:
+ - temp/properties/compute/properties/node/properties/trigger
+ - if:
+ name: isNotTopology
+ type: function
+ label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
if:
+ name: isNotTopology
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal
+ database performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
+ init:
+ type: func
+ value: setAllowedMachine|node|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|node|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-node-max
+ schema: temp/properties/allowedMachine-node-min
+ type: machine-compare
+ watcher:
+ func: onMachineChange|node
+ paths:
+ - temp/properties/allowedMachine-node-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
+ if:
+ name: hasAnnotations
+ type: function
init:
type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
\ No newline at end of file
+ value: setAllowedMachine|node|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|node|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-node-min
+ schema: temp/properties/allowedMachine-node-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|node
+ paths:
+ - temp/properties/allowedMachine-node-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|node
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/node/properties/containerControlledValues
+ type: select
+ if:
+ name: isNotTopology
+ type: function
+ label: Node
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Select NodeTopology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected|compute
+ type: function
+ label: Scale Up DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected|compute
+ type: function
+ label: Scale Down DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: NodeTopology
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComSolrAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/kubedbcom-zookeeper-editor-options/ui/create-ui.yaml b/charts/kubedbcom-zookeeper-editor-options/ui/create-ui.yaml
index 66f6f586be..3e2dafe30e 100644
--- a/charts/kubedbcom-zookeeper-editor-options/ui/create-ui.yaml
+++ b/charts/kubedbcom-zookeeper-editor-options/ui/create-ui.yaml
@@ -1,129 +1,129 @@
step:
-- type: single-step-form
- loader: initBundle
- elements:
- - type: label-element
- label: ''
- subtitle: Select the ZooKeeper version you want to deploy on Kubernetes. The chosen version determines the ZooKeeper engine features, compatibility, and runtime behavior of your database.
+- elements:
+ - label: ""
+ subtitle: Select the ZooKeeper version you want to deploy on Kubernetes. The chosen
+ version determines the ZooKeeper engine features, compatibility, and runtime
+ behavior of your database.
+ type: label-element
- disableUnselect: true
- loader: getAdminOptions|databases/ZooKeeper/versions
if:
- type: function
name: isToggleOn|databases/ZooKeeper/versions
+ type: function
label: Database Version
+ loader: getAdminOptions|databases/ZooKeeper/versions
schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions/properties/default
type: select
- - init:
+ - if:
+ name: isToggleOn|databases/ZooKeeper/mode
+ type: function
+ init:
type: func
value: getDefault|databases/ZooKeeper/mode
- loader: getAdminOptions|databases/ZooKeeper/mode
isHorizontal: true
- if:
- type: function
- name: isToggleOn|databases/ZooKeeper/mode
label: Database Mode
+ loader: getAdminOptions|databases/ZooKeeper/mode
schema: schema/properties/spec/properties/mode
type: radio
- if:
- type: function
name: isEqualToModelPathValue|Replicaset|/spec/mode
+ type: function
label: Replicas
schema: schema/properties/spec/properties/replicas
type: input
- elements:
- - type: label-element
- label: ''
- subtitle: Select a machine profile to allocate CPU and memory resources for your database. Choose 'custom' to manually specify resource requirements or select a predefined profile.
- - type: horizontal-layout
+ - label: ""
+ subtitle: Select a machine profile to allocate CPU and memory resources for
+ your database. Choose 'custom' to manually specify resource requirements or
+ select a predefined profile.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setMachineToCustom
+ label: Machine
+ loader: getMachineListForOptions
+ schema: schema/properties/spec/properties/podResources/properties/machine
+ type: select
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|cpu
+ label: CPU
+ loader: setLimits|cpu
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ type: input
+ watcher:
+ func: setRequests|cpu
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
+ - schema/properties/spec/properties/podResources/properties/machine
+ - disable: isMachineNotCustom
+ if:
+ name: isMachineCustom
+ type: function
+ init:
+ type: func
+ value: setLimits|memory
+ label: Memory
+ loader: setLimits|memory
+ schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: setRequests|memory
+ paths:
+ - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
+ - schema/properties/spec/properties/podResources/properties/machine
showLabels: true
- elements:
- - init:
- type: func
- value: setMachineToCustom
- loader: getMachineListForOptions
- label: Machine
- schema: schema/properties/spec/properties/podResources/properties/machine
- type: select
- - init:
- type: func
- value: setLimits|cpu
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: CPU
- loader: setLimits|cpu
- watcher:
- func: setRequests|cpu
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/cpu
- type: input
- - init:
- type: func
- value: setLimits|memory
- disable: isMachineNotCustom
- if:
- type: function
- name: isMachineCustom
- label: Memory
- loader: setLimits|memory
- watcher:
- func: setRequests|memory
- paths:
- - schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- - schema/properties/spec/properties/podResources/properties/machine
- schema: schema/properties/spec/properties/podResources/properties/resources/properties/requests/properties/memory
- type: input
+ type: horizontal-layout
label: Machine Profile
showLabels: true
type: block-layout
- elements:
- - type: horizontal-layout
+ - elements:
+ - label: Storage Class
+ loader: getAdminOptions|storageClasses
+ schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
+ type: select
+ - if:
+ name: showStorageSizeField
+ type: function
+ label: Storage Size
+ schema: schema/properties/spec/properties/persistence/properties/size
+ type: input
showLabels: true
- elements:
- - loader: getAdminOptions|storageClasses
- label: Storage Class
- schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default
- type: select
- - if:
- type: function
- name: showStorageSizeField
- label: Storage Size
- schema: schema/properties/spec/properties/persistence/properties/size
- type: input
+ type: horizontal-layout
type: block-layout
- description: Configure Credentials, Deployment Mode etc.
elements:
- elements:
- - type: label-element
- label: ''
- subtitle: Add custom labels and annotations to your database resources for organization, monitoring, and integration with other Kubernetes tools and services.
- - type: object-item
+ - label: ""
+ subtitle: Add custom labels and annotations to your database resources for
+ organization, monitoring, and integration with other Kubernetes tools and
+ services.
+ type: label-element
+ - buttonClass: is-light is-outlined
label: Labels
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/labels
- - type: object-item
+ type: object-item
+ - buttonClass: is-light is-outlined
label: Annotations
- buttonClass: is-light is-outlined
schema: schema/properties/spec/properties/annotations
+ type: object-item
hideBlock: true
label: Labels & Annotations
showLabels: true
type: block-layout
- - init:
- type: func
- value: getDefault|deletionPolicy
- customClass: mt-20
+ - customClass: mt-20
if:
- type: function
name: isToggleOn|deletionPolicy
+ type: function
+ init:
+ type: func
+ value: getDefault|deletionPolicy
label: Deletion Policy
- watcher:
- func: setStorageClass
- paths:
- - schema/properties/spec/properties/deletionPolicy
options:
- description: options.deletionPolicy.delete.description
text: Delete ( Keep only database Secrets and backed up data )
@@ -139,63 +139,63 @@ step:
value: DoNotTerminate
schema: schema/properties/spec/properties/deletionPolicy
type: select
+ watcher:
+ func: setStorageClass
+ paths:
+ - schema/properties/spec/properties/deletionPolicy
- if:
- type: function
name: getDefaultValue|spec/admin/authCredential/customize
+ type: function
label: Provide Authentication Credentials?
+ schema: temp/createAuthSecret
+ type: switch
watcher:
func: onAuthChange
paths:
- - temp/createAuthSecret
- schema: temp/createAuthSecret
- type: switch
+ - temp/createAuthSecret
- if:
- type: function
name: showReferSecretSwitch
+ type: function
label: Refer existing Secret?
+ schema: temp/referSecret
+ type: switch
watcher:
func: onReferSecretChange
paths:
- - temp/referSecret
- schema: temp/referSecret
- type: switch
- - loader: getReferSecrets
- if:
- type: function
+ - temp/referSecret
+ - if:
name: showSecretDropdown
+ type: function
label: Secret
+ loader: getReferSecrets
schema: schema/properties/spec/properties/authSecret/properties/name
type: select
- if:
- type: function
name: showReferSecret
+ type: function
label: Password (leave it blank to auto generate password)
schema: schema/properties/spec/properties/authSecret/properties/password
type: input
- if:
- type: function
name: getDefaultValue|spec/admin/customConfiguration
+ type: function
label: Configure Database?
+ schema: temp/configDatabase
+ type: switch
watcher:
func: clearConfiguration
paths:
- - temp/configDatabase
- schema: temp/configDatabase
- type: switch
+ - temp/configDatabase
- if:
- type: function
name: isConfigDatabaseOn
+ type: function
label: Configuration
schema: schema/properties/spec/properties/configuration
type: textarea
- if:
- type: function
name: isToggleOn|deployment
+ type: function
label: Deployment Mode
- watcher:
- func: setResourceLimit
- paths:
- - schema/properties/spec/properties/admin/properties/deployment/properties/default
options:
- description: For exploring databases when high-performance is not required.
text: Shared
@@ -205,9 +205,13 @@ step:
value: Dedicated
schema: schema/properties/spec/properties/admin/properties/deployment/properties/default
type: radio
+ watcher:
+ func: setResourceLimit
+ paths:
+ - schema/properties/spec/properties/admin/properties/deployment/properties/default
- if:
- type: function
name: isToggleOn|clusterTier
+ type: function
isHorizontal: true
label: Cluster Tier
options:
@@ -220,19 +224,19 @@ step:
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default
type: radio
- disableUnselect: true
- loader: getAdminOptions|clusterTier/placement
if:
- type: function
name: isToggleOn|clusterTier/placement
+ type: function
label: Placement Policy
+ loader: getAdminOptions|clusterTier/placement
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default
type: select
- disableUnselect: true
- loader: getNodeTopology
if:
- type: function
name: isToggleOn|clusterTier/nodeTopology
+ type: function
label: Node Topology
+ loader: getNodeTopology
schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default
type: select
hideBlock: true
@@ -246,16 +250,16 @@ step:
type: func
value: setMonitoring
label: Enable Monitoring
+ schema: temp/monitoring
+ type: switch
watcher:
func: updateAlertValue
paths:
- - temp/monitoring
- schema: temp/monitoring
- type: switch
+ - temp/monitoring
- customClass: mt-10
if:
- type: function
name: showAlerts
+ type: function
label: Alert Options
options:
- text: None
@@ -269,36 +273,37 @@ step:
schema: schema/properties/form/properties/alert/properties/enabled
type: select
if:
- type: function
name: isToggleOn|monitoring
+ type: function
type: block-layout
- - init:
+ - if:
+ name: isToggleOn|backup
+ type: function
+ init:
type: func
value: setBackup
- if:
- type: function
- name: isToggleOn|backup
label: Enable Backup?
+ schema: temp/backup
+ type: switch
watcher:
func: onBackupSwitch
paths:
- - temp/backup
- schema: temp/backup
- type: switch
+ - temp/backup
- elements:
- label: Expose via Gateway?
schema: schema/properties/spec/properties/admin/properties/expose/properties/default
type: switch
if:
- type: function
name: isToggleOn|expose
+ type: function
type: block-layout
if:
- type: function
name: showAdditionalSettings
+ type: function
label: Additional Options
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ loader: initBundle
+ type: single-step-form
type: multi-step-form
diff --git a/charts/kubedbcom-zookeeper-editor/ui/edit-ui.yaml b/charts/kubedbcom-zookeeper-editor/ui/edit-ui.yaml
index 90e17d6728..a9048e233e 100644
--- a/charts/kubedbcom-zookeeper-editor/ui/edit-ui.yaml
+++ b/charts/kubedbcom-zookeeper-editor/ui/edit-ui.yaml
@@ -1,630 +1,623 @@
-type: multi-step-form
step:
- - type: single-step-form
- id: backupconfiguration
- # label: Backup
- schema: schema/
- elements:
- - type: radio
- label: Schedule a Backup?
- schema: temp/properties/scheduleBackup
+- elements:
+ - if:
+ name: showScheduleBackup
+ type: function
+ init:
+ type: func
+ value: initScheduleBackupForEdit
+ isHorizontal: true
+ label: Schedule a Backup?
+ options:
+ - text: "Yes"
+ value: "yes"
+ - text: "No"
+ value: "no"
+ schema: temp/properties/scheduleBackup
+ type: radio
+ watcher:
+ func: onScheduleBackupChange
+ paths:
+ - temp/properties/scheduleBackup
+ - elements:
+ - if:
+ name: isBackupDataLoadedTrue
+ type: function
+ init:
+ type: func
+ value: setBackupType
isHorizontal: true
+ label: Select Backup Type
+ loader: getTypes
options:
- - text: 'Yes'
- value: 'yes'
- - text: 'No'
- value: 'no'
+ - description: Create, Delete or Modify BackupConfig
+ text: BackupConfig
+ value: BackupConfig
+ - description: Enable/Disable BackupBlueprint
+ text: BackupBlueprint
+ value: BackupBlueprint
+ schema: temp/properties/backupType
+ type: radio
+ watcher:
+ func: onBackupTypeChange
+ paths:
+ - temp/properties/backupType
+ - elements:
+ - label: Select Context
+ loader: getContext
+ schema: temp/properties/backupConfigContext
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onContextChange
+ paths:
+ - temp/properties/backupConfigContext
+ - if:
+ name: showConfigList
+ type: function
+ label: Select BackupConfig
+ loader: getConfigList
+ schema: temp/properties/config
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onConfigChange
+ paths:
+ - temp/properties/config
+ - if:
+ name: showSchedule
+ type: function
+ label: Schedule
+ loader:
+ name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
+ watchPaths:
+ - temp/properties/config
+ schema: temp/properties/schedule
+ type: input
+ validation:
+ type: required
+ watcher:
+ func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
+ paths:
+ - temp/properties/schedule
+ - fullwidth: true
+ if:
+ name: showPause
+ type: function
+ init:
+ type: func
+ value: setPausedValue
+ label: Paused
+ schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
+ type: switch
+ watcher:
+ func: setPausedValue
+ paths:
+ - temp/properties/config
+ if:
+ name: isBackupType|BackupConfig
+ type: function
+ label: Config
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setBlueprintSwitch
+ label: Enable Backup Blueprint
+ schema: temp/properties/blueprintEnabled
+ subtitle: Use a backup blueprint template to automatically configure backups
+ for similar databases
+ type: switch
+ watcher:
+ func: onBlueprintChange
+ paths:
+ - temp/properties/blueprintEnabled
+ if:
+ name: isBackupType|BackupBlueprint
+ type: function
+ label: Blueprint
+ type: block-layout
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setArchiverSwitch
+ label: Enable Archiver
+ schema: temp/properties/archiverEnabled
+ type: switch
+ watcher:
+ func: onArchiverChange
+ paths:
+ - temp/properties/archiverEnabled
if:
+ name: isBackupType|Archiver
type: function
- name: showScheduleBackup
+ label: Archiver
+ type: block-layout
+ if:
+ name: showBackupForm
+ type: function
+ label: Backup Form
+ loader: initBackupData
+ showLabels: false
+ type: block-layout
+ id: backupconfiguration
+ schema: schema/
+ type: single-step-form
+- elements:
+ - elements:
+ - label: Name
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/metadata/properties/name
+ type: input
+ - if:
+ name: isRancherManaged
+ type: function
+ label: Select Namespace
+ loader: getNamespaces
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/metadata/properties/namespace
+ type: select
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/metadata/properties/namespace
+ - label: Select Db
+ loader: getDbs
+ refresh: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/databaseRef/properties/name
+ if:
+ name: isConsole
+ type: function
+ type: block-layout
+ - if:
+ name: isConsole
+ type: function
+ label: Select Type
+ options:
+ - description: Scale your CPU Memory based on resource usage
+ text: Compute
+ value: compute
+ - description: Expand your database size based on volume usage
+ text: Storage
+ value: storage
+ schema: temp/properties/autoscalingType
+ type: radio
+ validation:
+ type: required
+ watcher:
+ func: initMetadata
+ paths:
+ - temp/properties/autoscalingType
+ - elements:
+ - fullwidth: true
init:
type: func
- value: initScheduleBackupForEdit
+ value: setTrigger|autoscalingKubedbComZooKeeperAutoscaler/spec/compute/zookeeper/trigger
+ label: Trigger
+ schema: temp/properties/compute/properties/zookeeper/properties/trigger
+ type: switch
watcher:
- func: onScheduleBackupChange
+ func: onTriggerChange|compute/zookeeper
paths:
- - temp/properties/scheduleBackup
- - type: block-layout
- label: Backup Form
- showLabels: false
- loader: initBackupData
- if:
- type: function
- name: showBackupForm
- elements:
- - type: radio
- label: Select Backup Type
- schema: temp/properties/backupType
- isHorizontal: true
- options:
- - text: BackupConfig
- value: BackupConfig
- description: 'Create, Delete or Modify BackupConfig'
- - text: BackupBlueprint
- value: BackupBlueprint
- description: Enable/Disable BackupBlueprint
+ - temp/properties/compute/properties/zookeeper/properties/trigger
+ - label: Pod lifetime threshold
+ subtitle: Specifies the duration a pod can exist before using considered for
+ scaling decisions, ensuring resource optimization and workload stability
+ type: label-element
+ - customClass: width-300
+ label: Pod LifeTime Threshold (e.g., 10m 30s)
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/podLifeTimeThreshold
+ type: input
+ - elements:
+ - customClass: width-300
+ label: ResourceDiff Percentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/resourceDiffPercentage
+ type: threshold-input
+ - label: Resource Configuration
+ subtitle: Define minimum and maximum allowed resources to ensure optimal database
+ performance
+ type: label-element
+ - elements:
+ - header: Minimum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupDataLoadedTrue
init:
type: func
- value: setBackupType
- loader: getTypes
+ value: setAllowedMachine|zookeeper|min
+ label: Min Allowed Profile
+ loader:
+ name: getMachines|zookeeper|min
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-zookeeper-max
+ schema: temp/properties/allowedMachine-zookeeper-min
+ type: machine-compare
watcher:
- func: onBackupTypeChange
+ func: onMachineChange|zookeeper
paths:
- - temp/properties/backupType
- - type: block-layout
- label: Config
+ - temp/properties/allowedMachine-zookeeper-min
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/minAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/minAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|BackupConfig
- elements:
- - type: select
- label: Select Context
- schema: temp/properties/backupConfigContext
- validation:
- type: required
- loader: getContext
- watcher:
- func: onContextChange
- paths:
- - temp/properties/backupConfigContext
- - type: select
- label: Select BackupConfig
- schema: temp/properties/config
- validation:
- type: required
- if:
- type: function
- name: showConfigList
- loader: getConfigList
- watcher:
- func: onConfigChange
- paths:
- - temp/properties/config
- - type: input
- label: Schedule
- schema: temp/properties/schedule
- validation:
- type: required
- if:
- type: function
- name: showSchedule
- loader:
- name: getDefaultSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions
- watchPaths:
- - temp/properties/config
- watcher:
- func: onInputChangeSchedule|/resources/coreKubestashComBackupConfiguration/spec/sessions|schedule
- paths:
- - temp/properties/schedule
- - type: switch
- label: Paused
- fullwidth: true
- schema: schema/properties/resources/properties/coreKubestashComBackupConfiguration/properties/spec/properties/paused
- if:
- type: function
- name: showPause
- watcher:
- func: setPausedValue
- paths:
- - temp/properties/config
- init:
- type: func
- value: setPausedValue
- - type: block-layout
- label: Blueprint
+ label: Min Allowed
+ showLabels: true
+ type: block-layout
+ - header: Maximum Resource Limit
if:
+ name: hasAnnotations
type: function
- name: isBackupType|BackupBlueprint
- elements:
- - type: switch
- label: Enable Backup Blueprint
- fullwidth: true
- subtitle: Use a backup blueprint template to automatically configure backups for similar databases
- schema: temp/properties/blueprintEnabled
- init:
- type: func
- value: setBlueprintSwitch
- watcher:
- func: onBlueprintChange
- paths:
- - temp/properties/blueprintEnabled
- - type: block-layout
- label: Archiver
+ init:
+ type: func
+ value: setAllowedMachine|zookeeper|max
+ label: Max Allowed Profile
+ loader:
+ name: getMachines|zookeeper|max
+ watchPaths:
+ - temp/properties/topologyMachines
+ - temp/properties/allowedMachine-zookeeper-min
+ schema: temp/properties/allowedMachine-zookeeper-max
+ type: machine-compare
+ watcher:
+ func: onMachineChange|zookeeper
+ paths:
+ - temp/properties/allowedMachine-zookeeper-max
+ - elements:
+ - label: Cpu
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/maxAllowed/properties/cpu
+ type: input-compare
+ - label: Memory
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/maxAllowed/properties/memory
+ type: input-compare
+ fixedBlock: true
if:
+ name: hasNoAnnotations
type: function
- name: isBackupType|Archiver
- elements:
- - type: switch
- label: Enable Archiver
- fullwidth: true
- schema: temp/properties/archiverEnabled
- init:
- type: func
- value: setArchiverSwitch
- watcher:
- func: onArchiverChange
- paths:
- - temp/properties/archiverEnabled
- - type: single-step-form
- id: compute-autoscaler
- loader: getDbDetails
- elements:
- - type: block-layout
- if:
- type: function
- name: isConsole
+ label: Max Allowed
+ showLabels: true
+ type: block-layout
+ showLabels: false
+ type: block-layout
+ - label: Controlled Resources
+ loader: setControlledResources|zookeeper
+ multiple: true
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/controlledResources
+ type: select
+ - label: Container Controlled Values
+ options:
+ - text: Requests And Limits
+ value: RequestsAndLimits
+ - text: Requests Only
+ value: RequestsOnly
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/containerControlledValues
+ type: select
+ label: Zookeeper
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Select Node Topology
+ loader: fetchNodeTopology
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
+ type: select
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Up DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
+ type: threshold-input
+ - if:
+ name: isNodeTopologySelected
+ type: function
+ label: Scale Down DiffPercentage
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
+ type: threshold-input
+ if:
+ name: hasNoAnnotations
+ type: function
+ label: Node Topology
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
+ type: radio
+ if:
+ name: showOpsRequestOptions
+ type: function
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: fetchTopologyMachines
+ showLabels: false
+ type: block-layout
+ id: compute-autoscaler
+ loader: getDbDetails
+ type: single-step-form
+- elements:
+ - label: To update Exporter Resource section click on Create OpsRequest
+ type: label-element
+ - init:
+ type: func
+ value: getOpsRequestUrl|scale-vertically
+ label: Create OpsRequest
+ schema: temp/properties/opsRequestUrl
+ type: anchor
+ - fullwidth: true
+ init:
+ type: func
+ value: isValueExistInModel|/resources/kubedbComZooKeeper/spec/monitor
+ label: Enable Monitoring
+ schema: temp/properties/enableMonitoring
+ type: switch
+ watcher:
+ func: onEnableMonitoringChange
+ paths:
+ - temp/properties/enableMonitoring
+ - elements:
+ - init:
+ type: static
+ value: prometheus.io/operator
+ isHorizontal: true
+ label: Select a Monitoring Method
+ options:
+ - description: Inject metric exporter sidecar and creates a ServiceMonitor
+ text: Prometheus Operator
+ value: prometheus.io/operator
+ - description: Injects the metric exporter sidecar and let you customize ServiceMonitor
+ text: Custom ServiceMonitor
+ value: prometheus.io
+ - description: Inject metric exporter sidecar and add Prometheus annotations
+ to the stats Service
+ text: Custom Scrapper
+ value: prometheus.io/builtin
+ schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/agent
+ type: radio
+ watcher:
+ func: onAgentChange
+ paths:
+ - schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/agent
+ - elements:
+ - label: Scrapping Interval
+ schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
+ type: input
+ if:
+ name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComZooKeeper/spec/monitor/agent
+ type: function
+ label: ServiceMonitor Configuration
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: input
- label: Name
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/metadata/properties/name
- - type: select
- label: Select Namespace
- loader: getNamespaces
- if:
- type: function
- name: isRancherManaged
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/metadata/properties/namespace
- - type: select
- label: Select Db
- loader: getDbs
- validation:
- type: required
- refresh: true
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/databaseRef/properties/name
- watcher:
- func: initMetadata
- paths:
- - schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/databaseRef/properties/name
-
- - type: radio
+ - fullwidth: true
+ label: Honor labels
+ schema: honorLabels
+ type: switch
+ - label: Interval
+ schema: interval
+ type: input
+ validation:
+ type: required
+ - label: Path
+ schema: path
+ type: input
+ validation:
+ type: required
+ - label: Port
+ schema: port
+ type: input
+ validation:
+ type: required
+ label: Endpoints
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
+ type: array-object-form
+ - if:
+ name: returnFalse
+ type: function
+ label: Match Namespaces
+ loader: getResources|core|v1|namespaces
+ multiple: true
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
+ type: select
+ - elements:
+ - label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
+ type: object-item
if:
+ name: returnFalse
type: function
- name: isConsole
- label: Select Type
- validation:
- type: required
- schema: temp/properties/autoscalingType
- watcher:
- func: initMetadata
- paths:
- - temp/properties/autoscalingType
- options:
- - text: Compute
- value: compute
- description: Scale your CPU Memory based on resource usage
- - text: Storage
- value: storage
- description: Expand your database size based on volume usage
-
- - type: block-layout
showLabels: false
- loader: fetchTopologyMachines
- elements:
- # zookeeper mode
- - type: switch
- label: Trigger
- fullwidth: true
- init:
+ type: block-layout
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComZooKeeper/spec/monitor/agent
+ type: function
+ label: Service Monitor
+ showLabels: true
+ type: block-layout
+ - buttonClass: is-light is-outlined
+ if:
+ name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComZooKeeper/spec/monitor/agent
+ type: function
+ label: Labels
+ schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
+ type: object-item
+ - label: Exporter Configuration
+ schema: ""
+ type: label-element
+ - fullwidth: true
+ init:
+ type: static
+ value: true
+ label: Customize Exporter Sidecar
+ schema: temp/properties/customizeExporter
+ type: switch
+ watcher:
+ func: onCustomizeExporterChange
+ paths:
+ - temp/properties/customizeExporter
+ - elements:
+ - if:
+ name: returnFalse
+ type: function
+ label: Resources
+ schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
+ type: machine-compare
+ - label: Security Context
+ schema: ""
+ type: label-element
+ - label: Run as User
+ schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
+ type: input
+ - label: Run as Group
+ schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
+ type: input
+ - label: Port
+ schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Args
+ type: input
+ init:
+ type: static
+ value:
+ - --compatible-mode
+ label: Args
+ schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
+ type: array-item-form
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Name
+ schema: name
+ type: input
+ validation:
+ type: required
+ - init:
type: func
- value: setTrigger|autoscalingKubedbComZooKeeperAutoscaler/spec/compute/zookeeper/trigger
- schema: temp/properties/compute/properties/zookeeper/properties/trigger
+ value: setValueFrom
+ label: Value From
+ options:
+ - text: Input
+ value: input
+ - text: Secret
+ value: secret
+ - text: ConfigMap
+ value: configMap
+ schema: temp/properties/valueFromType
+ type: radio
+ validation:
+ type: required
watcher:
- func: onTriggerChange|compute/zookeeper
+ func: onValueFromChange
paths:
- - temp/properties/compute/properties/zookeeper/properties/trigger
- - type: label-element
- label: Pod lifetime threshold
- subtitle: Specifies the duration a pod can exist before using considered for scaling decisions, ensuring resource optimization and workload stability
- - type: input
- label: Pod LifeTime Threshold (e.g., 10m 30s)
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/podLifeTimeThreshold
- customClass: width-300
- - type: block-layout
- label: Zookeeper
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper
- elements:
- - type: threshold-input
- label: ResourceDiff Percentage
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/resourceDiffPercentage
- customClass: width-300
- - type: label-element
- label: Resource Configuration
- subtitle: Define minimum and maximum allowed resources to ensure optimal database performance
- - type: block-layout
- showLabels: false
- elements:
- - type: machine-compare
- label: Min Allowed Profile
- header: Minimum Resource Limit
- schema: temp/properties/allowedMachine-zookeeper-min
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|zookeeper|min
- loader:
- name: getMachines|zookeeper|min
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-zookeeper-max
- watcher:
- func: onMachineChange|zookeeper
- paths:
- - temp/properties/allowedMachine-zookeeper-min
- - type: block-layout
- label: Min Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/minAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/minAllowed/properties/memory
- - type: machine-compare
- label: Max Allowed Profile
- header: Maximum Resource Limit
- schema: temp/properties/allowedMachine-zookeeper-max
- if:
- type: function
- name: hasAnnotations
- init:
- type: func
- value: setAllowedMachine|zookeeper|max
- loader:
- name: getMachines|zookeeper|max
- watchPaths:
- - temp/properties/topologyMachines
- - temp/properties/allowedMachine-zookeeper-min
- watcher:
- func: onMachineChange|zookeeper
- paths:
- - temp/properties/allowedMachine-zookeeper-max
- - type: block-layout
- label: Max Allowed
- fixedBlock: true
- if:
- type: function
- name: hasNoAnnotations
- showLabels: true
- elements:
- - type: input-compare
- label: Cpu
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/maxAllowed/properties/cpu
- - type: input-compare
- label: Memory
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/maxAllowed/properties/memory
- - type: select
- label: Controlled Resources
- loader: setControlledResources|zookeeper
- multiple: true
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/controlledResources
- - type: select
- label: Container Controlled Values
- options:
- - text: Requests And Limits
- value: RequestsAndLimits
- - text: Requests Only
- value: RequestsOnly
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/zookeeper/properties/containerControlledValues
-
- - type: block-layout
- label: Node Topology
- if:
+ - temp/properties/valueFromType
+ - if:
+ name: isEqualToTemp|input
type: function
- name: hasNoAnnotations
- showLabels: true
- # schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/nodeTopology
- elements:
- - type: select
- label: Select Node Topology
- loader: fetchNodeTopology
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/name
- - type: threshold-input
- label: Scale Up DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleUpDiffPercentage
- - type: threshold-input
- label: Scale Down DiffPercentage
- if:
- type: function
- name: isNodeTopologySelected
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/compute/properties/nodeTopology/properties/scaleDownDiffPercentage
-
- - type: block-layout
- label: Ops Request Options
- showLabels: true
- if:
+ label: Value
+ schema: value
+ type: input
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: showOpsRequestOptions
- # schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/opsRequestOptions
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/opsRequestOptions/properties/timeout
- - type: radio
- label: Apply
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
- schema: schema/properties/resources/properties/autoscalingKubedbComZooKeeperAutoscaler/properties/spec/properties/opsRequestOptions/properties/apply
- - type: single-step-form
- id: monitoring
- loader: initMonitoring
- elements:
- - type: label-element
- label: To update Exporter Resource section click on Create OpsRequest
- - type: anchor
- label: Create OpsRequest
- schema: temp/properties/opsRequestUrl
- init:
- type: func
- value: getOpsRequestUrl|scale-vertically
- - type: switch
- label: Enable Monitoring
- fullwidth: true
- schema: temp/properties/enableMonitoring
- init:
- type: func
- value: isValueExistInModel|/resources/kubedbComZooKeeper/spec/monitor
- watcher:
- func: onEnableMonitoringChange
- paths:
- - temp/properties/enableMonitoring
- - type: block-layout
- if:
- type: function
- name: showMonitoringSection
- elements:
- - type: radio
- label: Select a Monitoring Method
- schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/agent
- isHorizontal: true
- options:
- - text: Prometheus Operator
- value: prometheus.io/operator
- description: Inject metric exporter sidecar and creates a ServiceMonitor
- - text: Custom ServiceMonitor
- value: prometheus.io
- description: Injects the metric exporter sidecar and let you customize ServiceMonitor
- - text: Custom Scrapper
- value: prometheus.io/builtin
- description: Inject metric exporter sidecar and add Prometheus annotations to the stats Service
- init:
- type: static
- value: prometheus.io/operator
- watcher:
- func: onAgentChange
- paths:
- - schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/agent
- - type: block-layout
- label: ServiceMonitor Configuration
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io/operator|/resources/kubedbComZooKeeper/spec/monitor/agent
- elements:
- - label: Scrapping Interval
- schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/serviceMonitor/properties/interval
- type: input
- - type: block-layout
- label: Service Monitor
- showLabels: true
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComZooKeeper/spec/monitor/agent
- elements:
- - type: array-object-form
- label: Endpoints
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/endpoints
- elements:
- - type: switch
- label: Honor labels
- fullwidth: true
- schema: honorLabels
- - type: input
- label: Interval
- schema: interval
- validation:
- type: required
- - type: input
- label: Path
- schema: path
- validation:
- type: required
- - type: input
- label: Port
- schema: port
- validation:
- type: required
- - type: select
- multiple: true
- label: Match Namespaces
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/namespaceSelector/properties/matchNames
- loader: getResources|core|v1|namespaces
- if:
+ label: ConfigMap Name
+ loader:
+ name: resourceNames|core|v1|configmaps
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|configMap
type: function
- name: returnFalse
- - type: block-layout
- showLabels: false
- # schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector
- if:
+ label: ConfigMap Key
+ loader:
+ name: getConfigMapKeys
+ watchPaths:
+ - schema/resources/kubedbComZooKeeper/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/configMapKeyRef/properties/key
+ type: select
+ - if:
+ name: isEqualToTemp|secret
type: function
- name: returnFalse
- elements:
- - type: object-item
- label: Labels
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/spec/properties/selector/properties/matchLabels
- - type: object-item
- schema: schema/properties/resources/properties/monitoringCoreosComServiceMonitor/properties/metadata/properties/labels
- label : Labels
- buttonClass: is-light is-outlined
- if:
- type: function
- name: isEqualToModelPathValue|prometheus.io|/resources/kubedbComZooKeeper/spec/monitor/agent
- # individualItemDisabilityCheck: disableLableChecker
- - type: label-element
- label: Exporter Configuration
- schema: ''
- - type: switch
- label: Customize Exporter Sidecar
- fullwidth: true
- schema: temp/properties/customizeExporter
- init:
- type: static
- value: true
+ label: Secret Name
+ loader:
+ name: getSecrets
+ watchPaths:
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/name
+ type: select
+ validation:
+ type: required
+ - if:
+ name: isEqualToTemp|secret
+ type: function
+ label: Secret Key
+ loader:
+ name: getSecretKeys
+ watchPaths:
+ - schema/resources/kubedbComZooKeeper/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
+ - schema/metadata/release/namespace
+ schema: valueFrom/properties/secretKeyRef/properties/key
+ type: select
+ init:
+ type: func
+ value: initEnvArray
+ label: Environment Variables
+ schema: temp/properties/env
+ type: array-object-form
watcher:
- func: onCustomizeExporterChange
- paths:
- - temp/properties/customizeExporter
- - type: block-layout
- label: Customer Exporter Section
- showLabels: false
- if:
- type: function
- name: showCustomizeExporterSection
- elements:
- - type: machine-compare
- label: Resources
- schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/resources
- if:
- type: function
- name: returnFalse
- - type: label-element
- label: Security Context
- schema: ''
- - type: input
- schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsUser
- label: Run as User
- - type: input
- schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/securityContext/properties/runAsGroup
- label: Run as Group
- - type: input
- schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/port
- label: Port
- - type: array-item-form
- label: Args
- buttonClass: is-light is-outlined
- schema: schema/properties/resources/properties/kubedbComZooKeeper/properties/spec/properties/monitor/properties/prometheus/properties/exporter/properties/args
- init:
- type: static
- value: ['--compatible-mode']
- element:
- type: input
- label: Args
- # isSubsection: true
- - type: block-layout
- label: Metadata
- showLabels: false
- elements:
- - type: array-object-form
- init:
- type: func
- value: initEnvArray
- label: Environment Variables
- buttonClass: is-light is-outlined
- watcher:
- func: onEnvArrayChange
- paths:
- - temp/properties/env
- schema: temp/properties/env
- elements:
- - type: input
- label: Name
- schema: name
- validation:
- type: required
- - type: radio
- label: Value From
- schema: temp/properties/valueFromType
- validation:
- type: required
- init:
- type: func
- value: setValueFrom
- options:
- - text: Input
- value: input
- - text: Secret
- value: secret
- - text: ConfigMap
- value: configMap
- watcher:
- func: onValueFromChange
- paths:
- - temp/properties/valueFromType
- - type: input
- label: Value
- schema: value
- validation:
- type: required
- if:
- name: isEqualToTemp|input
- type: function
- - type: select
- if:
- type: function
- name: isEqualToTemp|configMap
- label: ConfigMap Name
- schema: valueFrom/properties/configMapKeyRef/properties/name
- loader:
- name: resourceNames|core|v1|configmaps
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: ConfigMap Key
- schema: valueFrom/properties/configMapKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|configMap
- loader:
- name: getConfigMapKeys
- watchPaths:
- - schema/resources/kubedbComZooKeeper/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/configMapKeyRef/name
- - schema/metadata/release/namespace
- - type: select
- label: Secret Name
- schema: valueFrom/properties/secretKeyRef/properties/name
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecrets
- watchPaths:
- - schema/metadata/release/namespace
- validation:
- type: required
- - type: select
- label: Secret Key
- schema: valueFrom/properties/secretKeyRef/properties/key
- if:
- type: function
- name: isEqualToTemp|secret
- loader:
- name: getSecretKeys
- watchPaths:
- - schema/resources/kubedbComZooKeeper/spec/monitor/prometheus/exporter/env/dynamicIndex/valueFrom/secretKeyRef/name
- - schema/metadata/release/namespace
\ No newline at end of file
+ func: onEnvArrayChange
+ paths:
+ - temp/properties/env
+ label: Metadata
+ showLabels: false
+ type: block-layout
+ if:
+ name: showCustomizeExporterSection
+ type: function
+ label: Customer Exporter Section
+ showLabels: false
+ type: block-layout
+ if:
+ name: showMonitoringSection
+ type: function
+ type: block-layout
+ id: monitoring
+ loader: initMonitoring
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-druidopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-druidopsrequest-editor/ui/create-ui.yaml
index e20b8792dd..afb4fa67fd 100644
--- a/charts/opskubedbcom-druidopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-druidopsrequest-editor/ui/create-ui.yaml
@@ -1,833 +1,881 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
- init:
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Expand your database volume
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: isDbDetailsLoading
+ paths:
+ - temp/dbDetails
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - elements:
+ - elements:
+ - init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
+ value: setMachine|middleManagers
+ label: Resources
+ loader: getMachines|middleManagers
+ schema: temp/properties/machine-middleManagers
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|middleManagers|/spec/topology/middleManagers/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine-middleManagers
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/middleManagers/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: schema/properties/spec/properties/verticalScaling/properties/middleManagers/properties/topology/properties/key
+ type: input
+ - label: Value
+ schema: schema/properties/spec/properties/verticalScaling/properties/middleManagers/properties/topology/properties/value
+ type: input
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Middle Managers
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
+ value: setMachine|historicals
+ label: Resources
+ loader: getMachines|historicals
+ schema: temp/properties/machine-historicals
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onDbChange
+ func: onMachineChange|historicals|/spec/topology/historicals/podTemplate/spec/containers
paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Expand your database volume
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- init:
+ - temp/properties/machine-historicals
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/historicals/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: schema/properties/spec/properties/verticalScaling/properties/historicals/properties/topology/properties/key
+ type: input
+ - label: Value
+ schema: schema/properties/spec/properties/verticalScaling/properties/historicals/properties/topology/properties/value
+ type: input
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Historicals
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine|brokers
+ label: Resources
+ loader: getMachines|brokers
+ schema: temp/properties/machine-brokers
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: isDbDetailsLoading
+ func: onMachineChange|brokers|/spec/topology/brokers/podTemplate/spec/containers
paths:
- - temp/dbDetails
- - schema/properties/spec/properties/databaseRef/properties/name
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# Vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Middle Managers
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|middleManagers
- init:
- type: func
- value: setMachine|middleManagers
- watcher:
- func: onMachineChange|middleManagers|/spec/topology/middleManagers/podTemplate/spec/containers
- paths:
- - temp/properties/machine-middleManagers
- schema: temp/properties/machine-middleManagers
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- schema: schema/properties/spec/properties/verticalScaling/properties/middleManagers/properties/nodeSelectionPolicy
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- schema: schema/properties/spec/properties/verticalScaling/properties/middleManagers/properties/topology/properties/key
- - type: input
- label: Value
- schema: schema/properties/spec/properties/verticalScaling/properties/middleManagers/properties/topology/properties/value
- - type: block-layout
- label: Historicals
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|historicals
- init:
- type: func
- value: setMachine|historicals
- watcher:
- func: onMachineChange|historicals|/spec/topology/historicals/podTemplate/spec/containers
- paths:
- - temp/properties/machine-historicals
- schema: temp/properties/machine-historicals
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- schema: schema/properties/spec/properties/verticalScaling/properties/historicals/properties/nodeSelectionPolicy
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- schema: schema/properties/spec/properties/verticalScaling/properties/historicals/properties/topology/properties/key
- - type: input
- label: Value
- schema: schema/properties/spec/properties/verticalScaling/properties/historicals/properties/topology/properties/value
- - type: block-layout
- label: Broker
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|brokers
- init:
- type: func
- value: setMachine|brokers
- watcher:
- func: onMachineChange|brokers|/spec/topology/brokers/podTemplate/spec/containers
- paths:
- - temp/properties/machine-brokers
- schema: temp/properties/machine-brokers
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- schema: schema/properties/spec/properties/verticalScaling/properties/brokers/properties/nodeSelectionPolicy
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- schema: schema/properties/spec/properties/verticalScaling/properties/brokers/properties/topology/properties/key
- - type: input
- label: Value
- schema: schema/properties/spec/properties/verticalScaling/properties/brokers/properties/topology/properties/value
- - type: block-layout
- label: Coordinators
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|coordinators
- init:
- type: func
- value: setMachine|coordinators
- watcher:
- func: onMachineChange|coordinators|/spec/topology/coordinators/podTemplate/spec/containers
- paths:
- - temp/properties/machine-coordinators
- schema: temp/properties/machine-coordinators
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinators/properties/nodeSelectionPolicy
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinators/properties/topology/properties/key
- - type: input
- label: Value
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinators/properties/topology/properties/value
- - type: block-layout
- label: Overlords
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|overlords
- init:
- type: func
- value: setMachine|overlords
- watcher:
- func: onMachineChange|overlords|/spec/topology/overlords/podTemplate/spec/containers
- paths:
- - temp/properties/machine-overlords
- schema: temp/properties/machine-overlords
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- schema: schema/properties/spec/properties/verticalScaling/properties/overlords/properties/nodeSelectionPolicy
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- schema: schema/properties/spec/properties/verticalScaling/properties/overlords/properties/topology/properties/key
- - type: input
- label: Value
- schema: schema/properties/spec/properties/verticalScaling/properties/overlords/properties/topology/properties/value
- - type: block-layout
- label: Routers
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|routers
- init:
- type: func
- value: setMachine|routers
- watcher:
- func: onMachineChange|routers|/spec/topology/routers/podTemplate/spec/containers
- paths:
- - temp/properties/machine-routers
- schema: temp/properties/machine-routers
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- schema: schema/properties/spec/properties/verticalScaling/properties/routers/properties/nodeSelectionPolicy
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- schema: schema/properties/spec/properties/verticalScaling/properties/routers/properties/topology/properties/key
- - type: input
- label: Value
- schema: schema/properties/spec/properties/verticalScaling/properties/routers/properties/topology/properties/value
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: Historicals
- showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Storage Size
- subtitle: How much extra storage does your database need? Specify the size(e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/historicals/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/historicals/storage/resources/requests/storage|/spec/volumeExpansion/historicals
- schema: schema/properties/spec/properties/volumeExpansion/properties/historicals
- - type: info
- hasIcon: true
- label: Historicals nodes store historical data segments. Increasing storage allows for more historical data retention.
- - type: block-layout
- label: Middle Managers
- showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Storage Size
- subtitle: How much extra storage does your database need? Specify the size(e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/middleManagers/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/middleManagers/storage/resources/requests/storage|/spec/volumeExpansion/middleManagers
- schema: schema/properties/spec/properties/volumeExpansion/properties/middleManagers
- - type: info
- hasIcon: true
- label: Middle Managers handle real-time ingestion tasks. More storage enables larger batch processing capabilities.
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
- label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# Restart
- - type: block-layout
- label: TLS
- if:
- type: function
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- elements:
- - type: radio
- label: TLS Operation
- if:
- type: function
- name: hasTlsField
+ - temp/properties/machine-brokers
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/brokers/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: schema/properties/spec/properties/verticalScaling/properties/brokers/properties/topology/properties/key
+ type: input
+ - label: Value
+ schema: schema/properties/spec/properties/verticalScaling/properties/brokers/properties/topology/properties/value
+ type: input
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Broker
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|coordinators
+ label: Resources
+ loader: getMachines|coordinators
+ schema: temp/properties/machine-coordinators
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|coordinators|/spec/topology/coordinators/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine-coordinators
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinators/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinators/properties/topology/properties/key
+ type: input
+ - label: Value
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinators/properties/topology/properties/value
+ type: input
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Coordinators
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|overlords
+ label: Resources
+ loader: getMachines|overlords
+ schema: temp/properties/machine-overlords
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|overlords|/spec/topology/overlords/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine-overlords
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/overlords/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: schema/properties/spec/properties/verticalScaling/properties/overlords/properties/topology/properties/key
+ type: input
+ - label: Value
+ schema: schema/properties/spec/properties/verticalScaling/properties/overlords/properties/topology/properties/value
+ type: input
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Overlords
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|routers
+ label: Resources
+ loader: getMachines|routers
+ schema: temp/properties/machine-routers
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|routers|/spec/topology/routers/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine-routers
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/routers/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: schema/properties/spec/properties/verticalScaling/properties/routers/properties/topology/properties/key
+ type: input
+ - label: Value
+ schema: schema/properties/spec/properties/verticalScaling/properties/routers/properties/topology/properties/value
+ type: input
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Routers
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/historicals/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/historicals
+ subtitle: How much extra storage does your database need? Specify the size(e.g.,
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/historicals/storage/resources/requests/storage|/spec/volumeExpansion/historicals
+ type: custom
+ - hasIcon: true
+ label: Historicals nodes store historical data segments. Increasing storage
+ allows for more historical data retention.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ label: Historicals
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/middleManagers/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/middleManagers
+ subtitle: How much extra storage does your database need? Specify the size(e.g.,
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/middleManagers/storage/resources/requests/storage|/spec/volumeExpansion/middleManagers
+ type: custom
+ - hasIcon: true
+ label: Middle Managers handle real-time ingestion tasks. More storage enables
+ larger batch processing capabilities.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ label: Middle Managers
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: initTlsOperation
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
watcher:
- func: onTlsOperationChange
+ func: onCreateSecretChange
paths:
- - temp/tlsOperation
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
- schema: temp/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- type: function
- name: isTlsEnabled
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- if:
- type: function
- name: isTlsEnabled
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- - type: block-layout
- if:
- type: function
- name: showIssuerRefAndCertificates
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
loader:
- name: getIssuerRefsName
+ name: onSelectedSecretChange
watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
+ if:
+ name: isCreateSecret
+ type: function
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
if:
+ name: isNotCreateSecret
type: function
- name: showIssuerRefAndCertificates
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/tlsOperation
+ type: radio
+ watcher:
+ func: onTlsOperationChange
+ paths:
+ - temp/tlsOperation
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- schema: 'schema/properties/spec/properties/timeout'
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ label: Certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml
index 07fdda0d9d..98bf143117 100644
--- a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml
@@ -1,1496 +1,1620 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired Elasticsearch version to which you want to update
+ your database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replicas
if:
+ name: ifDbTypeEqualsTo|Combined|horizontalScaling
type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/node
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution, while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
if:
+ name: ifDbTypeEqualsTo|Combined|horizontalScaling
type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
+ label: Each replica represents an independent copy of your database node.
+ For example, setting this to 3 creates three copies of the database for
+ better availability.
+ type: info
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - elements:
+ - header: Master Replicas
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/master/replicas
+ label: Master Node
+ schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/master
+ subtitle: Define the total number of master node replicas. Increasing
+ replicas improves fault tolerance and load distribution, while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Master nodes are responsible for cluster management operations.
+ It's recommended to have an odd number of master nodes (e.g., 3, 5)
+ for proper quorum.
+ type: info
+ type: horizontal-layout
+ label: Master Node horizontal Scaling
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Data Replicas
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/data/replicas
+ label: Data Node
+ schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/data
+ subtitle: Define the total number of data node replicas. Increasing replicas
+ improves fault tolerance and load distribution, while reducing replicas
+ conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Data nodes store the actual documents and handle data-related operations
+ like search and aggregation. More data nodes provide better storage
+ capacity and query performance.
+ type: info
+ type: horizontal-layout
+ label: Data Node horizontal Scaling
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Ingest Replicas
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/ingest/replicas
+ label: Ingest Node
+ schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/ingest
+ subtitle: Define the total number of ingest node replicas. Increasing
+ replicas improves fault tolerance and load distribution, while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Ingest nodes pre-process documents before they are indexed. They
+ can apply transformations and enrichments to your data pipeline.
+ type: info
+ type: horizontal-layout
+ label: Ingest Node horizontal Scaling
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Topology|horizontalScaling
+ type: function
+ label: Topology horizontal scaling
+ type: block-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
+ value: setMachine|node
+ label: Resources
+ loader: getMachines|node
+ schema: temp/properties/machine-node
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
+ func: onMachineChange|node|/spec/podTemplate/spec/resources
paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- func: onDbChange
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
+ - temp/properties/machine-node
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-node
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|node
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-node
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|node
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Combined|verticalScaling
+ type: function
+ label: Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setMachine|master
+ label: Resources
+ loader: getMachines|master
+ schema: temp/properties/machine-master
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|master|/spec/topology/master/resources
+ paths:
+ - temp/properties/machine-master
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/master/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-master
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|master
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-master
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|master
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
if:
+ name: hasResourceValue|master
type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
+ label: Master Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|data
+ label: Resources
+ loader: getMachines|data
+ schema: temp/properties/machine-data
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|data|/spec/topology/data/resources
+ paths:
+ - temp/properties/machine-data
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/data/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-data
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|data
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-data
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|data
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
if:
+ name: hasResourceValue|data
type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
- type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
- watcher:
- func: onRequestTypeChange
- paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ label: Data Node
showLabels: true
- label: Version
- fixedBlock: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|ingest
+ label: Resources
+ loader: getMachines|ingest
+ schema: temp/properties/machine-ingest
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|ingest|/spec/topology/ingest/resources
+ paths:
+ - temp/properties/machine-ingest
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/ingest/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-ingest
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|ingest
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-ingest
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|ingest
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
if:
+ name: hasResourceValue|ingest
type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired Elasticsearch version to which you want to update your database.
- init:
- type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
- loader:
- name: getVersionInfo
- watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
+ label: Ingest Node
showLabels: true
- fixedBlock: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|ml
+ label: Resources
+ loader: getMachines|ml
+ schema: temp/properties/machine-ml
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|ml|/spec/topology/ml/resources
+ paths:
+ - temp/properties/machine-ml
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/ml/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-ml
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|ml
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-ml
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|ml
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
if:
+ name: hasResourceValue|ml
type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- header: Replicas
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution, while reducing replicas conserves resources
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|horizontalScaling
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/node
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database node. For example, setting this to 3 creates three copies of the database for better availability.
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|horizontalScaling
- - type: block-layout
- label: Topology horizontal scaling
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|horizontalScaling
- elements:
- - type: block-layout
- label: Master Node horizontal Scaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Master Node
- header: Master Replicas
- subtitle: Define the total number of master node replicas. Increasing replicas improves fault tolerance and load distribution, while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/master/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/master
- - type: info
- hasIcon: true
- label: Master nodes are responsible for cluster management operations. It's recommended to have an odd number of master nodes (e.g., 3, 5) for proper quorum.
- - type: block-layout
- label: Data Node horizontal Scaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Data Node
- header: Data Replicas
- subtitle: Define the total number of data node replicas. Increasing replicas improves fault tolerance and load distribution, while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/data/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/data
- - type: info
- hasIcon: true
- label: Data nodes store the actual documents and handle data-related operations like search and aggregation. More data nodes provide better storage capacity and query performance.
- - type: block-layout
- label: Ingest Node horizontal Scaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Ingest Node
- header: Ingest Replicas
- subtitle: Define the total number of ingest node replicas. Increasing replicas improves fault tolerance and load distribution, while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/ingest/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/ingest
- - type: info
- hasIcon: true
- label: Ingest nodes pre-process documents before they are indexed. They can apply transformations and enrichments to your data pipeline.
-# vertical Scale
- - type: block-layout
+ label: ML Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|transform
+ label: Resources
+ loader: getMachines|transform
+ schema: temp/properties/machine-transform
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|transform|/spec/topology/transform/resources
+ paths:
+ - temp/properties/machine-transform
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/transform/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-transform
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|transform
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-transform
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|transform
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
if:
+ name: hasResourceValue|transform
type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Node
- showLabels: true
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|verticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|node
- init:
- type: func
- value: setMachine|node
- watcher:
- func: onMachineChange|node|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine-node
- schema: temp/properties/machine-node
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|node
- schema: temp/topologyKey-node
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|node
- schema: temp/topologyValue-node
- - type: block-layout
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|verticalScaling
- elements:
- - type: block-layout
- label: Master Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|master
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|master
- init:
- type: func
- value: setMachine|master
- watcher:
- func: onMachineChange|master|/spec/topology/master/resources
- paths:
- - temp/properties/machine-master
- schema: temp/properties/machine-master
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/master/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|master
- schema: temp/topologyKey-master
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|master
- schema: temp/topologyValue-master
- - type: block-layout
- label: Data Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|data
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|data
- init:
- type: func
- value: setMachine|data
- watcher:
- func: onMachineChange|data|/spec/topology/data/resources
- paths:
- - temp/properties/machine-data
- schema: temp/properties/machine-data
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/data/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|data
- schema: temp/topologyKey-data
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|data
- schema: temp/topologyValue-data
- - type: block-layout
- label: Ingest Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|ingest
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|ingest
- init:
- type: func
- value: setMachine|ingest
- watcher:
- func: onMachineChange|ingest|/spec/topology/ingest/resources
- paths:
- - temp/properties/machine-ingest
- schema: temp/properties/machine-ingest
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/ingest/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|ingest
- schema: temp/topologyKey-ingest
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|ingest
- schema: temp/topologyValue-ingest
- - type: block-layout
- label: ML Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|ml
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|ml
- init:
- type: func
- value: setMachine|ml
- watcher:
- func: onMachineChange|ml|/spec/topology/ml/resources
- paths:
- - temp/properties/machine-ml
- schema: temp/properties/machine-ml
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/ml/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|ml
- schema: temp/topologyKey-ml
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|ml
- schema: temp/topologyValue-ml
- - type: block-layout
- label: Transform Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|transform
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|transform
- init:
- type: func
- value: setMachine|transform
- watcher:
- func: onMachineChange|transform|/spec/topology/transform/resources
- paths:
- - temp/properties/machine-transform
- schema: temp/properties/machine-transform
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/transform/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|transform
- schema: temp/topologyKey-transform
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|transform
- schema: temp/topologyValue-transform
- - type: block-layout
- label: Data Cold Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|dataCold
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|dataCold
- init:
- type: func
- value: setMachine|dataCold
- watcher:
- func: onMachineChange|dataCold|/spec/topology/dataCold/resources
- paths:
- - temp/properties/machine-dataCold
- schema: temp/properties/machine-dataCold
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/dataCold/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataCold
- schema: temp/topologyKey-dataCold
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataCold
- schema: temp/topologyValue-dataCold
- - type: block-layout
- label: Data Content Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|dataContent
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|dataContent
- init:
- type: func
- value: setMachine|dataContent
- watcher:
- func: onMachineChange|dataContent|/spec/topology/dataContent/resources
- paths:
- - temp/properties/machine-dataContent
- schema: temp/properties/machine-dataContent
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/dataContent/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataContent
- schema: temp/topologyKey-dataContent
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataContent
- schema: temp/topologyValue-dataContent
- - type: block-layout
- label: Data Frozen Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|dataFrozen
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|dataFrozen
- init:
- type: func
- value: setMachine|dataFrozen
- watcher:
- func: onMachineChange|dataFrozen|/spec/topology/dataFrozen/resources
- paths:
- - temp/properties/machine-dataFrozen
- schema: temp/properties/machine-dataFrozen
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/dataFrozen/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataFrozen
- schema: temp/topologyKey-dataFrozen
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataFrozen
- schema: temp/topologyValue-dataFrozen
- - type: block-layout
- label: Data Hot Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|dataHot
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|dataHot
- init:
- type: func
- value: setMachine|dataHot
- watcher:
- func: onMachineChange|dataHot|/spec/topology/dataHot/resources
- paths:
- - temp/properties/machine-dataHot
- schema: temp/properties/machine-dataHot
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/dataHot/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataHot
- schema: temp/topologyKey-dataHot
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataHot
- schema: temp/topologyValue-dataHot
- - type: block-layout
- label: Data Warm Node
- showLabels: true
- if:
- type: function
- name: hasResourceValue|dataWarm
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup
- loader: getMachines|dataWarm
- init:
- type: func
- value: setMachine|dataWarm
- watcher:
- func: onMachineChange|dataWarm|/spec/topology/dataWarm/resources
- paths:
- - temp/properties/machine-dataWarm
- schema: temp/properties/machine-dataWarm
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/dataWarm/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataWarm
- schema: temp/topologyKey-dataWarm
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|dataWarm
- schema: temp/topologyValue-dataWarm
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
-
- - type: block-layout
- label: Volume Expansion Form
+ label: Transform Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|dataCold
+ label: Resources
+ loader: getMachines|dataCold
+ schema: temp/properties/machine-dataCold
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|dataCold|/spec/topology/dataCold/resources
+ paths:
+ - temp/properties/machine-dataCold
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/dataCold/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-dataCold
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataCold
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-dataCold
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataCold
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
if:
+ name: hasResourceValue|dataCold
type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: Combined volume expansion
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Node
- subtitle: How much extra storage does your database need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- label: Storage Size
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
- schema: schema/properties/spec/properties/volumeExpansion/properties/node
- - type: info
- hasIcon: true
- label: Volume expansion increases the storage capacity of your database. Ensure your storage class supports volume expansion before proceeding.
- - type: block-layout
- label: Topology volume expansion
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|VolumeExpansion
- elements:
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|master
- elements:
- - type: input-compare
- header: Master
- label: Master Size
- subtitle: How much extra storage does your master nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/master/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/master/storage/resources/requests/storage|/spec/volumeExpansion/master
- schema: schema/properties/spec/properties/volumeExpansion/properties/master
- - type: info
- hasIcon: true
- label: Master nodes store cluster metadata and configuration. Proper storage allocation ensures reliable cluster management operations.
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|data
- elements:
- - type: input-compare
- header: Data
- label: Data Size
- subtitle: How much extra storage does your data nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/data/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/data/storage/resources/requests/storage|/spec/volumeExpansion/data
- schema: schema/properties/spec/properties/volumeExpansion/properties/data
- - type: info
- hasIcon: true
- label: Data nodes store your actual documents and indices. Adequate storage ensures smooth data operations and prevents disk space issues.
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|ingest
- elements:
- - type: input-compare
- header: Ingest
- label: Ingest Size
- subtitle: How much extra storage does your ingest nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/ingest/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/ingest/storage/resources/requests/storage|/spec/volumeExpansion/ingest
- schema: schema/properties/spec/properties/volumeExpansion/properties/ingest
- - type: info
- hasIcon: true
- label: Ingest nodes handle data pre-processing tasks. Sufficient storage ensures smooth pipeline operations.
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|ml
- elements:
- - type: input-compare
- header: ML
- label: ML Size
- subtitle: How much extra storage does your ML nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/ml/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/ml/storage/resources/requests/storage|/spec/volumeExpansion/ml
- schema: schema/properties/spec/properties/volumeExpansion/properties/ml
- - type: info
- hasIcon: true
- label: ML nodes store machine learning models and job data. Adequate storage supports complex ML operations.
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|transform
- elements:
- - type: input-compare
- header: Transform
- label: Transform Size
- subtitle: How much extra storage does your transform nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/transform/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/transform/storage/resources/requests/storage|/spec/volumeExpansion/transform
- schema: schema/properties/spec/properties/volumeExpansion/properties/transform
- - type: info
- hasIcon: true
- label: Transform nodes handle continuous data transformation operations. Sufficient storage ensures smooth processing.
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|dataCold
- elements:
- - type: input-compare
- header: Data Cold
- label: Data Cold Size
- subtitle: How much extra storage does your data cold nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/dataCold/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/dataCold/storage/resources/requests/storage|/spec/volumeExpansion/dataCold
- schema: schema/properties/spec/properties/volumeExpansion/properties/dataCold
- - type: info
- hasIcon: true
- label: Data cold tier stores infrequently accessed data. Cost-effective storage allocation is important for this tier.
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|dataContent
- elements:
- - type: input-compare
- header: Data Content
- label: Data Content Size
- subtitle: How much extra storage does your data content nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/dataContent/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/dataContent/storage/resources/requests/storage|/spec/volumeExpansion/dataContent
- schema: schema/properties/spec/properties/volumeExpansion/properties/dataContent
- - type: info
- hasIcon: true
- label: Data content tier stores regular content data. Proper storage allocation ensures optimal performance for standard workloads.
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|dataFrozen
- elements:
- - type: input-compare
- header: Data Frozen
- label: Data Frozen Size
- subtitle: How much extra storage does your data frozen nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/dataFrozen/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/dataFrozen/storage/resources/requests/storage|/spec/volumeExpansion/dataFrozen
- schema: schema/properties/spec/properties/volumeExpansion/properties/dataFrozen
- - type: info
- hasIcon: true
- label: Data frozen tier stores searchable snapshot data with minimal storage costs. This tier optimizes long-term data retention.
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|dataHot
- elements:
- - type: input-compare
- header: Data Hot
- label: Data Hot Size
- subtitle: How much extra storage does your data hot nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/dataHot/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/dataHot/storage/resources/requests/storage|/spec/volumeExpansion/dataHot
- schema: schema/properties/spec/properties/volumeExpansion/properties/dataHot
- - type: info
- hasIcon: true
- label: Data hot tier stores frequently accessed data requiring fast performance. Adequate storage and fast I/O are crucial for this tier.
- - type: horizontal-layout
- if:
- type: function
- name: hasVolumeExpansion|dataWarm
- elements:
- - type: input-compare
- header: Data Warm
- label: Data Warm Size
- subtitle: How much extra storage does your data warm nodes need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/dataWarm/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/dataWarm/storage/resources/requests/storage|/spec/volumeExpansion/dataWarm
- schema: schema/properties/spec/properties/volumeExpansion/properties/dataWarm
- - type: info
- hasIcon: true
- label: Data warm tier stores less frequently accessed data. Balanced storage allocation provides cost-effective performance.
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
+ label: Data Cold Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|dataContent
+ label: Resources
+ loader: getMachines|dataContent
+ schema: temp/properties/machine-dataContent
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|dataContent|/spec/topology/dataContent/resources
+ paths:
+ - temp/properties/machine-dataContent
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/dataContent/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-dataContent
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataContent
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-dataContent
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataContent
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
if:
- name: ifRequestTypeEqualsTo|Reconfigure
+ name: hasResourceValue|dataContent
type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
- label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
+ label: Data Content Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|dataFrozen
+ label: Resources
+ loader: getMachines|dataFrozen
+ schema: temp/properties/machine-dataFrozen
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|dataFrozen|/spec/topology/dataFrozen/resources
+ paths:
+ - temp/properties/machine-dataFrozen
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# Reconfigure TLS
- - type: block-layout
- label: TLS
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/dataFrozen/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-dataFrozen
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataFrozen
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-dataFrozen
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataFrozen
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
if:
+ name: hasResourceValue|dataFrozen
type: function
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- elements:
- - type: radio
- label: TLS Operation
- if:
- type: function
- name: hasTlsField
+ label: Data Frozen Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|dataHot
+ label: Resources
+ loader: getMachines|dataHot
+ schema: temp/properties/machine-dataHot
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|dataHot|/spec/topology/dataHot/resources
+ paths:
+ - temp/properties/machine-dataHot
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/dataHot/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-dataHot
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataHot
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-dataHot
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataHot
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ if:
+ name: hasResourceValue|dataHot
+ type: function
+ label: Data Hot Node
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|dataWarm
+ label: Resources
+ loader: getMachines|dataWarm
+ schema: temp/properties/machine-dataWarm
+ subtitle: Compare your current machine configuration with the proposed resource
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|dataWarm|/spec/topology/dataWarm/resources
+ paths:
+ - temp/properties/machine-dataWarm
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/dataWarm/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-dataWarm
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataWarm
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-dataWarm
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|dataWarm
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ if:
+ name: hasResourceValue|dataWarm
+ type: function
+ label: Data Warm Node
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Topology|verticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: Node
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/node
+ subtitle: How much extra storage does your database need? Specify the size
+ (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
+ type: custom
+ - hasIcon: true
+ label: Volume expansion increases the storage capacity of your database.
+ Ensure your storage class supports volume expansion before proceeding.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|Combined|VolumeExpansion
+ type: function
+ label: Combined volume expansion
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Master
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/master/storage/resources/requests/storage
+ label: Master Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/master
+ subtitle: How much extra storage does your master nodes need? Specify the
+ size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/master/storage/resources/requests/storage|/spec/volumeExpansion/master
+ type: custom
+ - hasIcon: true
+ label: Master nodes store cluster metadata and configuration. Proper storage
+ allocation ensures reliable cluster management operations.
+ type: info
+ if:
+ name: hasVolumeExpansion|master
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Data
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/data/storage/resources/requests/storage
+ label: Data Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/data
+ subtitle: How much extra storage does your data nodes need? Specify the
+ size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/data/storage/resources/requests/storage|/spec/volumeExpansion/data
+ type: custom
+ - hasIcon: true
+ label: Data nodes store your actual documents and indices. Adequate storage
+ ensures smooth data operations and prevents disk space issues.
+ type: info
+ if:
+ name: hasVolumeExpansion|data
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Ingest
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/ingest/storage/resources/requests/storage
+ label: Ingest Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/ingest
+ subtitle: How much extra storage does your ingest nodes need? Specify the
+ size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/ingest/storage/resources/requests/storage|/spec/volumeExpansion/ingest
+ type: custom
+ - hasIcon: true
+ label: Ingest nodes handle data pre-processing tasks. Sufficient storage
+ ensures smooth pipeline operations.
+ type: info
+ if:
+ name: hasVolumeExpansion|ingest
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: ML
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/ml/storage/resources/requests/storage
+ label: ML Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/ml
+ subtitle: How much extra storage does your ML nodes need? Specify the size
+ (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/ml/storage/resources/requests/storage|/spec/volumeExpansion/ml
+ type: custom
+ - hasIcon: true
+ label: ML nodes store machine learning models and job data. Adequate storage
+ supports complex ML operations.
+ type: info
+ if:
+ name: hasVolumeExpansion|ml
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Transform
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/transform/storage/resources/requests/storage
+ label: Transform Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/transform
+ subtitle: How much extra storage does your transform nodes need? Specify
+ the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/transform/storage/resources/requests/storage|/spec/volumeExpansion/transform
+ type: custom
+ - hasIcon: true
+ label: Transform nodes handle continuous data transformation operations.
+ Sufficient storage ensures smooth processing.
+ type: info
+ if:
+ name: hasVolumeExpansion|transform
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Data Cold
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/dataCold/storage/resources/requests/storage
+ label: Data Cold Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/dataCold
+ subtitle: How much extra storage does your data cold nodes need? Specify
+ the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/dataCold/storage/resources/requests/storage|/spec/volumeExpansion/dataCold
+ type: custom
+ - hasIcon: true
+ label: Data cold tier stores infrequently accessed data. Cost-effective
+ storage allocation is important for this tier.
+ type: info
+ if:
+ name: hasVolumeExpansion|dataCold
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Data Content
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/dataContent/storage/resources/requests/storage
+ label: Data Content Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/dataContent
+ subtitle: How much extra storage does your data content nodes need? Specify
+ the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/dataContent/storage/resources/requests/storage|/spec/volumeExpansion/dataContent
+ type: custom
+ - hasIcon: true
+ label: Data content tier stores regular content data. Proper storage allocation
+ ensures optimal performance for standard workloads.
+ type: info
+ if:
+ name: hasVolumeExpansion|dataContent
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Data Frozen
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/dataFrozen/storage/resources/requests/storage
+ label: Data Frozen Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/dataFrozen
+ subtitle: How much extra storage does your data frozen nodes need? Specify
+ the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/dataFrozen/storage/resources/requests/storage|/spec/volumeExpansion/dataFrozen
+ type: custom
+ - hasIcon: true
+ label: Data frozen tier stores searchable snapshot data with minimal storage
+ costs. This tier optimizes long-term data retention.
+ type: info
+ if:
+ name: hasVolumeExpansion|dataFrozen
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Data Hot
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/dataHot/storage/resources/requests/storage
+ label: Data Hot Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/dataHot
+ subtitle: How much extra storage does your data hot nodes need? Specify
+ the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/dataHot/storage/resources/requests/storage|/spec/volumeExpansion/dataHot
+ type: custom
+ - hasIcon: true
+ label: Data hot tier stores frequently accessed data requiring fast performance.
+ Adequate storage and fast I/O are crucial for this tier.
+ type: info
+ if:
+ name: hasVolumeExpansion|dataHot
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Data Warm
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/dataWarm/storage/resources/requests/storage
+ label: Data Warm Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/dataWarm
+ subtitle: How much extra storage does your data warm nodes need? Specify
+ the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/dataWarm/storage/resources/requests/storage|/spec/volumeExpansion/dataWarm
+ type: custom
+ - hasIcon: true
+ label: Data warm tier stores less frequently accessed data. Balanced storage
+ allocation provides cost-effective performance.
+ type: info
+ if:
+ name: hasVolumeExpansion|dataWarm
+ type: function
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|Topology|VolumeExpansion
+ type: function
+ label: Topology volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: initTlsOperation
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
watcher:
- func: onTlsOperationChange
+ func: onCreateSecretChange
paths:
- - temp/tlsOperation
- schema: temp/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- type: function
- name: isTlsEnabled
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- if:
- type: function
- name: isTlsEnabled
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- type: function
- name: showIssuerRefAndCertificates
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
loader:
- name: getIssuerRefsName
+ name: onSelectedSecretChange
watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: showIssuerRefAndCertificates
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the operation to complete. Use formats like 30sec, 1min (1 minute) or 2h (2 hours).
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret
+ type: function
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/tlsOperation
+ type: radio
+ watcher:
+ func: onTlsOperationChange
+ paths:
+ - temp/tlsOperation
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the operation to complete. Use
+ formats like 30sec, 1min (1 minute) or 2h (2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-ferretdbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-ferretdbopsrequest-editor/ui/create-ui.yaml
index d5f4b70263..333526d086 100644
--- a/charts/opskubedbcom-ferretdbopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-ferretdbopsrequest-editor/ui/create-ui.yaml
@@ -1,465 +1,478 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
- init:
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: isDbDetailsLoading
+ paths:
+ - temp/dbDetails
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired FerretDB version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
+ value: setValueFromDbDetails|/spec/server/primary/replicas
+ label: Primary Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/primary/properties/replicas
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution, while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ type: horizontal-layout
+ - elements:
+ - if:
+ name: ferretTypeEqualsTo|secondary
type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
+ value: setValueFromDbDetails|/spec/server/secondary/replicas
+ label: Secondary Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/secondary/properties/replicas
+ type: input-compare
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setMachine|primary
+ label: Resources
+ loader: getMachines|primary
+ schema: temp/properties/machine-primary
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onDbChange
+ func: onMachineChange|primary|/spec/server/primary/podTemplate/spec/containers
paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
+ - temp/properties/machine-primary
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/primary/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-primary
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|primary
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-primary
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|primary
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Primary
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine|secondary
+ label: Resources
+ loader: getMachines|secondary
+ schema: temp/properties/machine-secondary
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: isDbDetailsLoading
+ func: onMachineChange|secondary|/spec/server/secondary/podTemplate/spec/containers
paths:
- - temp/dbDetails
- - schema/properties/spec/properties/databaseRef/properties/name
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
- showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired FerretDB version to which you want to update your database.
- init:
- type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
- loader:
- name: getVersionInfo
- watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Primary Replicas
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution, while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/server/primary/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/primary/properties/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Secondary Replicas
- if:
- type: function
- name: ferretTypeEqualsTo|secondary
- init:
- type: func
- value: setValueFromDbDetails|/spec/server/secondary/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/secondary/properties/replicas
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Primary
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|primary
- init:
- type: func
- value: setMachine|primary
- watcher:
- func: onMachineChange|primary|/spec/server/primary/podTemplate/spec/containers
- paths:
- - temp/properties/machine-primary
- schema: temp/properties/machine-primary
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/primary/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: "Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|primary
- schema: temp/topologyKey-primary
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|primary
- schema: temp/topologyValue-primary
- - type: block-layout
- label: Secondary
- showLabels: true
- if:
- type: function
- name: ferretTypeEqualsTo|secondary
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|secondary
- init:
- type: func
- value: setMachine|secondary
- watcher:
- func: onMachineChange|secondary|/spec/server/secondary/podTemplate/spec/containers
- paths:
- - temp/properties/machine-secondary
- schema: temp/properties/machine-secondary
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/secondary/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: "Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|secondary
- schema: temp/topologyKey-secondary
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|secondary
- schema: temp/topologyValue-secondary
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
- if:
- name: hasTlsField
- type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
- init:
- type: func
- value: initTlsOperation
- schema: temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
+ - temp/properties/machine-secondary
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/secondary/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For example,
+ 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-secondary
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|secondary
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-secondary
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|secondary
+ type: custom
+ type: horizontal-layout
+ if:
+ name: ferretTypeEqualsTo|secondary
+ type: function
+ label: Secondary
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
\ No newline at end of file
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml
index 3a81f5d2c8..ae1b32526b 100644
--- a/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml
@@ -1,798 +1,829 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
- init:
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired Kafka version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - header: Node
+ if:
+ name: ifDbTypeEqualsTo|Combined|horizontalScaling
+ type: function
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/replicas
+ label: Node
+ schema: schema/properties/spec/properties/horizontalScaling/properties/node
+ subtitle: How many replicas do you want for your database? Specify the replica
+ count to balance performance and resource usage
+ type: input-compare
+ - elements:
+ - init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
+ value: setValueFromDbDetails|/spec/topology/broker/replicas
+ label: Broker
+ schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/broker
+ subtitle: How many replicas do you want for your database? Specify the replica
+ count to balance performance and resource usage
+ type: input-compare
+ - init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- watcher:
- paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- func: onDbChange
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
+ value: setValueFromDbDetails|/spec/topology/controller/replicas
+ label: Controller
+ schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/controller
+ subtitle: How many replicas do you want for your database? Specify the replica
+ count to balance performance and resource usage
+ type: input-compare
+ if:
+ name: ifDbTypeEqualsTo|Topology|horizontalScaling
+ type: function
+ label: Topology horizontal scaling
+ type: block-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine|node
+ label: Resources
+ loader: getMachines|node
+ schema: temp/properties/machine-node
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onRequestTypeChange
+ func: onMachineChange|node|/spec/podTemplate/spec/containers
paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine-node
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-node
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|node
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-node
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|node
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired Kafka version to which you want to update your database.
- init:
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Combined|verticalScaling
+ type: function
+ label: Combined Vertical Scaling
+ showLabels: false
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setMachine|broker
+ label: Resources
+ loader: getMachines|broker
+ schema: temp/properties/machine-broker
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|broker|/spec/topology/broker/resources
+ paths:
+ - temp/properties/machine-broker
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/broker/properties/nodeSelectionPolicy
+ type: select
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taint: Define
+ tolerations for node traints to ensure your workload runs only on
+ compatible nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-broker
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|broker
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-broker
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|broker
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Broker Vertical Scaling
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|controller
+ label: Resources
+ loader: getMachines|controller
+ schema: temp/properties/machine-controller
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|controller|/spec/topology/controller/resources
+ paths:
+ - temp/properties/machine-controller
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/controller/properties/nodeSelectionPolicy
+ type: select
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taint: Define
+ tolerations for node traints to ensure your workload runs only on
+ compatible nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-controller
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|controller
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-controller
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|controller
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Controller Vertical Scaling
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
- loader:
- name: getVersionInfo
- watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: input-compare
- header: Node
- subtitle: How many replicas do you want for your database? Specify the replica count to balance performance and resource usage
- label: Node
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|horizontalScaling
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Topology|verticalScaling
+ type: function
+ label: Topology Vertical Scaling
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: Node
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Node
+ schema: schema/properties/spec/properties/volumeExpansion/properties/node
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
+ type: custom
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|Combined|volumeExpansion
+ type: function
+ label: Combined volume expansion
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/broker/storage/resources/requests/storage
+ label: Broker
+ schema: schema/properties/spec/properties/volumeExpansion/properties/broker
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/broker/storage/requests/storage|/spec/volumeExpansion/broker
+ type: custom
+ type: horizontal-layout
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/controller/storage/resources/requests/storage
+ label: Controller
+ schema: schema/properties/spec/properties/volumeExpansion/properties/controller
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/controller/storage/resources/requests/storage|/spec/volumeExpansion/controller
+ type: custom
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|Topology|volumeExpansion
+ type: function
+ label: Topology volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/node
- - type: block-layout
- label: Topology horizontal scaling
- if:
- name: ifDbTypeEqualsTo|Topology|horizontalScaling
- type: function
- elements:
- - type: input-compare
- label: Broker
- subtitle: How many replicas do you want for your database? Specify the replica count to balance performance and resource usage
- schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/broker
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/broker/replicas
- - type: input-compare
- label: Controller
- subtitle: How many replicas do you want for your database? Specify the replica count to balance performance and resource usage
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/controller/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/topology/properties/controller
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Combined Vertical Scaling
- showLabels: false
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|verticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|node
- init:
- type: func
- value: setMachine|node
- watcher:
- func: onMachineChange|node|/spec/podTemplate/spec/containers
- paths:
- - temp/properties/machine-node
- schema: temp/properties/machine-node
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|node
- schema: temp/topologyKey-node
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|node
- schema: temp/topologyValue-node
- - type: block-layout
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|verticalScaling
- label: Topology Vertical Scaling
- showLabels: false
- elements:
- - type: block-layout
- label: Broker Vertical Scaling
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- loader: getMachines|broker
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- init:
- type: func
- value: setMachine|broker
- watcher:
- func: onMachineChange|broker|/spec/topology/broker/resources
- paths:
- - temp/properties/machine-broker
- schema: temp/properties/machine-broker
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/broker/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taint: Define tolerations for node traints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|broker
- schema: temp/topologyKey-broker
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|broker
- schema: temp/topologyValue-broker
- - type: block-layout
- label: Controller Vertical Scaling
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- loader: getMachines|controller
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- init:
- type: func
- value: setMachine|controller
- watcher:
- func: onMachineChange|controller|/spec/topology/controller/resources
- paths:
- - temp/properties/machine-controller
- schema: temp/properties/machine-controller
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/controller/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taint: Define tolerations for node traints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|controller
- schema: temp/topologyKey-controller
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|controller
- schema: temp/topologyValue-controller
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: Combined volume expansion
- showLabels: true
- fixedBlock: true
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: ifDbTypeEqualsTo|Combined|volumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Node
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- label: Node
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
- schema: schema/properties/spec/properties/volumeExpansion/properties/node
- - type: block-layout
- label: Topology volume expansion
+ label: Create a New Config Secret
showLabels: true
- fixedBlock: true
+ type: block-layout
+ - editorHeight: 500px
if:
+ name: isNotCreateSecret
type: function
- name: ifDbTypeEqualsTo|Topology|volumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Broker
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/broker/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/broker/storage/requests/storage|/spec/volumeExpansion/broker
- schema: schema/properties/spec/properties/volumeExpansion/properties/broker
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Controller
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/controller/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/controller/storage/resources/requests/storage|/spec/volumeExpansion/controller
- schema: schema/properties/spec/properties/volumeExpansion/properties/controller
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
- if:
- name: hasTlsField
- type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: initTlsOperation
- schema: temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- schema: 'schema/properties/spec/properties/timeout'
- - type: radio
- label: Apply
- subtitle: Choose when to apply the OpsRequest. 'IfReady' waits for the database to be ready, while 'Always' applies immediately.
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ subtitle: Choose when to apply the OpsRequest. 'IfReady' waits for the database
+ to be ready, while 'Always' applies immediately.
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml
index c4fb82daaa..ce04c53e43 100644
--- a/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml
@@ -1,628 +1,639 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
- init:
- type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: isDbDetailsLoading
+ paths:
+ - temp/dbDetails
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired MariaDB version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replica
if:
+ name: ifDbTypeEqualsTo|cluster|horizontalScaling
type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- watcher:
- func: onDbChange
- paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
- type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
- watcher:
- func: isDbDetailsLoading
- paths:
- - temp/dbDetails
- - schema/properties/spec/properties/databaseRef/properties/name
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/member
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine
+ label: Resources
+ loader: getMachines
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|mariadb|/spec/podTemplate/spec/resources
+ paths:
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to avoid
+ unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/mariadb/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes that
+ match your workload's requirements.
Taints: Define tolerations
+ for node taints to ensure your workload runs only on compatible nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For example,
+ 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ - label: Value
+ schema: temp/topologyValue
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired MariaDB version to which you want to update your database.
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: Storage
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mariadb
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/mariadb
+ type: custom
+ type: horizontal-layout
+ fixedBlock: true
+ label: MariaDB volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets
watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- header: Replica
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- if:
- type: function
- name: ifDbTypeEqualsTo|cluster|horizontalScaling
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/member
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines
- init:
- type: func
- value: setMachine
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
watcher:
- func: onMachineChange|mariadb|/spec/podTemplate/spec/resources
+ func: onCreateSecretChange
paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/mariadb/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyKey
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyValue
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: MariaDB volume expansion
- showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Storage
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- label: Storage Size
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/mariadb
- schema: schema/properties/spec/properties/volumeExpansion/properties/mariadb
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
- label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
- if:
- name: hasTlsField
- type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
- init:
- type: func
- value: initTlsOperation
- schema: temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: switch
- label: Require SSL
- fullwidth: true
- init:
- type: func
- value: setValueFromDbDetails|/spec/requireSSL
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
- name: showIssuerRefAndCertificates
+ name: isCreateSecret
type: function
- schema: schema/properties/spec/properties/tls/properties/requireSSL
- - type: block-layout
- label: Issuer Reference
+ label: Create a New Config Secret
showLabels: true
+ type: block-layout
+ - editorHeight: 500px
if:
- name: showIssuerRefAndCertificates
+ name: isNotCreateSecret
type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
\ No newline at end of file
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - fullwidth: true
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/requireSSL
+ label: Require SSL
+ schema: schema/properties/spec/properties/tls/properties/requireSSL
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml
index 8ef8200925..e439f5d1b0 100644
--- a/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml
@@ -1,417 +1,426 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
- init:
- type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- watcher:
- func: onDbChange
- paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- init:
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: isDbDetailsLoading
+ paths:
+ - temp/dbDetails
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired Memcached version to which you want to update your
+ database.
+ type: select
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - if:
+ name: ifDbTypeEqualsTo|Combined|horizontalScaling
+ type: function
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine
+ label: Resources
+ loader: getMachines
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: isDbDetailsLoading
+ func: onMachineChange|memcached|/spec/podTemplate/spec/resources
paths:
- - temp/dbDetails
- - schema/properties/spec/properties/databaseRef/properties/name
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/memcached/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-memcached
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|memcached
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-memcached
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|memcached
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Memcached Vertical Scaling
+ showLabels: false
+ type: block-layout
+ - elements:
+ - label: Exporter
+ subtitle: Configure resource requests for the exporter. These settings determine
+ the CPU and memory allocated to monitor your database metrics.
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setExporter|memcached|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memcached|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memcached
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/memory
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select
- label: Target Version
- subtitle: Select the desired Memcached version to which you want to update your database.
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration, or
+ remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets
watchPaths:
- - temp/properties/filteredVersion
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: input-compare
- label: Replicas
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
if:
+ name: isNotCreateSecret
type: function
- name: ifDbTypeEqualsTo|Combined|horizontalScaling
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Memcached Vertical Scaling
- showLabels: false
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines
- init:
- type: func
- value: setMachine
- watcher:
- func: onMachineChange|memcached|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/memcached/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|memcached
- schema: temp/topologyKey-memcached
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|memcached
- schema: temp/topologyValue-memcached
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: label-element
- label: Exporter
- subtitle: Configure resource requests for the exporter. These settings determine the CPU and memory allocated to monitor your database metrics.
- - type: horizontal-layout
- showLabels: true
- elements:
- - type: input
- label: CPU
- init:
- type: func
- value: setExporter|memcached|cpu
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- label: Memory
- init:
- type: func
- value: setExporter|memcached|memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/memory
- watcher:
- func: onExporterResourceChange|memcached
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/memory
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: block-layout
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
label: Configuration
- showLabels: false
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- elements:
- - type: time-picker
- label: Timeout
- schema: schema/properties/spec/properties/timeout
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- - type: radio
- label: Apply
- schema: schema/properties/spec/properties/apply
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
\ No newline at end of file
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml
index ff7ad0a091..6608094b0d 100644
--- a/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml
@@ -1,1674 +1,1751 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired MongoDB version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replica
if:
+ name: ifDbTypeEqualsTo|replicaSet|horizontalScaling
type: function
- name: showAndInitNamespace
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
if:
+ name: ifDbTypeEqualsTo|replicaSet|horizontalScaling
type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - label: Config Server
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/shardTopology/configServer/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/configServer/properties/replicas
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for
+ better availability.
+ type: info
+ type: horizontal-layout
+ label: Config Server horizontal Scaling
+ type: block-layout
+ - elements:
+ - label: Mongos
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/shardTopology/mongos/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/mongos/properties/replicas
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for
+ better availability.
+ type: info
+ type: horizontal-layout
+ label: Mongo Horizontal Scaling
+ type: block-layout
+ - elements:
+ - label: Shard
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/shardTopology/shard/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/shard/properties/replicas
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for
+ better availability. 4
+ type: info
+ type: horizontal-layout
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/shardTopology/shard/shards
+ label: Shards
+ schema: schema/properties/spec/properties/horizontalScaling/properties/shard/properties/shards
+ type: input
+ - customClass: mb-16
+ label: ""
+ type: label-element
+ label: Shard horizontal Scaling
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|sharded|horizontalScaling
+ type: function
+ label: Sharded horizontal scaling
+ type: block-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
+ value: setMachine|standalone
+ label: Resources
+ loader: getMachines|standalone
+ schema: temp/properties/machine-standalone
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
+ func: onMachineChange|standalone|/spec/podTemplate/spec/resources
paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- func: onDbChange
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
+ - temp/properties/machine-standalone
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/standalone/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-standalone
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|standalone
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-standalone
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|standalone
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|standalone|verticalScaling
+ type: function
+ label: Standalone Vertical Scaling
+ type: block-layout
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine|replicaSet
+ label: Resources
+ loader: getMachines|replicaSet
+ schema: temp/properties/machine-replicaSet
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onRequestTypeChange
+ func: onMachineChange|replicaSet|/spec/podTemplate/spec/resources
paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine-replicaSet
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/replicaSet/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-replicaSet
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|replicaSet
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-replicaSet
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|replicaSet
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired MongoDB version to which you want to update your database.
+ type: block-layout
+ - customClass: mb-20
+ label: ""
+ type: label-element
+ if:
+ name: ifDbTypeEqualsTo|replicaSet|verticalScaling
+ type: function
+ label: ReplicaSet Vertical Scaling
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setMachine|configServer
+ label: Resources
+ loader: getMachines|configServer
+ schema: temp/properties/machine-configServer
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|configServer|/spec/shardTopology/configServer/podTemplate/spec/resources
+ paths:
+ - temp/properties/machine-configServer
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/configServer/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-configServer
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|configServer
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-configServer
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|configServer
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Config Server Vertical Scaling
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|mongos
+ label: Resources
+ loader: getMachines|mongos
+ schema: temp/properties/machine-mongos
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|mongos|/spec/shardTopology/mongos/podTemplate/spec/resources
+ paths:
+ - temp/properties/machine-mongos
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/mongos/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-mongos
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|mongos
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-mongos
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|mongos
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Mongos Vertical Scaling
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|shard
+ label: Resources
+ loader: getMachines|shard
+ schema: temp/properties/machine-shard
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|shard|/spec/shardTopology/shard/podTemplate/spec/resources
+ paths:
+ - temp/properties/machine-shard
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/shard/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-shard
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|shard
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-shard
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|shard
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Shard Vertical Scaling
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|sharded|verticalScaling
+ type: function
+ label: Sharded Vertical Scaling
+ showLabels: false
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: Standalone
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Standalone
+ schema: schema/properties/spec/properties/volumeExpansion/properties/standalone
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/standalone
+ type: custom
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|standalone|volumeExpansion
+ type: function
+ label: Standalone volume expansion
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Config Server
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/shardTopology/configServer/storage/resources/requests/storage
+ label: Config Server
+ schema: schema/properties/spec/properties/volumeExpansion/properties/configServer
+ subtitle: How much extra storage does your database need? Specify the size(e.g.,
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/shardTopology/configServer/storage/resources/requests/storage|/spec/volumeExpansion/configServer
+ type: custom
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for better
+ availability.
+ type: info
+ type: horizontal-layout
+ - elements:
+ - header: Shard
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/shardTopology/shard/storage/resources/requests/storage
+ label: Shard
+ schema: schema/properties/spec/properties/volumeExpansion/properties/shard
+ subtitle: How much extra storage does your database need? Specify the size(e.g.,
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/shardTopology/shard/storage/resources/requests/storage|/spec/volumeExpansion/shard
+ type: custom
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for better
+ availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|sharded|volumeExpansion
+ type: function
+ label: Sharded volume expansion
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replica Set
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: ReplicaSet
+ schema: schema/properties/spec/properties/volumeExpansion/properties/replicaSet
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/replicaSet
+ type: custom
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for better
+ availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|replicaSet|volumeExpansion
+ type: function
+ label: ReplicaSet volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration, or
+ remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets|standalone
watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- header: Replica
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- if:
- type: function
- name: ifDbTypeEqualsTo|replicaSet|horizontalScaling
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- if:
- type: function
- name: ifDbTypeEqualsTo|replicaSet|horizontalScaling
- - type: block-layout
- label: 'Sharded horizontal scaling'
- if:
- name: ifDbTypeEqualsTo|sharded|horizontalScaling
- type: function
- elements:
- - type: block-layout
- label: Config Server horizontal Scaling
- # showLabels: true
- elements:
- - type: label-element
- label: Config Server
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- schema: schema/properties/spec/properties/horizontalScaling/properties/configServer/properties/replicas
- init:
- type: func
- value: setValueFromDbDetails|/spec/shardTopology/configServer/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: block-layout
- label: Mongo Horizontal Scaling
- elements:
- - type: label-element
- label: Mongos
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/shardTopology/mongos/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/mongos/properties/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: block-layout
- label: Shard horizontal Scaling
- # showLabels: true
- elements:
- - type: label-element
- label: Shard
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/shardTopology/shard/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/shard/properties/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability. 4
- - type: input
- label: Shards
- init:
- type: func
- value: setValueFromDbDetails|/spec/shardTopology/shard/shards
- schema: schema/properties/spec/properties/horizontalScaling/properties/shard/properties/shards
- - type: label-element
- label: ''
- customClass: mb-16
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Standalone Vertical Scaling
- if:
- type: function
- name: ifDbTypeEqualsTo|standalone|verticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|standalone
- init:
- type: func
- value: setMachine|standalone
- watcher:
- func: onMachineChange|standalone|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine-standalone
- schema: temp/properties/machine-standalone
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/standalone/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|standalone
- schema: temp/topologyKey-standalone
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|standalone
- schema: temp/topologyValue-standalone
- - type: block-layout
- label: ReplicaSet Vertical Scaling
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/standalone/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/standalone/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange|standalone
+ paths:
+ - temp/properties/standalone/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create|standalone
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/standalone/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/standalone/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange|standalone
+ watchPaths:
+ - temp/properties/standalone/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/standalone/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret|standalone
+ hasCancel: cancelCreateSecret|standalone
+ text: Save
if:
+ name: isCreateSecret|standalone
type: function
- name: ifDbTypeEqualsTo|replicaSet|verticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|replicaSet
- init:
- type: func
- value: setMachine|replicaSet
- watcher:
- func: onMachineChange|replicaSet|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine-replicaSet
- schema: temp/properties/machine-replicaSet
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/replicaSet/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|replicaSet
- schema: temp/topologyKey-replicaSet
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|replicaSet
- schema: temp/topologyValue-replicaSet
- - type: label-element
- label: ''
- customClass: mb-20
- - type: block-layout
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
if:
+ name: isNotCreateSecret|standalone
type: function
- name: ifDbTypeEqualsTo|sharded|verticalScaling
- label: Sharded Vertical Scaling
- showLabels: false
- elements:
- - type: block-layout
- label: Config Server Vertical Scaling
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|configServer
- init:
- type: func
- value: setMachine|configServer
- watcher:
- func: onMachineChange|configServer|/spec/shardTopology/configServer/podTemplate/spec/resources
- paths:
- - temp/properties/machine-configServer
- schema: temp/properties/machine-configServer
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/configServer/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|configServer
- schema: temp/topologyKey-configServer
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|configServer
- schema: temp/topologyValue-configServer
- - type: block-layout
- label: Mongos Vertical Scaling
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|mongos
- init:
- type: func
- value: setMachine|mongos
- watcher:
- func: onMachineChange|mongos|/spec/shardTopology/mongos/podTemplate/spec/resources
- paths:
- - temp/properties/machine-mongos
- schema: temp/properties/machine-mongos
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/mongos/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|mongos
- schema: temp/topologyKey-mongos
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|mongos
- schema: temp/topologyValue-mongos
- - type: block-layout
- label: Shard Vertical Scaling
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|shard
- init:
- type: func
- value: setMachine|shard
- watcher:
- func: onMachineChange|shard|/spec/shardTopology/shard/podTemplate/spec/resources
- paths:
- - temp/properties/machine-shard
- schema: temp/properties/machine-shard
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/shard/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|shard
- schema: temp/topologyKey-shard
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|shard
- schema: temp/topologyValue-shard
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
-
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: Standalone volume expansion
- showLabels: true
- fixedBlock: true
+ loader:
+ name: onNewConfigSecretChange|standalone
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/standalone/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/standalone/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/standalone/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply|standalone
+ watchPaths:
+ - temp/properties/standalone/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig|standalone
+ watchPaths:
+ - temp/properties/standalone/selectedConfiguration
+ schema: temp/properties/standalone/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange|standalone
+ paths:
+ - temp/properties/standalone/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/standalone/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove|standalone
+ watchPaths:
+ - temp/properties/standalone/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
+ init:
+ type: func
+ value: onRemoveConfigChange|standalone
+ readonly: true
+ schema: temp/properties/standalone/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange|standalone
+ paths:
+ - temp/properties/standalone/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ if:
+ name: ifDbTypeEqualsTo|standalone|configuration
+ type: function
+ label: Standalone
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets|replicaSet
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/replicaSet/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/replicaSet/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange|replicaSet
+ paths:
+ - temp/properties/replicaSet/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create|replicaSet
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/replicaSet/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/replicaSet/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange|replicaSet
+ watchPaths:
+ - temp/properties/replicaSet/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/replicaSet/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret|replicaSet
+ hasCancel: cancelCreateSecret|replicaSet
+ text: Save
if:
+ name: isCreateSecret|replicaSet
type: function
- name: ifDbTypeEqualsTo|standalone|volumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Standalone
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- label: Standalone
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/standalone
- schema: schema/properties/spec/properties/volumeExpansion/properties/standalone
- - type: block-layout
- label: Sharded volume expansion
+ label: Create a New Config Secret
showLabels: true
- fixedBlock: true
+ type: block-layout
+ - editorHeight: 500px
if:
+ name: isNotCreateSecret|replicaSet
type: function
- name: ifDbTypeEqualsTo|sharded|volumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Config Server
- label: Config Server
- subtitle: How much extra storage does your database need? Specify the size(e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/shardTopology/configServer/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/shardTopology/configServer/storage/resources/requests/storage|/spec/volumeExpansion/configServer
- schema: schema/properties/spec/properties/volumeExpansion/properties/configServer
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: horizontal-layout
+ loader:
+ name: onNewConfigSecretChange|replicaSet
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/replicaSet/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/replicaSet/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/replicaSet/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply|replicaSet
+ watchPaths:
+ - temp/properties/replicaSet/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig|replicaSet
+ watchPaths:
+ - temp/properties/replicaSet/selectedConfiguration
+ schema: temp/properties/replicaSet/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange|replicaSet
+ paths:
+ - temp/properties/replicaSet/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/replicaSet/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove|replicaSet
+ watchPaths:
+ - temp/properties/replicaSet/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
+ init:
+ type: func
+ value: onRemoveConfigChange|replicaSet
+ readonly: true
+ schema: temp/properties/replicaSet/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange|replicaSet
+ paths:
+ - temp/properties/replicaSet/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ if:
+ name: ifDbTypeEqualsTo|replicaSet|configuration
+ type: function
+ label: Replica Set
+ type: block-layout
+ - elements:
+ - customClass: mt-10
+ elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/shardTopology/configServer/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets|configServer
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/configServer/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configServer/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange|configServer
+ paths:
+ - temp/properties/configServer/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create|configServer
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configServer/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/configServer/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
elements:
- - type: input-compare
- header: Shard
- label: Shard
- subtitle: How much extra storage does your database need? Specify the size(e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/shardTopology/shard/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/shardTopology/shard/storage/resources/requests/storage|/spec/volumeExpansion/shard
- schema: schema/properties/spec/properties/volumeExpansion/properties/shard
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: block-layout
- label: ReplicaSet volume expansion
- showLabels: true
- fixedBlock: true
+ - label: Key
+ loader:
+ name: onSelectedSecretChange|configServer
+ watchPaths:
+ - temp/properties/configServer/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/configServer/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret|configServer
+ hasCancel: cancelCreateSecret|configServer
+ text: Save
+ if:
+ name: isCreateSecret|configServer
+ type: function
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret|configServer
+ type: function
+ loader:
+ name: onNewConfigSecretChange|configServer
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configServer/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/configServer/newConfigSecret
+ type: multi-file-editor
if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|configServer|true
type: function
- name: ifDbTypeEqualsTo|replicaSet|volumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Replica Set
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- label: ReplicaSet
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/replicaSet
- schema: schema/properties/spec/properties/volumeExpansion/properties/replicaSet
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: block-layout
- label: Standalone
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter
+ the parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/configServer/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply|configServer
+ watchPaths:
+ - temp/properties/configServer/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig|configServer
+ watchPaths:
+ - temp/properties/configServer/selectedConfiguration
+ schema: temp/properties/configServer/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange|configServer
+ paths:
+ - temp/properties/configServer/applyConfig
if:
- name: ifDbTypeEqualsTo|standalone|configuration
+ name: ifReconfigurationTypeEqualsTo|applyConfig|configServer|true
type: function
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/standalone/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets|standalone
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/standalone/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange|standalone
- paths:
- - temp/properties/standalone/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create|standalone
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/standalone/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret|standalone
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret|standalone
- action: createNewConfigSecret|standalone
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/standalone/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/standalone/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange|standalone
- watchPaths:
- - temp/properties/standalone/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret|standalone
- loader:
- name: onNewConfigSecretChange|standalone
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/standalone/properties/configSecret/properties/name
- schema: temp/properties/standalone/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/standalone/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply|standalone
- watchPaths:
- - temp/properties/standalone/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/standalone/applyConfig
- loader:
- name: setApplyConfig|standalone
- watchPaths:
- - temp/properties/standalone/selectedConfiguration
- watcher:
- func: onApplyconfigChange|standalone
- paths:
- - temp/properties/standalone/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/standalone/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove|standalone
- watchPaths:
- - temp/properties/standalone/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange|standalone
- watcher:
- func: onRemoveConfigChange|standalone
- paths:
- - temp/properties/standalone/selectedConfigurationRemove
- schema: temp/properties/standalone/removeConfig
- - type: block-layout
- label: Replica Set
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to
+ update your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/configServer/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove|configServer
+ watchPaths:
+ - temp/properties/configServer/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
+ init:
+ type: func
+ value: onRemoveConfigChange|configServer
+ readonly: true
+ schema: temp/properties/configServer/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange|configServer
+ paths:
+ - temp/properties/configServer/selectedConfigurationRemove
if:
- name: ifDbTypeEqualsTo|replicaSet|configuration
+ name: ifReconfigurationTypeEqualsTo|remove|configServer|true
type: function
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType-configServer
+ type: tab-layout
+ label: Config Server
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/shardTopology/mongos/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets|mongos
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/mongos/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/mongos/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange|mongos
+ paths:
+ - temp/properties/mongos/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create|mongos
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/mongos/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/mongos/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/replicaSet/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets|replicaSet
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/replicaSet/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange|replicaSet
- paths:
- - temp/properties/replicaSet/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create|replicaSet
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/replicaSet/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret|replicaSet
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret|replicaSet
- action: createNewConfigSecret|replicaSet
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/replicaSet/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/replicaSet/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange|replicaSet
- watchPaths:
- - temp/properties/replicaSet/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret|replicaSet
- loader:
- name: onNewConfigSecretChange|replicaSet
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/replicaSet/properties/configSecret/properties/name
- schema: temp/properties/replicaSet/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/replicaSet/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply|replicaSet
- watchPaths:
- - temp/properties/replicaSet/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/replicaSet/applyConfig
- loader:
- name: setApplyConfig|replicaSet
- watchPaths:
- - temp/properties/replicaSet/selectedConfiguration
- watcher:
- func: onApplyconfigChange|replicaSet
- paths:
- - temp/properties/replicaSet/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/replicaSet/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove|replicaSet
- watchPaths:
- - temp/properties/replicaSet/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange|replicaSet
- watcher:
- func: onRemoveConfigChange|replicaSet
- paths:
- - temp/properties/replicaSet/selectedConfigurationRemove
- schema: temp/properties/replicaSet/removeConfig
- - type: block-layout
- elements:
- - type: block-layout
- label: Config Server
- showLabels: true
- customClass: mt-10
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType-configServer
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|configServer|true
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configServer/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets|configServer
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/configServer/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/shardTopology/configServer/configSecret/name
- watcher:
- func: onCreateSecretChange|configServer
- paths:
- - temp/properties/configServer/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create|configServer
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configServer/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret|configServer
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret|configServer
- action: createNewConfigSecret|configServer
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/configServer/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/configServer/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange|configServer
- watchPaths:
- - temp/properties/configServer/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret|configServer
- loader:
- name: onNewConfigSecretChange|configServer
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configServer/properties/configSecret/properties/name
- schema: temp/properties/configServer/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig|configServer|true
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/configServer/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply|configServer
- watchPaths:
- - temp/properties/configServer/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/configServer/applyConfig
- loader:
- name: setApplyConfig|configServer
- watchPaths:
- - temp/properties/configServer/selectedConfiguration
- watcher:
- func: onApplyconfigChange|configServer
- paths:
- - temp/properties/configServer/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove|configServer|true
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/configServer/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove|configServer
- watchPaths:
- - temp/properties/configServer/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange|configServer
- watcher:
- func: onRemoveConfigChange|configServer
- paths:
- - temp/properties/configServer/selectedConfigurationRemove
- schema: temp/properties/configServer/removeConfig
- - type: block-layout
- label: Mongos
- showLabels: true
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType-mongos
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|mongos|true
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/mongos/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets|mongos
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/mongos/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/shardTopology/mongos/configSecret/name
- watcher:
- func: onCreateSecretChange|mongos
- paths:
- - temp/properties/mongos/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create|mongos
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/mongos/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret|mongos
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret|mongos
- action: createNewConfigSecret|mongos
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/mongos/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/mongos/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange|mongos
- watchPaths:
- - temp/properties/mongos/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret|mongos
- loader:
- name: onNewConfigSecretChange|mongos
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/mongos/properties/configSecret/properties/name
- schema: temp/properties/mongos/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig|mongos|true
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/mongos/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply|mongos
- watchPaths:
- - temp/properties/mongos/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/mongos/applyConfig
- loader:
- name: setApplyConfig|mongos
- watchPaths:
- - temp/properties/mongos/selectedConfiguration
- watcher:
- func: onApplyconfigChange|mongos
- paths:
- - temp/properties/mongos/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove|mongos|true
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/mongos/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove|mongos
- watchPaths:
- - temp/properties/mongos/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange|mongos
- watcher:
- func: onRemoveConfigChange|mongos
- paths:
- - temp/properties/mongos/selectedConfigurationRemove
- schema: temp/properties/mongos/removeConfig
- - type: block-layout
- label: Shard
+ - label: Key
+ loader:
+ name: onSelectedSecretChange|mongos
+ watchPaths:
+ - temp/properties/mongos/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/mongos/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret|mongos
+ hasCancel: cancelCreateSecret|mongos
+ text: Save
+ if:
+ name: isCreateSecret|mongos
+ type: function
+ label: Create a New Config Secret
showLabels: true
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType-shard
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|shard|true
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/shard/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets|shard
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/shard/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/shardTopology/shard/configSecret/name
- watcher:
- func: onCreateSecretChange|shard
- paths:
- - temp/properties/shard/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create|shard
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/shard/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret|shard
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret|shard
- action: createNewConfigSecret|shard
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/shard/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/shard/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange|shard
- watchPaths:
- - temp/properties/shard/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret|shard
- loader:
- name: onNewConfigSecretChange|shard
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/shard/properties/configSecret/properties/name
- schema: temp/properties/shard/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig|shard|true
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/shard/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply|shard
- watchPaths:
- - temp/properties/shard/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/shard/applyConfig
- loader:
- name: setApplyConfig|shard
- watchPaths:
- - temp/properties/shard/selectedConfiguration
- watcher:
- func: onApplyconfigChange|shard
- paths:
- - temp/properties/shard/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove|shard|true
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/shard/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove|shard
- watchPaths:
- - temp/properties/shard/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange|shard
- watcher:
- func: onRemoveConfigChange|shard
- paths:
- - temp/properties/shard/selectedConfigurationRemove
- schema: temp/properties/shard/removeConfig
- label: Sharded Reconfigure form
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret|mongos
+ type: function
+ loader:
+ name: onNewConfigSecretChange|mongos
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/mongos/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/mongos/newConfigSecret
+ type: multi-file-editor
if:
- name: ifDbTypeEqualsTo|sharded|configuration
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|mongos|true
type: function
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
- schema: temp/properties/tlsOperation
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter
+ the parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/mongos/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply|mongos
+ watchPaths:
+ - temp/properties/mongos/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig|mongos
+ watchPaths:
+ - temp/properties/mongos/selectedConfiguration
+ schema: temp/properties/mongos/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange|mongos
+ paths:
+ - temp/properties/mongos/applyConfig
if:
- name: hasTlsField
+ name: ifReconfigurationTypeEqualsTo|applyConfig|mongos|true
type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
- init:
- type: func
- value: initTlsOperation
- watcher:
- func: onTlsOperationChange
- paths:
- - temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to
+ update your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/mongos/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove|mongos
+ watchPaths:
+ - temp/properties/mongos/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
+ init:
+ type: func
+ value: onRemoveConfigChange|mongos
+ readonly: true
+ schema: temp/properties/mongos/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange|mongos
+ paths:
+ - temp/properties/mongos/selectedConfigurationRemove
if:
- name: isTlsEnabled
+ name: ifReconfigurationTypeEqualsTo|remove|mongos|true
type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType-mongos
+ type: tab-layout
+ label: Mongos
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/shardTopology/shard/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets|shard
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/shard/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/shard/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange|shard
+ paths:
+ - temp/properties/shard/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create|shard
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/shard/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/shard/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange|shard
+ watchPaths:
+ - temp/properties/shard/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/shard/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret|shard
+ hasCancel: cancelCreateSecret|shard
+ text: Save
+ if:
+ name: isCreateSecret|shard
+ type: function
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret|shard
+ type: function
+ loader:
+ name: onNewConfigSecretChange|shard
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/shard/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/shard/newConfigSecret
+ type: multi-file-editor
if:
- name: isTlsEnabled
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|shard|true
type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter
+ the parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/shard/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply|shard
+ watchPaths:
+ - temp/properties/shard/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig|shard
+ watchPaths:
+ - temp/properties/shard/selectedConfiguration
+ schema: temp/properties/shard/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange|shard
+ paths:
+ - temp/properties/shard/applyConfig
if:
- name: showIssuerRefAndCertificates
+ name: ifReconfigurationTypeEqualsTo|applyConfig|shard|true
type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to
+ update your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/shard/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove|shard
+ watchPaths:
+ - temp/properties/shard/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
+ init:
+ type: func
+ value: onRemoveConfigChange|shard
+ readonly: true
+ schema: temp/properties/shard/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange|shard
+ paths:
+ - temp/properties/shard/selectedConfigurationRemove
if:
- name: showIssuerRefAndCertificates
+ name: ifReconfigurationTypeEqualsTo|remove|shard|true
type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType-shard
+ type: tab-layout
+ label: Shard
showLabels: true
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|sharded|configuration
+ type: function
+ label: Sharded Reconfigure form
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ watcher:
+ func: onTlsOperationChange
+ paths:
+ - temp/properties/tlsOperation
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml
index a2ef24e031..92239bebf8 100644
--- a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml
@@ -1,497 +1,509 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
- init:
- type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired MSSQLServer version to which you want to update
+ your database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replica
init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- watcher:
- paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- func: onDbChange
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- init:
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution, while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine
+ label: Resources
+ loader: getMachines
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onRequestTypeChange
+ func: onMachineChange|mssqlserver|/spec/podTemplate/spec/containers
paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/mssqlserver/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ - label: Value
+ schema: temp/topologyValue
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired MSSQLServer version to which you want to update your database.
+ type: block-layout
+ label: MSSQLServer Vertical Scaling
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/requests/cpu|/spec/verticalScaling/coordinator/resources/requests/cpu
+ label: CPU Requests
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/cpu
+ type: input
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/limits/cpu|/spec/verticalScaling/coordinator/resources/limits/cpu
+ label: CPU Limits
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/cpu
+ type: input
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/requests/memory|/spec/verticalScaling/coordinator/resources/requests/memory
+ label: Memory Requests
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/memory
+ type: input
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/limits/memory|/spec/verticalScaling/coordinator/resources/limits/memory
+ label: Memory Limits
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/memory
+ type: input
+ label: Coordinator
+ showLabels: true
+ type: horizontal-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: MSSQLServer
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mssqlserver
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/mssqlserver
+ type: custom
+ - hasIcon: true
+ label: Expanding storage allows your database to accommodate more data.
+ Ensure the specified size is larger than the current storage capacity.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ label: MSSQLServer volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets
watchPaths:
- - temp/properties/filteredVersion
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- header: Replica
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution, while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: MSSQLServer Vertical Scaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines
- init:
- type: func
- value: setMachine
- watcher:
- func: onMachineChange|mssqlserver|/spec/podTemplate/spec/containers
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/mssqlserver/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyKey
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyValue
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- - type: horizontal-layout
+ label: Create a New Config Secret
showLabels: true
- label: Coordinator
- elements:
- - type: input
- label: CPU Requests
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/cpu
- init:
- type: func
- value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/requests/cpu|/spec/verticalScaling/coordinator/resources/requests/cpu
- - type: input
- label: CPU Limits
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/cpu
- init:
- type: func
- value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/limits/cpu|/spec/verticalScaling/coordinator/resources/limits/cpu
- - type: input
- label: Memory Requests
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/memory
- init:
- type: func
- value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/requests/memory|/spec/verticalScaling/coordinator/resources/requests/memory
- - type: input
- label: Memory Limits
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/memory
- init:
- type: func
- value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/limits/memory|/spec/verticalScaling/coordinator/resources/limits/memory
-# Volume Expansion
-
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: MSSQLServer volume expansion
- showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: MSSQLServer
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- label: Storage Size
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/mssqlserver
- schema: schema/properties/spec/properties/volumeExpansion/properties/mssqlserver
- - type: info
- hasIcon: true
- label: Expanding storage allows your database to accommodate more data. Ensure the specified size is larger than the current storage capacity.
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret
+ type: function
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml
index e8db964553..df09742048 100644
--- a/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml
@@ -1,642 +1,654 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired MySQL version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replica
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- watcher:
- func: onDbChange
- paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/member
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ if:
+ name: ifDbTypeEqualsTo|cluster|horizontalScaling
+ type: function
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine
+ label: Resources
+ loader: getMachines
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onRequestTypeChange
+ func: onMachineChange|mysql|/spec/podTemplate/spec/resources
paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/mysql/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ - label: Value
+ schema: temp/topologyValue
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired MySQL version to which you want to update your database.
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ label: MySQL vertical scaling
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: MySQL
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mysql
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/mysql
+ type: custom
+ type: horizontal-layout
+ fixedBlock: true
+ label: MySQL volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets
watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: ifDbTypeEqualsTo|cluster|horizontalScaling
- elements:
- - type: input-compare
- label: Replicas
- header: Replica
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/member
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: MySQL vertical scaling
- showLabels: false
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines
- init:
- type: func
- value: setMachine
- watcher:
- func: onMachineChange|mysql|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/mysql/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyKey
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyValue
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: MySQL volume expansion
+ label: Create a New Config Secret
showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Storage Size
- header: MySQL
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/mysql
- schema: schema/properties/spec/properties/volumeExpansion/properties/mysql
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
- label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
+ type: block-layout
+ - editorHeight: 500px
if:
- name: hasTlsField
+ name: isNotCreateSecret
type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: initTlsOperation
- schema: temp/properties/tlsOperation
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
watcher:
- func: onTlsOperationChange
+ func: onRemoveConfigChange
paths:
- - temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: block-layout
- label: Require SSL
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: switch
- label: Require SSL
- fullwidth: true
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/requireSSL
- schema: schema/properties/spec/properties/tls/properties/requireSSL
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ watcher:
+ func: onTlsOperationChange
+ paths:
+ - temp/properties/tlsOperation
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - fullwidth: true
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/requireSSL
+ label: Require SSL
+ schema: schema/properties/spec/properties/tls/properties/requireSSL
+ type: switch
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Require SSL
+ type: block-layout
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the operation to complete before it times out
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the operation to complete before
+ it times out
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/create-ui.yaml
index 9017defae8..1064b9a802 100644
--- a/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/create-ui.yaml
@@ -1,630 +1,643 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
- init:
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - header: Member
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/replicas
+ label: Member
+ schema: schema/properties/spec/properties/horizontalScaling/properties/member
+ subtitle: Define the total number of members for the database cluster. Increasing
+ members improves fault tolerance and load distribution, while reducing members
+ conserves resources
+ type: input-compare
+ - header: Member Weight
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/replicas
+ label: Member Weight
+ schema: schema/properties/spec/properties/horizontalScaling/properties/memberWeight
+ subtitle: Specify the weight for each member in the cluster to control load
+ distribution and priority
+ type: input-compare
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
+ value: setMachine|perconaxtradb
+ label: Resources
+ loader: getMachines|perconaxtradb
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onNamespaceChange
+ func: onMachineChange|perconaxtradb|/spec/podTemplate/spec/resources
paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/perconaxtradb/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-perconaxtradb
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|perconaxtradb
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-perconaxtradb
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|perconaxtradb
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: PerconaXtraDB Vertical Scaling
+ type: block-layout
+ - elements:
+ - init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- watcher:
- paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- func: onDbChange
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
+ value: setValueFromDbDetails|/spec/coordinator/resources/requests/cpu|/spec/verticalScaling/coordinator/resources/requests/cpu
+ label: CPU Requests
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/cpu
+ type: input
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
- watcher:
- func: onRequestTypeChange
- paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
+ value: setValueFromDbDetails|/spec/coordinator/resources/limits/cpu|/spec/verticalScaling/coordinator/resources/limits/cpu
+ label: CPU Limits
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/cpu
+ type: input
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/coordinator/resources/requests/memory|/spec/verticalScaling/coordinator/resources/requests/memory
+ label: Memory Requests
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/memory
+ type: input
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/coordinator/resources/limits/memory|/spec/verticalScaling/coordinator/resources/limits/memory
+ label: Memory Limits
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/memory
+ type: input
+ label: Coordinator
+ showLabels: true
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: input-compare
- label: Member
- header: Member
- subtitle: Define the total number of members for the database cluster. Increasing members improves fault tolerance and load distribution, while reducing members conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/member
- - type: input-compare
- label: Member Weight
- header: Member Weight
- subtitle: Specify the weight for each member in the cluster to control load distribution and priority
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/memberWeight
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: PerconaXtraDB Vertical Scaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|perconaxtradb
- init:
- type: func
- value: setMachine|perconaxtradb
- watcher:
- func: onMachineChange|perconaxtradb|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/perconaxtradb/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|perconaxtradb
- schema: temp/topologyKey-perconaxtradb
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|perconaxtradb
- schema: temp/topologyValue-perconaxtradb
- - type: horizontal-layout
- showLabels: true
- label: Coordinator
- elements:
- - type: input
- label: CPU Requests
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/cpu
- init:
- type: func
- value: setValueFromDbDetails|/spec/coordinator/resources/requests/cpu|/spec/verticalScaling/coordinator/resources/requests/cpu
- - type: input
- label: CPU Limits
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/cpu
- init:
- type: func
- value: setValueFromDbDetails|/spec/coordinator/resources/limits/cpu|/spec/verticalScaling/coordinator/resources/limits/cpu
- - type: input
- label: Memory Requests
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/memory
- init:
- type: func
- value: setValueFromDbDetails|/spec/coordinator/resources/requests/memory|/spec/verticalScaling/coordinator/resources/requests/memory
- - type: input
- label: Memory Limits
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/memory
- init:
- type: func
- value: setValueFromDbDetails|/spec/coordinator/resources/limits/memory|/spec/verticalScaling/coordinator/resources/limits/memory
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode (Required)
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose offline Mode if you can afford a brief downntime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: PerconaXtraDB volume expansion
- showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: PerconaXtraDB
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- label: Storage Size
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/perconaxtradb
- schema: schema/properties/spec/properties/volumeExpansion/properties/perconaxtradb
- - type: info
- hasIcon: true
- label: Volume expansion increases the available storage for your database. Make sure the new size is larger than the current size.
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
- label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
- schema: temp/properties/tlsOperation
- if:
- name: hasTlsField
- type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode (Required)
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose offline Mode if you can afford a brief
+ downntime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: PerconaXtraDB
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/perconaxtradb
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/perconaxtradb
+ type: custom
+ - hasIcon: true
+ label: Volume expansion increases the available storage for your database.
+ Make sure the new size is larger than the current size.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ label: PerconaXtraDB volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: initTlsOperation
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
watcher:
- func: onTlsOperationChange
+ func: onCreateSecretChange
paths:
- - temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
loader:
- name: getIssuerRefsName
+ name: onSelectedSecretChange
watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
- name: showIssuerRefAndCertificates
+ name: isCreateSecret
type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret
+ type: function
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ watcher:
+ func: onTlsOperationChange
+ paths:
+ - temp/properties/tlsOperation
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml
index 70501199f7..e9e3f8cbd6 100644
--- a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml
@@ -1,420 +1,431 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: isDbDetailsLoading
+ paths:
+ - temp/dbDetails
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired PgBouncer version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replica
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution, while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
+ value: setMachine|pgbouncer
+ label: Resources
+ loader: getMachines|pgbouncer
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onDbChange
+ func: onMachineChange|pgbouncer|/spec/podTemplate/spec/resources
paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- init:
- type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
- watcher:
- func: isDbDetailsLoading
- paths:
- - temp/dbDetails
- - schema/properties/spec/properties/databaseRef/properties/name
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/pgbouncer/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-pgbouncer
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|pgbouncer
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-pgbouncer
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|pgbouncer
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: PgBouncer Vertical Scaling
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired PgBouncer version to which you want to update your database.
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
loader:
- name: getVersionInfo
+ name: getSelectedConfigurationName|create
watchPaths:
- - temp/properties/filteredVersion
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- header: Replica
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution, while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: PgBouncer Vertical Scaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|pgbouncer
- init:
- type: func
- value: setMachine|pgbouncer
- watcher:
- func: onMachineChange|pgbouncer|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/pgbouncer/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|pgbouncer
- schema: temp/topologyKey-pgbouncer
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|pgbouncer
- schema: temp/topologyValue-pgbouncer
- - type: block-layout
- label: Exporter
+ label: Create a New Config Secret
showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret
+ type: function
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- elements:
- - type: time-picker
- label: Timeout
- subtitle: Specify the maximum time allowed for the operation to complete before it times out
- schema: 'schema/properties/spec/properties/timeout'
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the operation to complete before
+ it times out
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml
index 7f44a673a9..8b7e1bd460 100644
--- a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml
@@ -1,580 +1,591 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired PgPool version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Node
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
+ value: setValueFromDbDetails|/spec/replicas
+ label: Node
+ schema: schema/properties/spec/properties/horizontalScaling/properties/node
+ subtitle: Define the total number of PgPool nodes for your database. Increasing
+ nodes improves fault tolerance and load distribution, while reducing nodes
+ conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each PgPool node acts as a connection pooler and load balancer. For
+ example, setting this to 3 creates three PgPool instances for better availability
+ and load distribution.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
+ value: setMachine
+ label: Resources
+ loader: getMachines
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
+ func: onMachineChange|node|/spec/podTemplate/spec/containers
paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- func: onDbChange
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
- type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
- watcher:
- func: onRequestTypeChange
- paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ - label: Value
+ schema: temp/topologyValue
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired PgPool version to which you want to update your database.
- init:
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
- loader:
- name: getVersionInfo
- watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Node
- label: Node
- subtitle: Define the total number of PgPool nodes for your database. Increasing nodes improves fault tolerance and load distribution, while reducing nodes conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/node
- - type: info
- hasIcon: true
- label: Each PgPool node acts as a connection pooler and load balancer. For example, setting this to 3 creates three PgPool instances for better availability and load distribution.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Node Vertical Scaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines
- init:
- type: func
- value: setMachine
- watcher:
- func: onMachineChange|node|/spec/podTemplate/spec/containers
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyKey
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyValue
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
- label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
- if:
- name: hasTlsField
- type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
+ type: block-layout
+ label: Node Vertical Scaling
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: initTlsOperation
- schema: temp/properties/tlsOperation
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
watcher:
- func: onTlsOperationChange
+ func: onCreateSecretChange
paths:
- - temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
loader:
- name: getIssuerRefsName
+ name: onSelectedSecretChange
watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
- name: showIssuerRefAndCertificates
+ name: isCreateSecret
type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- elements:
- - type: time-picker
- label: Timeout
- subtitle: Specify the maximum time allowed for the operation to complete before it times out
- schema: 'schema/properties/spec/properties/timeout'
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret
+ type: function
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ watcher:
+ func: onTlsOperationChange
+ paths:
+ - temp/properties/tlsOperation
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
+ elements:
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the operation to complete before
+ it times out
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml
index 90b45f887d..5a1b826431 100644
--- a/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml
@@ -1,658 +1,670 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: isDbDetailsLoading
+ paths:
+ - temp/dbDetails
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired Postgres version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replica
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ if:
+ name: ifDbTypeEqualsTo|cluster|horizontalScaling
+ type: function
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
+ value: setMachine
+ label: Resources
+ loader: getMachines
+ schema: temp/properties/machine
+ type: machine-compare
watcher:
- func: onDbChange
+ func: onMachineChange|postgres|/spec/podTemplate/spec/resources
paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
- type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
- watcher:
- func: isDbDetailsLoading
- paths:
- - temp/dbDetails
- - schema/properties/spec/properties/databaseRef/properties/name
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/postgres/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ - label: Value
+ schema: temp/topologyValue
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired Postgres version to which you want to update your database.
+ type: block-layout
+ label: Postgres Vertical Scaling
+ showLabels: false
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: Storage Size
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/postgres
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/postgres
+ type: custom
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for better
+ availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ label: Postgres volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets
watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: ifDbTypeEqualsTo|cluster|horizontalScaling
- elements:
- - type: input-compare
- label: Replicas
- header: Replica
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Postgres Vertical Scaling
- showLabels: false
- elements:
- - type: machine-compare
- label: Resources
- loader: getMachines
- init:
- type: func
- value: setMachine
- watcher:
- func: onMachineChange|postgres|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/postgres/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyKey
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyValue
- - type: block-layout
- label: Exporter
+ label: Create a New Config Secret
showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: Postgres volume expansion
- showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Storage Size
- label: Storage Size
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/postgres
- schema: schema/properties/spec/properties/volumeExpansion/properties/postgres
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
- label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
- if:
- name: hasTlsField
- type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
- init:
- type: func
- value: initTlsOperation
- schema: temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: block-layout
+ - editorHeight: 500px
if:
- name: isTlsEnabled
+ name: isNotCreateSecret
type: function
- - type: radio
- label: Client Auth Mode
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setClientAuthMode
- loader: getClientAuthModes
- schema: schema/properties/spec/properties/tls/properties/clientAuthMode
- - type: block-layout
- label: SSL Mode
- showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: radio
- label: SSL Mode
- init:
- type: func
- value: setSSLMode
- options:
- - text: disable
- value: disable
- - text: allow
- value: allow
- - text: prefer
- value: prefer
- - text: require
- value: require
- - text: verify-ca
- value: verify-ca
- - text: verify-full
- value: verify-full
- schema: schema/properties/spec/properties/tls/properties/sslMode
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - init:
+ type: func
+ value: setClientAuthMode
+ label: Client Auth Mode
+ loader: getClientAuthModes
+ schema: schema/properties/spec/properties/tls/properties/clientAuthMode
+ type: radio
+ - elements:
+ - init:
+ type: func
+ value: setSSLMode
+ label: SSL Mode
+ options:
+ - text: disable
+ value: disable
+ - text: allow
+ value: allow
+ - text: prefer
+ value: prefer
+ - text: require
+ value: require
+ - text: verify-ca
+ value: verify-ca
+ - text: verify-full
+ value: verify-full
+ schema: schema/properties/spec/properties/tls/properties/sslMode
+ type: radio
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: SSL Mode
+ showLabels: false
+ type: block-layout
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the operation to complete before it times out
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
\ No newline at end of file
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the operation to complete before
+ it times out
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml
index 3d24380835..95bc1700aa 100644
--- a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml
@@ -1,527 +1,531 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/proxyRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/proxyRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired ProxySQL version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replica
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/member
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution, while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|proxysql
+ label: Resources
+ loader: getMachines|proxysql
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|proxysql|/spec/podTemplate/spec/resources
+ paths:
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to avoid
+ unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/proxysql/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes that
+ match your workload's requirements.
Taints: Define tolerations
+ for node taints to ensure your workload runs only on compatible nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For example,
+ 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-proxysql
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|proxysql
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-proxysql
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|proxysql
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/initConfig/adminVariables|/spec/configuration/adminVariables
+ label: Admin Variables
+ schema: schema/properties/spec/properties/configuration/properties/adminVariables
+ type: input-compare
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/initConfig/mysqlVariables|/spec/configuration/mysqlVariables
+ label: MySQL Variables
+ schema: schema/properties/spec/properties/configuration/properties/mysqlVariables
+ type: input-compare
+ - elements:
+ - label: Request Type
+ options:
+ - text: Add
+ value: add
+ - text: Update
+ value: update
+ - text: Delete
+ value: delete
+ schema: schema/properties/spec/properties/configuration/properties/mysqlQueryRules/properties/reqType
+ type: select
watcher:
- func: onNamespaceChange
+ func: onMySQLUserReqTypeChange
paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
+ - schema/properties/spec/properties/configuration/properties/mysqlQueryRules/properties/reqType
+ - buttonClass: is-light is-outlined
+ element:
+ label: Rules
+ type: input
init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
+ value: setMySQLRules
+ label: Query Rules
+ schema: temp/mysqlQueryRules/properties/rules
+ type: array-item-form
watcher:
- func: onDbChange
+ func: onMySQLRulesChange
paths:
- - schema/properties/spec/properties/proxyRef/properties/name
- schema: schema/properties/spec/properties/proxyRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
+ - temp/mysqlQueryRules
+ label: MySQL Query Rules
+ showLabels: true
+ type: block-layout
+ - elements:
+ - label: Request Type
options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
- type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ - text: Add
+ value: add
+ - text: Update
+ value: update
+ - text: Delete
+ value: delete
+ schema: schema/properties/spec/properties/configuration/properties/mysqlUsers/properties/reqType
+ type: select
watcher:
- func: onRequestTypeChange
+ func: onMySQLUserReqTypeChange
paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
- showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
+ - schema/properties/spec/properties/configuration/properties/mysqlUsers/properties/reqType
+ - buttonClass: is-light is-outlined
elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired ProxySQL version to which you want to update your database.
- init:
- type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
- loader:
- name: getVersionInfo
- watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- header: Replica
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution, while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/member
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|proxysql
- init:
- type: func
- value: setMachine|proxysql
- watcher:
- func: onMachineChange|proxysql|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/proxysql/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|proxysql
- schema: temp/topologyKey-proxysql
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|proxysql
- schema: temp/topologyValue-proxysql
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
+ - label: Username
+ schema: items/properties/username
+ type: input
+ validation:
+ type: required
+ - label: Active
+ schema: items/properties/active
+ type: input
+ - label: Default Schema
+ schema: items/properties/default_schema
+ type: input
+ - label: Use SSL
+ schema: items/properties/use_ssl
+ type: input
+ - label: Attributes
+ schema: items/properties/attributes
+ type: input
+ - label: Backend
+ schema: items/properties/backend
+ type: input
+ - label: Comment
+ schema: items/properties/comment
+ type: input
+ - label: Default Hostgroup
+ schema: items/properties/default_hostgroup
+ type: input
+ - label: Fast Forward
+ schema: items/properties/fast_forward
+ type: input
+ - label: Frontend
+ schema: items/properties/frontend
+ type: input
+ - label: Max Connections
+ schema: items/properties/max_connections
+ type: input
+ - label: Schema Locked
+ schema: items/properties/schema_locked
+ type: input
+ - label: Transaction Persistent
+ schema: items/properties/transaction_persistent
+ type: input
if:
- name: ifRequestTypeEqualsTo|Reconfigure
+ name: showUserCreationField
type: function
- elements:
- - type: input-compare
- label: Admin Variables
- init:
- type: func
- value: setValueFromDbDetails|/spec/initConfig/adminVariables|/spec/configuration/adminVariables
- schema: schema/properties/spec/properties/configuration/properties/adminVariables
- - type: input-compare
- label: MySQL Variables
- init:
- type: func
- value: setValueFromDbDetails|/spec/initConfig/mysqlVariables|/spec/configuration/mysqlVariables
- schema: schema/properties/spec/properties/configuration/properties/mysqlVariables
- - type: block-layout
- label: MySQL Query Rules
- showLabels: true
- elements:
- - type: select
- label: Request Type
- options:
- - text: Add
- value: add
- - text: Update
- value: update
- - text: Delete
- value: delete
- watcher:
- func: onMySQLUserReqTypeChange
- paths:
- - schema/properties/spec/properties/configuration/properties/mysqlQueryRules/properties/reqType
- schema: schema/properties/spec/properties/configuration/properties/mysqlQueryRules/properties/reqType
- - type: array-item-form
- label: Query Rules
- buttonClass: is-light is-outlined
- init:
- type: func
- value: setMySQLRules
- watcher:
- func: onMySQLRulesChange
- paths:
- - temp/mysqlQueryRules
- schema: temp/mysqlQueryRules/properties/rules
- element:
- type: input
- label: Rules
- - type: block-layout
- label: MySQL Users
- showLabels: true
- elements:
- - type: select
- label: Request Type
- options:
- - text: Add
- value: add
- - text: Update
- value: update
- - text: Delete
- value: delete
- watcher:
- func: onMySQLUserReqTypeChange
- paths:
- - schema/properties/spec/properties/configuration/properties/mysqlUsers/properties/reqType
- schema: schema/properties/spec/properties/configuration/properties/mysqlUsers/properties/reqType
- - type: array-object-form
- label: Users
- buttonClass: is-light is-outlined
- if:
- name: showUserCreationField
- type: function
- schema: schema/properties/spec/properties/configuration/properties/mysqlUsers/properties/users
- elements:
- - type: input
- label: Username
- validation:
- type: required
- schema: items/properties/username
- - type: input
- label: Active
- schema: items/properties/active
- - type: input
- label: Default Schema
- schema: items/properties/default_schema
- - type: input
- label: Use SSL
- schema: items/properties/use_ssl
- - type: input
- label: Attributes
- schema: items/properties/attributes
- - type: input
- label: Backend
- schema: items/properties/backend
- - type: input
- label: Comment
- schema: items/properties/comment
- - type: input
- label: Default Hostgroup
- schema: items/properties/default_hostgroup
- - type: input
- label: Fast Forward
- schema: items/properties/fast_forward
- - type: input
- label: Frontend
- schema: items/properties/frontend
- - type: input
- label: Max Connections
- schema: items/properties/max_connections
- - type: input
- label: Schema Locked
- schema: items/properties/schema_locked
- - type: input
- label: Transaction Persistent
- schema: items/properties/transaction_persistent
- - type: array-item-form
- label: Users
- buttonClass: is-light is-outlined
- if:
- name: showUserDeletionField
- type: function
- schema: schema/properties/spec/properties/configuration/properties/mysqlUsers/properties/users/properties/username
- element:
- type: input
- label: Username
- validation:
- type: required
-# Reconfigure TLS
- - type: block-layout
- label: TLS
+ label: Users
+ schema: schema/properties/spec/properties/configuration/properties/mysqlUsers/properties/users
+ type: array-object-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Username
+ type: input
+ validation:
+ type: required
if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
+ name: showUserDeletionField
type: function
+ label: Users
+ schema: schema/properties/spec/properties/configuration/properties/mysqlUsers/properties/users/properties/username
+ type: array-item-form
+ label: MySQL Users
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: radio
- label: TLS Operation
- if:
- name: hasTlsField
- type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
- init:
- type: func
- value: initTlsOperation
- schema: temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- elements:
- - type: time-picker
- label: Timeout
- subtitle: Specify the maximum time allowed for the operation to complete before it times out
- schema: 'schema/properties/spec/properties/timeout'
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the operation to complete before
+ it times out
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml
index be01348874..5c28ef40af 100644
--- a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml
@@ -1,627 +1,639 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: isDbDetailsLoading
+ paths:
+ - temp/dbDetails
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired RabbitMQ version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Node
if:
+ name: ifDbTypeEqualsTo|Combined|horizontalScaling
type: function
- name: showAndInitNamespace
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
+ value: setValueFromDbDetails|/spec/replicas
+ label: Node
+ schema: schema/properties/spec/properties/horizontalScaling/properties/node
+ subtitle: Define the total number of nodes for the database. Increasing nodes
+ improves fault tolerance and load distribution, while reducing nodes conserves
+ resources
+ type: input-compare
+ - hasIcon: true
if:
+ name: ifDbTypeEqualsTo|Combined|horizontalScaling
type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
+ label: Each node represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- schema: schema/properties/spec/properties/databaseRef/properties/name
+ value: setMachine
+ label: Resources
+ loader: getMachines
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onDbChange
+ func: onMachineChange|node|/spec/podTemplate/spec/containers
paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
- type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
- watcher:
- func: isDbDetailsLoading
- paths:
- - temp/dbDetails
- - schema/properties/spec/properties/databaseRef/properties/name
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/topology/properties/key
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ - label: Value
+ schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/topology/properties/value
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired RabbitMQ version to which you want to update your database.
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ label: Node
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: Storage Size
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/node
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
+ type: custom
+ - hasIcon: true
+ label: Storage expansion allows you to increase your database's disk space
+ without downtime (Online mode) or with brief downtime (Offline mode).
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ label: RabbitMQ volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
loader:
- name: getVersionInfo
+ name: getSelectedConfigurationName|create
watchPaths:
- - temp/properties/filteredVersion
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Node
- header: Node
- subtitle: Define the total number of nodes for the database. Increasing nodes improves fault tolerance and load distribution, while reducing nodes conserves resources
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|horizontalScaling
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/node
- - type: info
- hasIcon: true
- label: Each node represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|horizontalScaling
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Node
- showLabels: false
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines
- init:
- type: func
- value: setMachine
- watcher:
- func: onMachineChange|node|/spec/podTemplate/spec/containers
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/topology/properties/key
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/topology/properties/value
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: RabbitMQ volume expansion
+ label: Create a New Config Secret
showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Storage Size
- label: Storage Size
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
- schema: schema/properties/spec/properties/volumeExpansion/properties/node
- - type: info
- hasIcon: true
- label: Storage expansion allows you to increase your database's disk space without downtime (Online mode) or with brief downtime (Offline mode).
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
- label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
+ type: block-layout
+ - editorHeight: 500px
if:
- name: hasTlsField
+ name: isNotCreateSecret
type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: initTlsOperation
- schema: temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- - type: radio
- label: apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml
index c389a7d019..e969514584 100644
--- a/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml
@@ -1,631 +1,642 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: isDbDetailsLoading
+ paths:
+ - temp/dbDetails
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired Redis version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Master
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
+ value: setValueFromDbDetails|/spec/cluster/master
+ label: Master
+ schema: schema/properties/spec/properties/horizontalScaling/properties/shards
+ subtitle: Define the total number of master shards for your database
+ type: input-compare
+ if:
+ name: ifDbTypeEqualsTo|Cluster|horizontalScaling
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Replicas
init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- watcher:
- func: onDbChange
- paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
+ value: setReplicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
+ subtitle: Define the total number of replicas for your database
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ if:
+ name: ifDbTypeEqualsTo|[Cluster,Sentinel]|horizontalScaling
+ type: function
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine
+ label: Resources
+ loader: getMachines
+ schema: temp/properties/machine
+ type: machine-compare
watcher:
- func: isDbDetailsLoading
+ func: onMachineChange|redis|/spec/podTemplate/spec/resources
paths:
- - temp/dbDetails
- - schema/properties/spec/properties/databaseRef/properties/name
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by defining label selectors
+ or taints. Choose how Kubernetes places your pods across different
+ nodes.
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/redis/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to match node labels,
+ ensuring pods are scheduled on nodes with specific characteristics (e.g.,
+ disktype=ssd).
Taints: Define tolerations to allow pods
+ to run on nodes with matching taints, useful for dedicated or specialized
+ nodes.
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences using key-value pairs to control
+ pod distribution across zones or regions
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey
+ type: input
+ - label: Value
+ schema: temp/topologyValue
+ type: input
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired Redis version to which you want to update your database.
+ type: block-layout
+ label: Redis
+ showLabels: false
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: Storage Size
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/redis
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/redis
+ type: custom
+ - hasIcon: true
+ label: Storage expansion allows you to increase your database's disk space
+ without downtime (Online mode) or with brief downtime (Offline mode).
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ label: Redis volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets
watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- if:
- type: function
- name: ifDbTypeEqualsTo|Cluster|horizontalScaling
- elements:
- - type: input-compare
- header: Master
- label: Master
- subtitle: Define the total number of master shards for your database
- init:
- type: func
- value: setValueFromDbDetails|/spec/cluster/master
- schema: schema/properties/spec/properties/horizontalScaling/properties/shards
- - type: horizontal-layout
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: ifDbTypeEqualsTo|[Cluster,Sentinel]|horizontalScaling
- elements:
- - type: input-compare
- header: Replicas
- label: Replicas
- subtitle: Define the total number of replicas for your database
- init:
- type: func
- value: setReplicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Redis
- showLabels: false
- elements:
- - type: machine-compare
- label: Resources
- loader: getMachines
- init:
- type: func
- value: setMachine
- watcher:
- func: onMachineChange|redis|/spec/podTemplate/spec/resources
- paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by defining label selectors or taints. Choose how Kubernetes places your pods across different nodes.
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/redis/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to match node labels, ensuring pods are scheduled on nodes with specific characteristics (e.g., disktype=ssd).
Taints: Define tolerations to allow pods to run on nodes with matching taints, useful for dedicated or specialized nodes."
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences using key-value pairs to control pod distribution across zones or regions
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- schema: temp/topologyKey
- - type: input
- label: Value
- schema: temp/topologyValue
- - type: block-layout
- label: Exporter
+ label: Create a New Config Secret
showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: Redis volume expansion
- showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Storage Size
- label: Storage Size
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/redis
- schema: schema/properties/spec/properties/volumeExpansion/properties/redis
- - type: info
- hasIcon: true
- label: Storage expansion allows you to increase your database's disk space without downtime (Online mode) or with brief downtime (Offline mode).
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
- label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
+ type: block-layout
+ - editorHeight: 500px
if:
- name: hasTlsField
+ name: isNotCreateSecret
type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: initTlsOperation
- schema: temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- subtitle: Specify the maximum time allowed for the operation to complete before it times out
- schema: 'schema/properties/spec/properties/timeout'
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
\ No newline at end of file
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the operation to complete before
+ it times out
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml
index 4f618f08b4..6297714bc7 100644
--- a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml
@@ -1,825 +1,854 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: isDbDetailsLoading
+ paths:
+ - temp/dbDetails
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired SingleStore version to which you want to update
+ your database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Aggregator
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
+ value: setValueFromDbDetails|/spec/topology/aggregator/replicas
+ label: Aggregator
+ schema: schema/properties/spec/properties/horizontalScaling/properties/aggregator
+ subtitle: Define the total number of aggregators for the database. Increasing
+ aggregators improves fault tolerance and load distribution, while reducing
+ aggregators conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each aggregator represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for better
+ availability.
+ type: info
+ if:
+ name: ifDbTypeEqualsTo|Topology|HorizontalScaling
+ type: function
+ type: horizontal-layout
+ - elements:
+ - header: Leaf
init:
type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- schema: schema/properties/spec/properties/databaseRef/properties/name
+ value: setValueFromDbDetails|/spec/topology/leaf/replicas
+ label: Leaf
+ schema: schema/properties/spec/properties/horizontalScaling/properties/leaf
+ subtitle: Define the total number of leaf nodes for the database. Increasing
+ leaves improves fault tolerance and load distribution, while reducing leaves
+ conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each leaf represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ if:
+ name: ifDbTypeEqualsTo|Topology|HorizontalScaling
+ type: function
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setMachine|aggregator
+ label: Resources
+ loader: getMachines|aggregator
+ schema: temp/properties/machine-aggregator
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onDbChange
+ func: onMachineChange|aggregator|/spec/topology/aggregator/podTemplate/spec/containers
paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
+ - temp/properties/machine-aggregator
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/aggregator/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-aggregator
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|aggregator
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-aggregator
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|aggregator
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Topology|VerticalScaling
+ type: function
+ label: Aggregator Vertical Scaling
+ type: block-layout
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine|leaf
+ label: Resources
+ loader: getMachines|leaf
+ schema: temp/properties/machine-leaf
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: isDbDetailsLoading
+ func: onMachineChange|leaf|/spec/topology/leaf/podTemplate/spec/containers
paths:
- - temp/dbDetails
- - schema/properties/spec/properties/databaseRef/properties/name
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine-leaf
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/leaf/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-leaf
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|leaf
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-leaf
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|leaf
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired SingleStore version to which you want to update your database.
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Topology|VerticalScaling
+ type: function
+ label: Leaf Vertical Scaling
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|node
+ label: Resources
+ loader: getMachines|node
+ schema: temp/properties/machine-node
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|node|/spec/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine-node
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-node
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|node
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-node
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|node
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Combined|VerticalScaling
+ type: function
+ label: Node Vertical Scaling
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|coordinator
+ label: Resources
+ loader: getMachines|coordinator
+ schema: temp/properties/machine-coordinator
+ type: machine-compare
+ watcher:
+ func: onMachineChange|coordinator|/spec/topology/aggregator/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine-coordinator
+ if:
+ name: ifDbTypeEqualsTo|Topology|VerticalScaling
+ type: function
+ label: Coordinator Vertical Scaling
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/aggregator/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/aggregator
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/aggregator/storage/resources/requests/storage|/spec/volumeExpansion/aggregator
+ type: custom
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|Topology|VolumeExpansion
+ type: function
+ label: Aggregator Volume Expansion
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/leaf/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/leaf
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/leaf/storage/resources/requests/storage|/spec/volumeExpansion/leaf
+ type: custom
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|Topology|VolumeExpansion
+ type: function
+ label: Leaf Volume Expansion
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - label: Storage Size
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: label-element
+ - hasIcon: true
+ label: Storage expansion allows you to increase your database's disk space
+ without downtime (Online mode) or with brief downtime (Offline mode).
+ type: info
+ type: horizontal-layout
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Storage Size
+ schema: schema/properties/spec/properties/volumeExpansion/properties/node
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
+ type: custom
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|Combined|VolumeExpansion
+ type: function
+ label: Node Volume Expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets
watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|HorizontalScaling
- elements:
- - type: input-compare
- label: Aggregator
- header: Aggregator
- subtitle: Define the total number of aggregators for the database. Increasing aggregators improves fault tolerance and load distribution, while reducing aggregators conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/aggregator/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/aggregator
- - type: info
- hasIcon: true
- label: Each aggregator represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: horizontal-layout
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|HorizontalScaling
- elements:
- - type: input-compare
- label: Leaf
- header: Leaf
- subtitle: Define the total number of leaf nodes for the database. Increasing leaves improves fault tolerance and load distribution, while reducing leaves conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/leaf/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/leaf
- - type: info
- hasIcon: true
- label: Each leaf represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Aggregator Vertical Scaling
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|VerticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|aggregator
- init:
- type: func
- value: setMachine|aggregator
- watcher:
- func: onMachineChange|aggregator|/spec/topology/aggregator/podTemplate/spec/containers
- paths:
- - temp/properties/machine-aggregator
- schema: temp/properties/machine-aggregator
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/aggregator/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|aggregator
- schema: temp/topologyKey-aggregator
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|aggregator
- schema: temp/topologyValue-aggregator
- - type: block-layout
- label: Leaf Vertical Scaling
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|VerticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|leaf
- init:
- type: func
- value: setMachine|leaf
- watcher:
- func: onMachineChange|leaf|/spec/topology/leaf/podTemplate/spec/containers
- paths:
- - temp/properties/machine-leaf
- schema: temp/properties/machine-leaf
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/leaf/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|leaf
- schema: temp/topologyKey-leaf
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|leaf
- schema: temp/topologyValue-leaf
- - type: block-layout
- label: Node Vertical Scaling
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|VerticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|node
- init:
- type: func
- value: setMachine|node
- watcher:
- func: onMachineChange|node|/spec/podTemplate/spec/containers
- paths:
- - temp/properties/machine-node
- schema: temp/properties/machine-node
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|node
- schema: temp/topologyKey-node
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|node
- schema: temp/topologyValue-node
- - type: block-layout
- label: Coordinator Vertical Scaling
- showLabels: true
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|VerticalScaling
- elements:
- - type: machine-compare
- label: Resources
- loader: getMachines|coordinator
- init:
- type: func
- value: setMachine|coordinator
- watcher:
- func: onMachineChange|coordinator|/spec/topology/aggregator/podTemplate/spec/containers
- paths:
- - temp/properties/machine-coordinator
- schema: temp/properties/machine-coordinator
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: Aggregator Volume Expansion
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifDbTypeEqualsTo|Topology|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Storage Size
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/aggregator/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/aggregator/storage/resources/requests/storage|/spec/volumeExpansion/aggregator
- schema: schema/properties/spec/properties/volumeExpansion/properties/aggregator
- - type: block-layout
- label: Leaf Volume Expansion
- showLabels: true
- fixedBlock: true
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: ifDbTypeEqualsTo|Topology|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Storage Size
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/leaf/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/leaf/storage/resources/requests/storage|/spec/volumeExpansion/leaf
- schema: schema/properties/spec/properties/volumeExpansion/properties/leaf
- - type: block-layout
- label: Node Volume Expansion
+ label: Create a New Config Secret
showLabels: true
- fixedBlock: true
+ type: block-layout
+ - editorHeight: 500px
if:
+ name: isNotCreateSecret
type: function
- name: ifDbTypeEqualsTo|Combined|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: label-element
- label: Storage Size
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- - type: info
- hasIcon: true
- label: Storage expansion allows you to increase your database's disk space without downtime (Online mode) or with brief downtime (Offline mode).
- - type: input-compare
- label: Storage Size
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
- schema: schema/properties/spec/properties/volumeExpansion/properties/node
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
- if:
- name: hasTlsField
- type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange
+ paths:
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: initTlsOperation
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
watcher:
- func: onTlsOperationChange
+ func: onRemoveConfigChange
paths:
- - temp/properties/tlsOperation
- schema: temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
- if:
- name: isTlsEnabled
- type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
- if:
- name: isTlsEnabled
- type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
- if:
- name: showIssuerRefAndCertificates
- type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
- if:
- name: showIssuerRefAndCertificates
- type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: Ops Request Options
- showLabels: true
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ watcher:
+ func: onTlsOperationChange
+ paths:
+ - temp/properties/tlsOperation
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- - type: radio
- label: apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: Ops Request Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml
index 61b2f3003b..26d709676e 100644
--- a/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml
@@ -1,1427 +1,1494 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired Solr version to which you want to update your database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Node
if:
+ name: ifDbTypeEqualsTo|Combined|horizontalScaling
type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
init:
type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/node
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
if:
+ name: ifDbTypeEqualsTo|Combined|horizontalScaling
type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- watcher:
- paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- func: onDbChange
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
- init:
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - label: Coordinator
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/coordinator/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/coordinator
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for
+ better availability.
+ type: info
+ type: horizontal-layout
+ label: Coordinator horizontal Scaling
+ type: block-layout
+ - elements:
+ - label: Data
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/data/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/data
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for
+ better availability.
+ type: info
+ type: horizontal-layout
+ label: Data Horizontal Scaling
+ type: block-layout
+ - elements:
+ - label: Overseer
+ type: label-element
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/overseer/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/overseer
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution , while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for
+ better availability.
+ type: info
+ type: horizontal-layout
+ label: Overseer horizontal Scaling
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Topology|horizontalScaling
+ type: function
+ label: Topology horizontal scaling
+ type: block-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
+ value: setMachine|node
+ label: Resources
+ loader: getMachines|node
+ schema: temp/properties/machine-node
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
watcher:
- func: onRequestTypeChange
+ func: onMachineChange|node|/spec/podTemplate/spec/containers
paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ - temp/properties/machine-node
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to
+ avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-node
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|node
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-node
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|node
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired Solr version to which you want to update your database.
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Combined|verticalScaling
+ type: function
+ label: Combined Vertical Scaling
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setMachine|coordinator
+ label: Resources
+ loader: getMachines|coordinator
+ schema: temp/properties/machine-coordinator
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|coordinator|/spec/topology/coordinator/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine-coordinator
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-coordinator
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|coordinator
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-coordinator
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|coordinator
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Coordinator Vertical Scaling
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|data
+ label: Resources
+ loader: getMachines|data
+ schema: temp/properties/machine-data
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|data|/spec/topology/data/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine-data
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/data/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-data
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|data
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-data
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|data
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ label: Data Vertical Scaling
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine|overseer
+ label: Resources
+ loader: getMachines|overseer
+ schema: temp/properties/machine-overseer
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|overseer|/spec/topology/overseer/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine-overseer
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints
+ to avoid unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/overseer/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes
+ that match your workload's requirements.
Taints: Define
+ tolerations for node taints to ensure your workload runs only on compatible
+ nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For
+ example, 'zone=us-central1-a' ensures workloads are deployed in that
+ zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey-overseer
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|overseer
+ type: custom
+ - label: Value
+ schema: temp/topologyValue-overseer
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired|overseer
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ showLabels: true
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ label: Overseer Vertical Scaling
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Topology|verticalScaling
+ type: function
+ label: Topology Vertical Scaling
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: Combined
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Node
+ schema: schema/properties/spec/properties/volumeExpansion/properties/node
+ subtitle: How much extra storage does your database need? Specify the size(e.g.
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
+ type: custom
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|Combined|volumeExpansion
+ type: function
+ label: Combined volume expansion
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Coordinator
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/coordinator/storage/resources/requests/storage
+ label: Coordinator
+ schema: schema/properties/spec/properties/volumeExpansion/properties/coordinator
+ subtitle: How much extra storage does your database need? Specify the size(e.g.,
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/coordinator/storage/resources/requests/storage|/spec/volumeExpansion/coordinator
+ type: custom
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for better
+ availability.
+ type: info
+ type: horizontal-layout
+ - elements:
+ - header: Data
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/data/storage/resources/requests/storage
+ label: Data
+ schema: schema/properties/spec/properties/volumeExpansion/properties/data
+ subtitle: How much extra storage does your database need? Specify the size(e.g.,
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/data/storage/resources/requests/storage|/spec/volumeExpansion/data
+ type: custom
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for better
+ availability.
+ type: info
+ type: horizontal-layout
+ - elements:
+ - header: Overseer
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/overseer/storage/resources/requests/storage
+ label: Overseer
+ schema: schema/properties/spec/properties/volumeExpansion/properties/overseer
+ subtitle: How much extra storage does your database need? Specify the size(e.g.,
+ 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/topology/overseer/storage/resources/requests/storage|/spec/volumeExpansion/overseer
+ type: custom
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For
+ example, setting this to 3 creates three copies of the database for better
+ availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifDbTypeEqualsTo|Topology|volumeExpansion
+ type: function
+ label: Topology volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration, or
+ remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets|node
watchPaths:
- - temp/properties/filteredVersion
- if:
- type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- header: Node
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|horizontalScaling
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/node
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- if:
- type: function
- name: ifDbTypeEqualsTo|Combined|horizontalScaling
- - type: block-layout
- label: 'Topology horizontal scaling'
- if:
- name: ifDbTypeEqualsTo|Topology|horizontalScaling
- type: function
- elements:
- - type: block-layout
- label: Coordinator horizontal Scaling
- elements:
- - type: label-element
- label: Coordinator
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- schema: schema/properties/spec/properties/horizontalScaling/properties/coordinator
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/coordinator/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: block-layout
- label: Data Horizontal Scaling
- elements:
- - type: label-element
- label: Data
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/data/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/data
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: block-layout
- label: Overseer horizontal Scaling
- elements:
- - type: label-element
- label: Overseer
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution , while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/overseer/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/overseer
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: block-layout
- label: Combined Vertical Scaling
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/node/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/node/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange|node
+ paths:
+ - temp/properties/node/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create|node
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/node/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/node/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange|node
+ watchPaths:
+ - temp/properties/node/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/node/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret|node
+ hasCancel: cancelCreateSecret|node
+ text: Save
if:
+ name: isCreateSecret|node
type: function
- name: ifDbTypeEqualsTo|Combined|verticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|node
- init:
- type: func
- value: setMachine|node
- watcher:
- func: onMachineChange|node|/spec/podTemplate/spec/containers
- paths:
- - temp/properties/machine-node
- schema: temp/properties/machine-node
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|node
- schema: temp/topologyKey-node
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|node
- schema: temp/topologyValue-node
- - type: block-layout
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
if:
+ name: isNotCreateSecret|node
type: function
- name: ifDbTypeEqualsTo|Topology|verticalScaling
- label: Topology Vertical Scaling
- showLabels: false
- elements:
- - type: block-layout
- label: Coordinator Vertical Scaling
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|coordinator
- init:
- type: func
- value: setMachine|coordinator
- watcher:
- func: onMachineChange|coordinator|/spec/topology/coordinator/podTemplate/spec/containers
- paths:
- - temp/properties/machine-coordinator
- schema: temp/properties/machine-coordinator
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|coordinator
- schema: temp/topologyKey-coordinator
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|coordinator
- schema: temp/topologyValue-coordinator
- - type: block-layout
- label: Data Vertical Scaling
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|data
- init:
- type: func
- value: setMachine|data
- watcher:
- func: onMachineChange|data|/spec/topology/data/podTemplate/spec/containers
- paths:
- - temp/properties/machine-data
- schema: temp/properties/machine-data
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/data/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|data
- schema: temp/topologyKey-data
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|data
- schema: temp/topologyValue-data
- - type: block-layout
- label: Overseer Vertical Scaling
- showLabels: true
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines|overseer
- init:
- type: func
- value: setMachine|overseer
- watcher:
- func: onMachineChange|overseer|/spec/topology/overseer/podTemplate/spec/containers
- paths:
- - temp/properties/machine-overseer
- schema: temp/properties/machine-overseer
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/overseer/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: " Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|overseer
- schema: temp/topologyKey-overseer
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired|overseer
- schema: temp/topologyValue-overseer
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
-
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
+ loader:
+ name: onNewConfigSecretChange|node
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/node/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/node/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/node/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply|node
+ watchPaths:
+ - temp/properties/node/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig|node
+ watchPaths:
+ - temp/properties/node/selectedConfiguration
+ schema: temp/properties/node/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange|node
+ paths:
+ - temp/properties/node/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/node/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove|node
+ watchPaths:
+ - temp/properties/node/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
+ init:
+ type: func
+ value: onRemoveConfigChange|node
+ readonly: true
+ schema: temp/properties/node/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange|node
+ paths:
+ - temp/properties/node/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ if:
+ name: ifDbTypeEqualsTo|Combined|configuration
+ type: function
+ label: Combined
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/coordinator/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets|coordinator
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/coordinator/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/coordinator/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange|coordinator
+ paths:
+ - temp/properties/coordinator/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create|coordinator
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/coordinator/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/coordinator/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: Combined volume expansion
- showLabels: true
- fixedBlock: true
+ - label: Key
+ loader:
+ name: onSelectedSecretChange|coordinator
+ watchPaths:
+ - temp/properties/coordinator/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/coordinator/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret|coordinator
+ hasCancel: cancelCreateSecret|coordinator
+ text: Save
+ if:
+ name: isCreateSecret|coordinator
+ type: function
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret|coordinator
+ type: function
+ loader:
+ name: onNewConfigSecretChange|coordinator
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/coordinator/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/coordinator/newConfigSecret
+ type: multi-file-editor
if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|coordinator|true
type: function
- name: ifDbTypeEqualsTo|Combined|volumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Combined
- subtitle: How much extra storage does your database need? Specify the size(e.g. 2Gi for 2 gigabytes) so we can allocate it correctly
- label: Node
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
- schema: schema/properties/spec/properties/volumeExpansion/properties/node
- - type: block-layout
- label: Topology volume expansion
- showLabels: true
- fixedBlock: true
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter
+ the parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/coordinator/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply|coordinator
+ watchPaths:
+ - temp/properties/coordinator/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig|coordinator
+ watchPaths:
+ - temp/properties/coordinator/selectedConfiguration
+ schema: temp/properties/coordinator/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange|coordinator
+ paths:
+ - temp/properties/coordinator/applyConfig
if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig|coordinator|true
type: function
- name: ifDbTypeEqualsTo|Topology|volumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Coordinator
- label: Coordinator
- subtitle: How much extra storage does your database need? Specify the size(e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/coordinator/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/coordinator/storage/resources/requests/storage|/spec/volumeExpansion/coordinator
- schema: schema/properties/spec/properties/volumeExpansion/properties/coordinator
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Data
- label: Data
- subtitle: How much extra storage does your database need? Specify the size(e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/data/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/data/storage/resources/requests/storage|/spec/volumeExpansion/data
- schema: schema/properties/spec/properties/volumeExpansion/properties/data
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Overseer
- label: Overseer
- subtitle: How much extra storage does your database need? Specify the size(e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/overseer/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/topology/overseer/storage/resources/requests/storage|/spec/volumeExpansion/overseer
- schema: schema/properties/spec/properties/volumeExpansion/properties/overseer
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: block-layout
- label: Combined
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to
+ update your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/coordinator/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove|coordinator
+ watchPaths:
+ - temp/properties/coordinator/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
+ init:
+ type: func
+ value: onRemoveConfigChange|coordinator
+ readonly: true
+ schema: temp/properties/coordinator/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange|coordinator
+ paths:
+ - temp/properties/coordinator/selectedConfigurationRemove
if:
- name: ifDbTypeEqualsTo|Combined|configuration
+ name: ifReconfigurationTypeEqualsTo|remove|coordinator|true
type: function
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType-coordinator
+ type: tab-layout
+ label: Coordinator
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/data/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets|data
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/data/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/data/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange|data
+ paths:
+ - temp/properties/data/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create|data
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/data/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/data/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/node/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets|node
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/node/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange|node
- paths:
- - temp/properties/node/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create|node
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/node/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret|node
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret|node
- action: createNewConfigSecret|node
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/node/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/node/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange|node
- watchPaths:
- - temp/properties/node/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret|node
- loader:
- name: onNewConfigSecretChange|node
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/node/properties/configSecret/properties/name
- schema: temp/properties/node/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/node/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply|node
- watchPaths:
- - temp/properties/node/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/node/applyConfig
- loader:
- name: setApplyConfig|node
- watchPaths:
- - temp/properties/node/selectedConfiguration
- watcher:
- func: onApplyconfigChange|node
- paths:
- - temp/properties/node/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/node/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove|node
- watchPaths:
- - temp/properties/node/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange|node
- watcher:
- func: onRemoveConfigChange|node
- paths:
- - temp/properties/node/selectedConfigurationRemove
- schema: temp/properties/node/removeConfig
- - type: block-layout
- elements:
- - type: block-layout
- label: Coordinator
- showLabels: true
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType-coordinator
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|coordinator|true
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/coordinator/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets|coordinator
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/coordinator/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/coordinator/configSecret/name
- watcher:
- func: onCreateSecretChange|coordinator
- paths:
- - temp/properties/coordinator/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create|coordinator
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/coordinator/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret|coordinator
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret|coordinator
- action: createNewConfigSecret|coordinator
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/coordinator/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/coordinator/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange|coordinator
- watchPaths:
- - temp/properties/coordinator/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret|coordinator
- loader:
- name: onNewConfigSecretChange|coordinator
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/coordinator/properties/configSecret/properties/name
- schema: temp/properties/coordinator/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig|coordinator|true
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/coordinator/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply|coordinator
- watchPaths:
- - temp/properties/coordinator/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/coordinator/applyConfig
- loader:
- name: setApplyConfig|coordinator
- watchPaths:
- - temp/properties/coordinator/selectedConfiguration
- watcher:
- func: onApplyconfigChange|coordinator
- paths:
- - temp/properties/coordinator/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove|coordinator|true
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/coordinator/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove|coordinator
- watchPaths:
- - temp/properties/coordinator/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange|coordinator
- watcher:
- func: onRemoveConfigChange|coordinator
- paths:
- - temp/properties/coordinator/selectedConfigurationRemove
- schema: temp/properties/coordinator/removeConfig
- - type: block-layout
- label: Data
- showLabels: true
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType-data
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|data|true
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/data/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets|data
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/data/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/data/configSecret/name
- watcher:
- func: onCreateSecretChange|data
- paths:
- - temp/properties/data/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create|data
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/data/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret|data
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret|data
- action: createNewConfigSecret|data
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/data/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/data/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange|data
- watchPaths:
- - temp/properties/data/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret|data
- loader:
- name: onNewConfigSecretChange|data
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/data/properties/configSecret/properties/name
- schema: temp/properties/data/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig|data|true
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/data/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply|data
- watchPaths:
- - temp/properties/data/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/data/applyConfig
- loader:
- name: setApplyConfig|data
- watchPaths:
- - temp/properties/data/selectedConfiguration
- watcher:
- func: onApplyconfigChange|data
- paths:
- - temp/properties/data/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove|data|true
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/data/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove|data
- watchPaths:
- - temp/properties/data/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange|data
- watcher:
- func: onRemoveConfigChange|data
- paths:
- - temp/properties/data/selectedConfigurationRemove
- schema: temp/properties/data/removeConfig
- - type: block-layout
- label: Overseer
+ - label: Key
+ loader:
+ name: onSelectedSecretChange|data
+ watchPaths:
+ - temp/properties/data/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/data/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret|data
+ hasCancel: cancelCreateSecret|data
+ text: Save
+ if:
+ name: isCreateSecret|data
+ type: function
+ label: Create a New Config Secret
showLabels: true
- elements:
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType-overseer
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|overseer|true
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/overseer/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets|overseer
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/overseer/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/topology/overseer/configSecret/name
- watcher:
- func: onCreateSecretChange|overseer
- paths:
- - temp/properties/overseer/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create|overseer
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/overseer/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret|overseer
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret|overseer
- action: createNewConfigSecret|overseer
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/overseer/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/overseer/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange|overseer
- watchPaths:
- - temp/properties/overseer/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret|overseer
- loader:
- name: onNewConfigSecretChange|overseer
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/overseer/properties/configSecret/properties/name
- schema: temp/properties/overseer/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig|overseer|true
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/overseer/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply|overseer
- watchPaths:
- - temp/properties/overseer/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/overseer/applyConfig
- loader:
- name: setApplyConfig|overseer
- watchPaths:
- - temp/properties/overseer/selectedConfiguration
- watcher:
- func: onApplyconfigChange|overseer
- paths:
- - temp/properties/overseer/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove|overseer|true
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/overseer/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove|overseer
- watchPaths:
- - temp/properties/overseer/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange|overseer
- watcher:
- func: onRemoveConfigChange|overseer
- paths:
- - temp/properties/overseer/selectedConfigurationRemove
- schema: temp/properties/overseer/removeConfig
- label: Topology Reconfigure form
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret|data
+ type: function
+ loader:
+ name: onNewConfigSecretChange|data
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/data/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/data/newConfigSecret
+ type: multi-file-editor
if:
- name: ifDbTypeEqualsTo|Topology|configuration
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|data|true
type: function
-# Reconfigure TLS
- - type: block-layout
- label: TLS
- if:
- name: ifRequestTypeEqualsTo|ReconfigureTLS
- type: function
- elements:
- - type: radio
- label: TLS Operation
- schema: temp/properties/tlsOperation
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter
+ the parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/data/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply|data
+ watchPaths:
+ - temp/properties/data/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig|data
+ watchPaths:
+ - temp/properties/data/selectedConfiguration
+ schema: temp/properties/data/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange|data
+ paths:
+ - temp/properties/data/applyConfig
if:
- name: hasTlsField
+ name: ifReconfigurationTypeEqualsTo|applyConfig|data|true
type: function
- options:
- - text: Update
- value: update
- - text: Rotate
- value: rotate
- - text: Remove
- value: remove
- init:
- type: func
- value: initTlsOperation
- watcher:
- func: onTlsOperationChange
- paths:
- - temp/properties/tlsOperation
- - type: switch
- label: Remove TLS
- fullwidth: true
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to
+ update your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/data/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove|data
+ watchPaths:
+ - temp/properties/data/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
+ init:
+ type: func
+ value: onRemoveConfigChange|data
+ readonly: true
+ schema: temp/properties/data/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange|data
+ paths:
+ - temp/properties/data/selectedConfigurationRemove
if:
- name: isTlsEnabled
+ name: ifReconfigurationTypeEqualsTo|remove|data|true
type: function
- schema: schema/properties/spec/properties/tls/properties/remove
- - type: switch
- label: Rotate Certificates
- fullwidth: true
- schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType-data
+ type: tab-layout
+ label: Data
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/topology/overseer/configSecret/name
+ label: Config Secret
+ loader:
+ name: getConfigSecrets|overseer
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/overseer/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/overseer/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange|overseer
+ paths:
+ - temp/properties/overseer/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create|overseer
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/overseer/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/overseer/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange|overseer
+ watchPaths:
+ - temp/properties/overseer/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/overseer/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret|overseer
+ hasCancel: cancelCreateSecret|overseer
+ text: Save
+ if:
+ name: isCreateSecret|overseer
+ type: function
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret|overseer
+ type: function
+ loader:
+ name: onNewConfigSecretChange|overseer
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/overseer/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/overseer/newConfigSecret
+ type: multi-file-editor
if:
- name: isTlsEnabled
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret|overseer|true
type: function
- - type: block-layout
- label: Issuer Reference
- showLabels: true
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter
+ the parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/overseer/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply|overseer
+ watchPaths:
+ - temp/properties/overseer/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig|overseer
+ watchPaths:
+ - temp/properties/overseer/selectedConfiguration
+ schema: temp/properties/overseer/applyConfig
+ type: multi-file-editor
+ watcher:
+ func: onApplyconfigChange|overseer
+ paths:
+ - temp/properties/overseer/applyConfig
if:
- name: showIssuerRefAndCertificates
+ name: ifReconfigurationTypeEqualsTo|applyConfig|overseer|true
type: function
- elements:
- - type: input
- label: API Group
- init:
- type: func
- value: initIssuerRefApiGroup
- watcher:
- func: initIssuerRefApiGroup
- paths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- disable: true
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
- - type: select
- label: Kind
- options:
- - text: Issuer
- value: Issuer
- - text: ClusterIssuer
- value: ClusterIssuer
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/kind
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - type: select
- label: Name
- loader:
- name: getIssuerRefsName
- watchPaths:
- - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: setValueFromDbDetails|/spec/tls/issuerRef/name
- validation:
- type: custom
- name: isIssuerRefRequired
- schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
- - type: block-layout
- label: Certificates
- showLabels: false
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to
+ update your database settings
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/overseer/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove|overseer
+ watchPaths:
+ - temp/properties/overseer/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
+ init:
+ type: func
+ value: onRemoveConfigChange|overseer
+ readonly: true
+ schema: temp/properties/overseer/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange|overseer
+ paths:
+ - temp/properties/overseer/selectedConfigurationRemove
if:
- name: showIssuerRefAndCertificates
+ name: ifReconfigurationTypeEqualsTo|remove|overseer|true
type: function
- loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
- elements:
- - type: array-object-form
- label: Certificates
- buttonClass: is-light is-outlined
- schema: schema/properties/spec/properties/tls/properties/certificates
- elements:
- - type: select
- label: Alias
- loader: fetchAliasOptions
- disable: disableAlias
- schema: alias
- validation:
- type: required
- - type: input
- label: Secret Name
- schema: secretName
- - type: input
- label: Duration
- schema: duration
- - type: input
- label: Renew Before
- schema: renewBefore
- - type: array-item-form
- label: Organizations
- buttonClass: is-light is-outlined
- schema: subject/properties/organizations
- element:
- type: input
- label: Organization
- - type: array-item-form
- label: Countries
- buttonClass: is-light is-outlined
- schema: subject/properties/countries
- element:
- type: input
- label: Country
- - type: array-item-form
- label: Organizational Units
- buttonClass: is-light is-outlined
- schema: subject/properties/organizationalUnits
- element:
- type: input
- label: Organizational Unit
- - type: array-item-form
- label: Provinces
- buttonClass: is-light is-outlined
- schema: subject/properties/provinces
- element:
- type: input
- label: Province
- - type: array-item-form
- label: DNS Names
- buttonClass: is-light is-outlined
- schema: dnsNames
- element:
- type: input
- label: DNS Name
- - type: array-item-form
- label: IP Addresses
- buttonClass: is-light is-outlined
- schema: ipAddresses
- element:
- type: input
- label: IP Address
-# common
- - type: block-layout
- label: OpsRequest Options
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType-overseer
+ type: tab-layout
+ label: Overseer
showLabels: true
+ type: block-layout
+ if:
+ name: ifDbTypeEqualsTo|Topology|configuration
+ type: function
+ label: Topology Reconfigure form
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - if:
+ name: hasTlsField
+ type: function
+ init:
+ type: func
+ value: initTlsOperation
+ label: TLS Operation
+ options:
+ - text: Update
+ value: update
+ - text: Rotate
+ value: rotate
+ - text: Remove
+ value: remove
+ schema: temp/properties/tlsOperation
+ type: radio
+ watcher:
+ func: onTlsOperationChange
+ paths:
+ - temp/properties/tlsOperation
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Remove TLS
+ schema: schema/properties/spec/properties/tls/properties/remove
+ type: switch
+ - fullwidth: true
+ if:
+ name: isTlsEnabled
+ type: function
+ label: Rotate Certificates
+ schema: schema/properties/spec/properties/tls/properties/rotateCertificates
+ type: switch
+ - elements:
+ - disable: true
+ init:
+ type: func
+ value: initIssuerRefApiGroup
+ label: API Group
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/apiGroup
+ type: input
+ watcher:
+ func: initIssuerRefApiGroup
+ paths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/kind
+ label: Kind
+ options:
+ - text: Issuer
+ value: Issuer
+ - text: ClusterIssuer
+ value: ClusterIssuer
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/tls/issuerRef/name
+ label: Name
+ loader:
+ name: getIssuerRefsName
+ watchPaths:
+ - schema/properties/spec/properties/tls/properties/issuerRef/properties/kind
+ - schema/properties/metadata/properties/namespace
+ schema: schema/properties/spec/properties/tls/properties/issuerRef/properties/name
+ type: select
+ validation:
+ name: isIssuerRefRequired
+ type: custom
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Issuer Reference
+ showLabels: true
+ type: block-layout
+ - elements:
+ - buttonClass: is-light is-outlined
elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
- init:
- type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ - disable: disableAlias
+ label: Alias
+ loader: fetchAliasOptions
+ schema: alias
+ type: select
+ validation:
+ type: required
+ - label: Secret Name
+ schema: secretName
+ type: input
+ - label: Duration
+ schema: duration
+ type: input
+ - label: Renew Before
+ schema: renewBefore
+ type: input
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organization
+ type: input
+ label: Organizations
+ schema: subject/properties/organizations
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Country
+ type: input
+ label: Countries
+ schema: subject/properties/countries
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Organizational Unit
+ type: input
+ label: Organizational Units
+ schema: subject/properties/organizationalUnits
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: Province
+ type: input
+ label: Provinces
+ schema: subject/properties/provinces
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: DNS Name
+ type: input
+ label: DNS Names
+ schema: dnsNames
+ type: array-item-form
+ - buttonClass: is-light is-outlined
+ element:
+ label: IP Address
+ type: input
+ label: IP Addresses
+ schema: ipAddresses
+ type: array-item-form
+ label: Certificates
+ schema: schema/properties/spec/properties/tls/properties/certificates
+ type: array-object-form
+ if:
+ name: showIssuerRefAndCertificates
+ type: function
+ label: Certificates
+ loader: setValueFromDbDetails|/spec/tls/certificates|/spec/tls/certificates
+ showLabels: false
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|ReconfigureTLS
+ type: function
+ label: TLS
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml
index 393ce8310a..d3f5c26638 100644
--- a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml
+++ b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml
@@ -1,466 +1,476 @@
-type: multi-step-form
step:
- - type: single-step-form
- loader: getDbDetails
- elements:
-# common
- - type: input
- label: op_req_name
- if:
- type: function
- name: showAndInitName
- validation:
- type: required
- schema: schema/properties/metadata/properties/name
- - type: select
- label: Namespace
- if:
- type: function
- name: showAndInitNamespace
- init:
- type: func
- value: initNamespace
- disable: isNamespaceDisabled
- loader: getNamespaces
- validation:
- type: required
- hasGroup: isRancherManaged
- schema: schema/properties/metadata/properties/namespace
- watcher:
- func: onNamespaceChange
- paths:
- - schema/properties/metadata/properties/namespace
- - type: select
- label: Database Ref
- if:
- type: function
- name: showAndInitDatabaseRef
- loader:
- name: getDbs
- watchPaths:
- - schema/properties/metadata/properties/namespace
- init:
- type: func
- value: initDatabaseRef
- validation:
- type: required
- disable: isDatabaseRefDisabled
- refresh: true
- watcher:
- paths:
- - schema/properties/spec/properties/databaseRef/properties/name
- func: onDbChange
- schema: schema/properties/spec/properties/databaseRef/properties/name
- - type: label-element
- label: config_ops_request
- if:
- type: function
- name: showConfigureOpsrequestLabel
- - type: radio
- label: Type of Ops Request
- if:
- type: function
- name: showAndInitOpsRequestType
- options:
- - description: Update your database to any version
- text: Update Version
- value: UpdateVersion
- - description: Scale up or down pod count
- text: Horizontal Scaling
- value: HorizontalScaling
- - description: Manage your CPU resources
- text: Vertical Scaling
- value: VerticalScaling
- - description: Manage your database size
- text: Volume Expansion
- value: VolumeExpansion
- - description: Restart your database
- text: Restart
- value: Restart
- - description: Reconfigure your database
- text: Reconfigure
- value: Reconfigure
- - description: Reconfigure your database tls configuration
- text: Reconfigure TLS
- value: ReconfigureTLS
+- elements:
+ - if:
+ name: showAndInitName
+ type: function
+ label: op_req_name
+ schema: schema/properties/metadata/properties/name
+ type: input
+ validation:
+ type: required
+ - disable: isNamespaceDisabled
+ hasGroup: isRancherManaged
+ if:
+ name: showAndInitNamespace
+ type: function
+ init:
+ type: func
+ value: initNamespace
+ label: Namespace
+ loader: getNamespaces
+ schema: schema/properties/metadata/properties/namespace
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onNamespaceChange
+ paths:
+ - schema/properties/metadata/properties/namespace
+ - disable: isDatabaseRefDisabled
+ if:
+ name: showAndInitDatabaseRef
+ type: function
+ init:
+ type: func
+ value: initDatabaseRef
+ label: Database Ref
+ loader:
+ name: getDbs
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: schema/properties/spec/properties/databaseRef/properties/name
+ type: select
+ validation:
+ type: required
+ watcher:
+ func: onDbChange
+ paths:
+ - schema/properties/spec/properties/databaseRef/properties/name
+ - if:
+ name: showConfigureOpsrequestLabel
+ type: function
+ label: config_ops_request
+ type: label-element
+ - disable: isDbDetailsLoading
+ if:
+ name: showAndInitOpsRequestType
+ type: function
+ init:
+ type: func
+ value: getRequestTypeFromRoute
+ isHorizontal: true
+ label: Type of Ops Request
+ options:
+ - description: Update your database to any version
+ text: Update Version
+ value: UpdateVersion
+ - description: Scale up or down pod count
+ text: Horizontal Scaling
+ value: HorizontalScaling
+ - description: Manage your CPU resources
+ text: Vertical Scaling
+ value: VerticalScaling
+ - description: Manage your database size
+ text: Volume Expansion
+ value: VolumeExpansion
+ - description: Restart your database
+ text: Restart
+ value: Restart
+ - description: Reconfigure your database
+ text: Reconfigure
+ value: Reconfigure
+ - description: Reconfigure your database tls configuration
+ text: Reconfigure TLS
+ value: ReconfigureTLS
+ schema: schema/properties/spec/properties/type
+ type: radio
+ watcher:
+ func: onRequestTypeChange
+ paths:
+ - schema/properties/spec/properties/type
+ - elements:
+ - init:
+ type: func
+ value: setValueFromDbDetails|/spec/version
+ label: Target Version
+ loader: getDbVersions
+ schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
+ subtitle: Select the desired ZooKeeper version to which you want to update your
+ database.
+ type: select-compare
+ - if:
+ name: isVersionEmpty
+ type: function
+ label: ""
+ loader:
+ name: getVersionInfo
+ watchPaths:
+ - temp/properties/filteredVersion
+ type: info
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|UpdateVersion
+ type: function
+ label: Version
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - header: Replicas
init:
type: func
- value: getRequestTypeFromRoute
- disable: isDbDetailsLoading
- watcher:
- func: onRequestTypeChange
- paths:
- - schema/properties/spec/properties/type
- isHorizontal: true
- schema: schema/properties/spec/properties/type
-# UpdateVersion
- - type: block-layout
+ value: setValueFromDbDetails|/spec/replicas
+ label: Replicas
+ schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
+ subtitle: Define the total number of replicas for the database. Increasing
+ replicas improves fault tolerance and load distribution, while reducing
+ replicas conserves resources
+ type: input-compare
+ - hasIcon: true
+ label: Each replica represents an independent copy of your database. For example,
+ setting this to 3 creates three copies of the database for better availability.
+ type: info
+ type: horizontal-layout
+ fixedBlock: true
+ if:
+ name: ifRequestTypeEqualsTo|HorizontalScaling
+ type: function
+ label: Horizontal Scaling Form
+ showLabels: true
+ type: block-layout
+ - elements:
+ - init:
+ type: func
+ value: setMachine
+ label: Resources
+ loader: getMachines
+ schema: temp/properties/machine
+ subtitle: Compare your current machine configuration with the proposed memory
+ adjustments and make informed decisions for your database setup
+ type: machine-compare
+ watcher:
+ func: onMachineChange|node|/spec/podTemplate/spec/containers
+ paths:
+ - temp/properties/machine
+ - elements:
+ - elements:
+ - elements:
+ - label: Node Selection Policy
+ subtitle: Control where your workloads runs by configuring node selection
+ criteria. Use label selectors to match specific nodes or taints to avoid
+ unsuitable nodes
+ type: label-element
+ - label: Node Selection Policy
+ options:
+ - text: LabelSelector
+ value: LabelSelector
+ - text: Taint
+ value: Taint
+ schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
+ type: select
+ hideBorder: true
+ showLabels: false
+ type: block-layout
+ - customClass: mt-20
+ label: Label Selector: Specify key-value pairs to target nodes that
+ match your workload's requirements.
Taints: Define tolerations
+ for node taints to ensure your workload runs only on compatible nodes
+ type: info
+ type: horizontal-layout
+ - label: Topology
+ subtitle: Define node topology preferences, such as zone or region. For example,
+ 'zone=us-central1-a' ensures workloads are deployed in that zone.
+ type: label-element
+ - elements:
+ - label: Key
+ schema: temp/topologyKey
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ - label: Value
+ schema: temp/topologyValue
+ type: input
+ validation:
+ name: isVerticalScaleTopologyRequired
+ type: custom
+ type: horizontal-layout
+ label: Node Selection
+ showLabels: true
+ type: block-layout
+ - elements:
+ - elements:
+ - init:
+ type: func
+ value: setExporter|cpu
+ label: CPU
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
+ type: input
+ - init:
+ type: func
+ value: setExporter|memory
+ label: Memory
+ schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
+ type: input
+ watcher:
+ func: onExporterResourceChange|memory
+ paths:
+ - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
showLabels: true
- label: Version
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|UpdateVersion
- elements:
- - type: select-compare
- label: Target Version
- subtitle: Select the desired ZooKeeper version to which you want to update your database.
+ type: horizontal-layout
+ hideBlock: true
+ label: Exporter
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VerticalScaling
+ type: function
+ type: block-layout
+ - elements:
+ - elements:
+ - elements:
+ - label: Mode
+ subtitle: Not sure which mode to pick? Use Online Mode for smooth operations
+ with minimal disruption. Choose Offline Mode if you can afford a brief
+ downtime for added reliability during the volume expansion.
+ type: label-element
+ - label: Mode
+ options:
+ - text: Offline
+ value: Offline
+ - text: Online
+ value: Online
+ schema: schema/properties/spec/properties/volumeExpansion/properties/mode
+ type: select
+ validation:
+ type: required
+ type: block-layout
+ type: horizontal-layout
+ - elements:
+ - elements:
+ - header: Storage
+ init:
+ type: func
+ value: setValueFromDbDetails|/spec/storage/resources/requests/storage
+ label: Node
+ schema: schema/properties/spec/properties/volumeExpansion/properties/node
+ subtitle: How much extra storage does your database need? Specify the size
+ (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
+ type: input-compare
+ validation:
+ name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
+ type: custom
+ type: horizontal-layout
+ fixedBlock: true
+ label: ZooKeeper volume expansion
+ showLabels: true
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|VolumeExpansion
+ type: function
+ label: Volume Expansion Form
+ type: block-layout
+ - elements:
+ - elements:
+ - label: ""
+ subtitle: Select a new configuration secret, apply a custom configuration,
+ or remove an existing setup to update your database settings
+ type: label-element
+ - elements:
+ - elements:
+ - customClass: mb-10
+ label: Config Secret
+ subtitle: Select a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
init:
type: func
- value: setValueFromDbDetails|/spec/version
- loader: getDbVersions
- schema: schema/properties/spec/properties/updateVersion/properties/targetVersion
- - type: info
- label: ''
+ value: setValueFromDbDetails|/spec/configSecret/name
+ label: Config Secret
loader:
- name: getVersionInfo
+ name: getConfigSecrets
watchPaths:
- - temp/properties/filteredVersion
+ - schema/properties/metadata/properties/namespace
+ - temp/properties/createSecret/properties/status
+ refresh: true
+ schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: select
+ watcher:
+ func: onCreateSecretChange
+ paths:
+ - temp/properties/createSecret/properties/status
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|create
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ type: label-element
+ - elements:
+ - label: Secret Name
+ schema: temp/properties/createSecret/properties/name
+ type: input
+ validation:
+ type: required
+ - buttonClass: is-light is-outlined
+ elements:
+ - label: Key
+ loader:
+ name: onSelectedSecretChange
+ watchPaths:
+ - temp/properties/createSecret/properties/data
+ schema: key
+ type: select
+ validation:
+ type: required
+ - label: Value
+ schema: value
+ type: textarea
+ label: String Data
+ schema: temp/properties/createSecret/properties/data
+ type: array-object-form
+ validation:
+ type: required
+ hasButton:
+ action: createNewConfigSecret
+ hasCancel: cancelCreateSecret
+ text: Save
if:
+ name: isCreateSecret
type: function
- name: isVersionEmpty
-# Horizontal Scale
- - type: block-layout
- label: Horizontal Scaling Form
- showLabels: true
- fixedBlock: true
- if:
- type: function
- name: ifRequestTypeEqualsTo|HorizontalScaling
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- label: Replicas
- header: Replicas
- subtitle: Define the total number of replicas for the database. Increasing replicas improves fault tolerance and load distribution, while reducing replicas conserves resources
- init:
- type: func
- value: setValueFromDbDetails|/spec/replicas
- schema: schema/properties/spec/properties/horizontalScaling/properties/replicas
- - type: info
- hasIcon: true
- label: Each replica represents an independent copy of your database. For example, setting this to 3 creates three copies of the database for better availability.
-# vertical Scale
- - type: block-layout
- if:
- type: function
- name: ifRequestTypeEqualsTo|VerticalScaling
- elements:
- - type: machine-compare
- label: Resources
- subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup
- loader: getMachines
- init:
- type: func
- value: setMachine
+ label: Create a New Config Secret
+ showLabels: true
+ type: block-layout
+ - editorHeight: 500px
+ if:
+ name: isNotCreateSecret
+ type: function
+ loader:
+ name: onNewConfigSecretChange
+ watchPaths:
+ - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
+ readonly: true
+ schema: temp/properties/newConfigSecret
+ type: multi-file-editor
+ if:
+ name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
+ type: function
+ label: Config Secret
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: New Apply Config
+ subtitle: Define custom configurations for your database using key-value
+ pairs. These parameters will overwrite existing settings.
Enter the
+ parameter you want to configure (e.g., max_connections).
+ type: label-element
+ - customClass: mb-2
+ label: Configuration
+ loader: getConfigSecretsforAppyConfig
+ refresh: true
+ schema: temp/properties/selectedConfiguration
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|apply
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ type: label-element
+ - editorHeight: 500px
+ loader:
+ name: setApplyConfig
+ watchPaths:
+ - temp/properties/selectedConfiguration
+ schema: temp/properties/applyConfig
+ type: multi-file-editor
watcher:
- func: onMachineChange|node|/spec/podTemplate/spec/containers
+ func: onApplyconfigChange
paths:
- - temp/properties/machine
- schema: temp/properties/machine
- - type: block-layout
- label: Node Selection
- showLabels: true
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- showLabels: false
- hideBorder: true
- elements:
- - type: label-element
- label: Node Selection Policy
- subtitle: Control where your workloads runs by configuring node selection criteria. Use label selectors to match specific nodes or taints to avoid unsuitable nodes
- - type: select
- label: Node Selection Policy
- schema: schema/properties/spec/properties/verticalScaling/properties/node/properties/nodeSelectionPolicy
- options:
- - text: LabelSelector
- value: LabelSelector
- - text: Taint
- value: Taint
- - type: info
- label: "Label Selector: Specify key-value pairs to target nodes that match your workload's requirements.
Taints: Define tolerations for node taints to ensure your workload runs only on compatible nodes"
- customClass: mt-20
- - type: label-element
- label: Topology
- subtitle: Define node topology preferences, such as zone or region. For example, 'zone=us-central1-a' ensures workloads are deployed in that zone.
- - type: horizontal-layout
- elements:
- - type: input
- label: Key
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyKey
- - type: input
- label: Value
- validation:
- type: custom
- name: isVerticalScaleTopologyRequired
- schema: temp/topologyValue
- - type: block-layout
- label: Exporter
- showLabels: true
- hideBlock: true
- elements:
- - type: horizontal-layout
- showLabels: true
- elements:
- - init:
- type: func
- value: setExporter|cpu
- type: input
- label: CPU
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu
- - type: input
- init:
- type: func
- value: setExporter|memory
- label: Memory
- schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
- watcher:
- func: onExporterResourceChange|memory
- paths:
- - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
-# Volume Expansion
-
- - type: block-layout
- label: Volume Expansion Form
- if:
- type: function
- name: ifRequestTypeEqualsTo|VolumeExpansion
- elements:
- - type: horizontal-layout
- elements:
- - type: block-layout
- elements:
- - type: label-element
- label: Mode
- subtitle: Not sure which mode to pick? Use Online Mode for smooth operations with minimal disruption. Choose Offline Mode if you can afford a brief downtime for added reliability during the volume expansion.
- - type: select
- label: Mode
- options:
- - text: Offline
- value: Offline
- - text: Online
- value: Online
- validation:
- type: required
- schema: schema/properties/spec/properties/volumeExpansion/properties/mode
- - type: block-layout
- label: ZooKeeper volume expansion
- showLabels: true
- fixedBlock: true
- elements:
- - type: horizontal-layout
- elements:
- - type: input-compare
- header: Storage
- subtitle: How much extra storage does your database need? Specify the size (e.g., 2Gi for 2 gigabytes) so we can allocate it correctly
- label: Node
- init:
- type: func
- value: setValueFromDbDetails|/spec/storage/resources/requests/storage
- validation:
- type: custom
- name: checkVolume|/spec/storage/resources/requests/storage|/spec/volumeExpansion/node
- schema: schema/properties/spec/properties/volumeExpansion/properties/node
-# Reconfigure
- - type: block-layout
- label: Reconfigure Form
- if:
- name: ifRequestTypeEqualsTo|Reconfigure
- type: function
- loader:
- name: fetchConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- elements:
- - type: block-layout
+ - temp/properties/applyConfig
+ if:
+ name: ifReconfigurationTypeEqualsTo|applyConfig
+ type: function
+ label: ApplyConfig
+ type: block-layout
+ - elements:
+ - customClass: mb-10
+ label: Remove
+ subtitle: Selected a configuration secret from the available list to update
+ your database settings
+ type: label-element
+ - customClass: mb-2
label: Configuration
- elements:
- - type: label-element
- label: ''
- subtitle: Select a new configuration secret, apply a custom configuration, or remove an existing setup to update your database settings
- - type: tab-layout
- label: New Config Secret
- schema: temp/properties/reconfigurationType
- options:
- - text: NEW CONFIG SECRET
- value: selectNewConfigSecret
- - text: APPLY CONFIG
- value: applyConfig
- - text: REMOVE
- value: remove
- elements:
- - type: block-layout
- label: Config Secret
- if:
- name: ifReconfigurationTypeEqualsTo|selectNewConfigSecret
- type: function
- elements:
- - type: label-element
- label: Config Secret
- subtitle: Select a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- refresh: true
- label: Config Secret
- loader:
- name: getConfigSecrets
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - temp/properties/createSecret/properties/status
- init:
- type: func
- value: setValueFromDbDetails|/spec/configSecret/name
- watcher:
- func: onCreateSecretChange
- paths:
- - temp/properties/createSecret/properties/status
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|create
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- - type: block-layout
- label: Create a New Config Secret
- showLabels: true
- if:
- type: function
- name: isCreateSecret
- hasButton:
- text: Save
- hasCancel: cancelCreateSecret
- action: createNewConfigSecret
- elements:
- - type: input
- label: Secret Name
- schema: temp/properties/createSecret/properties/name
- validation:
- type: required
- - type: array-object-form
- label: String Data
- schema: temp/properties/createSecret/properties/data
- buttonClass: is-light is-outlined
- validation:
- type: required
- elements:
- - type: select
- label: Key
- schema: key
- loader:
- name: onSelectedSecretChange
- watchPaths:
- - temp/properties/createSecret/properties/data
- validation:
- type: required
- - type: textarea
- label: Value
- schema: value
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- if:
- type: function
- name: isNotCreateSecret
- loader:
- name: onNewConfigSecretChange
- watchPaths:
- - schema/properties/spec/properties/configuration/properties/configSecret/properties/name
- schema: temp/properties/newConfigSecret
- - type: block-layout
- label: ApplyConfig
- if:
- name: ifReconfigurationTypeEqualsTo|applyConfig
- type: function
- elements:
- - type: label-element
- label: New Apply Config
- subtitle: Define custom configurations for your database using key-value pairs. These parameters will overwrite existing settings.
Enter the parameter you want to configure (e.g., max_connections).
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfiguration
- refresh: true
- label: Configuration
- loader: getConfigSecretsforAppyConfig
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|apply
- watchPaths:
- - temp/properties/selectedConfiguration
- - type: multi-file-editor
- editorHeight: 500px
- schema: temp/properties/applyConfig
- loader:
- name: setApplyConfig
- watchPaths:
- - temp/properties/selectedConfiguration
- watcher:
- func: onApplyconfigChange
- paths:
- - temp/properties/applyConfig
- - type: block-layout
- label: Remove
- if:
- name: ifReconfigurationTypeEqualsTo|remove
- type: function
- elements:
- - type: label-element
- label: Remove
- subtitle: Selected a configuration secret from the available list to update your database settings
- customClass: mb-10
- - type: select
- customClass: mb-2
- schema: temp/properties/selectedConfigurationRemove
- refresh: true
- label: Configuration
- loader:
- name: getConfigSecretsforAppyConfig
- watchPaths:
- - schema/properties/metadata/properties/namespace
- - type: label-element
- label: ''
- loader:
- name: getSelectedConfigurationName|remove
- watchPaths:
- - temp/properties/selectedConfigurationRemove
- - type: multi-file-editor
- editorHeight: 500px
- readonly: true
- init:
- type: func
- value: onRemoveConfigChange
- watcher:
- func: onRemoveConfigChange
- paths:
- - temp/properties/selectedConfigurationRemove
- schema: temp/properties/removeConfig
-
-# common
- - type: block-layout
- label: OpsRequest Options
- showLabels: true
- elements:
- - type: time-picker
- label: Timeout
- schema: 'schema/properties/spec/properties/timeout'
- subtitle: Specify the maximum time allowed for the scaling operation to complete. Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
- - type: radio
- label: Apply
- schema: 'schema/properties/spec/properties/apply'
+ loader:
+ name: getConfigSecretsforAppyConfig
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ refresh: true
+ schema: temp/properties/selectedConfigurationRemove
+ type: select
+ - label: ""
+ loader:
+ name: getSelectedConfigurationName|remove
+ watchPaths:
+ - temp/properties/selectedConfigurationRemove
+ type: label-element
+ - editorHeight: 500px
init:
type: func
- value: setApplyToIfReady
- options:
- - text: IfReady (OpsRequest will be applied if database is ready)
- value: IfReady
- - text: Always (OpsRequest will always be applied)
- value: Always
+ value: onRemoveConfigChange
+ readonly: true
+ schema: temp/properties/removeConfig
+ type: multi-file-editor
+ watcher:
+ func: onRemoveConfigChange
+ paths:
+ - temp/properties/selectedConfigurationRemove
+ if:
+ name: ifReconfigurationTypeEqualsTo|remove
+ type: function
+ label: Remove
+ type: block-layout
+ label: New Config Secret
+ options:
+ - text: NEW CONFIG SECRET
+ value: selectNewConfigSecret
+ - text: APPLY CONFIG
+ value: applyConfig
+ - text: REMOVE
+ value: remove
+ schema: temp/properties/reconfigurationType
+ type: tab-layout
+ label: Configuration
+ type: block-layout
+ if:
+ name: ifRequestTypeEqualsTo|Reconfigure
+ type: function
+ label: Reconfigure Form
+ loader:
+ name: fetchConfigSecrets
+ watchPaths:
+ - schema/properties/metadata/properties/namespace
+ type: block-layout
+ - elements:
+ - label: Timeout
+ schema: schema/properties/spec/properties/timeout
+ subtitle: Specify the maximum time allowed for the scaling operation to complete.
+ Use formats like 30sec, 1min(1 minute) or 2h(2 hours).
+ type: time-picker
+ - init:
+ type: func
+ value: setApplyToIfReady
+ label: Apply
+ options:
+ - text: IfReady (OpsRequest will be applied if database is ready)
+ value: IfReady
+ - text: Always (OpsRequest will always be applied)
+ value: Always
+ schema: schema/properties/spec/properties/apply
+ type: radio
+ label: OpsRequest Options
+ showLabels: true
+ type: block-layout
+ loader: getDbDetails
+ type: single-step-form
+type: multi-step-form
diff --git a/charts/storagekubestashcom-backupstorage-editor-options/ui/create-ui.yaml b/charts/storagekubestashcom-backupstorage-editor-options/ui/create-ui.yaml
index c3b163d736..a355689605 100644
--- a/charts/storagekubestashcom-backupstorage-editor-options/ui/create-ui.yaml
+++ b/charts/storagekubestashcom-backupstorage-editor-options/ui/create-ui.yaml
@@ -1,24 +1,23 @@
step:
-- type: single-step-form
- elements:
- - loader: getNamespaces
- hasGroup: isRancherManaged
+- elements:
+ - hasGroup: isRancherManaged
label: Namespace
+ loader: getNamespaces
schema: schema/properties/metadata/properties/release/properties/namespace
type: select
- label: Name
schema: schema/properties/metadata/properties/release/properties/name
type: input
- elements:
- - type: object-item
- label: Labels
+ - label: Labels
schema: schema/properties/spec/properties/labels
- - type: object-item
- label: Annotations
+ type: object-item
+ - label: Annotations
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- customClass: mt-10
label: Deletion Policy
@@ -35,7 +34,10 @@ step:
schema: schema/properties/spec/properties/runtimeSettings/properties/securityContext
type: input
- elements:
- - label: Provider
+ - init:
+ type: func
+ value: initBackendProvider
+ label: Provider
options:
- text: Azure
value: azure
@@ -45,15 +47,12 @@ step:
value: gcs
- text: Local
value: local
- init:
- type: func
- value: initBackendProvider
+ schema: schema/properties/spec/properties/backend/properties/provider
+ type: select
watcher:
func: onBackendProviderChange
paths:
- - schema/properties/spec/properties/backend/properties/provider
- schema: schema/properties/spec/properties/backend/properties/provider
- type: select
+ - schema/properties/spec/properties/backend/properties/provider
- elements:
- elements:
- label: Account Key
@@ -79,8 +78,8 @@ step:
showLabels: true
type: block-layout
if:
- type: function
name: isProvider|azure
+ type: function
label: Azure
showLabels: true
type: block-layout
@@ -109,8 +108,8 @@ step:
showLabels: true
type: block-layout
if:
- type: function
name: isProvider|gcs
+ type: function
label: GCS
showLabels: true
type: block-layout
@@ -148,8 +147,8 @@ step:
showLabels: true
type: block-layout
if:
- type: function
name: isProvider|s3
+ type: function
label: S3
showLabels: true
type: block-layout
@@ -171,8 +170,8 @@ step:
showLabels: true
type: block-layout
if:
- type: function
name: isProvider|local
+ type: function
label: Local
showLabels: true
type: block-layout
@@ -180,5 +179,5 @@ step:
showLabels: true
type: block-layout
id: options
- # title: steps.0.label
+ type: single-step-form
type: multi-step-form
diff --git a/charts/storagekubestashcom-repository-editor-options/ui/create-ui.yaml b/charts/storagekubestashcom-repository-editor-options/ui/create-ui.yaml
index ccfd9931af..e421a1efee 100644
--- a/charts/storagekubestashcom-repository-editor-options/ui/create-ui.yaml
+++ b/charts/storagekubestashcom-repository-editor-options/ui/create-ui.yaml
@@ -1,28 +1,26 @@
step:
-- type: single-step-form
- loader: init
- elements:
- - loader: getNamespacesApi
- hasGroup: isRancherManaged
+- elements:
+ - hasGroup: isRancherManaged
label: Namespace
+ loader: getNamespacesApi
schema: schema/properties/metadata/properties/release/properties/namespace
type: select
- label: Repository Name
schema: schema/properties/metadata/properties/release/properties/name
type: input
- elements:
- - type: object-item
- label: Labels
+ - label: Labels
schema: schema/properties/spec/properties/labels
- - type: object-item
- label: Annotations
+ type: object-item
+ - label: Annotations
schema: schema/properties/spec/properties/annotations
+ type: object-item
+ hideBlock: true
label: Labels & Annotations
showLabels: true
- hideBlock: true
type: block-layout
- - label: Deletion Policy
- customClass: mt-10
+ - customClass: mt-10
+ label: Deletion Policy
options:
- Delete
- WipeOut
@@ -30,22 +28,22 @@ step:
type: select
- elements:
- disableUnselect: true
- loader: fetchNamespaces
hasGroup: isRancherManaged
label: Namespace
+ loader: fetchNamespaces
refresh: true
+ schema: schema/properties/spec/properties/storageRef/properties/namespace
+ type: select
watcher:
func: onStorageRefNamespaceChange
paths:
- - schema/properties/spec/properties/storageRef/properties/namespace
- schema: schema/properties/spec/properties/storageRef/properties/namespace
- type: select
+ - schema/properties/spec/properties/storageRef/properties/namespace
- disableUnselect: true
- loader:
+ label: Name
+ loader:
name: fetchNames|storageRef
watchPaths:
- - schema/properties/spec/properties/storageRef/properties/namespace
- label: Name
+ - schema/properties/spec/properties/storageRef/properties/namespace
refresh: true
schema: schema/properties/spec/properties/storageRef/properties/name
type: select
@@ -54,22 +52,22 @@ step:
type: block-layout
- elements:
- disableUnselect: true
- loader: fetchNamespaces
hasGroup: isRancherManaged
label: Namespace
+ loader: fetchNamespaces
refresh: true
+ schema: schema/properties/spec/properties/encryptionSecret/properties/namespace
+ type: select
watcher:
func: onEncryptionSecretNamespaceChange
paths:
- - schema/properties/spec/properties/encryptionSecret/properties/namespace
- schema: schema/properties/spec/properties/encryptionSecret/properties/namespace
- type: select
+ - schema/properties/spec/properties/encryptionSecret/properties/namespace
- disableUnselect: true
+ label: Name
loader:
name: fetchNames|encryptionSecret
watchPaths:
- - schema/properties/spec/properties/encryptionSecret/properties/namespace
- label: Name
+ - schema/properties/spec/properties/encryptionSecret/properties/namespace
refresh: true
schema: schema/properties/spec/properties/encryptionSecret/properties/name
type: select
@@ -80,44 +78,46 @@ step:
schema: schema/properties/spec/properties/path
type: input
- elements:
- - loader: getApiGroup
- label: Api Group
+ - label: Api Group
+ loader: getApiGroup
+ schema: schema/properties/spec/properties/appRef/properties/apiGroup
+ type: select
watcher:
func: onApiGroupChange
paths:
- - schema/properties/spec/properties/appRef/properties/apiGroup
- schema: schema/properties/spec/properties/appRef/properties/apiGroup
- type: select
- - loader:
+ - schema/properties/spec/properties/appRef/properties/apiGroup
+ - label: Kind
+ loader:
name: getKinds
watchPaths:
- - schema/properties/spec/properties/appRef/properties/apiGroup
- label: Kind
+ - schema/properties/spec/properties/appRef/properties/apiGroup
+ schema: schema/properties/spec/properties/appRef/properties/kind
+ type: select
watcher:
func: setVersion
paths:
- - schema/properties/spec/properties/appRef/properties/kind
- schema: schema/properties/spec/properties/appRef/properties/kind
- type: select
- - loader: fetchNamespaces
- hasGroup: isRancherManaged
+ - schema/properties/spec/properties/appRef/properties/kind
+ - hasGroup: isRancherManaged
label: Namespace
+ loader: fetchNamespaces
+ schema: schema/properties/spec/properties/appRef/properties/namespace
+ type: select
watcher:
func: onAppRefNamespaceChange
paths:
- - schema/properties/spec/properties/appRef/properties/namespace
- schema: schema/properties/spec/properties/appRef/properties/namespace
- type: select
- - loader:
+ - schema/properties/spec/properties/appRef/properties/namespace
+ - label: Name
+ loader:
name: getTargetName
watchPaths:
- - schema/properties/spec/properties/appRef/properties/kind
- - schema/properties/spec/properties/appRef/properties/namespace
- label: Name
+ - schema/properties/spec/properties/appRef/properties/kind
+ - schema/properties/spec/properties/appRef/properties/namespace
schema: schema/properties/spec/properties/appRef/properties/name
type: select
label: App Ref
showLabels: true
type: block-layout
id: options
+ loader: init
+ type: single-step-form
type: multi-step-form