diff --git a/charts/chartsxhelmdev-clusterchartpreset-editor-options/ui/create-ui.yaml b/charts/chartsxhelmdev-clusterchartpreset-editor-options/ui/create-ui.yaml index f864d57099..61b0110ff6 100644 --- a/charts/chartsxhelmdev-clusterchartpreset-editor-options/ui/create-ui.yaml +++ b/charts/chartsxhelmdev-clusterchartpreset-editor-options/ui/create-ui.yaml @@ -1,1948 +1,1877 @@ -steps: -- form: - elements: - - elements: - - discriminator: - bundle: - default: {} - type: object +step: +- type: single-step-form + id: options + elements: + - type: block-layout + if: + name: presetNameEqualsTo|kubedb-ui-presets + type: function + loader: FetchDbBundle + showLabels: false + elements: + - type: block-layout + if: + name: isKubedbUiPreset + type: function elements: - - fetch: FetchDbBundle - if: returnFalse - schema: - $ref: discriminator#/bundle - type: input - - elements: - - label: - text: labels.deployment.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/deployment/properties/toggle - type: switch - - hasDescription: true - options: - - description: labels.deployment.shared - text: Shared - value: Shared - - description: labels.deployment.dedicated - text: Dedicated - value: Dedicated - schema: - $ref: schema#/properties/spec/properties/admin/properties/deployment/properties/default - type: radio - hideForm: true - label: - text: labels.deployment.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.clusterTier.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterTier/properties/toggle - type: switch - - isHorizontal: true - options: - - text: General Purpose - value: GeneralPurpose - - text: Memory Optimized - value: MemoryOptimized - - text: CPU Optimized - value: CPUOptimized - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterTier/properties/default - type: radio + + - type: block-layout + label: Machine specifics + showLabels: true + hideBlock: true + elements: + # Deployment Type - elements: - - label: - text: labels.clusterTier.placement.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/toggle + - label: Can users modify Deployment type? + schema: schema/properties/spec/properties/admin/properties/deployment/properties/toggle type: switch - - fetch: getPlacements - label: - text: labels.clusterTier.placement.availablePlacement - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/available - type: multiselect - - disableUnselect: true - fetch: getOptions|clusterTier/placement - label: - text: labels.clusterTier.placement.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default - type: select - type: single-step-form + - options: + - description: For exploring databases when high-performance is not required. + text: Shared + value: Shared + - description: For production applications with sophisticated workload requirements. + text: Dedicated + value: Dedicated + schema: schema/properties/spec/properties/admin/properties/deployment/properties/default + label: '' + isHorizontal: true + type: radio + hideBlock: true + label: Deployment Type + showLabels: true + type: block-layout + # Cluster Tier - elements: - - label: - text: labels.clusterTier.nodeTopology.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/toggle + - label: Can users modify Cluster Tier? + schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/toggle type: switch - - fetch: getNodeTopology - label: - text: labels.clusterTier.nodeTopology.availableNodeTopology - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/available - type: multiselect - - disableUnselect: true - fetch: getOptions|clusterTier/nodeTopology - label: - text: labels.clusterTier.nodeTopology.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default - type: select - type: single-step-form - hideForm: false - label: - text: labels.clusterTier.name - show_label: true - type: single-step-form - - discriminator: - allDbVersions: - default: {} - type: object - elements: - - fetch: FetchAllDbVersions - if: returnFalse - schema: - $ref: discriminator#/allDbVersions - type: input - - elements: - - elements: - - label: - text: labels.databases.Cassandra.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Cassandra - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Cassandra - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Cassandra - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|Cassandra - label: - text: labels.databases.Cassandra.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Cassandra - label: - text: labels.databases.modes - onChange: clearDefaultMode|Cassandra - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Cassandra - fetch: availableModes|Cassandra - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/mode - type: single-step-form - hideForm: true - label: - text: Cassandra - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Cassandra - show_label: true - type: single-step-form - - elements: + - isHorizontal: true + options: + - text: General Purpose + value: GeneralPurpose + - text: Memory Optimized + value: MemoryOptimized + - text: CPU Optimized + value: CPUOptimized + schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/default + label: '' + type: radio - elements: - - label: - text: labels.databases.ClickHouse.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions/properties/toggle + - label: Can user modify Placement? + schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/toggle type: switch - - fetch: FetchDbVersions|ClickHouse - label: - text: labels.databases.versions - onChange: clearDefaultVersion|ClickHouse - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|ClickHouse - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions/properties/default + - loader: + name: getPlacements + watchPaths: + - temp/bundle + label: Available Placements + schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/available type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|ClickHouse - label: - text: labels.databases.ClickHouse.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|ClickHouse - label: - text: labels.databases.modes - onChange: clearDefaultMode|clickHouse - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|ClickHouse - fetch: availableModes|ClickHouse - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/mode/properties/default + multiple: true + - disableUnselect: true + loader: + name: getOptions|clusterTier/placement + watchPaths: + - schema/spec/admin/clusterTier/placement/available + label: Default Placement + schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/placement/properties/default type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/mode - type: single-step-form - hideForm: true - label: - text: ClickHouse - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ClickHouse - show_label: true - type: single-step-form - - elements: + showLabels: false + type: block-layout - elements: - - label: - text: labels.databases.Druid.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions/properties/toggle + - label: Can user modify Node Topology? + schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/toggle type: switch - - fetch: FetchDbVersions|Druid - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Druid - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Druid - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions/properties/default + - loader: + name: getNodeTopology + watchPaths: + - temp/bundle + label: Available Node Topologies + schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/available type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|Druid - label: - text: labels.databases.Druid.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Druid/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Druid - label: - text: labels.databases.modes - onChange: clearDefaultMode|druid - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Druid/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Druid - fetch: availableModes|Druid - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Druid/properties/mode/properties/default + multiple: true + - disableUnselect: true + loader: + name: getOptions|clusterTier/nodeTopology + watchPaths: + - schema/spec/admin/clusterTier/nodeTopology/available + label: Default Node Topology + schema: schema/properties/spec/properties/admin/properties/clusterTier/properties/nodeTopology/properties/default type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Druid/properties/mode - type: single-step-form - hideForm: true - label: - text: Druid - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Druid - show_label: true - type: single-step-form + showLabels: false + type: block-layout + hideBlock: false + label: Cluster Tier + showLabels: true + type: block-layout + # Machine Profiles - elements: + - init: + type: func + value: hasMachineProfiles + label: Use custom profiles? + watcher: + func: onMachineProfilesToggle + paths: + - temp/enableProfiles + schema: temp/enableProfiles + type: switch - elements: - - label: - text: labels.databases.Elasticsearch.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions/properties/toggle + - elements: + - label: Choose from well-known profiles + schema: temp/profileChoseSwitch + type: switch + - loader: getKnownProfile + if: + name: isKnownProfileToggled + type: function + label: Profile + schema: temp/profile + type: select + - loader: + name: getProfileName + watchPaths: + - temp/spec/admin/machineProfiles/machines/dynamicIndex/temp/profile + label: ID + validation: + type: required + schema: id + type: input + - loader: + name: getProfileName + watchPaths: + - temp/spec/admin/machineProfiles/machines/dynamicIndex/temp/profile + label: Name + schema: name + type: input + - loader: + name: setLimits|cpu + watchPaths: + - temp/spec/admin/machineProfiles/machines/dynamicIndex/temp/profile + label: CPU Limits + validation: + type: required + schema: limits/properties/cpu + type: input + - loader: + name: setLimits|memory + watchPaths: + - temp/spec/admin/machineProfiles/machines/dynamicIndex/temp/profile + label: Memory Limits + validation: + type: required + schema: limits/properties/memory + type: input + label: Machine Profiles + # schema: schema/properties/spec/properties/admin/properties/machineProfiles/properties/machines + schema: temp/properties/spec/properties/admin/properties/machineProfiles/properties/machines + init: + type: func + value: setMachineProfiles + watcher: + func: onMachineProfileChange + paths: + - temp/properties/spec/properties/admin/properties/machineProfiles/properties/machines + # temporaryPath: /profile + type: array-object-form + - init: + type: func + value: hasCustomProfile + label: Can users set their own custom CPU & memory resources? + schema: temp/useCustomProfile type: switch - - fetch: FetchDbVersions|Elasticsearch - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Elasticsearch - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Elasticsearch - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions/properties/default + - init: + type: func + value: setCustomAvlMachine + watcher: + func: onAvailableMachineChange + paths: + - temp/spec/admin/machineProfiles/available + - temp/useCustomProfile + customClass: mt-10 + loader: + name: getMachines + watchPaths: + - schema/spec/admin/machineProfiles/machines + - temp/useCustomProfile + label: Available Machines + schema: schema/properties/spec/properties/admin/properties/machineProfiles/properties/available type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|Elasticsearch - label: - text: labels.databases.Elasticsearch.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Elasticsearch - label: - text: labels.databases.modes - onChange: clearDefaultMode|elasticsearch - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Elasticsearch - fetch: availableModes|Elasticsearch - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/mode/properties/default + multiple: true + - loader: + name: getAvailableMachines + watchPaths: + - schema/spec/admin/machineProfiles/available + label: Default Machine + schema: schema/properties/spec/properties/admin/properties/machineProfiles/properties/default type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/mode - type: single-step-form - hideForm: true - label: - text: Elasticsearch - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Elasticsearch - show_label: true - type: single-step-form + if: + name: isEnableProfiles + type: function + type: block-layout + hideBlock: true + label: Configure MachineProfiles + showLabels: true + type: block-layout + # Node Selector - elements: - - elements: - - label: - text: labels.databases.FerretDB.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|FerretDB - label: - text: labels.databases.versions - onChange: clearDefaultVersion|FerretDB - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|FerretDB - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|FerretDB - label: - text: labels.databases.FerretDB.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|FerretDB - label: - text: labels.databases.modes - onChange: clearDefaultMode|ferretdb - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|FerretDB - fetch: availableModes|FerretDB - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/mode - type: single-step-form - hideForm: true - label: - text: FerretDB - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/FerretDB - show_label: true - type: single-step-form + - label: Node Selector + schema: temp/properties/spec/properties/admin/properties/nodeSelector + type: object-item + buttonClass: is-light is-outlined + watcher: + func: onNodeSelectorChange + paths: + - temp/properties/spec/properties/admin/properties/nodeSelector + hideBlock: true + label: Node Selector + showLabels: true + type: block-layout + # Tolerations - elements: - elements: - - label: - text: labels.databases.Hazelcast.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Hazelcast - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Hazelcast - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Hazelcast - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions/properties/default + - label: Key + schema: key + type: input + - label: Operator + options: + - NoSchedule + - PreferNoSchedule + - NoExecute + schema: operator type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|Hazelcast - label: - text: labels.databases.Hazelcast.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Hazelcast - label: - text: labels.databases.modes - onChange: clearDefaultMode|Hazelcast - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Hazelcast - fetch: availableModes|Hazelcast - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/mode/properties/default + - label: Value + schema: value + type: input + - label: Effect + options: + - Exists + - Equal + schema: effect type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/mode - type: single-step-form - hideForm: true - label: - text: Hazelcast - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Hazelcast - show_label: true - type: single-step-form + - label: Toleration Seconds + schema: tolerationSeconds + type: input + label: New Tolerations + schema: schema/properties/spec/properties/admin/properties/tolerations + type: array-object-form + hideBlock: true + label: Tolerations + showLabels: true + type: block-layout + + - type: block-layout + label: Database sepcifics + showLabels: true + hideBlock: true + elements: + # Databases - elements: - elements: - - label: - text: labels.databases.Ignite.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Ignite - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Ignite - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Ignite - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions - type: single-step-form + - elements: + - label: Can user modify Cassandra Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Cassandra + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Cassandra + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Cassandra + watchPaths: + - schema/spec/admin/databases/Cassandra/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/versions + type: block-layout + - elements: + - label: Can user modify Cassandra Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Cassandra + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Cassandra + loader: + name: availableModes|Cassandra + watchPaths: + - schema/spec/admin/databases/Cassandra/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra/properties/mode + showLabels: false + type: block-layout + hideBlock: true + label: Cassandra + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Cassandra + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|Ignite - label: - text: labels.databases.Ignite.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Ignite - label: - text: labels.databases.modes - onChange: clearDefaultMode|Ignite - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Ignite - fetch: availableModes|Ignite - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/mode - type: single-step-form - hideForm: true - label: - text: Ignite - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Ignite - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify ClickHouse Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|ClickHouse + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|ClickHouse + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|ClickHouse + watchPaths: + - schema/spec/admin/databases/ClickHouse/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/versions + type: block-layout + - elements: + - label: Can user modify ClickHouse Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/mode/properties/toggle + type: switch + - loader: fetchModes|ClickHouse + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|ClickHouse + loader: + name: availableModes|ClickHouse + watchPaths: + - schema/spec/admin/databases/ClickHouse/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse/properties/mode + type: block-layout + hideBlock: true + label: ClickHouse + # schema: schema/properties/spec/properties/admin/properties/databases/properties/ClickHouse + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.Kafka.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Kafka - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Kafka - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Kafka - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions - type: single-step-form + - elements: + - label: Can user modify Druid Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Druid + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Druid + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Druid + watchPaths: + - schema/spec/admin/databases/Druid/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/versions + type: block-layout + - elements: + - label: Can user modify Druid Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Druid + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Druid + loader: + name: availableModes|Druid + watchPaths: + - schema/spec/admin/databases/Druid/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid/properties/mode + type: block-layout + hideBlock: true + label: Druid + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Druid + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|Kafka - label: - text: labels.databases.Kafka.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Kafka - label: - text: labels.databases.modes - onChange: clearDefaultMode|kafka - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Kafka - fetch: availableModes|Kafka - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/mode - type: single-step-form - hideForm: true - label: - text: Kafka - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Kafka - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify Elasticsearch Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Elasticsearch + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Elasticsearch + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Elasticsearch + watchPaths: + - schema/spec/admin/databases/Elasticsearch/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/versions + type: block-layout + - elements: + - label: Can user modify Elasticsearch Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Elasticsearch + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Elasticsearch + loader: + name: availableModes|Elasticsearch + watchPaths: + - schema/spec/admin/databases/Elasticsearch/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch/properties/mode + type: block-layout + hideBlock: true + label: Elasticsearch + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Elasticsearch + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.MSSQLServer.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|MSSQLServer - label: - text: labels.databases.versions - onChange: clearDefaultVersion|MSSQLServer - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|MSSQLServer - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions - type: single-step-form + - elements: + - label: Can user modify FerretDB Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|FerretDB + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|FerretDB + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|FerretDB + watchPaths: + - schema/spec/admin/databases/FerretDB/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/versions + type: block-layout + - elements: + - label: Can user modify FerretDB Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/mode/properties/toggle + type: switch + - loader: fetchModes|FerretDB + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|FerretDB + loader: + name: availableModes|FerretDB + watchPaths: + - schema/spec/admin/databases/FerretDB/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB/properties/mode + type: block-layout + hideBlock: true + label: FerretDB + # schema: schema/properties/spec/properties/admin/properties/databases/properties/FerretDB + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|MSSQLServer - label: - text: labels.databases.MSSQLServer.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|MSSQLServer - label: - text: labels.databases.modes - onChange: clearDefaultMode|mssqlserver - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|MSSQLServer - fetch: availableModes|MSSQLServer - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/mode - type: single-step-form - hideForm: true - label: - text: MSSQLServer - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MSSQLServer - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify Hazelcast Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Hazelcast + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Hazelcast + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Hazelcast + watchPaths: + - schema/spec/admin/databases/Hazelcast/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/versions + type: block-layout + - elements: + - label: Can user modify Hazelcast Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Hazelcast + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Hazelcast + loader: + name: availableModes|Hazelcast + watchPaths: + - schema/spec/admin/databases/Hazelcast/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast/properties/mode + type: block-layout + hideBlock: true + label: Hazelcast + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Hazelcast + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.MariaDB.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|MariaDB - label: - text: labels.databases.versions - onChange: clearDefaultVersion|MariaDB - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|MariaDB - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions - type: single-step-form + - elements: + - label: Can user modify Ignite Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Ignite + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Ignite + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Ignite + watchPaths: + - schema/spec/admin/databases/Ignite/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/versions + type: block-layout + - elements: + - label: Can user modify Ignite Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Ignite + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Ignite + loader: + name: availableModes|Ignite + watchPaths: + - schema/spec/admin/databases/Ignite/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite/properties/mode + type: block-layout + hideBlock: true + label: Ignite + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Ignite + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|MariaDB - label: - text: labels.databases.MariaDB.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|MariaDB - label: - text: labels.databases.modes - onChange: clearDefaultMode|mariadb - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|MariaDB - fetch: availableModes|MariaDB - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/mode - type: single-step-form - hideForm: true - label: - text: MariaDB - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MariaDB - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify Kafka Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Kafka + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Kafka + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Kafka + watchPaths: + - schema/spec/admin/databases/Kafka/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/versions + type: block-layout + - elements: + - label: Can user modify Kafka Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Kafka + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Kafka + loader: + name: availableModes|Kafka + watchPaths: + - schema/spec/admin/databases/Kafka/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka/properties/mode + type: block-layout + hideBlock: true + label: Kafka + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Kafka + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.Memcached.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Memcached - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Memcached - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Memcached - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions - type: single-step-form + - elements: + - label: Can user modify MSSQLServer Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|MSSQLServer + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|MSSQLServer + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|MSSQLServer + watchPaths: + - schema/spec/admin/databases/MSSQLServer/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/versions + type: block-layout + - elements: + - label: Can user modify MSSQLServer Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/mode/properties/toggle + type: switch + - loader: fetchModes|MSSQLServer + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|MSSQLServer + loader: + name: availableModes|MSSQLServer + watchPaths: + - schema/spec/admin/databases/MSSQLServer/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer/properties/mode + type: block-layout + hideBlock: true + label: MSSQLServer + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MSSQLServer + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|Memcached - label: - text: labels.databases.Memcached.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Memcached - label: - text: labels.databases.modes - onChange: clearDefaultMode|memcached - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Memcached - fetch: availableModes|Memcached - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/mode - type: single-step-form - hideForm: true - label: - text: Memcached - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Memcached - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify MariaDB Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|MariaDB + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|MariaDB + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|MariaDB + watchPaths: + - schema/spec/admin/databases/MariaDB/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/versions + type: block-layout + - elements: + - label: Can user modify MariaDB Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/mode/properties/toggle + type: switch + - loader: fetchModes|MariaDB + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|MariaDB + loader: + name: availableModes|MariaDB + watchPaths: + - schema/spec/admin/databases/MariaDB/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB/properties/mode + type: block-layout + hideBlock: true + label: MariaDB + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MariaDB + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.MongoDB.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|MongoDB - label: - text: labels.databases.versions - onChange: clearDefaultVersion|MongoDB - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|MongoDB - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions - type: single-step-form + - elements: + - label: Can user modify Memcached Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Memcached + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Memcached + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Memcached + watchPaths: + - schema/spec/admin/databases/Memcached/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/versions + type: block-layout + - elements: + - label: Can user modify Memcached Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Memcached + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Memcached + loader: + name: availableModes|Memcached + watchPaths: + - schema/spec/admin/databases/Memcached/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached/properties/mode + type: block-layout + hideBlock: true + label: Memcached + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Memcached + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|MongoDB - label: - text: labels.databases.MongoDB.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|MongoDB - label: - text: labels.databases.modes - onChange: clearDefaultMode|mongodb - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|MongoDB - fetch: availableModes|MongoDB - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/mode - type: single-step-form - hideForm: true - label: - text: MongoDB - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MongoDB - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify MongoDB Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|MongoDB + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|MongoDB + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|MongoDB + watchPaths: + - schema/spec/admin/databases/MongoDB/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/versions + type: block-layout + - elements: + - label: Can user modify MongoDB Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/mode/properties/toggle + type: switch + - loader: fetchModes|MongoDB + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|MongoDB + loader: + name: availableModes|MongoDB + watchPaths: + - schema/spec/admin/databases/MongoDB/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB/properties/mode + type: block-layout + hideBlock: true + label: MongoDB + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MongoDB + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.MySQL.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|MySQL - label: - text: labels.databases.versions - onChange: clearDefaultVersion|MySQL - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|MySQL - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions - type: single-step-form + - elements: + - label: Can user modify MySQL Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|MySQL + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|MySQL + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|MySQL + watchPaths: + - schema/spec/admin/databases/MySQL/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/versions + type: block-layout + - elements: + - label: Can user modify MySQL Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/mode/properties/toggle + type: switch + - loader: fetchModes|MySQL + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|MySQL + loader: + name: availableModes|MySQL + watchPaths: + - schema/spec/admin/databases/MySQL/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/mode + type: block-layout + hideBlock: true + label: MySQL + # schema: schema/properties/spec/properties/admin/properties/databases/properties/MySQL + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|MySQL - label: - text: labels.databases.MySQL.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|MySQL - label: - text: labels.databases.modes - onChange: clearDefaultMode|mysql - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|MySQL - fetch: availableModes|MySQL - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MySQL/properties/mode - type: single-step-form - hideForm: true - label: - text: MySQL - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/MySQL - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify Oracle Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Oracle + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Oracle + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Oracle + watchPaths: + - schema/spec/admin/databases/Oracle/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions + type: block-layout + - elements: + - label: Can user modify Oracle Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Oracle + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Oracle + loader: + name: availableModes|Oracle + watchPaths: + - schema/spec/admin/databases/Oracle/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/mode + type: block-layout + hideBlock: true + label: Oracle + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Oracle + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.Oracle.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Oracle - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Oracle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Oracle - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/versions - type: single-step-form + - elements: + - label: Can user modify PerconaXtraDB Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|PerconaXtraDB + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|PerconaXtraDB + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|PerconaXtraDB + watchPaths: + - schema/spec/admin/databases/PerconaXtraDB/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions + type: block-layout + - elements: + - label: Can user modify PerconaXtraDB Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/mode/properties/toggle + type: switch + - loader: fetchModes|PerconaXtraDB + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|PerconaXtraDB + loader: + name: availableModes|PerconaXtraDB + watchPaths: + - schema/spec/admin/databases/PerconaXtraDB/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/mode + type: block-layout + hideBlock: true + label: PerconaXtraDB + # schema: schema/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|Oracle - label: - text: labels.databases.Oracle.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Oracle - label: - text: labels.databases.modes - onChange: clearDefaultMode|Oracle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Oracle - fetch: availableModes|Oracle - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Oracle/properties/mode - type: single-step-form - hideForm: true - label: - text: Oracle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Oracle - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify PgBouncer Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|PgBouncer + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|PgBouncer + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|PgBouncer + watchPaths: + - schema/spec/admin/databases/PgBouncer/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions + type: block-layout + - elements: + - label: Can user modify PgBouncer Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/mode/properties/toggle + type: switch + - loader: fetchModes|PgBouncer + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|PgBouncer + loader: + name: availableModes|PgBouncer + watchPaths: + - schema/spec/admin/databases/PgBouncer/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/mode + type: block-layout + hideBlock: true + label: PgBouncer + # schema: schema/properties/spec/properties/admin/properties/databases/properties/PgBouncer + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.PerconaXtraDB.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|PerconaXtraDB - label: - text: labels.databases.versions - onChange: clearDefaultVersion|PerconaXtraDB - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|PerconaXtraDB - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/versions - type: single-step-form + - elements: + - label: Can user modify Pgpool Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Pgpool + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Pgpool + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Pgpool + watchPaths: + - schema/spec/admin/databases/Pgpool/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions + type: block-layout + - elements: + - label: Can user modify Pgpool Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Pgpool + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Pgpool + loader: + name: availableModes|Pgpool + watchPaths: + - schema/spec/admin/databases/Pgpool/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/mode + type: block-layout + hideBlock: true + label: Pgpool + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Pgpool + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|PerconaXtraDB - label: - text: labels.databases.PerconaXtraDB.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|PerconaXtraDB - label: - text: labels.databases.modes - onChange: clearDefaultMode|perconaxtradb - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|PerconaXtraDB - fetch: availableModes|PerconaXtraDB - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB/properties/mode - type: single-step-form - hideForm: true - label: - text: PerconaXtraDB - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PerconaXtraDB - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify Postgres Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Postgres + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Postgres + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Postgres + watchPaths: + - schema/spec/admin/databases/Postgres/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions + type: block-layout + - elements: + - label: Can user modify Postgres Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Postgres + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Postgres + loader: + name: availableModes|Postgres + watchPaths: + - schema/spec/admin/databases/Postgres/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/mode + type: block-layout + hideBlock: true + label: Postgres + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Postgres + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.PgBouncer.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|PgBouncer - label: - text: labels.databases.versions - onChange: clearDefaultVersion|PgBouncer - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|PgBouncer - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/versions - type: single-step-form + - elements: + - label: Can user modify ProxySQL Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|ProxySQL + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|ProxySQL + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|ProxySQL + watchPaths: + - schema/spec/admin/databases/ProxySQL/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions + type: block-layout + - elements: + - label: Can user modify ProxySQL Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/mode/properties/toggle + type: switch + - loader: fetchModes|ProxySQL + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|ProxySQL + loader: + name: availableModes|ProxySQL + watchPaths: + - schema/spec/admin/databases/ProxySQL/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/mode + type: block-layout + hideBlock: true + label: ProxySQL + # schema: schema/properties/spec/properties/admin/properties/databases/properties/ProxySQL + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|PgBouncer - label: - text: labels.databases.PgBouncer.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|PgBouncer - label: - text: labels.databases.modes - onChange: clearDefaultMode|pgbouncer - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|PgBouncer - fetch: availableModes|PgBouncer - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PgBouncer/properties/mode - type: single-step-form - hideForm: true - label: - text: PgBouncer - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/PgBouncer - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify RabbitMQ Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|RabbitMQ + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|RabbitMQ + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|RabbitMQ + watchPaths: + - schema/spec/admin/databases/RabbitMQ/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions + type: block-layout + - elements: + - label: Can user modify RabbitMQ Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/mode/properties/toggle + type: switch + - loader: fetchModes|RabbitMQ + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|RabbitMQ + loader: + name: availableModes|RabbitMQ + watchPaths: + - schema/spec/admin/databases/RabbitMQ/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/mode + type: block-layout + hideBlock: true + label: RabbitMQ + # schema: schema/properties/spec/properties/admin/properties/databases/properties/RabbitMQ + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.Pgpool.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Pgpool - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Pgpool - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Pgpool - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/versions - type: single-step-form + - elements: + - label: Can user modify Redis Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Redis + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Redis + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Redis + watchPaths: + - schema/spec/admin/databases/Redis/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions + type: block-layout + - elements: + - label: Can user modify Redis Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Redis + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Redis + loader: + name: availableModes|Redis + watchPaths: + - schema/spec/admin/databases/Redis/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis/properties/mode + type: block-layout + hideBlock: true + label: Redis + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Redis + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|Pgpool - label: - text: labels.databases.Pgpool.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Pgpool - label: - text: labels.databases.modes - onChange: clearDefaultMode|pgpool - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Pgpool - fetch: availableModes|Pgpool - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Pgpool/properties/mode - type: single-step-form - hideForm: true - label: - text: Pgpool - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Pgpool - show_label: true - type: single-step-form - - elements: + - elements: + - label: Can user modify Singlestore Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Singlestore + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Singlestore + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Singlestore + watchPaths: + - schema/spec/admin/databases/Singlestore/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions + type: block-layout + - elements: + - label: Can user modify Singlestore Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Singlestore + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Singlestore + loader: + name: availableModes|Singlestore + watchPaths: + - schema/spec/admin/databases/Singlestore/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/mode + type: block-layout + hideBlock: true + label: Singlestore + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Singlestore + showLabels: true + type: block-layout - elements: - - label: - text: labels.databases.Postgres.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Postgres - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Postgres - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Postgres - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/versions - type: single-step-form + - elements: + - label: Can user modify Solr configuration? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|Solr + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|Solr + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|Solr + watchPaths: + - schema/spec/admin/databases/Solr/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions + type: block-layout + - elements: + - label: Can user modify Solr Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/mode/properties/toggle + type: switch + - loader: fetchModes|Solr + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|Solr + loader: + name: availableModes|Solr + watchPaths: + - schema/spec/admin/databases/Solr/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr/properties/mode + type: block-layout + hideBlock: true + label: Solr + # schema: schema/properties/spec/properties/admin/properties/databases/properties/Solr + showLabels: true + type: block-layout - elements: - - computed: checkModeToggle|Postgres - label: - text: labels.databases.Postgres.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Postgres - label: - text: labels.databases.modes - onChange: clearDefaultMode|postgres - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Postgres - fetch: availableModes|Postgres - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Postgres/properties/mode - type: single-step-form - hideForm: true - label: - text: Postgres - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Postgres - show_label: true - type: single-step-form + - elements: + - label: Can user modify ZooKeeper Version? + schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions/properties/toggle + type: switch + - loader: + name: FetchDbVersions|ZooKeeper + watchPaths: + - temp/allDbVersions + label: Available Versions + watcher: + func: clearDefaultVersion|ZooKeeper + paths: + - schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions/properties/available + schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions/properties/available + type: select + multiple: true + - loader: + name: availableVersions|ZooKeeper + watchPaths: + - schema/spec/admin/databases/ZooKeeper/versions/available + label: Default Version + schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions + type: block-layout + - elements: + - label: Can user modify ZooKeeper Mode? + schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/mode/properties/toggle + type: switch + - loader: fetchModes|ZooKeeper + label: Available Modes + schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/mode/properties/available + type: select + multiple: true + - init: + type: func + value: setDefaultMode|ZooKeeper + loader: + name: availableModes|ZooKeeper + watchPaths: + - schema/spec/admin/databases/ZooKeeper/mode/available + label: Default Mode + schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/mode/properties/default + type: select + # schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/mode + type: block-layout + hideBlock: true + label: Zookeeper + # schema: schema/properties/spec/properties/admin/properties/databases/properties/ZooKeeper + showLabels: true + type: block-layout + hideBlock: true + loader: FetchAllDbVersions + label: Configure Databases + showLabels: true + type: block-layout + # Auth Credential - elements: - - elements: - - label: - text: labels.databases.ProxySQL.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|ProxySQL - label: - text: labels.databases.versions - onChange: clearDefaultVersion|ProxySQL - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|ProxySQL - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|ProxySQL - label: - text: labels.databases.ProxySQL.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|ProxySQL - label: - text: labels.databases.modes - onChange: clearDefaultMode|proxysql - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|ProxySQL - fetch: availableModes|ProxySQL - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ProxySQL/properties/mode - type: single-step-form - hideForm: true - label: - text: ProxySQL - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ProxySQL - show_label: true - type: single-step-form + - label: Can user modify AuthCredential? + schema: schema/properties/spec/properties/admin/properties/authCredential/properties/customize + type: switch + - label: Can user refer existing Auth? + schema: schema/properties/spec/properties/admin/properties/authCredential/properties/referExisting + type: switch + hideBlock: true + label: Auth Credential + showLabels: true + type: block-layout + # Custom Configuration - elements: - - elements: - - label: - text: labels.databases.RabbitMQ.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|RabbitMQ - label: - text: labels.databases.versions - onChange: clearDefaultVersion|RabbitMQ - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|RabbitMQ - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|RabbitMQ - label: - text: labels.databases.RabbitMQ.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|RabbitMQ - label: - text: labels.databases.modes - onChange: clearDefaultMode|rabbitmq - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|RabbitMQ - fetch: availableModes|RabbitMQ - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/RabbitMQ/properties/mode - type: single-step-form - hideForm: true - label: - text: RabbitMQ - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/RabbitMQ - show_label: true - type: single-step-form + - label: Custom Configuration + schema: schema/properties/spec/properties/admin/properties/customConfiguration + type: switch + hideBlock: true + label: Custom Configuration + showLabels: true + type: block-layout + # Deletion Policy - elements: - - elements: - - label: - text: labels.databases.Redis.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Redis - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Redis - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Redis - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Redis/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|Redis - label: - text: labels.databases.Redis.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Redis/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Redis - label: - text: labels.databases.modes - onChange: clearDefaultMode|redis - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Redis/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Redis - fetch: availableModes|Redis - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Redis/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Redis/properties/mode - type: single-step-form - hideForm: true - label: - text: Redis - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Redis - show_label: true - type: single-step-form + - label: Can user modify Deletion Policy? + schema: schema/properties/spec/properties/admin/properties/deletionPolicy/properties/toggle + type: switch + - label: Default Deletion Policy + options: + - description: Keep only database Secrets and backed up data. + text: Delete ( Keep only database Secrets and backed up data ) + value: Delete + - description: Keep PVCs, database Secrets and backed up data. + text: Halt ( Keep PVCs, database Secrets and backed up data ) + value: Halt + - description: Delete everything including backed up data. + text: WipeOut ( Delete everything including backed up data ) + value: WipeOut + - description: Prevent deletion of the Druid CRD. + text: DoNotTerminate ( Prevent deletion of the Druid CRD ) + value: DoNotTerminate + schema: schema/properties/spec/properties/admin/properties/deletionPolicy/properties/default + type: select + hideBlock: true + label: Deletion Policy + showLabels: true + type: block-layout + # Storage Class - elements: - - elements: - - label: - text: labels.databases.Singlestore.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Singlestore - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Singlestore - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Singlestore - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|Singlestore - label: - text: labels.databases.Singlestore.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Singlestore - label: - text: labels.databases.modes - onChange: clearDefaultMode|singlestore - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Singlestore - fetch: availableModes|Singlestore - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Singlestore/properties/mode - type: single-step-form - hideForm: true - label: - text: Singlestore - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Singlestore - show_label: true - type: single-step-form + - label: Can users modify Storage Class? + schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/toggle + type: switch + - loader: + name: getStorageClass + watchPaths: + - temp/bundle + label: Available Storage Classes + schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/available + type: select + multiple: true + - init: + type: func + value: setStorageClass + loader: + name: getOptions|storageClasses + watchPaths: + - schema/spec/admin/storageClasses/available + label: Default Storage Class + schema: schema/properties/spec/properties/admin/properties/storageClasses/properties/default + type: select + hideBlock: false + label: Storage Class + showLabels: true + type: block-layout + # TLS - elements: - - elements: - - label: - text: labels.databases.Solr.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|Solr - label: - text: labels.databases.versions - onChange: clearDefaultVersion|Solr - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|Solr - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Solr/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|Solr - label: - text: labels.databases.Solr.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Solr/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|Solr - label: - text: labels.databases.modes - onChange: clearDefaultMode|solr - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Solr/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|Solr - fetch: availableModes|Solr - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Solr/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Solr/properties/mode - type: single-step-form - hideForm: true - label: - text: Solr - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/Solr - show_label: true - type: single-step-form + - label: Can users modify TLS? + schema: schema/properties/spec/properties/admin/properties/tls/properties/toggle + type: switch + - label: Enable TLS? + watcher: + func: preSelectClusterIssuer + paths: + - schema/properties/spec/properties/admin/properties/tls/properties/default + schema: schema/properties/spec/properties/admin/properties/tls/properties/default + type: switch + hideBlock: true + label: TLS + showLabels: true + type: block-layout + # Cluster Issuers - elements: - - elements: - - label: - text: labels.databases.ZooKeeper.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions/properties/toggle - type: switch - - fetch: FetchDbVersions|ZooKeeper - label: - text: labels.databases.versions - onChange: clearDefaultVersion|ZooKeeper - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions/properties/available - type: multiselect - - fetch: availableVersions|ZooKeeper - label: - text: labels.databases.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/versions - type: single-step-form - - elements: - - computed: checkModeToggle|ZooKeeper - label: - text: labels.databases.ZooKeeper.toggleMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/mode/properties/toggle - type: switch - - fetch: fetchModes|ZooKeeper - label: - text: labels.databases.modes - onChange: clearDefaultMode|zookeeper - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/mode/properties/available - type: multiselect - - computed: setDefaultMode|ZooKeeper - fetch: availableModes|ZooKeeper - label: - text: labels.databases.defaultMode - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/mode/properties/default - type: select - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ZooKeeper/properties/mode - type: single-step-form - hideForm: true - label: - text: Zookeeper - schema: - $ref: schema#/properties/spec/properties/admin/properties/databases/properties/ZooKeeper - show_label: true - type: single-step-form - hideForm: true - label: - text: labels.databases.name - show_label: true - type: single-step-form - - elements: - - label: - text: Can user modify AuthCredential? - schema: - $ref: schema#/properties/spec/properties/admin/properties/authCredential/properties/customize - type: switch - - label: - text: Can user refer existing Auth? - schema: - $ref: schema#/properties/spec/properties/admin/properties/authCredential/properties/referExisting - type: switch - hideForm: true - label: - text: Auth Credential - show_label: true - type: single-step-form - - elements: - - label: - text: Custom Configuration - schema: - $ref: schema#/properties/spec/properties/admin/properties/customConfiguration - type: switch - hideForm: true - label: - text: Custom Configuration - show_label: true - type: single-step-form - - discriminator: - enableProfiles: - default: true - type: boolean - elements: - - computed: hasMachineProfiles - label: - text: Use custom profiles? - onChange: onMachineProfilesToggle - schema: - $ref: discriminator#/enableProfiles - type: switch - - discriminator: - useCustomProfile: - type: boolean - elements: - - addFormLabel: MachineProfile - element: - discriminator: - profile: - default: "" - type: string - profileChoseSwitch: - default: false - type: boolean - elements: - - label: - text: Choose from well-known profiles - schema: - $ref: discriminator#/profileChoseSwitch - type: switch - - fetch: getKnownProfile - if: isKnownProfileToggled - label: - text: Profile - schema: - $ref: discriminator#/profile - type: select - - computed: getProfileName - label: - text: ID - schema: - $ref: schema#/properties/spec/properties/admin/properties/machineProfiles/properties/machines/items/properties/id - type: input - - computed: getProfileName - label: - text: Name - schema: - $ref: schema#/properties/spec/properties/admin/properties/machineProfiles/properties/machines/items/properties/name - type: input - - elements: - - computed: setLimits|cpu - label: - text: CPU Limits - required: true - schema: - $ref: schema#/properties/spec/properties/admin/properties/machineProfiles/properties/machines/items/properties/limits/properties/cpu - type: input - - computed: setLimits|memory - label: - text: Memory Limits - required: true - schema: - $ref: schema#/properties/spec/properties/admin/properties/machineProfiles/properties/machines/items/properties/limits/properties/memory - type: input - schema: - $ref: schema#/properties/spec/properties/admin/properties/machineProfiles/properties/machines/items/properties/limits - type: single-step-form - type: single-step-form - hideDetailsButton: true - label: - text: Machine Profiles - schema: - $ref: schema#/properties/spec/properties/admin/properties/machineProfiles/properties/machines - tableContents: - - inTableColumn: true - label: - text: ID - path: id - type: value - typeOfValue: string - - inTableColumn: true - label: - text: Name - path: name - type: value - typeOfValue: string - - inTableColumn: true - label: - text: Limits - path: limits - type: value - typeOfValue: string - temporaryPath: /profile - type: single-step-form-array - - computed: hasCustomProfile - label: - text: Can users set their own custom CPU & memory resources? - schema: - $ref: discriminator#/useCustomProfile + - label: Can user modify Cluster Issuers? + schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/toggle type: switch - - computed: setCustomAvlMachine - customClass: mt-10 - fetch: getMachines - label: - text: Available Machines - schema: - $ref: schema#/properties/spec/properties/admin/properties/machineProfiles/properties/available - type: multiselect - - fetch: getAvailableMachines - label: - text: Default Machine - schema: - $ref: schema#/properties/spec/properties/admin/properties/machineProfiles/properties/default + - loader: + name: getClusterIssuers + watchPaths: + - temp/bundle + label: Available Cluster Issuers + schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/available type: select - if: isEnableProfiles - type: single-step-form - hideForm: true - label: - text: Configure MachineProfiles - show_label: true - type: single-step-form - - elements: - - label: - text: labels.storageClass.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/storageClasses/properties/toggle - type: switch - - fetch: getStorageClass - label: - text: labels.storageClass.available - schema: - $ref: schema#/properties/spec/properties/admin/properties/storageClasses/properties/available - type: multiselect - - computed: setStorageClass - fetch: getOptions|storageClasses - label: - text: labels.storageClass.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/storageClasses/properties/default - type: select - hideForm: false - label: - text: labels.storageClass.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.tls.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/tls/properties/toggle - type: switch - - label: - text: labels.tls.default - onChange: preSelectClusterIssuer - schema: - $ref: schema#/properties/spec/properties/admin/properties/tls/properties/default - type: switch - hideForm: true - label: - text: labels.tls.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.clusterIssuers.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterIssuers/properties/toggle - type: switch - - fetch: getClusterIssuers - label: - text: labels.clusterIssuers.available - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterIssuers/properties/available - type: multiselect - - fetch: getOptions|clusterIssuers - label: - text: labels.clusterIssuers.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/clusterIssuers/properties/default - type: select - hideForm: false - label: - text: labels.clusterIssuers.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.expose.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/expose/properties/toggle - type: switch - - label: - text: labels.expose.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/expose/properties/default - type: switch - hideForm: true - label: - text: labels.expose.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.monitoring.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/monitoring/properties/toggle - type: switch - - label: - text: labels.monitoring.agent - options: - - text: prometheus.io/operator - value: prometheus.io/operator - - text: prometheus.io - value: prometheus.io - - text: prometheus.io/builtin - value: prometheus.io/builtin - schema: - $ref: schema#/properties/spec/properties/admin/properties/monitoring/properties/agent - type: radio + multiple: true + - loader: + name: getOptions|clusterIssuers + watchPaths: + - schema/spec/admin/clusterIssuers/available + label: Default Cluster Issuer + schema: schema/properties/spec/properties/admin/properties/clusterIssuers/properties/default + type: select + hideBlock: false + label: Cluster Issuers + showLabels: true + type: block-layout + + - type: block-layout + label: Monitoring & Backups specifics + showLabels: true + hideBlock: true + elements: + # Monitoring - elements: - - label: - text: labels.monitoring.exporter.name - schema: - $ref: schema#/properties/spec/properties/admin/properties/monitoring/properties/exporter/properties/resources - type: resource-input-form - type: single-step-form - hideForm: true - label: - text: labels.monitoring.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.alert.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/alert/properties/toggle - type: switch - hideForm: true - label: - text: labels.alert.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.deletionPolicy.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/deletionPolicy/properties/toggle - type: switch - - label: - text: labels.deletionPolicy.default - options: - - description: options.deletionPolicy.delete.description - text: options.deletionPolicy.delete.label - value: Delete - - description: options.deletionPolicy.halt.description - text: options.deletionPolicy.halt.label - value: Halt - - description: options.deletionPolicy.wipeOut.description - text: options.deletionPolicy.wipeOut.label - value: WipeOut - - description: options.deletionPolicy.doNotTerminate.description - text: options.deletionPolicy.doNotTerminate.label - value: DoNotTerminate - schema: - $ref: schema#/properties/spec/properties/admin/properties/deletionPolicy/properties/default - type: select - hideForm: true - label: - text: labels.deletionPolicy.name - show_label: true - type: single-step-form - - elements: - - addFormLabel: labels.tolerations.label - element: + - label: Can users modify Monitoring? + schema: schema/properties/spec/properties/admin/properties/monitoring/properties/toggle + type: switch + - label: Agent + options: + - text: prometheus.io/operator + value: prometheus.io/operator + - text: prometheus.io + value: prometheus.io + - text: prometheus.io/builtin + value: prometheus.io/builtin + schema: schema/properties/spec/properties/admin/properties/monitoring/properties/agent + type: radio + - type: horizontal-layout + label: Resources + showLabels: true elements: - - label: - text: labels.tolerations.key - schema: - $ref: schema#/properties/spec/properties/admin/properties/tolerations/items/properties/key - type: input - - label: - text: labels.tolerations.operator - options: - - NoSchedule - - PreferNoSchedule - - NoExecute - schema: - $ref: schema#/properties/spec/properties/admin/properties/tolerations/items/properties/operator - type: select - - label: - text: labels.tolerations.value - schema: - $ref: schema#/properties/spec/properties/admin/properties/tolerations/items/properties/value - type: input - - label: - text: labels.tolerations.effect - options: - - Exists - - Equal - schema: - $ref: schema#/properties/spec/properties/admin/properties/tolerations/items/properties/effect - type: select - - label: - text: labels.tolerations.tolerationSeconds - schema: - $ref: schema#/properties/spec/properties/admin/properties/tolerations/items/properties/tolerationSeconds - type: input - type: single-step-form - label: - text: labels.tolerations.label - schema: - $ref: schema#/properties/spec/properties/admin/properties/tolerations - tableContents: - - inTableColumn: true - label: - text: labels.tolerations.effect - path: effect - type: value - typeOfValue: string - - inTableColumn: true - label: - text: labels.tolerations.key - path: key - type: value - typeOfValue: string - - inTableColumn: true - label: - text: labels.tolerations.operator - path: operator - type: value - typeOfValue: string - - inTableColumn: true - label: - text: labels.tolerations.tolerationSeconds - path: tolerationSeconds - type: value - typeOfValue: string - - inTableColumn: true - label: - text: labels.tolerations.value - path: value - type: value - typeOfValue: string - type: single-step-form-array - hideForm: true - label: - text: labels.tolerations.label - show_label: true - type: single-step-form - - elements: - - isArray: true - keys: - label: - text: labels.nodeSelector.key - schema: - $ref: schema#/properties/spec/properties/admin/properties/nodeSelector - type: key-value-input-form - values: - label: - text: labels.nodeSelector.value - schema: - $ref: schema#/properties/spec/properties/admin/properties/nodeSelector/additionalProperties - type: input - hideForm: true - label: - text: labels.nodeSelector.label - show_label: true - type: single-step-form - - elements: - - label: - text: labels.backup.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/backup/properties/enable/properties/toggle - type: switch - - label: - text: labels.backup.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/backup/properties/enable/properties/default - type: switch - - isHorizontal: true - label: - text: Take Backup by - options: - - text: BackupConfiguration - value: BackupConfiguration - - text: BackupBlueprint - value: BackupBlueprint - schema: - $ref: schema#/properties/spec/properties/admin/properties/backup/properties/by - type: radio - hideForm: true - label: - text: labels.backup.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.pointInTimeRecovery.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/pointInTimeRecovery/properties/toggle - type: switch - - label: - text: labels.pointInTimeRecovery.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/pointInTimeRecovery/properties/default - type: switch - hideForm: true - label: - text: labels.pointInTimeRecovery.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.archiver.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/archiver/properties/enable/properties/toggle - type: switch - - label: - text: labels.archiver.default - schema: - $ref: schema#/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default - type: switch - hideForm: true - label: - text: labels.archiver.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.showPreview.toggle - schema: - $ref: schema#/properties/spec/properties/admin/properties/showPreview - type: switch - - label: - text: Enable Gitops - schema: - $ref: schema#/properties/spec/properties/admin/properties/gitOps/properties/enable/properties/default - type: switch - hideForm: true - label: - text: labels.showPreview.name - show_label: true - type: single-step-form - - elements: - - label: - text: labels.leftPanel.showBackup - schema: - $ref: schema#/properties/spec/properties/admin/properties/leftPanel/properties/showBackup - type: switch - - label: - text: labels.leftPanel.showBackupLegacy - schema: - $ref: schema#/properties/spec/properties/admin/properties/leftPanel/properties/showBackupLegacy - type: switch - - label: - text: labels.leftPanel.showInsights - schema: - $ref: schema#/properties/spec/properties/admin/properties/leftPanel/properties/showInsights - type: switch - - label: - text: labels.leftPanel.showOperations - schema: - $ref: schema#/properties/spec/properties/admin/properties/leftPanel/properties/showOperations - type: switch - - label: - text: labels.leftPanel.showSecurity - schema: - $ref: schema#/properties/spec/properties/admin/properties/leftPanel/properties/showSecurity - type: switch - - label: - text: labels.leftPanel.showVaultInfo - schema: - $ref: schema#/properties/spec/properties/admin/properties/leftPanel/properties/showVaultInfo - type: switch - hideForm: true - label: - text: labels.leftPanel.name - schema: - $ref: schema#/properties/spec/properties/admin/properties/leftPanel - show_label: true - type: single-step-form - if: isKubedbUiPreset - type: single-step-form - if: presetNameEqualsTo|kubedb-ui-presets - type: single-step-form + - type: input + label: CPU Requests + schema: schema/properties/spec/properties/admin/properties/monitoring/properties/exporter/properties/resources/properties/requests/properties/cpu + - type: input + label: CPU Limits + schema: schema/properties/spec/properties/admin/properties/monitoring/properties/exporter/properties/resources/properties/limits/properties/cpu + - type: input + label: Memory Requests + schema: schema/properties/spec/properties/admin/properties/monitoring/properties/exporter/properties/resources/properties/requests/properties/memory + - type: input + label: Memory Limits + schema: schema/properties/spec/properties/admin/properties/monitoring/properties/exporter/properties/resources/properties/limits/properties/memory + hideBlock: true + label: Monitoring + showLabels: true + type: block-layout + # Alert + - elements: + - label: Can user modify Alert? + schema: schema/properties/spec/properties/admin/properties/alert/properties/toggle + type: switch + hideBlock: true + label: Alert + showLabels: true + type: block-layout + # Backup + - elements: + - label: Can user modify Backup? + schema: schema/properties/spec/properties/admin/properties/backup/properties/enable/properties/toggle + type: switch + - label: Enable Backup + schema: schema/properties/spec/properties/admin/properties/backup/properties/enable/properties/default + type: switch + - isHorizontal: true + label: Take Backup by + options: + - text: BackupConfiguration + value: BackupConfiguration + - text: BackupBlueprint + value: BackupBlueprint + schema: schema/properties/spec/properties/admin/properties/backup/properties/by + type: radio + hideBlock: true + label: Backup + showLabels: true + type: block-layout + # Archiver + - elements: + - label: Can user modify Archiver? + schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/toggle + type: switch + - label: Default Archiver + schema: schema/properties/spec/properties/admin/properties/archiver/properties/enable/properties/default + type: switch + hideBlock: true + label: Archiver + showLabels: true + type: block-layout + # Point In Time-Recovery + - elements: + - label: Can users modify Point In-Time Recovery? + schema: schema/properties/spec/properties/admin/properties/pointInTimeRecovery/properties/toggle + type: switch + - label: Enable Point In-Time Recovery + schema: schema/properties/spec/properties/admin/properties/pointInTimeRecovery/properties/default + type: switch + hideBlock: true + label: Point In Time-Recovery + showLabels: true + type: block-layout + + - type: block-layout + label: Extras + showLabels: true + hideBlock: true + elements: + # Preview + - elements: + - label: Show Preview? + schema: schema/properties/spec/properties/admin/properties/showPreview + type: switch + hideBlock: true + label: Preview + showLabels: true + type: block-layout + # Left Panel + - elements: + - label: Show Backup? + schema: schema/properties/spec/properties/admin/properties/leftPanel/properties/showBackup + type: switch + - label: Show BackupLegacy? + schema: schema/properties/spec/properties/admin/properties/leftPanel/properties/showBackupLegacy + type: switch + - label: Show Insights? + schema: schema/properties/spec/properties/admin/properties/leftPanel/properties/showInsights + type: switch + - label: Show Operations? + schema: schema/properties/spec/properties/admin/properties/leftPanel/properties/showOperations + type: switch + - label: Show Security? + schema: schema/properties/spec/properties/admin/properties/leftPanel/properties/showSecurity + type: switch + - label: Show VaultInfo? + schema: schema/properties/spec/properties/admin/properties/leftPanel/properties/showVaultInfo + type: switch + hideBlock: true + label: Left Panel + # schema: schema/properties/spec/properties/admin/properties/leftPanel + showLabels: true + type: block-layout + # Expose + - elements: + - label: Can users modify Exposer via gateway? + schema: schema/properties/spec/properties/admin/properties/expose/properties/toggle + type: switch + - label: Expose via gateway? + schema: schema/properties/spec/properties/admin/properties/expose/properties/default + type: switch + hideBlock: true + label: Expose + showLabels: true + type: block-layout + # GitOps + - elements: + - label: Enable GitOps? + schema: schema/properties/spec/properties/admin/properties/gitOps/properties/enable/properties/default + type: switch + hideBlock: true + label: GitOps + showLabels: true + type: block-layout + + # Stash Preset - elements: - elements: - - alias: reusable_stash-presets - chart: - name: uibytebuildersdev-component-stash-presets - version: v0.30.0 - moduleResolver: fetchJsons - schema: - $ref: schema#/properties/spec/properties/backup/properties/kubestash - type: reusable-element - - computed: setTool - if: returnFalse - schema: - $ref: schema#/properties/spec/properties/backup/properties/tool - type: input - schema: - $ref: schema#/properties/spec/properties/backup - type: single-step-form - if: presetNameEqualsTo|stash-presets - type: single-step-form - - elements: [] - type: single-step-form - type: single-step-form - id: options - title: Basic + - type: input + label: demo + schema: schema/properties/demo + if: + name: returnFalse + type: function + - elements: + - elements: + - loader: getNamespaces + disableUnselect: true + label: Namespace + refresh: true + schema: schema/properties/spec/properties/backup/properties/kubestash/properties/encryptionSecret/properties/namespace + type: select + - loader: + name: fetchNames|encryptionSecret + watchPaths: + - schema/properties/spec/properties/backup/properties/kubestash/properties/encryptionSecret/properties/namespace + disableUnselect: true + label: Name + refresh: true + schema: schema/properties/spec/properties/backup/properties/kubestash/properties/encryptionSecret/properties/name + type: select + label: Encryption Secret + # schema: schema/properties/encryptionSecret + showLabels: true + type: block-layout + - elements: + - loader: getNamespaces + disableUnselect: true + hasGroup: isRancherManaged + label: Namespace + refresh: true + schema: schema/properties/spec/properties/backup/properties/kubestash/properties/retentionPolicy/properties/namespace + type: select + - loader: + name: fetchNames|retentionPolicy + watchPaths: + - schema/properties/spec/properties/backup/properties/kubestash/properties/retentionPolicy/properties/namespace + disableUnselect: true + label: Name + refresh: true + schema: schema/properties/spec/properties/backup/properties/kubestash/properties/retentionPolicy/properties/name + type: select + label: Retention Policy + # schema: schema/properties/retentionPolicy + showLabels: true + type: block-layout + - elements: + - loader: getNamespaces + disableUnselect: true + hasGroup: isRancherManaged + label: Namespace + refresh: true + schema: schema/properties/spec/properties/backup/properties/kubestash/properties/storageRef/properties/namespace + type: select + - loader: + name: fetchNames|storageRef + watchPaths: + - schema/properties/spec/properties/backup/properties/kubestash/properties/storageRef/properties/namespace + disableUnselect: true + label: Name + refresh: true + schema: schema/properties/spec/properties/backup/properties/kubestash/properties/storageRef/properties/name + type: select + label: Storage Ref + # schema: schema/properties/storageRef + showLabels: true + type: block-layout + - label: Schedule + schema: schema/properties/spec/properties/backup/properties/kubestash/properties/schedule + type: input + type: block-layout + # schema: schema#/properties/spec/properties/backup/properties/kubestash + loader: setTool + type: block-layout + if: + name: presetNameEqualsTo|stash-presets + type: function + type: block-layout type: multi-step-form diff --git a/charts/chartsxhelmdev-clusterchartpreset-editor-options/ui/functions.js b/charts/chartsxhelmdev-clusterchartpreset-editor-options/ui/functions.js index 9092043b9d..cf52865eb1 100644 --- a/charts/chartsxhelmdev-clusterchartpreset-editor-options/ui/functions.js +++ b/charts/chartsxhelmdev-clusterchartpreset-editor-options/ui/functions.js @@ -1,967 +1,1036 @@ -const machinesMap = { - 'db.t.micro': { - resources: { - requests: { - cpu: '250m', - memory: '512Mi', - }, - limits: { - cpu: '500m', - memory: '1Gi', +const { ref, computed, axios, watch, useOperator, store } = window.vueHelpers || {} + +export const useFunc = (model) => { + const { getValue, setDiscriminatorValue, commit, storeGet, discriminator } = useOperator( + model, + store.state, + ) + + /********** Initialize Discriminator **************/ + + setDiscriminatorValue('/bundle', {}) + setDiscriminatorValue('/allDbVersions', {}) + setDiscriminatorValue('/enableProfiles', false) + setDiscriminatorValue('/useCustomProfile', false) + setDiscriminatorValue('/profile', '') + setDiscriminatorValue('/profileChoseSwitch', false) + + /************** Common Funcitons ******************/ + + const machinesMap = { + 'db.t.micro': { + resources: { + requests: { + cpu: '250m', + memory: '512Mi', + }, + limits: { + cpu: '500m', + memory: '1Gi', + }, }, }, - }, - 'db.t.small': { - resources: { - requests: { - cpu: '1', - memory: '1Gi', - }, - limits: { - cpu: '2', - memory: '2Gi', + 'db.t.small': { + resources: { + requests: { + cpu: '1', + memory: '1Gi', + }, + limits: { + cpu: '2', + memory: '2Gi', + }, }, }, - }, - 'db.t.medium': { - resources: { - requests: { - cpu: '1', - memory: '2Gi', - }, - limits: { - cpu: '2', - memory: '4Gi', + 'db.t.medium': { + resources: { + requests: { + cpu: '1', + memory: '2Gi', + }, + limits: { + cpu: '2', + memory: '4Gi', + }, }, }, - }, - 'db.t.large': { - resources: { - requests: { - cpu: '1', - memory: '4Gi', - }, - limits: { - cpu: '2', - memory: '8Gi', + 'db.t.large': { + resources: { + requests: { + cpu: '1', + memory: '4Gi', + }, + limits: { + cpu: '2', + memory: '8Gi', + }, }, }, - }, - 'db.t.xlarge': { - resources: { - requests: { - cpu: '2', - memory: '8Gi', - }, - limits: { - cpu: '4', - memory: '16Gi', + 'db.t.xlarge': { + resources: { + requests: { + cpu: '2', + memory: '8Gi', + }, + limits: { + cpu: '4', + memory: '16Gi', + }, }, }, - }, - 'db.t.2xlarge': { - resources: { - requests: { - cpu: '4', - memory: '16Gi', - }, - limits: { - cpu: '8', - memory: '32Gi', + 'db.t.2xlarge': { + resources: { + requests: { + cpu: '4', + memory: '16Gi', + }, + limits: { + cpu: '8', + memory: '32Gi', + }, }, }, - }, - 'db.m.small': { - resources: { - requests: { - cpu: '500m', - memory: '912680550', - }, - limits: { - cpu: '1', - memory: '1825361100', + 'db.m.small': { + resources: { + requests: { + cpu: '500m', + memory: '912680550', + }, + limits: { + cpu: '1', + memory: '1825361100', + }, }, }, - }, - 'db.m.large': { - resources: { - requests: { - cpu: '1', - memory: '4Gi', - }, - limits: { - cpu: '2', - memory: '8Gi', + 'db.m.large': { + resources: { + requests: { + cpu: '1', + memory: '4Gi', + }, + limits: { + cpu: '2', + memory: '8Gi', + }, }, }, - }, - 'db.m.xlarge': { - resources: { - requests: { - cpu: '2', - memory: '8Gi', - }, - limits: { - cpu: '4', - memory: '16Gi', + 'db.m.xlarge': { + resources: { + requests: { + cpu: '2', + memory: '8Gi', + }, + limits: { + cpu: '4', + memory: '16Gi', + }, }, }, - }, - 'db.m.2xlarge': { - resources: { - requests: { - cpu: '4', - memory: '16Gi', - }, - limits: { - cpu: '8', - memory: '32Gi', + 'db.m.2xlarge': { + resources: { + requests: { + cpu: '4', + memory: '16Gi', + }, + limits: { + cpu: '8', + memory: '32Gi', + }, }, }, - }, - 'db.m.4xlarge': { - resources: { - requests: { - cpu: '8', - memory: '32Gi', - }, - limits: { - cpu: '16', - memory: '64Gi', + 'db.m.4xlarge': { + resources: { + requests: { + cpu: '8', + memory: '32Gi', + }, + limits: { + cpu: '16', + memory: '64Gi', + }, }, }, - }, - 'db.m.8xlarge': { - resources: { - requests: { - cpu: '16', - memory: '64Gi', - }, - limits: { - cpu: '32', - memory: '128Gi', + 'db.m.8xlarge': { + resources: { + requests: { + cpu: '16', + memory: '64Gi', + }, + limits: { + cpu: '32', + memory: '128Gi', + }, }, }, - }, - 'db.m.12xlarge': { - resources: { - requests: { - cpu: '24', - memory: '96Gi', - }, - limits: { - cpu: '48', - memory: '192Gi', + 'db.m.12xlarge': { + resources: { + requests: { + cpu: '24', + memory: '96Gi', + }, + limits: { + cpu: '48', + memory: '192Gi', + }, }, }, - }, - 'db.m.16xlarge': { - resources: { - requests: { - cpu: '32', - memory: '128Gi', - }, - limits: { - cpu: '64', - memory: '256Gi', + 'db.m.16xlarge': { + resources: { + requests: { + cpu: '32', + memory: '128Gi', + }, + limits: { + cpu: '64', + memory: '256Gi', + }, }, }, - }, - 'db.m.24xlarge': { - resources: { - requests: { - cpu: '48', - memory: '192Gi', - }, - limits: { - cpu: '96', - memory: '384Gi', + 'db.m.24xlarge': { + resources: { + requests: { + cpu: '48', + memory: '192Gi', + }, + limits: { + cpu: '96', + memory: '384Gi', + }, }, }, - }, - 'db.r.large': { - resources: { - requests: { - cpu: '1', - memory: '8Gi', - }, - limits: { - cpu: '2', - memory: '16Gi', + 'db.r.large': { + resources: { + requests: { + cpu: '1', + memory: '8Gi', + }, + limits: { + cpu: '2', + memory: '16Gi', + }, }, }, - }, - 'db.r.xlarge': { - resources: { - requests: { - cpu: '2', - memory: '16Gi', - }, - limits: { - cpu: '4', - memory: '32Gi', + 'db.r.xlarge': { + resources: { + requests: { + cpu: '2', + memory: '16Gi', + }, + limits: { + cpu: '4', + memory: '32Gi', + }, }, }, - }, - 'db.r.2xlarge': { - resources: { - requests: { - cpu: '4', - memory: '32Gi', - }, - limits: { - cpu: '8', - memory: '64Gi', + 'db.r.2xlarge': { + resources: { + requests: { + cpu: '4', + memory: '32Gi', + }, + limits: { + cpu: '8', + memory: '64Gi', + }, }, }, - }, - 'db.r.4xlarge': { - resources: { - requests: { - cpu: '8', - memory: '96Gi', - }, - limits: { - cpu: '16', - memory: '192Gi', + 'db.r.4xlarge': { + resources: { + requests: { + cpu: '8', + memory: '96Gi', + }, + limits: { + cpu: '16', + memory: '192Gi', + }, }, }, - }, - 'db.r.8xlarge': { - resources: { - requests: { - cpu: '16', - memory: '128Gi', - }, - limits: { - cpu: '32', - memory: '256Gi', + 'db.r.8xlarge': { + resources: { + requests: { + cpu: '16', + memory: '128Gi', + }, + limits: { + cpu: '32', + memory: '256Gi', + }, }, }, - }, - 'db.r.12xlarge': { - resources: { - requests: { - cpu: '24', - memory: '192Gi', - }, - limits: { - cpu: '48', - memory: '384Gi', + 'db.r.12xlarge': { + resources: { + requests: { + cpu: '24', + memory: '192Gi', + }, + limits: { + cpu: '48', + memory: '384Gi', + }, }, }, - }, - 'db.r.16xlarge': { - resources: { - requests: { - cpu: '32', - memory: '256Gi', - }, - limits: { - cpu: '64', - memory: '512Gi', + 'db.r.16xlarge': { + resources: { + requests: { + cpu: '32', + memory: '256Gi', + }, + limits: { + cpu: '64', + memory: '512Gi', + }, }, }, - }, - 'db.r.24xlarge': { - resources: { - requests: { - cpu: '24', - memory: '384Gi', - }, - limits: { - cpu: '96', - memory: '768Gi', + 'db.r.24xlarge': { + resources: { + requests: { + cpu: '24', + memory: '384Gi', + }, + limits: { + cpu: '96', + memory: '768Gi', + }, }, }, - }, -} - -const machineList = [ - 'db.t.micro', - 'db.t.small', - 'db.t.medium', - 'db.t.large', - 'db.t.xlarge', - 'db.t.2xlarge', - 'db.m.small', - 'db.m.large', - 'db.m.xlarge', - 'db.m.2xlarge', - 'db.m.4xlarge', - 'db.m.8xlarge', - 'db.m.12xlarge', - 'db.m.16xlarge', - 'db.m.24xlarge', - 'db.r.large', - 'db.r.xlarge', - 'db.r.2xlarge', - 'db.r.4xlarge', - 'db.r.8xlarge', - 'db.r.12xlarge', - 'db.r.16xlarge', - 'db.r.24xlarge', -] - -const modes = { - Cassandra: { - availableModes: ['Standalone', 'Topology'], - default: 'Topology', - }, - ClickHouse: { - availableModes: ['Standalone', 'Topology'], - default: 'Topology', - }, - Druid: { - availableModes: ['Topology'], - default: 'Topology', - }, - Elasticsearch: { - availableModes: ['Combined', 'Topology'], - default: 'Topology', - }, - FerretDB: { - availableModes: ['PrimaryOnly', 'PrimaryAndSecondary'], - default: 'PrimaryAndSecondary', - }, - Kafka: { - availableModes: ['Combined', 'Topology'], - default: 'Topology', - }, - Hazelcast: { - availableModes: ['Combined', 'Topology'], - default: 'Topology', - }, - Ignite: { - availableModes: ['Standalone', 'Replicaset'], - default: 'Replicaset', - }, - MSSQLServer: { - availableModes: ['Standalone', 'Topology'], - default: 'Topology', - }, - MariaDB: { - availableModes: ['Standalone', 'Replicaset'], - default: 'Replicaset', - }, - Memcached: { - availableModes: ['Standalone', 'Replicaset'], - default: 'Replicaset', - }, - MongoDB: { - availableModes: ['Standalone', 'Replicaset', 'Sharded'], - default: 'Replicaset', - }, - MySQL: { - availableModes: [ - 'Standalone', - 'GroupReplication', - 'InnoDBCluster', - 'RemoteReplica', - 'SemiSync', - ], - default: 'GroupReplication', - }, - Oracle: { - availableModes: ['Standalone', 'DataGuard'], - default: 'DataGuard', - }, - PerconaXtraDB: { - availableModes: ['Replicaset'], - default: 'Replicaset', - }, - PgBouncer: { - availableModes: ['Standalone', 'Replicaset'], - default: 'Replicaset', - }, - Pgpool: { - availableModes: ['Standalone', 'Replicaset'], - default: 'Replicaset', - }, - Postgres: { - availableModes: ['Standalone', 'Cluster', 'RemoteReplica'], - default: 'Cluster', - }, - ProxySQL: { - availableModes: ['Standalone', 'Replicaset'], - default: 'Replicaset', - }, - RabbitMQ: { - availableModes: ['Standalone', 'Replicaset'], - default: 'Replicaset', - }, - Redis: { - availableModes: ['Standalone', 'Cluster', 'Sentinel'], - default: 'Cluster', - }, - Singlestore: { - availableModes: ['Standalone', 'Topology'], - default: 'Topology', - }, - Solr: { - availableModes: ['Standalone', 'Replicaset', 'Topology'], - default: 'Topology', - }, - ZooKeeper: { - availableModes: ['Standalone', 'Replicaset'], - default: 'Replicaset', - }, -} + } -function setTool({ commit }) { - commit('wizard/model$update', { - path: '/spec/backup/tool', - value: 'KubeStash', - force: true, - }) - return 'KubeStash' -} + const machineList = [ + 'db.t.micro', + 'db.t.small', + 'db.t.medium', + 'db.t.large', + 'db.t.xlarge', + 'db.t.2xlarge', + 'db.m.small', + 'db.m.large', + 'db.m.xlarge', + 'db.m.2xlarge', + 'db.m.4xlarge', + 'db.m.8xlarge', + 'db.m.12xlarge', + 'db.m.16xlarge', + 'db.m.24xlarge', + 'db.r.large', + 'db.r.xlarge', + 'db.r.2xlarge', + 'db.r.4xlarge', + 'db.r.8xlarge', + 'db.r.12xlarge', + 'db.r.16xlarge', + 'db.r.24xlarge', + ] + + const modes = { + Cassandra: { + availableModes: ['Standalone', 'Topology'], + default: 'Topology', + }, + ClickHouse: { + availableModes: ['Standalone', 'Topology'], + default: 'Topology', + }, + Druid: { + availableModes: ['Topology'], + default: 'Topology', + }, + Elasticsearch: { + availableModes: ['Combined', 'Topology'], + default: 'Topology', + }, + FerretDB: { + availableModes: ['PrimaryOnly', 'PrimaryAndSecondary'], + default: 'PrimaryAndSecondary', + }, + Kafka: { + availableModes: ['Combined', 'Topology'], + default: 'Topology', + }, + Hazelcast: { + availableModes: ['Combined', 'Topology'], + default: 'Topology', + }, + Ignite: { + availableModes: ['Standalone', 'Replicaset'], + default: 'Replicaset', + }, + MSSQLServer: { + availableModes: ['Standalone', 'Topology'], + default: 'Topology', + }, + MariaDB: { + availableModes: ['Standalone', 'Replicaset'], + default: 'Replicaset', + }, + Memcached: { + availableModes: ['Standalone', 'Replicaset'], + default: 'Replicaset', + }, + MongoDB: { + availableModes: ['Standalone', 'Replicaset', 'Sharded'], + default: 'Replicaset', + }, + MySQL: { + availableModes: [ + 'Standalone', + 'GroupReplication', + 'InnoDBCluster', + 'RemoteReplica', + 'SemiSync', + ], + default: 'GroupReplication', + }, + Oracle: { + availableModes: ['Standalone', 'DataGuard'], + default: 'DataGuard', + }, + PerconaXtraDB: { + availableModes: ['Replicaset'], + default: 'Replicaset', + }, + PgBouncer: { + availableModes: ['Standalone', 'Replicaset'], + default: 'Replicaset', + }, + Pgpool: { + availableModes: ['Standalone', 'Replicaset'], + default: 'Replicaset', + }, + Postgres: { + availableModes: ['Standalone', 'Cluster', 'RemoteReplica'], + default: 'Cluster', + }, + ProxySQL: { + availableModes: ['Standalone', 'Replicaset'], + default: 'Replicaset', + }, + RabbitMQ: { + availableModes: ['Standalone', 'Replicaset'], + default: 'Replicaset', + }, + Redis: { + availableModes: ['Standalone', 'Cluster', 'Sentinel'], + default: 'Cluster', + }, + Singlestore: { + availableModes: ['Standalone', 'Topology'], + default: 'Topology', + }, + Solr: { + availableModes: ['Standalone', 'Replicaset', 'Topology'], + default: 'Topology', + }, + ZooKeeper: { + availableModes: ['Standalone', 'Replicaset'], + default: 'Replicaset', + }, + } -function returnFalse() { - return false -} + function setTool() { + commit('wizard/model$update', { + path: '/spec/backup/tool', + value: 'KubeStash', + force: true, + }) + return 'KubeStash' + } -function checkModeToggle({ getValue, model }, db) { - const toggle = getValue(model, `/spec/admin/databases/${db}/mode/toggle`) - if (toggle === undefined) return true -} + function returnFalse() { + return false + } -async function fetchJsons({ axios, itemCtx }) { - let ui = {} - let language = {} - let functions = {} - const { name, sourceRef, version, packageviewUrlPrefix } = itemCtx.chart + // remove itemCtx + async function fetchJsons({ itemCtx }) { + let ui = {} + let language = {} + let functions = {} + const { name, sourceRef, version, packageviewUrlPrefix } = itemCtx.chart + + try { + ui = await axios.get( + `${packageviewUrlPrefix}/create-ui.yaml?name=${name}&sourceApiGroup=${sourceRef.apiGroup}&sourceKind=${sourceRef.kind}&sourceNamespace=${sourceRef.namespace}&sourceName=${sourceRef.name}&version=${version}&format=json`, + ) + language = await axios.get( + `${packageviewUrlPrefix}/language.yaml?name=${name}&sourceApiGroup=${sourceRef.apiGroup}&sourceKind=${sourceRef.kind}&sourceNamespace=${sourceRef.namespace}&sourceName=${sourceRef.name}&version=${version}&format=json`, + ) + const functionString = await axios.get( + `${packageviewUrlPrefix}/functions.js?name=${name}&sourceApiGroup=${sourceRef.apiGroup}&sourceKind=${sourceRef.kind}&sourceNamespace=${sourceRef.namespace}&sourceName=${sourceRef.name}&version=${version}`, + ) + // declare evaluate the functionString to get the functions Object + const evalFunc = new Function(functionString.data || '') + functions = evalFunc() + } catch (e) { + console.log(e) + } - try { - ui = await axios.get( - `${packageviewUrlPrefix}/create-ui.yaml?name=${name}&sourceApiGroup=${sourceRef.apiGroup}&sourceKind=${sourceRef.kind}&sourceNamespace=${sourceRef.namespace}&sourceName=${sourceRef.name}&version=${version}&format=json`, - ) - language = await axios.get( - `${packageviewUrlPrefix}/language.yaml?name=${name}&sourceApiGroup=${sourceRef.apiGroup}&sourceKind=${sourceRef.kind}&sourceNamespace=${sourceRef.namespace}&sourceName=${sourceRef.name}&version=${version}&format=json`, - ) - const functionString = await axios.get( - `${packageviewUrlPrefix}/functions.js?name=${name}&sourceApiGroup=${sourceRef.apiGroup}&sourceKind=${sourceRef.kind}&sourceNamespace=${sourceRef.namespace}&sourceName=${sourceRef.name}&version=${version}`, - ) - // declare evaluate the functionString to get the functions Object - const evalFunc = new Function(functionString.data || '') - functions = evalFunc() - } catch (e) { - console.log(e) + return { + ui: ui.data || {}, + language: language.data || {}, + functions, + } } - return { - ui: ui.data || {}, - language: language.data || {}, - functions, + function presetNameEqualsTo(value) { + const presetName = storeGet('/route/params/presetName') || '' + return presetName === value } -} - -function presetNameEqualsTo({ storeGet }, value) { - const presetName = storeGet('/route/params/presetName') || '' - return presetName === value -} -function getOptions({ getValue, model, watchDependency }, type) { - watchDependency(`model#/spec/admin/${type}/available`) - const options = getValue(model, `/spec/admin/${type}/available`) - return options -} + function getOptions(type) { + // watchDependency(`model#/spec/admin/${type}/available`) + const options = getValue(model, `/spec/admin/${type}/available`) + return options + } -async function FetchAllDbVersions({ storeGet, axios, setDiscriminatorValue }) { - const owner = storeGet('/route/params/user') - const cluster = storeGet('/route/params/cluster') - const url = `/clusters/${owner}/${cluster}/proxy/catalog.kubedb.com/v1alpha1/all-available` + async function FetchAllDbVersions() { + const owner = storeGet('/route/params/user') + const cluster = storeGet('/route/params/cluster') + const url = `/clusters/${owner}/${cluster}/proxy/catalog.kubedb.com/v1alpha1/all-available` - const resp = await axios.get(url) + const resp = await axios.get(url) - setDiscriminatorValue(`/allDbVersions`, resp.data) - return resp.data -} + setDiscriminatorValue(`/allDbVersions`, resp.data) + return resp.data + } -function isConfigureDb({ getValue, discriminator, watchDependency }, value) { - watchDependency(`discriminator#/${value}/isConfigure`) - const resp = getValue(discriminator, `/${value}/isConfigure`) - return resp -} + function isConfigureDb(value) { + // watchDependency(`discriminator#/${value}/isConfigure`) + const resp = getValue(discriminator, `/${value}/isConfigure`) + return resp + } -async function FetchDbVersions({ watchDependency, getValue, discriminator }, db) { - watchDependency(`discriminator#/allDbVersions`) - data = getValue(discriminator, `allDbVersions/${db}Version`) - if (!data?.includes('Remove all')) data?.unshift('Remove all') - if (!data?.includes('Select all')) data?.unshift('Select all') - return data -} + async function FetchDbVersions(db) { + // watchDependency(`discriminator#/allDbVersions`) + let data = getValue(discriminator, `allDbVersions/${db}Version`) + if (!data?.includes('Remove all')) data?.unshift('Remove all') + if (!data?.includes('Select all')) data?.unshift('Select all') + return data + } -function clearDefaultVersion({ commit, model, getValue, discriminator }, db) { - const data = getValue(model, `/spec/admin/databases/${db}/versions/available`) - if (data?.includes('Select all')) { - versions = getValue(discriminator, `allDbVersions/${db}Version`) - commit('wizard/model$update', { - path: `/spec/admin/databases/${db}/versions/available`, - value: versions, - force: true, - }) + function clearDefaultVersion(db) { + const data = getValue(model, `/spec/admin/databases/${db}/versions/available`) + if (data?.includes('Remove all')) return [] + if (data?.includes('Select all')) { + const versions = getValue(discriminator, `allDbVersions/${db}Version`) ?? [] + return versions + .filter((v) => v !== 'Select all' && v !== 'Remove all') + .map((v) => ({ text: v, value: v })) + } } - if (data?.includes('Remove all')) { + + function clearDefaultMode(db) { commit('wizard/model$update', { - path: `/spec/admin/databases/${db}/versions/available`, - value: [], + path: `/spec/admin/databases/${db}/mode/default`, + value: '', force: true, }) } -} -function clearDefaultMode({ commit }, db) { - commit('wizard/model$update', { - path: `/spec/admin/databases/${db}/mode/default`, - value: '', - force: true, - }) -} - -function availableVersions({ getValue, model, watchDependency }, db) { - watchDependency(`model#/spec/admin/databases/${db}/versions/available`) - return getValue(model, `/spec/admin/databases/${db}/versions/available`) -} + function availableVersions(db) { + // watchDependency(`model#/spec/admin/databases/${db}/versions/available`) + return getValue(model, `/spec/admin/databases/${db}/versions/available`) + } -function availableModes({ getValue, model, watchDependency }, db) { - watchDependency(`model#/spec/admin/databases/${db}/mode/available`) - return getValue(model, `/spec/admin/databases/${db}/mode/available`) -} + function availableModes(db) { + // watchDependency(`model#/spec/admin/databases/${db}/mode/available`) + return getValue(model, `/spec/admin/databases/${db}/mode/available`) + } -function isKubedbPresetEnable(storeGet) { - const featureSets = storeGet('/cluster/featureSets/result') || [] - const featureSetName = storeGet('/route/params/featureset') || '' - const featureSet = featureSets.find((item) => item?.metadata?.name === featureSetName) + function isKubedbPresetEnable(storeGet) { + const featureSets = storeGet('/cluster/featureSets/result') || [] + const featureSetName = storeGet('/route/params/featureset') || '' + const featureSet = featureSets.find((item) => item?.metadata?.name === featureSetName) - const features = featureSet?.status?.features || [] - const isKubedbPresetEnable = features.some((feature) => { - if (feature.name === 'kubedb-ui-presets') return true - }) - return isKubedbPresetEnable -} + const features = featureSet?.status?.features || [] + const isKubedbPresetEnable = features.some((feature) => { + if (feature.name === 'kubedb-ui-presets') return true + }) + return isKubedbPresetEnable + } -async function FetchDbBundle({ axios, storeGet, setDiscriminatorValue, discriminator }) { - const owner = storeGet('/route/params/user') - const cluster = storeGet('/route/params/cluster') - const url = `/clusters/${owner}/${cluster}/db-bundle?type=common&deployment=all` - try { - const resp = await axios.get(url) - setDiscriminatorValue('/bundle', resp.data) - } catch (e) { - console.log(e) - return [] + async function FetchDbBundle() { + const owner = storeGet('/route/params/user') + const cluster = storeGet('/route/params/cluster') + const url = `/clusters/${owner}/${cluster}/db-bundle?type=common&deployment=all` + try { + const resp = await axios.get(url) + setDiscriminatorValue('/bundle', resp.data) + } catch (e) { + console.log(e) + return [] + } } -} -function getPlacements({ watchDependency, getValue, discriminator }) { - watchDependency('discriminator#/bundle') - const placements = getValue(discriminator, '/bundle/placementpolicies') + function getPlacements() { + // watchDependency('discriminator#/bundle') + const placements = getValue(discriminator, '/bundle/placementpolicies') - return placements -} + return placements + } -function getNodeTopology({ watchDependency, getValue, discriminator }) { - watchDependency('discriminator#/bundle') - const shared = getValue(discriminator, '/bundle/shared') - const dedicated = getValue(discriminator, '/bundle/dedicated') + function getNodeTopology() { + // watchDependency('discriminator#/bundle') + const shared = getValue(discriminator, '/bundle/shared') + const dedicated = getValue(discriminator, '/bundle/dedicated') - const nodeTopology = [] + const nodeTopology = [] - shared?.map((item) => { - nodeTopology.push(item + ' (shared)') - }) - dedicated?.map((item) => { - nodeTopology.push(item + ' (dedicated)') - }) + shared?.map((item) => { + nodeTopology.push(item + ' (shared)') + }) + dedicated?.map((item) => { + nodeTopology.push(item + ' (dedicated)') + }) - return nodeTopology -} + return nodeTopology + } -function getStorageClass({ watchDependency, getValue, discriminator }) { - watchDependency('discriminator#/bundle') - const storageClasses = getValue(discriminator, '/bundle/storageclasses') + function getStorageClass() { + // watchDependency('discriminator#/bundle') + const storageClasses = getValue(discriminator, '/bundle/storageclasses') - return storageClasses -} + return storageClasses + } -function getClusterIssuers({ watchDependency, getValue, discriminator }) { - watchDependency('discriminator#/bundle') - const clusterIssuers = getValue(discriminator, '/bundle/clusterissuers') + function getClusterIssuers() { + // watchDependency('discriminator#/bundle') + const clusterIssuers = getValue(discriminator, '/bundle/clusterissuers') - return clusterIssuers -} + return clusterIssuers + } -async function getNamespaces({ axios, storeGet }) { - const params = storeGet('/route/params') - const { user, cluster, group, version, resource } = params - try { - const resp = await axios.post( - `/clusters/${user}/${cluster}/proxy/identity.k8s.appscode.com/v1alpha1/selfsubjectnamespaceaccessreviews`, - { - apiVersion: 'identity.k8s.appscode.com/v1alpha1', - kind: 'SelfSubjectNamespaceAccessReview', - spec: { - resourceAttributes: [ - { - verb: 'create', - group: group, - version: version, - resource: resource, - }, - ], + async function getNamespaces() { + const params = storeGet('/route/params') + const { user, cluster, group, version, resource } = params + try { + const resp = await axios.post( + `/clusters/${user}/${cluster}/proxy/identity.k8s.appscode.com/v1alpha1/selfsubjectnamespaceaccessreviews`, + { + apiVersion: 'identity.k8s.appscode.com/v1alpha1', + kind: 'SelfSubjectNamespaceAccessReview', + spec: { + resourceAttributes: [ + { + verb: 'create', + group: group, + version: version, + resource: resource, + }, + ], + }, }, - }, - ) - if (resp.data?.status?.projects) { - const projects = resp.data?.status?.projects - let projectsNamespace = [] - projectsNamespace = Object.keys(projects).map((project) => ({ - project: project, - namespaces: projects[project].map((namespace) => ({ - text: namespace, - value: namespace, - })), - })) - return projectsNamespace - } else { - return resp.data?.status?.namespaces || [] + ) + if (resp.data?.status?.projects) { + const projects = resp.data?.status?.projects + let projectsNamespace = [] + projectsNamespace = Object.keys(projects).map((project) => ({ + project: project, + namespaces: projects[project].map((namespace) => ({ + text: namespace, + value: namespace, + })), + })) + return projectsNamespace + } else { + return resp.data?.status?.namespaces || [] + } + } catch (e) { + console.log(e) } - } catch (e) { - console.log(e) + return [] } - return [] -} - -function isRancherManaged({ storeGet }) { - const managers = storeGet('/cluster/clusterDefinition/result/clusterManagers') - const found = managers.find((item) => item === 'Rancher') - return !!found -} -function setTool({ commit }) { - commit('wizard/model$update', { - path: '/spec/backup/tool', - value: 'KubeStash', - force: true, - }) - return 'KubeStash' -} - -async function fetchJsons({ axios, itemCtx }) { - let ui = {} - let language = {} - let functions = {} - const { name, sourceRef, version, packageviewUrlPrefix } = itemCtx.chart - - try { - ui = await axios.get( - `${packageviewUrlPrefix}/create-ui.yaml?name=${name}&sourceApiGroup=${sourceRef.apiGroup}&sourceKind=${sourceRef.kind}&sourceNamespace=${sourceRef.namespace}&sourceName=${sourceRef.name}&version=${version}&format=json`, - ) - language = await axios.get( - `${packageviewUrlPrefix}/language.yaml?name=${name}&sourceApiGroup=${sourceRef.apiGroup}&sourceKind=${sourceRef.kind}&sourceNamespace=${sourceRef.namespace}&sourceName=${sourceRef.name}&version=${version}&format=json`, - ) - const functionString = await axios.get( - `${packageviewUrlPrefix}/functions.js?name=${name}&sourceApiGroup=${sourceRef.apiGroup}&sourceKind=${sourceRef.kind}&sourceNamespace=${sourceRef.namespace}&sourceName=${sourceRef.name}&version=${version}`, - ) - // declare evaluate the functionString to get the functions Object - const evalFunc = new Function(functionString.data || '') - functions = evalFunc() - } catch (e) { - console.log(e) + function isRancherManaged() { + const managers = storeGet('/cluster/clusterDefinition/result/clusterManagers') + const found = managers.find((item) => item === 'Rancher') + return !!found } - return { - ui: ui.data || {}, - language: language.data || {}, - functions, + function isKubedbUiPreset() { + const presetName = storeGet('/route/params/presetName') || '' + if (presetName === 'kubedb-ui-presets') return true + const enabledFeatures = getValue(discriminator, '/enabledFeatures') || [] + // watchDependency('discriminator#/enabledFeatures') + if (enabledFeatures?.includes('kubedb-ui-presets')) { + return true + } else return false } -} -function isKubedbUiPreset({ getValue, watchDependency, discriminator, storeGet }) { - const presetName = storeGet('/route/params/presetName') || '' - if (presetName === 'kubedb-ui-presets') return true - const enabledFeatures = getValue(discriminator, '/enabledFeatures') || [] - watchDependency('discriminator#/enabledFeatures') - if (enabledFeatures?.includes('kubedb-ui-presets')) { - return true - } else return false -} - -function fetchModes({ model, getValue, commit }, db) { - const arr = modes[db]?.availableModes || [] - const val = getValue(model, `/spec/admin/databases/${db}/mode/available`) - if (!val) - commit('wizard/model$update', { - path: `/spec/admin/databases/${db}/mode/available`, - value: arr, - force: true, - }) - return arr -} + function fetchModes(db) { + const arr = modes[db]?.availableModes || [] + const val = getValue(model, `/spec/admin/databases/${db}/mode/available`) + if (!val) + commit('wizard/model$update', { + path: `/spec/admin/databases/${db}/mode/available`, + value: arr, + force: true, + }) + return arr + } -function setDefaultMode({ getValue, model }, db) { - const modelDef = getValue(model, `/spec/admin/databases/${db}/mode/default`) - const def = modes[db]?.default || '' - if (modelDef === undefined) return def -} + function setDefaultMode(db) { + const modelDef = getValue(model, `/spec/admin/databases/${db}/mode/default`) + const def = modes[db]?.default || '' + // if (modelDef === undefined) return def + return def + } -function setStorageClass({ getValue, model, watchDependency, commit }) { - watchDependency('model#/spec/admin/storageClasses/available') - const classes = getValue(model, '/spec/admin/storageClasses/available') - if (classes.length === 1) - commit('wizard/model$update', { - path: '/spec/admin/storageClasses/default', - value: classes[0], - force: true, - }) -} + function setStorageClass() { + // watchDependency('model#/spec/admin/storageClasses/available') + const classes = getValue(model, '/spec/admin/storageClasses/available') || [] + if (classes.length === 1) return classes[0] + } -function preSelectClusterIssuer({ getValue, model, watchDependency, commit, discriminator }) { - const val = getValue(model, '/spec/admin/tls/default') - const clusterIssuers = getClusterIssuers({ watchDependency, getValue, discriminator }) - if (val) { - if (clusterIssuers.length) { + function preSelectClusterIssuer() { + const val = getValue(model, '/spec/admin/tls/default') + const clusterIssuers = getClusterIssuers() + if (val) { + if (clusterIssuers?.length) { + commit('wizard/model$update', { + path: '/spec/admin/clusterIssuers/available', + value: [clusterIssuers[0]], + force: true, + }) + } + } else { commit('wizard/model$update', { path: '/spec/admin/clusterIssuers/available', - value: [clusterIssuers[0]], + value: '', force: true, }) } - } else { - commit('wizard/model$update', { - path: '/spec/admin/clusterIssuers/available', - value: '', - force: true, - }) } -} -// machine profiles stuffs + // machine profiles stuffs + + function parseMemory(memory) { + if (memory == null || (typeof memory !== 'string' && typeof memory !== 'number')) return 0 + const units = { + B: 1, // Base unit (Bytes) + K: 1000, // 1 K = 1000 B + KB: 1000, // 1 KB = 1000 B + Ki: 1024, // 1 Ki = 1024 B + M: 1000 * 1000, // 1 M = 1000 K + MB: 1000 * 1000, // 1 MB = 1000 KB + Mi: 1024 * 1024, // 1 Mi = 1024 Ki + G: 1000 * 1000 * 1000, // 1 G = 1000 M + GB: 1000 * 1000 * 1000, // 1 GB = 1000 MB + Gi: 1024 * 1024 * 1024, // 1 Gi = 1024 Mi + T: 1000 * 1000 * 1000 * 1000, // 1 T = 1000 G + TB: 1000 * 1000 * 1000 * 1000, // 1 TB = 1000 GB + Ti: 1024 * 1024 * 1024 * 1024, // 1 Ti = 1024 Gi + P: 1000 * 1000 * 1000 * 1000 * 1000, // 1 P = 1000 T + PB: 1000 * 1000 * 1000 * 1000 * 1000, // 1 PB = 1000 TB + Pi: 1024 * 1024 * 1024 * 1024 * 1024, // 1 Pi = 1024 Ti + } -let initialMachines = [] -function hasMachineProfiles({ getValue, model, commit }) { - const val = getValue(model, '/spec/admin/machineProfiles/machines') || [] - initialMachines = val - commit('wizard/model$update', { - path: '/spec/admin/machineProfiles/machines', - value: sortMachines(val), - force: true, - }) + // If memory is just a number (int or float), treat it as bytes + if (/^\d+(\.\d+)?$/.test(memory)) { + return parseFloat(memory) + } - return !!val?.length -} + // Match float or int followed by optional unit + const match = memory.match(/^(\d+(?:\.\d+)?)(B|KB|Ki|K|M|MB|Mi|G|GB|Gi|T|TB|Ti|P|PB|Pi)?$/) + if (match) { + const value = parseFloat(match[1]) + const unit = match[2] || 'B' + return value * (units[unit] || 1) + } -function isEnableProfiles({ watchDependency, getValue, discriminator }) { - watchDependency('discriminator#/enableProfiles') - return getValue(discriminator, '/enableProfiles') || false -} + return 0 // Default fallback for unexpected formats + } -function onMachineProfilesToggle({ getValue, commit, discriminator }) { - const toggle = getValue(discriminator, '/enableProfiles') || false + function parseCPU(cpu) { + if (cpu == null) return 0 + if (typeof cpu === 'number') return cpu // If already a number, return as is - if (!toggle) { - commit('wizard/model$update', { - path: '/spec/admin/machineProfiles', - value: { available: [], default: '', machines: [] }, - force: true, + const match = cpu.match(/^(\d+(?:\.\d+)?)(m)?$/) + if (!match) return 0 // Invalid format, return 0 + + if (cpu.endsWith('m')) { + return parseFloat(cpu) / 1000 // Convert '500m' to 0.5 + } + + return parseFloat(cpu) // Convert '1', '0.5' directly + } + + function sortMachines(arr) { + if (!Array.isArray(arr)) return [] + return arr.sort((a, b) => { + const memA = parseMemory(a?.limits?.memory) + const memB = parseMemory(b?.limits?.memory) + + if (memA !== memB) { + return memA - memB + } + + const cpuA = parseCPU(a?.limits?.cpu) + const cpuB = parseCPU(b?.limits?.cpu) + + return cpuA - cpuB }) - } else { + } + + let initialMachines = [] + function hasMachineProfiles() { + const val = getValue(model, '/spec/admin/machineProfiles/machines') || [] + initialMachines = val commit('wizard/model$update', { path: '/spec/admin/machineProfiles/machines', - value: initialMachines, + value: sortMachines(val), force: true, }) - } -} + commit('wizard/temp$update', { + path: '/enableProfiles', + value: !!val?.length, + }) -function getMachines({ watchDependency, getValue, model, commit, discriminator }) { - watchDependency('model#/spec/admin/machineProfiles/machines') - watchDependency('discriminator#/useCustomProfile') - let machines = getValue(model, '/spec/admin/machineProfiles/machines') || [] + return !!val?.length + } - commit('wizard/model$update', { - path: '/spec/admin/machineProfiles/machines', - value: sortMachines(machines), - force: true, - }) + function isEnableProfiles() { + // watchDependency('discriminator#/enableProfiles') + return getValue(discriminator, '/enableProfiles') || false + } - let mappedMachine = machines?.map((machine) => ({ - text: machine.id, - value: machine.id, - })) + function onMachineProfilesToggle() { + const toggle = getValue(discriminator, '/enableProfiles') || false - const hasCustom = getValue(discriminator, '/useCustomProfile') - if (hasCustom) mappedMachine = [{ text: 'custom', value: 'custom' }, ...mappedMachine] - else if (hasCustom === false) - mappedMachine = mappedMachine.filter((item) => item.value !== 'custom') + if (!toggle) { + commit('wizard/model$update', { + path: '/spec/admin/machineProfiles', + value: { available: [], default: '', machines: [] }, + force: true, + }) + } else { + commit('wizard/model$update', { + path: '/spec/admin/machineProfiles/machines', + value: initialMachines, + force: true, + }) + } + } - return mappedMachine -} + function getMachines() { + // watchDependency('model#/spec/admin/machineProfiles/machines') + // watchDependency('discriminator#/useCustomProfile') + let machines = getValue(model, '/spec/admin/machineProfiles/machines') || [] + + let mappedMachine = + machines + ?.filter((machine) => machine?.id && machine?.limits?.cpu && machine?.limits?.memory) + .map((machine) => ({ + text: machine.id, + value: machine.id, + })) || [] + + const hasCustom = getValue(discriminator, '/useCustomProfile') + if (hasCustom) mappedMachine = [{ text: 'custom', value: 'custom' }, ...mappedMachine] + else if (hasCustom === false) + mappedMachine = mappedMachine.filter((item) => item.value !== 'custom') + + commit('wizard/temp$update', { + path: '/spec/admin/machineProfiles/available', + value: mappedMachine?.map((item) => item.value) || [], + }) + return mappedMachine + } -function setCustomAvlMachine({ getValue, discriminator, model, commit, watchDependency }) { - watchDependency('discriminator#/useCustomProfile') - const hasCustom = getValue(discriminator, '/useCustomProfile') - let avl = getValue(model, '/spec/admin/machineProfiles/available') || [] + function setCustomAvlMachine() { + // watchDependency('discriminator#/useCustomProfile') + const hasCustom = getValue(discriminator, '/useCustomProfile') + let avl = getValue(model, '/spec/admin/machineProfiles/available') || [] - if (hasCustom) avl = ['custom', ...avl] - else avl = avl.filter((item) => item !== 'custom') + avl = avl.map((item) => ({ text: item, value: item })) + avl = avl.filter((item) => item.value !== 'custom') - return avl -} + if (hasCustom) { + avl = [{ text: 'custom', value: 'custom' }, ...avl] + } + return avl + } -function getAvailableMachines({ watchDependency, getValue, model }) { - watchDependency('model#/spec/admin/machineProfiles/available') - let machines = getValue(model, '/spec/admin/machineProfiles/available') || [] - return machines -} + function onAvailableMachineChange() { + const setMachines = getValue(model, '/spec/admin/machineProfiles/available') || [] + const loadedMachines = getValue(discriminator, '/spec/admin/machineProfiles/available') || [] + const hasCustom = getValue(discriminator, '/useCustomProfile') -function isKnownProfileToggled({ watchDependency, discriminator, getValue }) { - watchDependency('discriminator#/profileChoseSwitch') - const val = getValue(discriminator, '/profileChoseSwitch') - return val -} + // filter out unselected machines from from available machine list + let res = setMachines?.filter((item) => loadedMachines?.includes(item)) || [] + res = res?.filter((item) => item !== 'custom') + if (hasCustom) res = ['custom', ...res] + res = res?.map((item) => ({ text: item, value: item })) || [] -function getKnownProfile({ getValue, model }) { - const machineProfiles = getValue(model, '/spec/admin/machineProfiles/machines') + return res + } - // filtering machine list, if it's already in the model we don't need to show it - const filteredMachines = machineList.filter( - (machine) => !machineProfiles.some((m) => m.id === machine), - ) - const mappedMachine = filteredMachines.map((item) => ({ - text: item, - value: item.toLowerCase(), - subText: `CPU: ${machinesMap[item].resources.limits.cpu}, memory: ${machinesMap[item].resources.limits.memory}`, - })) - return mappedMachine -} + function getAvailableMachines() { + // watchDependency('model#/spec/admin/machineProfiles/available') + let machines = getValue(model, '/spec/admin/machineProfiles/available') || [] + return machines + } -function setLimits({ getValue, temporaryModel, discriminator, watchDependency }, type) { - watchDependency('discriminator#/profile') - const pro = getValue(discriminator, '/profile') || '' - if (!pro) { - const input = getValue(temporaryModel, `/profile/limits/${type}`) - return input + function isKnownProfileToggled(index) { + // watchDependency('discriminator#/profileChoseSwitch') + const val = getValue( + discriminator, + `/spec/admin/machineProfiles/machines/${index}/temp/profileChoseSwitch`, + ) + return val } - const profileDetails = machinesMap[pro] || {} - const limits = profileDetails.resources?.limits || {} - return limits[type] || '' -} -function getProfileName({ watchDependency, getValue, discriminator }) { - watchDependency('discriminator#/profile') - const pro = getValue(discriminator, '/profile') || '' - if (!pro) return - return pro -} + function getKnownProfile() { + const machineProfiles = getValue(model, '/spec/admin/machineProfiles/machines') -function hasCustomProfile({ getValue, model }) { - const machines = getValue(model, '/spec/admin/machineProfiles/available') - const hasCustom = machines.includes('custom') - return hasCustom -} + // filtering machine list, if it's already in the model we don't need to show it + const filteredMachines = machineList.filter( + (machine) => !machineProfiles.some((m) => m.id === machine), + ) + const mappedMachine = filteredMachines.map((item) => ({ + text: item, + value: item.toLowerCase(), + subText: `CPU: ${machinesMap[item].resources.limits.cpu}, memory: ${machinesMap[item].resources.limits.memory}`, + })) + return mappedMachine + } -function parseMemory(memory) { - const units = { - B: 1, // Base unit (Bytes) - K: 1000, // 1 K = 1000 B - KB: 1000, // 1 KB = 1000 B - Ki: 1024, // 1 Ki = 1024 B - M: 1000 * 1000, // 1 M = 1000 K - MB: 1000 * 1000, // 1 MB = 1000 KB - Mi: 1024 * 1024, // 1 Mi = 1024 Ki - G: 1000 * 1000 * 1000, // 1 G = 1000 M - GB: 1000 * 1000 * 1000, // 1 GB = 1000 MB - Gi: 1024 * 1024 * 1024, // 1 Gi = 1024 Mi - T: 1000 * 1000 * 1000 * 1000, // 1 T = 1000 G - TB: 1000 * 1000 * 1000 * 1000, // 1 TB = 1000 GB - Ti: 1024 * 1024 * 1024 * 1024, // 1 Ti = 1024 Gi - P: 1000 * 1000 * 1000 * 1000 * 1000, // 1 P = 1000 T - PB: 1000 * 1000 * 1000 * 1000 * 1000, // 1 PB = 1000 TB - Pi: 1024 * 1024 * 1024 * 1024 * 1024, // 1 Pi = 1024 Ti - } - - // If memory is just a number (int or float), treat it as bytes - if (/^\d+(\.\d+)?$/.test(memory)) { - return parseFloat(memory) - } - - // Match float or int followed by optional unit - const match = memory.match(/^(\d+(?:\.\d+)?)(B|KB|Ki|K|M|MB|Mi|G|GB|Gi|T|TB|Ti|P|PB|Pi)?$/) - if (match) { - const value = parseFloat(match[1]) - const unit = match[2] || 'B' - return value * (units[unit] || 1) - } - - return 0 // Default fallback for unexpected formats -} + function setLimits(type, index) { + // watchDependency('discriminator#/profile') + const pro = + getValue(discriminator, `/spec/admin/machineProfiles/machines/${index}/temp/profile`) || '' + if (!pro) { + const input = getValue( + discriminator, + `/spec/admin/machineProfiles/machines/${index}/temp/profile/limits/${type}`, + ) + return input + } + const profileDetails = machinesMap[pro] || {} + const limits = profileDetails.resources?.limits || {} + return limits[type] || '' + } -function parseCPU(cpu) { - if (typeof cpu === 'number') return cpu // If already a number, return as is + function getProfileName(index) { + // watchDependency('discriminator#/profile') + const pro = + getValue(discriminator, `/spec/admin/machineProfiles/machines/${index}/temp/profile`) || '' + if (!pro) return + return pro + } - const match = cpu.match(/^(\d+(?:\.\d+)?)(m)?$/) - if (!match) return 0 // Invalid format, return 0 + function onMachineProfileChange(index) { + const machines = getValue(discriminator, 'spec/admin/machineProfiles/machines') + const cleanedMachines = Array.isArray(machines) ? machines.map(({ temp, ...rest }) => rest) : [] - if (cpu.endsWith('m')) { - return parseFloat(cpu) / 1000 // Convert '500m' to 0.5 + commit('wizard/model$update', { + path: '/spec/admin/machineProfiles/machines', + value: sortMachines(cleanedMachines), + }) } - return parseFloat(cpu) // Convert '1', '0.5' directly -} + function hasCustomProfile() { + const machines = getValue(model, '/spec/admin/machineProfiles/available') + const hasCustom = machines.includes('custom') -function sortMachines(arr) { - return arr.sort((a, b) => { - const memA = parseMemory(a.limits.memory) - const memB = parseMemory(b.limits.memory) + commit('wizard/temp$update', { + path: '/useCustomProfile', + value: hasCustom, + }) + return hasCustom + } - if (memA !== memB) { - return memA - memB - } + function setMachineProfiles() { + const machines = getValue(model, '/spec/admin/machineProfiles/machines') || [] + return machines + } - const cpuA = parseCPU(a.limits.cpu) - const cpuB = parseCPU(b.limits.cpu) + async function fetchNames(type) { + // watchDependency(`model#/${type}/namespace`) + const username = storeGet('/route/params/user') + const clusterName = storeGet('/route/params/cluster') + const namespace = getValue(model, `/spec/backup/kubestash/${type}/namespace`) + const suffix = + type === 'encryptionSecret' + ? 'secrets' + : type === 'retentionPolicy' + ? 'retentionpolicies' + : 'backupstorages' + const core = suffix === 'secrets' ? 'core' : 'storage.kubestash.com' + const version = suffix === 'secrets' ? 'v1' : 'v1alpha1' + const url = `/clusters/${username}/${clusterName}/proxy/${core}/${version}/namespaces/${namespace}/${suffix}` + try { + if (namespace) { + const resp = await axios.get(url) + let names = resp?.data?.items + names = names.map((ele) => ele?.metadata?.name) + return names + } + } catch (e) { + console.log(e) + } + return [] + } - return cpuA - cpuB - }) -} + function onNodeSelectorChange() { + let nodeSelector = getValue(discriminator, '/spec/admin/nodeSelector') + if (nodeSelector) { + nodeSelector = Object.fromEntries( + Object.entries(nodeSelector).filter( + ([key, value]) => key?.toString().trim() !== '' || value?.toString().trim() !== '', + ), + ) + } + if (!nodeSelector || Object.entries(nodeSelector).length === 0) { + commit('wizard/model$delete', '/spec/admin/nodeSelector') + } else { + commit('wizard/model$update', { + path: '/spec/admin/nodeSelector', + value: nodeSelector, + force: true, + }) + } + } -return { - preSelectClusterIssuer, - isRancherManaged, - getOptions, - getNodeTopology, - FetchAllDbVersions, - isConfigureDb, - FetchDbVersions, - availableVersions, - clearDefaultVersion, - getPlacements, - getStorageClass, - getClusterIssuers, - getNamespaces, - isKubedbUiPreset, - FetchDbBundle, - setTool, - returnFalse, - checkModeToggle, - fetchJsons, - presetNameEqualsTo, - fetchModes, - availableModes, - setDefaultMode, - clearDefaultMode, - setStorageClass, - hasMachineProfiles, - isEnableProfiles, - getMachines, - onMachineProfilesToggle, - isKnownProfileToggled, - getKnownProfile, - setLimits, - getProfileName, - hasCustomProfile, - getAvailableMachines, - setCustomAvlMachine, + return { + preSelectClusterIssuer, + isRancherManaged, + getOptions, + getNodeTopology, + FetchAllDbVersions, + isConfigureDb, + FetchDbVersions, + availableVersions, + clearDefaultVersion, + getPlacements, + getStorageClass, + getClusterIssuers, + getNamespaces, + isKubedbUiPreset, + FetchDbBundle, + setTool, + returnFalse, + fetchJsons, + presetNameEqualsTo, + fetchModes, + availableModes, + setDefaultMode, + clearDefaultMode, + setStorageClass, + hasMachineProfiles, + isEnableProfiles, + getMachines, + onMachineProfilesToggle, + isKnownProfileToggled, + getKnownProfile, + setLimits, + getProfileName, + hasCustomProfile, + getAvailableMachines, + setCustomAvlMachine, + onMachineProfileChange, + setMachineProfiles, + fetchNames, + onNodeSelectorChange, + onAvailableMachineChange, + } }