diff --git a/charts/kubedbcom-hazelcast-editor-options/ui/create-ui.yaml b/charts/kubedbcom-hazelcast-editor-options/ui/create-ui.yaml index 5ba0c13399..e03e6da2af 100644 --- a/charts/kubedbcom-hazelcast-editor-options/ui/create-ui.yaml +++ b/charts/kubedbcom-hazelcast-editor-options/ui/create-ui.yaml @@ -27,7 +27,7 @@ step: schema: schema/properties/spec/properties/mode type: radio - if: - name: isEqualToModelPathValue|Replicaset|/spec/mode + name: isEqualToModelPathValue|Combined|/spec/mode type: function label: Replicaset number schema: schema/properties/spec/properties/replicas diff --git a/charts/opskubedbcom-cassandraopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-cassandraopsrequest-editor/ui/create-ui.yaml index cf4599994a..782190b639 100644 --- a/charts/opskubedbcom-cassandraopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-cassandraopsrequest-editor/ui/create-ui.yaml @@ -154,7 +154,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/resources + func: onMachineChange|node paths: - temp/properties/machine - elements: diff --git a/charts/opskubedbcom-cassandraopsrequest-editor/ui/functions.js b/charts/opskubedbcom-cassandraopsrequest-editor/ui/functions.js index 8f66f9f14f..7088cc411f 100644 --- a/charts/opskubedbcom-cassandraopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-cassandraopsrequest-editor/ui/functions.js @@ -416,9 +416,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/cassandras/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/cassandras/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -770,8 +771,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - const spec = dbDetails?.spec?.podTemplate?.spec - const limits = spec?.resources?.requests || spec?.containers?.[0]?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -821,7 +821,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -845,9 +845,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1783,23 +1782,10 @@ export const useFunc = (model) => { return data || 'No Data Found' } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - function isMachineValid() { const dbDetails = getValue(discriminator, '/dbDetails') const spec = dbDetails?.spec?.podTemplate?.spec - const limits = spec?.resources?.requests || spec?.containers?.[0]?.resources?.requests || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1810,6 +1796,20 @@ export const useFunc = (model) => { return false } + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + return limits + } + return { isMachineValid, fetchAliasOptions, diff --git a/charts/opskubedbcom-clickhouseopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-clickhouseopsrequest-editor/ui/create-ui.yaml index ecad5665f6..bba876fc9a 100644 --- a/charts/opskubedbcom-clickhouseopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-clickhouseopsrequest-editor/ui/create-ui.yaml @@ -154,7 +154,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/resources + func: onMachineChange|node paths: - temp/properties/machine - elements: diff --git a/charts/opskubedbcom-clickhouseopsrequest-editor/ui/functions.js b/charts/opskubedbcom-clickhouseopsrequest-editor/ui/functions.js index 3d3afa4b7f..2585f794da 100644 --- a/charts/opskubedbcom-clickhouseopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-clickhouseopsrequest-editor/ui/functions.js @@ -421,9 +421,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/clickhouses/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/clickhouses/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -782,8 +783,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const limits = containers[0]?.resources?.limits || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -833,10 +833,10 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const limits = containers[0]?.resources?.limits || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] + const type = dbDetails?.spec?.clusterTopology ? 'cluster' : 'standalone' let parsedInstance = {} try { @@ -845,8 +845,7 @@ export const useFunc = (model) => { console.log(e) parsedInstance = instance || {} } - - const machine = parsedInstance || 'custom' + const machine = parsedInstance[type] || 'custom' const machinePresets = machinesFromPreset.find((item) => item.id === machine) if (machinePresets) { @@ -858,9 +857,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1796,35 +1794,9 @@ export const useFunc = (model) => { return data || 'No Data Found' } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid() { const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const limits = containers[0]?.resources?.limits || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1835,10 +1807,25 @@ export const useFunc = (model) => { return false } + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + const isTopology = !!dbDetails?.spec?.clusterTopology + + const spec = isTopology + ? dbDetails?.spec?.clusterTopology?.cluster?.podTemplate?.spec + : dbDetails?.spec?.podTemplate?.spec + + const containers = spec?.containers ?? [] + + if (containers.length === 0) { + return spec?.resources?.requests ?? {} + } + const kind = dbDetails?.kind?.toLowerCase() + return containers.find((container) => container.name === kind)?.resources?.requests ?? {} + } + return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-documentdbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-documentdbopsrequest-editor/ui/create-ui.yaml index 4597ac8e14..2d25d2487b 100644 --- a/charts/opskubedbcom-documentdbopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-documentdbopsrequest-editor/ui/create-ui.yaml @@ -154,7 +154,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|documentdb|/spec/podTemplate/spec/resources + func: onMachineChange|documentdb paths: - temp/properties/machine - elements: @@ -218,10 +218,6 @@ step: label: Memory schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory showLabels: true type: horizontal-layout hideBlock: true diff --git a/charts/opskubedbcom-documentdbopsrequest-editor/ui/functions.js b/charts/opskubedbcom-documentdbopsrequest-editor/ui/functions.js index f9f33fae65..979a5de30d 100644 --- a/charts/opskubedbcom-documentdbopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-documentdbopsrequest-editor/ui/functions.js @@ -421,9 +421,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/documentdbs/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/documentdbs/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -782,11 +783,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} - + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] if (avlMachines.length) { @@ -835,10 +832,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -862,9 +856,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1813,25 +1806,9 @@ export const useFunc = (model) => { return limitVal } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid() { const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} - console.log(resource) + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1842,10 +1819,23 @@ export const useFunc = (model) => { return false } + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + return limits + } + return { isMachineValid, setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-druidopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-druidopsrequest-editor/ui/create-ui.yaml index 6e7ddf52f6..30210ff588 100644 --- a/charts/opskubedbcom-druidopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-druidopsrequest-editor/ui/create-ui.yaml @@ -240,7 +240,7 @@ step: name: isMachineValid|middleManagers type: custom watcher: - func: onMachineChange|middleManagers|/spec/topology/middleManagers/podTemplate/spec/containers + func: onMachineChange|middleManagers paths: - temp/properties/machine-middleManagers - elements: @@ -301,7 +301,7 @@ step: name: isMachineValid|historicals type: custom watcher: - func: onMachineChange|historicals|/spec/topology/historicals/podTemplate/spec/containers + func: onMachineChange|historicals paths: - temp/properties/machine-historicals - elements: @@ -362,7 +362,7 @@ step: name: isMachineValid|brokers type: custom watcher: - func: onMachineChange|brokers|/spec/topology/brokers/podTemplate/spec/containers + func: onMachineChange|brokers paths: - temp/properties/machine-brokers - elements: @@ -423,7 +423,7 @@ step: name: isMachineValid|coordinators type: custom watcher: - func: onMachineChange|coordinators|/spec/topology/coordinators/podTemplate/spec/containers + func: onMachineChange|coordinators paths: - temp/properties/machine-coordinators - elements: @@ -470,30 +470,6 @@ step: label: Coordinators showLabels: true type: block-layout - - elements: - - elements: - - init: - type: func - value: setExporter|cpu - label: CPU - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu - type: input - - init: - type: func - value: setExporter|memory - label: Memory - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - showLabels: true - type: horizontal-layout - hideBlock: true - label: Exporter - showLabels: true - type: block-layout if: name: ifRequestTypeEqualsTo|VerticalScaling type: function diff --git a/charts/opskubedbcom-druidopsrequest-editor/ui/functions.js b/charts/opskubedbcom-druidopsrequest-editor/ui/functions.js index 2003824c3e..f21f01b34e 100644 --- a/charts/opskubedbcom-druidopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-druidopsrequest-editor/ui/functions.js @@ -442,9 +442,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/druids/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/druids/${name}` try { const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -841,19 +842,7 @@ export const useFunc = (model) => { function getMachines(type) { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - - let limits = {} - - if (type === 'node' || !type) { - // Combined mode - limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || { cpu: '', memory: '' } - } else { - // Topology mode - specific node type - limits = dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.resources?.requests || { - cpu: '', - memory: '', - } - } + const limits = getLimits(type) const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -900,19 +889,7 @@ export const useFunc = (model) => { function setMachine(type) { const dbDetails = getValue(discriminator, '/dbDetails') - - let limits = {} - - if (type === 'node' || !type) { - // Combined mode - limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || { cpu: '', memory: '' } - } else { - // Topology mode - specific node type - limits = dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.resources?.requests || { - cpu: '', - memory: '', - } - } + const limits = getLimits(type) const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -935,9 +912,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, path) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine-${type}`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine-${type}`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -2056,38 +2032,9 @@ export const useFunc = (model) => { } } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid(type) { const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} - + const limits = getLimits(type) const selectedMachine = getValue(discriminator, `/machine-${type}`) const selectedLimits = { cpu: selectedMachine?.cpu, memory: selectedMachine?.memory } @@ -2097,6 +2044,23 @@ export const useFunc = (model) => { return false } + function getLimits(type) { + const dbDetails = getValue(discriminator, '/dbDetails') + const isTopology = !!dbDetails?.spec?.topology + + const spec = isTopology + ? dbDetails?.spec?.topology?.[type]?.podTemplate?.spec + : dbDetails?.spec?.podTemplate?.spec + + const containers = spec?.containers ?? [] + + if (containers.length === 0) { + return spec?.resources?.requests ?? {} + } + const kind = dbDetails?.kind?.toLowerCase() + return containers.find((container) => container.name === kind)?.resources?.requests ?? {} + } + // ============================================================ // RETURN ALL EXPORTED FUNCTIONS // ============================================================ @@ -2149,8 +2113,6 @@ export const useFunc = (model) => { // Vertical scaling functions isVerticalScaleTopologyRequired, - setExporter, - onExporterResourceChange, isMachineValid, // Volume expansion functions diff --git a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml index d94cf37398..6f6de4d648 100644 --- a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/create-ui.yaml @@ -220,10 +220,10 @@ step: adjustments and make informed decisions for your database setup type: machine-compare validation: - name: isMachineValid + name: isMachineValid|node type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/resources + func: onMachineChange|node paths: - temp/properties/machine-node - elements: @@ -290,8 +290,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|master + type: custom watcher: - func: onMachineChange|master|/spec/topology/master/resources + func: onMachineChange|master paths: - temp/properties/machine-master - elements: @@ -358,8 +361,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|data + type: custom watcher: - func: onMachineChange|data|/spec/topology/data/resources + func: onMachineChange|data paths: - temp/properties/machine-data - elements: @@ -426,8 +432,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|ingest + type: custom watcher: - func: onMachineChange|ingest|/spec/topology/ingest/resources + func: onMachineChange|ingest paths: - temp/properties/machine-ingest - elements: @@ -494,8 +503,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|ml + type: custom watcher: - func: onMachineChange|ml|/spec/topology/ml/resources + func: onMachineChange|ml paths: - temp/properties/machine-ml - elements: @@ -562,8 +574,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|transform + type: custom watcher: - func: onMachineChange|transform|/spec/topology/transform/resources + func: onMachineChange|transform paths: - temp/properties/machine-transform - elements: @@ -630,8 +645,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|dataCold + type: custom watcher: - func: onMachineChange|dataCold|/spec/topology/dataCold/resources + func: onMachineChange|dataCold paths: - temp/properties/machine-dataCold - elements: @@ -698,8 +716,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|dataContent + type: custom watcher: - func: onMachineChange|dataContent|/spec/topology/dataContent/resources + func: onMachineChange|dataContent paths: - temp/properties/machine-dataContent - elements: @@ -766,8 +787,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|dataFrozen + type: custom watcher: - func: onMachineChange|dataFrozen|/spec/topology/dataFrozen/resources + func: onMachineChange|dataFrozen paths: - temp/properties/machine-dataFrozen - elements: @@ -834,8 +858,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|dataHot + type: custom watcher: - func: onMachineChange|dataHot|/spec/topology/dataHot/resources + func: onMachineChange|dataHot paths: - temp/properties/machine-dataHot - elements: @@ -902,8 +929,11 @@ step: subtitle: Compare your current machine configuration with the proposed resource adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|dataWarm + type: custom watcher: - func: onMachineChange|dataWarm|/spec/topology/dataWarm/resources + func: onMachineChange|dataWarm paths: - temp/properties/machine-dataWarm - elements: @@ -978,10 +1008,6 @@ step: label: Memory schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory showLabels: true type: horizontal-layout hideBlock: true diff --git a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/functions.js b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/functions.js index b9374a8d34..d3c09db6f7 100644 --- a/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-elasticsearchopsrequest-editor/ui/functions.js @@ -451,9 +451,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/elasticsearches/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/elasticsearches/${name}` try { const resp = await axios.get(url) @@ -915,16 +916,7 @@ export const useFunc = (model) => { function getMachines(type) { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - - // Determine the resource path based on type - let limits = { cpu: '', memory: '' } - if (type === 'node' || !type) { - // Combined mode - limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || limits - } else { - // Topology mode - specific node type - limits = dbDetails?.spec?.topology?.[type]?.resources?.requests || limits - } + const limits = getLimits(type) const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -975,16 +967,7 @@ export const useFunc = (model) => { function setMachine(type) { const dbDetails = getValue(discriminator, '/dbDetails') - - // Determine the resource path based on type - let limits = { cpu: '', memory: '' } - if (type === 'node' || !type) { - // Combined mode - limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || limits - } else { - // Topology mode - specific node type - limits = dbDetails?.spec?.topology?.[type]?.resources?.requests || limits - } + const limits = getLimits(type) const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -1007,9 +990,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine-${type}`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine-${type}`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1974,7 +1956,9 @@ export const useFunc = (model) => { } const topology = spec?.topology || {} - return !!topology[type]?.resources + const containers = topology[type]?.podTemplate?.spec?.containers || [] + const kind = dbDetails?.kind?.toLowerCase() + return !!containers.find((container) => container.name === kind)?.resources } function hasVolumeExpansion(type) { @@ -2002,23 +1986,11 @@ export const useFunc = (model) => { return limitVal } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - - function isMachineValid() { + function isMachineValid(type) { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits(type) - const selectedMachine = getValue(discriminator, '/machine-node') || {} + const selectedMachine = getValue(discriminator, `/machine-${type}`) || {} const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } if (JSON.stringify(limits) === JSON.stringify(selectedLimits)) { @@ -2027,6 +1999,20 @@ export const useFunc = (model) => { return false } + function getLimits(type) { + const dbDetails = getValue(discriminator, '/dbDetails') + const isTopology = !!dbDetails?.spec?.topology + + const spec = isTopology ? dbDetails?.spec?.topology?.[type] : dbDetails?.spec?.podTemplate?.spec + let containers = spec?.containers ?? [] + + if (containers.length === 0) { + containers = spec?.podTemplate?.spec?.containers ?? [] + } + const kind = dbDetails?.kind?.toLowerCase() + return containers.find((container) => container.name === kind)?.resources?.requests ?? {} + } + // ===================================================== // Return all exported functions // ===================================================== @@ -2091,7 +2077,6 @@ export const useFunc = (model) => { // Vertical scaling functions isVerticalScaleTopologyRequired, setExporter, - onExporterResourceChange, // Volume expansion functions checkVolume, diff --git a/charts/opskubedbcom-hanadbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-hanadbopsrequest-editor/ui/create-ui.yaml index 5deaddb56c..a67398cb6a 100644 --- a/charts/opskubedbcom-hanadbopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-hanadbopsrequest-editor/ui/create-ui.yaml @@ -95,7 +95,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/resources + func: onMachineChange|node paths: - temp/properties/machine - elements: @@ -145,6 +145,26 @@ step: label: Node Selection showLabels: true type: block-layout + - elements: + - elements: + - init: + type: func + value: setExporter|cpu + label: CPU + schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu + type: input + - init: + type: func + value: setExporter|memory + label: Memory + schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory + type: input + showLabels: true + type: horizontal-layout + hideBlock: true + label: Exporter + showLabels: true + type: block-layout label: HanaDB vertical scaling showLabels: false type: block-layout diff --git a/charts/opskubedbcom-hanadbopsrequest-editor/ui/functions.js b/charts/opskubedbcom-hanadbopsrequest-editor/ui/functions.js index 26d8e5363c..de1a29eb73 100644 --- a/charts/opskubedbcom-hanadbopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-hanadbopsrequest-editor/ui/functions.js @@ -416,9 +416,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/hanadbs/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/hanadbs/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -737,9 +738,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1688,24 +1688,17 @@ export const useFunc = (model) => { return limitVal } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function getLimits() { const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } return limits } @@ -1724,7 +1717,6 @@ export const useFunc = (model) => { return { isMachineValid, setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-hazelcastopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-hazelcastopsrequest-editor/ui/create-ui.yaml index 79340fa32b..af69b8ca17 100644 --- a/charts/opskubedbcom-hazelcastopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-hazelcastopsrequest-editor/ui/create-ui.yaml @@ -154,7 +154,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|hazelcast|/spec/podTemplate/spec/resources + func: onMachineChange|hazelcast paths: - temp/properties/machine - elements: diff --git a/charts/opskubedbcom-hazelcastopsrequest-editor/ui/functions.js b/charts/opskubedbcom-hazelcastopsrequest-editor/ui/functions.js index dc0f36c57e..b8f4fa3e7b 100644 --- a/charts/opskubedbcom-hazelcastopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-hazelcastopsrequest-editor/ui/functions.js @@ -416,9 +416,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/hazelcasts/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/hazelcasts/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -844,9 +845,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1782,37 +1782,17 @@ export const useFunc = (model) => { return data || 'No Data Found' } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function getLimits() { const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } return limits } diff --git a/charts/opskubedbcom-igniteopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-igniteopsrequest-editor/ui/create-ui.yaml index a1bea14814..8cd7f397ca 100644 --- a/charts/opskubedbcom-igniteopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-igniteopsrequest-editor/ui/create-ui.yaml @@ -155,7 +155,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/resources + func: onMachineChange|node paths: - temp/properties/machine - elements: diff --git a/charts/opskubedbcom-igniteopsrequest-editor/ui/functions.js b/charts/opskubedbcom-igniteopsrequest-editor/ui/functions.js index dbbd6f5374..bb76b1c0d6 100644 --- a/charts/opskubedbcom-igniteopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-igniteopsrequest-editor/ui/functions.js @@ -421,9 +421,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/ignites/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/ignites/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -833,9 +834,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1771,37 +1771,17 @@ export const useFunc = (model) => { return data || 'No Data Found' } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function getLimits() { const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } return limits } @@ -1821,8 +1801,6 @@ export const useFunc = (model) => { return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml index 4b316ea66b..0207674d6c 100644 --- a/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-kafkaopsrequest-editor/ui/create-ui.yaml @@ -169,10 +169,10 @@ step: adjustments and make informed decisions for your database setup type: machine-compare validation: - name: isMachineValid + name: isMachineValid|node type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/containers + func: onMachineChange|node paths: - temp/properties/machine-node - elements: @@ -239,8 +239,11 @@ step: subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|broker + type: custom watcher: - func: onMachineChange|broker|/spec/topology/broker/resources + func: onMachineChange|broker paths: - temp/properties/machine-broker - elements: @@ -303,8 +306,11 @@ step: subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|controller + type: custom watcher: - func: onMachineChange|controller|/spec/topology/controller/resources + func: onMachineChange|controller paths: - temp/properties/machine-controller - elements: @@ -357,30 +363,6 @@ step: label: Controller Vertical Scaling showLabels: true type: block-layout - - elements: - - elements: - - init: - type: func - value: setExporter|cpu - label: CPU - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu - type: input - - init: - type: func - value: setExporter|memory - label: Memory - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - showLabels: true - type: horizontal-layout - hideBlock: true - label: Exporter - showLabels: true - type: block-layout if: name: ifDbTypeEqualsTo|Topology|verticalScaling type: function diff --git a/charts/opskubedbcom-kafkaopsrequest-editor/ui/functions.js b/charts/opskubedbcom-kafkaopsrequest-editor/ui/functions.js index 29f104d293..9cd7dc380d 100644 --- a/charts/opskubedbcom-kafkaopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-kafkaopsrequest-editor/ui/functions.js @@ -422,9 +422,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/kafkas/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/kafkas/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -789,13 +790,7 @@ export const useFunc = (model) => { function getMachines(type) { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - // const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.limits || {} - const limits = (type && type !== 'node' - ? dbDetails?.spec?.topology?.[type]?.resources?.requests - : dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests) || { - cpu: '', - memory: '', - } + const limits = getLimits(type) const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -845,13 +840,7 @@ export const useFunc = (model) => { function setMachine(type) { const dbDetails = getValue(discriminator, '/dbDetails') - // const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.limits || {} - const limits = (type && type !== 'node' - ? dbDetails?.spec?.topology?.[type]?.resources?.requests - : dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests) || { - cpu: '', - memory: '', - } + const limits = getLimits(type) const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -873,9 +862,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine-${type}`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine-${type}`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1788,48 +1776,35 @@ export const useFunc = (model) => { return !!(model && model.alias) } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) + function isMachineValid(type) { + const dbDetails = getValue(discriminator, '/dbDetails') + const limits = getLimits(type) - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) + const selectedMachine = getValue(discriminator, `/machine-${type}`) || {} + const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } - if (reqVal) return reqVal + if (JSON.stringify(limits) === JSON.stringify(selectedLimits)) { + return 'Resource limits are same as current machine configuration. Please select different resources or machine preset.' } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) + return false } - function isMachineValid() { + function getLimits(type) { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const isTopology = !!dbDetails?.spec?.topology - const selectedMachine = getValue(discriminator, '/machine-node') || {} - const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } + const spec = isTopology ? dbDetails?.spec?.topology?.[type] : dbDetails?.spec?.podTemplate?.spec + let containers = spec?.containers ?? [] - if (JSON.stringify(limits) === JSON.stringify(selectedLimits)) { - return 'Resource limits are same as current machine configuration. Please select different resources or machine preset.' + if (containers.length === 0) { + containers = spec?.podTemplate?.spec?.containers ?? [] } - return false + const kind = dbDetails?.kind?.toLowerCase() + return containers.find((container) => container.name === kind)?.resources?.requests ?? {} } return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml index f1badc9451..0cf47dddc9 100644 --- a/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-mariadbopsrequest-editor/ui/create-ui.yaml @@ -153,7 +153,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|mariadb|/spec/podTemplate/spec/resources + func: onMachineChange|mariadb paths: - temp/properties/machine - elements: @@ -216,10 +216,6 @@ step: label: Memory schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory showLabels: true type: horizontal-layout hideBlock: true diff --git a/charts/opskubedbcom-mariadbopsrequest-editor/ui/functions.js b/charts/opskubedbcom-mariadbopsrequest-editor/ui/functions.js index 66876bb754..3d6167d7ca 100644 --- a/charts/opskubedbcom-mariadbopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-mariadbopsrequest-editor/ui/functions.js @@ -421,9 +421,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/mariadbs/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/mariadbs/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -773,7 +774,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -823,7 +824,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -847,9 +848,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1774,21 +1774,9 @@ export const useFunc = (model) => { return limitVal } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1799,10 +1787,23 @@ export const useFunc = (model) => { return false } + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + return limits + } + return { isMachineValid, setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml index 9bcf843d8f..b1bda8cb51 100644 --- a/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-memcachedopsrequest-editor/ui/create-ui.yaml @@ -138,7 +138,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|memcached|/spec/podTemplate/spec/resources + func: onMachineChange|memcached paths: - temp/properties/machine - elements: @@ -199,20 +199,16 @@ step: - elements: - init: type: func - value: setExporter|memcached|cpu + value: setExporter|cpu label: CPU schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu type: input - init: type: func - value: setExporter|memcached|memory + value: setExporter|memory label: Memory schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/memory type: input - watcher: - func: onExporterResourceChange|memcached - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/memory showLabels: true type: horizontal-layout hideBlock: true diff --git a/charts/opskubedbcom-memcachedopsrequest-editor/ui/functions.js b/charts/opskubedbcom-memcachedopsrequest-editor/ui/functions.js index 4f1b970fb8..9db8361961 100644 --- a/charts/opskubedbcom-memcachedopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-memcachedopsrequest-editor/ui/functions.js @@ -412,9 +412,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/memcacheds/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/memcacheds/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -755,7 +756,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -805,7 +806,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -827,9 +828,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1535,21 +1535,9 @@ export const useFunc = (model) => { return limitVal } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1560,10 +1548,23 @@ export const useFunc = (model) => { return false } + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + return limits + } + return { isMachineValid, setExporter, - onExporterResourceChange, fetchJsons, returnFalse, isRancherManaged, diff --git a/charts/opskubedbcom-milvusopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-milvusopsrequest-editor/ui/create-ui.yaml index 38515abbdc..71f92632ba 100644 --- a/charts/opskubedbcom-milvusopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-milvusopsrequest-editor/ui/create-ui.yaml @@ -194,7 +194,7 @@ step: name: isMachineValid|node type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/resources + func: onMachineChange|node paths: - temp/properties/machine-node - elements: @@ -258,7 +258,7 @@ step: name: isMachineValid|datanode type: custom watcher: - func: onMachineChange|datanode|/spec/topology/distributed/datanode/podTemplate/spec/resources + func: onMachineChange|datanode paths: - temp/properties/machine-datanode - elements: @@ -322,7 +322,7 @@ step: name: isMachineValid|mixcoord type: custom watcher: - func: onMachineChange|mixcoord|/spec/topology/distributed/mixcoord/podTemplate/spec/resources + func: onMachineChange|mixcoord paths: - temp/properties/machine-mixcoord - elements: @@ -386,7 +386,7 @@ step: name: isMachineValid|proxy type: custom watcher: - func: onMachineChange|proxy|/spec/topology/distributed/proxy/podTemplate/spec/resources + func: onMachineChange|proxy paths: - temp/properties/machine-proxy - elements: @@ -450,7 +450,7 @@ step: name: isMachineValid|querynode type: custom watcher: - func: onMachineChange|querynode|/spec/topology/distributed/querynode/podTemplate/spec/resources + func: onMachineChange|querynode paths: - temp/properties/machine-querynode - elements: @@ -514,7 +514,7 @@ step: name: isMachineValid|streamingnode type: custom watcher: - func: onMachineChange|streamingnode|/spec/topology/distributed/streamingnode/podTemplate/spec/resources + func: onMachineChange|streamingnode paths: - temp/properties/machine-streamingnode - elements: diff --git a/charts/opskubedbcom-milvusopsrequest-editor/ui/functions.js b/charts/opskubedbcom-milvusopsrequest-editor/ui/functions.js index 8a5e9ac0eb..1ea947e2e1 100644 --- a/charts/opskubedbcom-milvusopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-milvusopsrequest-editor/ui/functions.js @@ -414,9 +414,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/milvuses/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/milvuses/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -729,16 +730,7 @@ export const useFunc = (model) => { function getMachines(type) { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - let limits = {} - if (type === 'node' || !type) { - limits = dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests || { - cpu: '', - memory: '', - } - } else { - limits = dbDetails?.spec?.topology?.distributed?.[type]?.podTemplate?.spec?.containers?.[0] - ?.resources?.requests || { cpu: '', memory: '' } - } + const limits = getLimits(type) const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -788,16 +780,7 @@ export const useFunc = (model) => { function setMachine(type) { const dbDetails = getValue(discriminator, '/dbDetails') - let limits = {} - if (type === 'node' || !type) { - limits = dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests || { - cpu: '', - memory: '', - } - } else { - limits = dbDetails?.spec?.topology?.distributed?.[type]?.podTemplate?.spec?.containers?.[0] - ?.resources?.requests || { cpu: '', memory: '' } - } + const limits = getLimits(type) const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -821,8 +804,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - const selectedMachine = getValue(discriminator, `/machine-${type}`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine-${type}`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1589,41 +1572,9 @@ export const useFunc = (model) => { return !!(model && model.alias) } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid(type) { const dbDetails = getValue(discriminator, '/dbDetails') - let limits = {} - if (type === 'node' || !type) { - limits = dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests || {} - } else { - limits = - dbDetails?.spec?.topology?.distributed?.[type]?.podTemplate?.spec?.containers?.[0] - ?.resources?.requests || {} - } + const limits = getLimits(type) const selectedMachine = getValue(discriminator, `/machine-${type}`) const selectedLimits = { cpu: selectedMachine?.cpu, memory: selectedMachine?.memory } @@ -1634,10 +1585,24 @@ export const useFunc = (model) => { return false } + function getLimits(type) { + const dbDetails = getValue(discriminator, '/dbDetails') + const isTopology = !!(dbDetails?.spec?.topology?.mode !== 'Standalone') + + const spec = isTopology + ? dbDetails?.spec?.topology?.distributed?.[type] + : dbDetails?.spec?.podTemplate?.spec + let containers = spec?.containers ?? [] + + if (containers.length === 0) { + containers = spec?.podTemplate?.spec?.containers ?? [] + } + const kind = dbDetails?.kind?.toLowerCase() + return containers.find((container) => container.name === kind)?.resources?.requests ?? {} + } + return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml index 8754d1994f..169754ea76 100644 --- a/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-mongodbopsrequest-editor/ui/create-ui.yaml @@ -238,7 +238,7 @@ step: name: isMachineValid|standalone type: custom watcher: - func: onMachineChange|standalone|/spec/podTemplate/spec/resources + func: onMachineChange|standalone paths: - temp/properties/machine-standalone - elements: @@ -307,7 +307,7 @@ step: name: isMachineValid|replicaSet type: custom watcher: - func: onMachineChange|replicaSet|/spec/podTemplate/spec/resources + func: onMachineChange|replicaSet paths: - temp/properties/machine-replicaSet - elements: @@ -376,8 +376,11 @@ step: subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|configServer + type: custom watcher: - func: onMachineChange|configServer|/spec/shardTopology/configServer/podTemplate/spec/resources + func: onMachineChange|configServer paths: - temp/properties/machine-configServer - elements: @@ -441,8 +444,11 @@ step: subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|mongos + type: custom watcher: - func: onMachineChange|mongos|/spec/shardTopology/mongos/podTemplate/spec/resources + func: onMachineChange|mongos paths: - temp/properties/machine-mongos - elements: @@ -506,8 +512,11 @@ step: subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid|shard + type: custom watcher: - func: onMachineChange|shard|/spec/shardTopology/shard/podTemplate/spec/resources + func: onMachineChange|shard paths: - temp/properties/machine-shard - elements: @@ -581,10 +590,6 @@ step: label: Memory schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory showLabels: true type: horizontal-layout hideBlock: true diff --git a/charts/opskubedbcom-mongodbopsrequest-editor/ui/functions.js b/charts/opskubedbcom-mongodbopsrequest-editor/ui/functions.js index b09fbe4f5c..295731d995 100644 --- a/charts/opskubedbcom-mongodbopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-mongodbopsrequest-editor/ui/functions.js @@ -432,9 +432,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/mongodbs/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/mongodbs/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -810,13 +811,7 @@ export const useFunc = (model) => { function getMachines(type) { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - // const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.limits || {} - const limits = (type === 'replicaSet' || type === 'standalone' - ? dbDetails?.spec?.podTemplate?.spec?.resources?.requests - : dbDetails?.spec?.shardTopology?.[type]?.podTemplate?.spec?.resources?.requests) || { - cpu: '', - memory: '', - } + const limits = getLimits(type) const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -866,13 +861,7 @@ export const useFunc = (model) => { function setMachine(type) { const dbDetails = getValue(discriminator, '/dbDetails') - // const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.limits || {} - const limits = (type === 'replicaSet' || type === 'standalone' - ? dbDetails?.spec?.podTemplate?.spec?.resources?.requests - : dbDetails?.spec?.shardTopology?.[type]?.podTemplate?.spec?.resources?.requests) || { - cpu: '', - memory: '', - } + const limits = getLimits(type) const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -894,9 +883,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine-${type}`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine-${type}`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1850,27 +1838,9 @@ export const useFunc = (model) => { return limitVal } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid(type) { const dbDetails = getValue(discriminator, '/dbDetails') - - const limits = (type === 'replicaSet' || type === 'standalone' - ? dbDetails?.spec?.podTemplate?.spec?.resources?.requests - : dbDetails?.spec?.shardTopology?.[type]?.podTemplate?.spec?.resources?.requests) || { - cpu: '', - memory: '', - } + const limits = getLimits(type) const selectedMachine = getValue(discriminator, `/machine-${type}`) const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1881,10 +1851,26 @@ export const useFunc = (model) => { return false } + function getLimits(type) { + const dbDetails = getValue(discriminator, '/dbDetails') + const isTopology = !!dbDetails?.spec?.shardTopology + + const spec = isTopology + ? dbDetails?.spec?.shardTopology?.[type] + : dbDetails?.spec?.podTemplate?.spec + let containers = spec?.containers ?? [] + + if (containers.length === 0) { + if (spec?.resources?.requests) return spec?.resources?.requests + containers = spec?.podTemplate?.spec?.containers ?? [] + } + const kind = dbDetails?.kind?.toLowerCase() + return containers.find((container) => container.name === kind)?.resources?.requests ?? {} + } + return { isMachineValid, setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml index 966d5dc3b0..f00a616ffd 100644 --- a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/create-ui.yaml @@ -151,7 +151,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|mssqlserver|/spec/podTemplate/spec/containers + func: onMachineChange|mssqlserver paths: - temp/properties/machine - elements: @@ -217,44 +217,12 @@ step: label: Memory schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory showLabels: true type: horizontal-layout hideBlock: true label: Exporter showLabels: true type: block-layout - - elements: - - init: - type: func - value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/requests/cpu|/spec/verticalScaling/coordinator/resources/requests/cpu - label: CPU Requests - schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/cpu - type: input - - init: - type: func - value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/limits/cpu|/spec/verticalScaling/coordinator/resources/limits/cpu - label: CPU Limits - schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/cpu - type: input - - init: - type: func - value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/requests/memory|/spec/verticalScaling/coordinator/resources/requests/memory - label: Memory Requests - schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/memory - type: input - - init: - type: func - value: setValueFromDbDetails|/spec/coordinator/podTemplate/spec/resources/limits/memory|/spec/verticalScaling/coordinator/resources/limits/memory - label: Memory Limits - schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/memory - type: input - label: Coordinator - showLabels: true - type: horizontal-layout if: name: ifRequestTypeEqualsTo|VerticalScaling type: function diff --git a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/functions.js b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/functions.js index 57637d6e8f..4b16735c2b 100644 --- a/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-mssqlserveropsrequest-editor/ui/functions.js @@ -412,9 +412,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/mssqlservers/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/mssqlservers/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -749,10 +749,7 @@ export const useFunc = (model) => { // machine profile stuffs function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const mssqlContainer = containers.find((c) => c.name === 'mssql') - const limits = mssqlContainer?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -802,9 +799,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const mssqlContainer = containers.find((c) => c.name === 'mssql') - const limits = mssqlContainer?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -828,9 +823,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1741,24 +1735,24 @@ export const useFunc = (model) => { return limitVal } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - - function isMachineValid() { + function getLimits() { const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const mssqlContainer = containers.find((c) => c.name === 'mssql') - const limits = mssqlContainer?.resources?.requests || {} + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = 'mssql' + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + return limits + } + + function isMachineValid() { + const limits = getLimits() + console.log('limits', limits) const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1772,7 +1766,6 @@ export const useFunc = (model) => { isMachineValid, isRancherManaged, setExporter, - onExporterResourceChange, setResource, fetchJsons, returnFalse, diff --git a/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml index 488609f511..79dbd592bc 100644 --- a/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-mysqlopsrequest-editor/ui/create-ui.yaml @@ -157,7 +157,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|mysql|/spec/podTemplate/spec/resources + func: onMachineChange|mysql paths: - temp/properties/machine - elements: @@ -221,10 +221,6 @@ step: label: Memory schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory showLabels: true type: horizontal-layout hideBlock: true diff --git a/charts/opskubedbcom-mysqlopsrequest-editor/ui/functions.js b/charts/opskubedbcom-mysqlopsrequest-editor/ui/functions.js index 36aee114a9..9903200fb8 100644 --- a/charts/opskubedbcom-mysqlopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-mysqlopsrequest-editor/ui/functions.js @@ -421,9 +421,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/mysqls/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/mysqls/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -781,8 +781,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -831,9 +830,8 @@ export const useFunc = (model) => { } function setMachine() { - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} - const annotations = dbDetails?.metadata?.annotations || {} + const limits = getLimits() + const annotations = getValue(discriminator, '/dbDetails/metadata/annotations') || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -856,9 +854,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1819,9 +1816,23 @@ export const useFunc = (model) => { }) } - function isMachineValid() { + function getLimits() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + + return limits + } + + function isMachineValid() { + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } diff --git a/charts/opskubedbcom-neo4jopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-neo4jopsrequest-editor/ui/create-ui.yaml index f49ad7e084..d45cac3da3 100644 --- a/charts/opskubedbcom-neo4jopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-neo4jopsrequest-editor/ui/create-ui.yaml @@ -154,7 +154,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|neo4j|/spec/podTemplate/spec/resources + func: onMachineChange|neo4j paths: - temp/properties/machine - elements: diff --git a/charts/opskubedbcom-neo4jopsrequest-editor/ui/functions.js b/charts/opskubedbcom-neo4jopsrequest-editor/ui/functions.js index 5a1432e715..76b3879bd1 100644 --- a/charts/opskubedbcom-neo4jopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-neo4jopsrequest-editor/ui/functions.js @@ -421,9 +421,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/neo4js/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/neo4js/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -778,8 +778,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -829,10 +828,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const neo4jContainer = containers.find((c) => c.name === 'neo4j') - const limits = neo4jContainer?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -855,9 +851,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1793,36 +1788,8 @@ export const useFunc = (model) => { return data || 'No Data Found' } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid() { - const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const neo4jContainer = containers.find((c) => c.name === 'neo4j') - const limits = neo4jContainer?.resources?.requests || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1833,10 +1800,23 @@ export const useFunc = (model) => { return false } + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + + return limits + } + return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-oracleopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-oracleopsrequest-editor/ui/create-ui.yaml index 0fdb25071a..f5887d3841 100644 --- a/charts/opskubedbcom-oracleopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-oracleopsrequest-editor/ui/create-ui.yaml @@ -146,7 +146,7 @@ step: - elements: - init: type: func - value: setMachine + value: setMachine|node label: Resources loader: getMachines schema: temp/properties/machine @@ -157,7 +157,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/resources + func: onMachineChange|node paths: - temp/properties/machine - elements: @@ -207,30 +207,6 @@ step: label: Node Selection showLabels: true type: block-layout - - elements: - - elements: - - init: - type: func - value: setExporter|cpu - label: CPU - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu - type: input - - init: - type: func - value: setExporter|memory - label: Memory - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - showLabels: true - type: horizontal-layout - hideBlock: true - label: Exporter - showLabels: true - type: block-layout label: Oracle vertical scaling showLabels: false type: block-layout diff --git a/charts/opskubedbcom-oracleopsrequest-editor/ui/functions.js b/charts/opskubedbcom-oracleopsrequest-editor/ui/functions.js index dc7f8d1612..d0edf28bf7 100644 --- a/charts/opskubedbcom-oracleopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-oracleopsrequest-editor/ui/functions.js @@ -421,9 +421,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/oracles/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/oracles/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -778,9 +778,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const limits = containers[0]?.resources?.limits || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -828,14 +826,12 @@ export const useFunc = (model) => { return arr } - function setMachine() { + function setMachine(type) { const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const limits = containers[0]?.resources?.limits || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] - let parsedInstance = {} try { if (instance) parsedInstance = JSON.parse(instance) @@ -844,7 +840,7 @@ export const useFunc = (model) => { parsedInstance = instance || {} } - const machine = parsedInstance || 'custom' + const machine = type && parsedInstance[type] ? parsedInstance[type] : parsedInstance || 'custom' const machinePresets = machinesFromPreset.find((item) => item.id === machine) if (machinePresets) { @@ -853,12 +849,11 @@ export const useFunc = (model) => { cpu: machinePresets.limits.cpu, memory: machinePresets.limits.memory, } - } else return { machine: 'custom', cpu: 4, memory: 2 } + } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1795,35 +1790,23 @@ export const useFunc = (model) => { return data || 'No Data Found' } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} } - return limitVal - } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) + return limits } function isMachineValid() { - const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const limits = containers[0]?.resources?.limits || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1836,8 +1819,6 @@ export const useFunc = (model) => { return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/create-ui.yaml index 92aa649ba6..53585680ee 100644 --- a/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/create-ui.yaml @@ -128,7 +128,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|perconaxtradb|/spec/podTemplate/spec/resources + func: onMachineChange|perconaxtradb paths: - temp/properties/machine - elements: @@ -180,34 +180,6 @@ step: type: block-layout label: PerconaXtraDB Vertical Scaling type: block-layout - - elements: - - init: - type: func - value: setValueFromDbDetails|/spec/coordinator/resources/requests/cpu|/spec/verticalScaling/coordinator/resources/requests/cpu - label: CPU Requests - schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/cpu - type: input - - init: - type: func - value: setValueFromDbDetails|/spec/coordinator/resources/limits/cpu|/spec/verticalScaling/coordinator/resources/limits/cpu - label: CPU Limits - schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/cpu - type: input - - init: - type: func - value: setValueFromDbDetails|/spec/coordinator/resources/requests/memory|/spec/verticalScaling/coordinator/resources/requests/memory - label: Memory Requests - schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/requests/memory - type: input - - init: - type: func - value: setValueFromDbDetails|/spec/coordinator/resources/limits/memory|/spec/verticalScaling/coordinator/resources/limits/memory - label: Memory Limits - schema: schema/properties/spec/properties/verticalScaling/properties/coordinator/properties/resources/properties/limits/memory - type: input - label: Coordinator - showLabels: true - type: horizontal-layout - elements: - elements: - init: diff --git a/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/functions.js b/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/functions.js index 3ff5cd5794..24bf2eafc8 100644 --- a/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-perconaxtradbopsrequest-editor/ui/functions.js @@ -422,9 +422,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/perconaxtradbs/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/perconaxtradbs/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -724,8 +724,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -775,7 +774,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -797,9 +796,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1740,9 +1738,23 @@ export const useFunc = (model) => { }) } - function isMachineValid() { + function getLimits() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + + return limits + } + + function isMachineValid() { + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } diff --git a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml index fb85bd6c6b..f6f239ced7 100644 --- a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/create-ui.yaml @@ -149,7 +149,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|pgbouncer|/spec/podTemplate/spec/resources + func: onMachineChange|pgbouncer paths: - temp/properties/machine - elements: @@ -215,10 +215,6 @@ step: label: Memory schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory showLabels: true type: horizontal-layout hideBlock: true diff --git a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/functions.js b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/functions.js index 35cf895095..46d7fcc6a0 100644 --- a/charts/opskubedbcom-pgbounceropsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-pgbounceropsrequest-editor/ui/functions.js @@ -412,9 +412,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/pgbouncers/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/pgbouncers/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -754,8 +754,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -805,7 +804,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -829,9 +828,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1569,7 +1567,6 @@ export const useFunc = (model) => { force: true, }) } - console.log({ retValue }) return retValue || undefined } @@ -1584,10 +1581,6 @@ export const useFunc = (model) => { return resource[0]?.resources || {} } - function getAliasOptions() { - return ['server', 'client', 'metrics-exporter'] - } - function isNamespaceDisabled() { const { namespace } = route.query || {} return !!namespace @@ -1699,21 +1692,23 @@ export const useFunc = (model) => { return limitVal } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + + return limits } function isMachineValid() { - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1727,8 +1722,6 @@ export const useFunc = (model) => { return { isMachineValid, setExporter, - onExporterResourceChange, - fetchAliasOptions: getAliasOptions, isRancherManaged, fetchJsons, returnFalse, @@ -1775,7 +1768,6 @@ export const useFunc = (model) => { isDbDetailsLoading, setValueFromDbDetails, setResource, - getAliasOptions, isNamespaceDisabled, isDatabaseRefDisabled, onDbChange, diff --git a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml index 88f0ecd72e..0c761edd67 100644 --- a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/create-ui.yaml @@ -152,7 +152,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/containers + func: onMachineChange|node paths: - temp/properties/machine - elements: @@ -202,30 +202,6 @@ step: label: Node Selection showLabels: true type: block-layout - - elements: - - elements: - - init: - type: func - value: setExporter|cpu - label: CPU - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu - type: input - - init: - type: func - value: setExporter|memory - label: Memory - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - showLabels: true - type: horizontal-layout - hideBlock: true - label: Exporter - showLabels: true - type: block-layout label: Node Vertical Scaling type: block-layout if: diff --git a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/functions.js b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/functions.js index 0016e5a1b3..5f893952cc 100644 --- a/charts/opskubedbcom-pgpoolopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-pgpoolopsrequest-editor/ui/functions.js @@ -423,9 +423,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/pgpools/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/pgpools/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -840,9 +840,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1725,37 +1724,8 @@ export const useFunc = (model) => { return !!(model && model.alias) } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid() { - const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1766,10 +1736,23 @@ export const useFunc = (model) => { return false } + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + + return limits + } + return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml index 5d232c3388..5a0509f6e7 100644 --- a/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-postgresopsrequest-editor/ui/create-ui.yaml @@ -152,7 +152,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|postgres|/spec/podTemplate/spec/resources + func: onMachineChange|postgres paths: - temp/properties/machine - elements: diff --git a/charts/opskubedbcom-postgresopsrequest-editor/ui/functions.js b/charts/opskubedbcom-postgresopsrequest-editor/ui/functions.js index 183d5e56b0..c4d16a598b 100644 --- a/charts/opskubedbcom-postgresopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-postgresopsrequest-editor/ui/functions.js @@ -421,9 +421,10 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/postgreses/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/postgreses/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -766,8 +767,7 @@ export const useFunc = (model) => { // machine profile stuffs function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] if (avlMachines.length) { @@ -816,7 +816,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -827,6 +827,8 @@ export const useFunc = (model) => { parsedInstance = instance || {} } + const machine = parsedInstance || 'custom' + const machinePresets = machinesFromPreset.find((item) => item.id === machine) if (machinePresets) { return { @@ -837,9 +839,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1853,9 +1854,23 @@ export const useFunc = (model) => { }) } - function isMachineValid() { + function getLimits() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + + return limits + } + + function isMachineValid() { + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } diff --git a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml index 95bc1700aa..1cf89bd040 100644 --- a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/create-ui.yaml @@ -146,8 +146,11 @@ step: subtitle: Compare your current machine configuration with the proposed memory adjustments and make informed decisions for your database setup type: machine-compare + validation: + name: isMachineValid + type: custom watcher: - func: onMachineChange|proxysql|/spec/podTemplate/spec/resources + func: onMachineChange|proxysql paths: - temp/properties/machine - elements: @@ -196,30 +199,6 @@ step: label: Node Selection showLabels: true type: block-layout - - elements: - - elements: - - init: - type: func - value: setExporter|cpu - label: CPU - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu - type: input - - init: - type: func - value: setExporter|memory - label: Memory - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - showLabels: true - type: horizontal-layout - hideBlock: true - label: Exporter - showLabels: true - type: block-layout if: name: ifRequestTypeEqualsTo|VerticalScaling type: function diff --git a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/functions.js b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/functions.js index f6c96ea86b..12db18e386 100644 --- a/charts/opskubedbcom-proxysqlopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-proxysqlopsrequest-editor/ui/functions.js @@ -419,9 +419,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/proxyRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/proxysqls/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/proxysqls/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -820,9 +820,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1266,34 +1265,35 @@ export const useFunc = (model) => { return !!(model && model.alias) } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} } - return limitVal + + return limits } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) + function isMachineValid() { + const limits = getLimits() + + const selectedMachine = getValue(discriminator, '/machine') + const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } + + if (JSON.stringify(limits) === JSON.stringify(selectedLimits)) { + return 'Resource limits are same as current machine configuration. Please select different resources or machine preset.' + } + return false } return { - setExporter, - onExporterResourceChange, + isMachineValid, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-qdrantopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-qdrantopsrequest-editor/ui/create-ui.yaml index 1567cfd0a8..4006112fb9 100644 --- a/charts/opskubedbcom-qdrantopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-qdrantopsrequest-editor/ui/create-ui.yaml @@ -154,7 +154,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/resources + func: onMachineChange|node paths: - temp/properties/machine - elements: diff --git a/charts/opskubedbcom-qdrantopsrequest-editor/ui/functions.js b/charts/opskubedbcom-qdrantopsrequest-editor/ui/functions.js index 571cae4e2a..e2efd357e9 100644 --- a/charts/opskubedbcom-qdrantopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-qdrantopsrequest-editor/ui/functions.js @@ -421,9 +421,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/qdrants/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/qdrants/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -781,8 +781,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -832,7 +831,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] @@ -856,9 +855,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1794,35 +1792,23 @@ export const useFunc = (model) => { return data || 'No Data Found' } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} } - return limitVal - } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) + return limits } function isMachineValid() { - const dbDetails = getValue(discriminator, '/dbDetails') - const container = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const limits = container[0]?.resources?.limits || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1835,8 +1821,6 @@ export const useFunc = (model) => { return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml index abcd4072c9..374a976525 100644 --- a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/create-ui.yaml @@ -156,7 +156,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/containers + func: onMachineChange|node paths: - temp/properties/machine - elements: diff --git a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/functions.js b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/functions.js index a49838fbf6..e2c0ca66ab 100644 --- a/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-rabbitmqopsrequest-editor/ui/functions.js @@ -421,9 +421,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/rabbitmqs/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/rabbitmqs/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -755,11 +755,7 @@ export const useFunc = (model) => { function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind || 'RabbitMQ' - const resource = containers.filter((ele) => ele.name === kind.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -809,10 +805,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind || 'RabbitMQ' - const resource = containers.filter((ele) => ele.name === kind.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -834,9 +827,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1769,25 +1761,23 @@ export const useFunc = (model) => { return data || 'No Data Found' } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} } - return limitVal + + return limits } function isMachineValid() { - const dbDetails = getValue(discriminator, '/dbDetails') - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind || 'RabbitMQ' - const resource = containers.filter((ele) => ele.name === kind.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1800,7 +1790,6 @@ export const useFunc = (model) => { return { isMachineValid, - setExporter, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml index 9444207264..9bfd447b6a 100644 --- a/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-redisopsrequest-editor/ui/create-ui.yaml @@ -163,7 +163,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|redis|/spec/podTemplate/spec/resources + func: onMachineChange|redis paths: - temp/properties/machine - elements: @@ -225,10 +225,6 @@ step: label: Memory schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory showLabels: true type: horizontal-layout hideBlock: true diff --git a/charts/opskubedbcom-redisopsrequest-editor/ui/functions.js b/charts/opskubedbcom-redisopsrequest-editor/ui/functions.js index 8030472da5..071675dd72 100644 --- a/charts/opskubedbcom-redisopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-redisopsrequest-editor/ui/functions.js @@ -421,9 +421,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/redises/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/redises/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -767,8 +767,7 @@ export const useFunc = (model) => { // machine profile stuffs function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -818,7 +817,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -840,9 +839,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1782,9 +1780,23 @@ export const useFunc = (model) => { }) } - function isMachineValid() { + function getLimits() { const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + + return limits + } + + function isMachineValid() { + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } diff --git a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml index a0c0bd9a4d..d7c4097974 100644 --- a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/create-ui.yaml @@ -177,7 +177,7 @@ step: adjustments and make informed decisions for your database setup type: machine-compare watcher: - func: onMachineChange|aggregator|/spec/topology/aggregator/podTemplate/spec/containers + func: onMachineChange|aggregator paths: - temp/properties/machine-aggregator - elements: @@ -243,7 +243,7 @@ step: adjustments and make informed decisions for your database setup type: machine-compare watcher: - func: onMachineChange|leaf|/spec/topology/leaf/podTemplate/spec/containers + func: onMachineChange|leaf paths: - temp/properties/machine-leaf - elements: @@ -312,7 +312,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/containers + func: onMachineChange|node paths: - temp/properties/machine-node - elements: @@ -367,50 +367,6 @@ step: type: function label: Node Vertical Scaling type: block-layout - - elements: - - init: - type: func - value: setMachine|coordinator - label: Resources - loader: getMachines|coordinator - schema: temp/properties/machine-coordinator - type: machine-compare - watcher: - func: onMachineChange|coordinator|/spec/topology/aggregator/podTemplate/spec/containers - paths: - - temp/properties/machine-coordinator - if: - name: ifDbTypeEqualsTo|Topology|VerticalScaling - type: function - label: Coordinator Vertical Scaling - showLabels: true - type: block-layout - - elements: - - elements: - - init: - type: func - value: setExporter|cpu - label: CPU - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu - type: input - - init: - type: func - value: setExporter|memory - label: Memory - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - showLabels: true - type: horizontal-layout - if: - name: returnFalse - type: function - label: Exporter - showLabels: true - type: block-layout if: name: ifRequestTypeEqualsTo|VerticalScaling type: function diff --git a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/functions.js b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/functions.js index 2203e3d97e..844891a586 100644 --- a/charts/opskubedbcom-singlestoreopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-singlestoreopsrequest-editor/ui/functions.js @@ -416,9 +416,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/singlestores/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/singlestores/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -762,12 +762,7 @@ export const useFunc = (model) => { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') // const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.limits || {} - const limits = (type && type !== 'node' - ? dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers?.[0]?.resources?.requests - : dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests) || { - cpu: '', - memory: '', - } + const limits = getLimits(type) const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -817,7 +812,7 @@ export const useFunc = (model) => { function setMachine(type) { const dbDetails = getValue(discriminator, '/dbDetails') - let limits = {} + let limits = getLimits(type) const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -837,38 +832,12 @@ export const useFunc = (model) => { memory: machinePresets.limits.memory, } } else { - // For coordinator, find the coordinator sidecar container in the aggregator pod - if (type === 'coordinator') { - const containers = - dbDetails?.spec?.topology?.aggregator?.podTemplate?.spec?.containers || [] - const resource = containers.find((ele) => ele.name === 'coordinator') - limits = resource?.resources?.requests || {} - if (!Object.keys(limits).length) { - // fallback: check initContainers or top-level containers - const initContainers = - dbDetails?.spec?.topology?.aggregator?.podTemplate?.spec?.initContainers || [] - const initResource = initContainers.find((ele) => ele.name === 'coordinator') - limits = initResource?.resources?.requests || {} - } - } else if (type === 'node') { - const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - limits = resource[0]?.resources?.requests || {} - } else { - // For aggregator and leaf - const topologyLimits = - dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers?.[0]?.resources - ?.requests || {} - limits = topologyLimits - } return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine-${type}`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine-${type}`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1804,31 +1773,6 @@ export const useFunc = (model) => { } } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function isMachineValid() { const dbDetails = getValue(discriminator, '/dbDetails') const container = dbDetails?.spec?.podTemplate?.spec?.containers || [] @@ -1843,10 +1787,29 @@ export const useFunc = (model) => { return false } + function getLimits(type) { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (type === 'node') { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } else { + // For aggregator and leaf + const topologyLimits = + dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers?.[0]?.resources + ?.requests || {} + limits = topologyLimits + } + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + + return limits + } + return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml index 69e25f0f07..3934e91320 100644 --- a/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-solropsrequest-editor/ui/create-ui.yaml @@ -228,7 +228,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/containers + func: onMachineChange|node paths: - temp/properties/machine-node - elements: @@ -295,7 +295,7 @@ step: adjustments and make informed decisions for your database setup type: machine-compare watcher: - func: onMachineChange|coordinator|/spec/topology/coordinator/podTemplate/spec/containers + func: onMachineChange|coordinator paths: - temp/properties/machine-coordinator - elements: @@ -360,7 +360,7 @@ step: adjustments and make informed decisions for your database setup type: machine-compare watcher: - func: onMachineChange|data|/spec/topology/data/podTemplate/spec/containers + func: onMachineChange|data paths: - temp/properties/machine-data - elements: @@ -425,7 +425,7 @@ step: adjustments and make informed decisions for your database setup type: machine-compare watcher: - func: onMachineChange|overseer|/spec/topology/overseer/podTemplate/spec/containers + func: onMachineChange|overseer paths: - temp/properties/machine-overseer - elements: @@ -476,30 +476,6 @@ step: label: Node Selection showLabels: true type: block-layout - - elements: - - elements: - - init: - type: func - value: setExporter|cpu - label: CPU - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu - type: input - - init: - type: func - value: setExporter|memory - label: Memory - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - showLabels: true - type: horizontal-layout - hideBlock: true - label: Exporter - showLabels: true - type: block-layout label: Overseer Vertical Scaling showLabels: true type: block-layout diff --git a/charts/opskubedbcom-solropsrequest-editor/ui/functions.js b/charts/opskubedbcom-solropsrequest-editor/ui/functions.js index 23b4e62d9f..112448d1fe 100644 --- a/charts/opskubedbcom-solropsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-solropsrequest-editor/ui/functions.js @@ -425,9 +425,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/solrs/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/solrs/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -780,18 +780,15 @@ export const useFunc = (model) => { } // // machine profile stuffs - // let machinesFromPreset = [] function getMachines(type) { const presets = storeGet('/kubedbuiPresets') || {} const dbDetails = getValue(discriminator, '/dbDetails') - // const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.limits || {} - const limits = (type && type !== 'node' - ? dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers?.[0]?.resources?.requests - : dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests) || { - cpu: '', - memory: '', - } + let limits = {} + if (type && type !== 'node') + limits = + dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers?.[0]?.resources?.requests + else limits = dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] @@ -841,13 +838,11 @@ export const useFunc = (model) => { function setMachine(type) { const dbDetails = getValue(discriminator, '/dbDetails') - // const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.limits || {} - const limits = (type && type !== 'node' - ? dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers?.[0]?.resources?.requests - : dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests) || { - cpu: '', - memory: '', - } + let limits = {} + if (type && type !== 'node') + limits = + dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers?.[0]?.resources?.requests + else limits = dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -869,9 +864,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, `/machine-${type}`) + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, `/machine-${type}`) || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1791,35 +1785,25 @@ export const useFunc = (model) => { return data || 'No Data Found' } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} } - return limitVal - } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) + return limits } function isMachineValid() { const dbDetails = getValue(discriminator, '/dbDetails') const container = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const limits = container[0]?.resources?.limits || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine-node') || {} const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1832,8 +1816,6 @@ export const useFunc = (model) => { return { isMachineValid, - setExporter, - onExporterResourceChange, fetchAliasOptions, validateNewCertificates, disableAlias, diff --git a/charts/opskubedbcom-weaviateopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-weaviateopsrequest-editor/ui/create-ui.yaml index aee87b3d15..d41e563e65 100644 --- a/charts/opskubedbcom-weaviateopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-weaviateopsrequest-editor/ui/create-ui.yaml @@ -154,7 +154,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|weaviate|/spec/podTemplate/spec/resources + func: onMachineChange|weaviate paths: - temp/properties/machine - elements: diff --git a/charts/opskubedbcom-weaviateopsrequest-editor/ui/functions.js b/charts/opskubedbcom-weaviateopsrequest-editor/ui/functions.js index fe41e9e7f9..e453aa889b 100644 --- a/charts/opskubedbcom-weaviateopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-weaviateopsrequest-editor/ui/functions.js @@ -421,9 +421,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/weaviates/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/weaviates/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -857,9 +857,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1616,26 +1615,6 @@ export const useFunc = (model) => { return retValue || undefined } - function setConfigFiles() { - // watchDependency('model#/resources/secret_config/stringData') - const configFiles = getValue(model, '/resources/secret_config/stringData') - - const files = [] - - for (const item in configFiles) { - const obj = {} - obj.key = item - obj.value = configFiles[item] - files.push(obj) - } - - return files - } - - function getAliasOptions() { - return ['server', 'client', 'metrics-exporter'] - } - function isNamespaceDisabled() { const { namespace } = route.query || {} return !!namespace @@ -1724,30 +1703,6 @@ export const useFunc = (model) => { return value * units[unit] } - function fetchAliasOptions() { - return getAliasOptions ? getAliasOptions() : [] - } - - function validateNewCertificates({ itemCtx }) { - const addedAliases = (model && model.map((item) => item.alias)) || [] - - if (addedAliases.includes(itemCtx.alias) && itemCtx.isCreate) { - return { isInvalid: true, message: 'Alias already exists' } - } - return {} - } - - function disableAlias() { - return !!(model && model.alias) - } - - function getSelectedConfigSecret(type) { - const path = `/spec/configuration/configSecret/name` - const selectedSecret = getValue(model, path) - // watchDependency(`model#${path}`) - return `You have selected ${selectedSecret} secret` || 'No secret selected' - } - function objectToYaml(obj, indent = 0) { if (obj === null || obj === undefined) return 'null' if (typeof obj !== 'object') return JSON.stringify(obj) @@ -1783,49 +1738,18 @@ export const useFunc = (model) => { .join('\n') } - function getSelectedConfigSecretValue(type) { - const path = `/spec/configuration/configSecret/name` - const selectedSecret = getValue(model, path) - let data - secretArray.forEach((item) => { - if (item.value === selectedSecret) { - data = objectToYaml(item.data).trim() || 'No Data Found' - } - }) - return data || 'No Data Found' - } - - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal - } - return limitVal - } - - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) - } - function getLimits() { const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] - const kind = dbDetails?.kind - const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) - const limits = resource[0]?.resources?.requests || {} + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} + } + return limits } @@ -1843,11 +1767,6 @@ export const useFunc = (model) => { return { isMachineValid, - setExporter, - onExporterResourceChange, - fetchAliasOptions, - validateNewCertificates, - disableAlias, isRancherManaged, fetchJsons, returnFalse, @@ -1872,8 +1791,6 @@ export const useFunc = (model) => { showAndInitOpsRequestType, ifDbTypeEqualsTo, getConfigSecrets, - getSelectedConfigSecret, - getSelectedConfigSecretValue, createSecretUrl, isEqualToValueFromType, getNamespacedResourceList, @@ -1893,7 +1810,6 @@ export const useFunc = (model) => { getRequestTypeFromRoute, isDbDetailsLoading, setValueFromDbDetails, - getAliasOptions, isDatabaseRefDisabled, isNamespaceDisabled, onNamespaceChange, @@ -1905,7 +1821,6 @@ export const useFunc = (model) => { onMachineChange, isMachineCustom, checkVolume, - setConfigFiles, isConfigSelected, fetchConfigSecrets, getCurrentConfig, diff --git a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml index 2faa3dcb0d..a147f0d34f 100644 --- a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml +++ b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/create-ui.yaml @@ -153,7 +153,7 @@ step: name: isMachineValid type: custom watcher: - func: onMachineChange|node|/spec/podTemplate/spec/containers + func: onMachineChange|node paths: - temp/properties/machine - elements: @@ -202,30 +202,6 @@ step: label: Node Selection showLabels: true type: block-layout - - elements: - - elements: - - init: - type: func - value: setExporter|cpu - label: CPU - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/requests/properties/cpu - type: input - - init: - type: func - value: setExporter|memory - label: Memory - schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - type: input - watcher: - func: onExporterResourceChange|memory - paths: - - schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory - showLabels: true - type: horizontal-layout - hideBlock: true - label: Exporter - showLabels: true - type: block-layout if: name: ifRequestTypeEqualsTo|VerticalScaling type: function diff --git a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/functions.js b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/functions.js index 1f71052aaa..1430bc8eb7 100644 --- a/charts/opskubedbcom-zookeeperopsrequest-editor/ui/functions.js +++ b/charts/opskubedbcom-zookeeperopsrequest-editor/ui/functions.js @@ -383,9 +383,9 @@ export const useFunc = (model) => { const cluster = storeGet('/route/params/cluster') const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace') const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name') - + const version = storeGet('/route/params/version') if (namespace && name) { - const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/zookeepers/${name}` + const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/zookeepers/${name}` const resp = await axios.get(url) setDiscriminatorValue('/dbDetails', resp.data || {}) @@ -1435,9 +1435,7 @@ export const useFunc = (model) => { // machine profile stuffs function getMachines() { const presets = storeGet('/kubedbuiPresets') || {} - const dbDetails = getValue(discriminator, '/dbDetails') - // const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.limits || {} - const limits = dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests + const limits = getLimits() const avlMachines = presets.admin?.machineProfiles?.available || [] let arr = [] if (avlMachines.length) { @@ -1486,8 +1484,7 @@ export const useFunc = (model) => { function setMachine() { const dbDetails = getValue(discriminator, '/dbDetails') - // const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.limits || {} - const limits = dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests + const limits = getLimits() const annotations = dbDetails?.metadata?.annotations || {} const instance = annotations['kubernetes.io/instance-type'] let parsedInstance = {} @@ -1509,9 +1506,8 @@ export const useFunc = (model) => { } else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory } } - function onMachineChange(type, valPath) { - let selectedMachine = {} - selectedMachine = getValue(discriminator, '/machine') + function onMachineChange(type) { + const selectedMachine = getValue(discriminator, '/machine') || {} const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine) let obj = {} @@ -1597,34 +1593,23 @@ export const useFunc = (model) => { return value * units[unit] } - function setExporter(type) { - let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}` - const limitVal = getValue(discriminator, path) - - if (!limitVal) { - path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}` - const reqVal = getValue(discriminator, path) - - if (reqVal) return reqVal + function getLimits() { + const dbDetails = getValue(discriminator, '/dbDetails') + let limits = {} + const containers = dbDetails?.spec?.podTemplate?.spec?.containers || [] + if (containers.length === 0) + limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {} + else { + const kind = dbDetails?.kind + const resource = containers.filter((ele) => ele.name === kind?.toLowerCase()) + limits = resource[0]?.resources?.requests || {} } - return limitVal - } - function onExporterResourceChange(type) { - const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}` - const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}` - const val = getValue(model, valPath) - if (val) - commit('wizard/model$update', { - path: commitPath, - value: val, - force: true, - }) + return limits } function isMachineValid() { - const dbDetails = getValue(discriminator, '/dbDetails') - const limits = dbDetails?.spec?.podTemplate?.spec?.containers?.[0]?.resources?.requests || {} + const limits = getLimits() const selectedMachine = getValue(discriminator, '/machine') const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory } @@ -1637,8 +1622,6 @@ export const useFunc = (model) => { return { isMachineValid, - setExporter, - onExporterResourceChange, returnFalse, getNamespaces, getDbs,