Skip to content

Commit f38da13

Browse files
fix db ops machine resource (#1078)
* fix vertical scaling machine resource init Signed-off-by: shofiq <shofiq@appscode.com> * fix machine resource in scaling ops for mongos Signed-off-by: shofiq <shofiq@appscode.com> * fix ops fields (#1077) Signed-off-by: shofiq <shofiq@appscode.com> --------- Signed-off-by: shofiq <shofiq@appscode.com> Co-authored-by: Md. Samiul Haque <samiul@appscode.com>
1 parent b41b7ec commit f38da13

59 files changed

Lines changed: 740 additions & 1379 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

charts/kubedbcom-hazelcast-editor-options/ui/create-ui.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ step:
2727
schema: schema/properties/spec/properties/mode
2828
type: radio
2929
- if:
30-
name: isEqualToModelPathValue|Replicaset|/spec/mode
30+
name: isEqualToModelPathValue|Combined|/spec/mode
3131
type: function
3232
label: Replicaset number
3333
schema: schema/properties/spec/properties/replicas

charts/opskubedbcom-cassandraopsrequest-editor/ui/create-ui.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ step:
154154
name: isMachineValid
155155
type: custom
156156
watcher:
157-
func: onMachineChange|node|/spec/podTemplate/spec/resources
157+
func: onMachineChange|node
158158
paths:
159159
- temp/properties/machine
160160
- elements:

charts/opskubedbcom-cassandraopsrequest-editor/ui/functions.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -416,9 +416,10 @@ export const useFunc = (model) => {
416416
const cluster = storeGet('/route/params/cluster')
417417
const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace')
418418
const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name')
419+
const version = storeGet('/route/params/version')
419420

420421
if (namespace && name) {
421-
const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/cassandras/${name}`
422+
const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/cassandras/${name}`
422423
const resp = await axios.get(url)
423424

424425
setDiscriminatorValue('/dbDetails', resp.data || {})
@@ -770,8 +771,7 @@ export const useFunc = (model) => {
770771
function getMachines() {
771772
const presets = storeGet('/kubedbuiPresets') || {}
772773
const dbDetails = getValue(discriminator, '/dbDetails')
773-
const spec = dbDetails?.spec?.podTemplate?.spec
774-
const limits = spec?.resources?.requests || spec?.containers?.[0]?.resources?.requests || {}
774+
const limits = getLimits()
775775

776776
const avlMachines = presets.admin?.machineProfiles?.available || []
777777
let arr = []
@@ -821,7 +821,7 @@ export const useFunc = (model) => {
821821

822822
function setMachine() {
823823
const dbDetails = getValue(discriminator, '/dbDetails')
824-
const limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {}
824+
const limits = getLimits()
825825
const annotations = dbDetails?.metadata?.annotations || {}
826826
const instance = annotations['kubernetes.io/instance-type']
827827

@@ -845,9 +845,8 @@ export const useFunc = (model) => {
845845
} else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory }
846846
}
847847

848-
function onMachineChange(type, valPath) {
849-
let selectedMachine = {}
850-
selectedMachine = getValue(discriminator, '/machine')
848+
function onMachineChange(type) {
849+
const selectedMachine = getValue(discriminator, '/machine') || {}
851850
const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine)
852851

853852
let obj = {}
@@ -1783,23 +1782,10 @@ export const useFunc = (model) => {
17831782
return data || 'No Data Found'
17841783
}
17851784

1786-
function setExporter(type) {
1787-
let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}`
1788-
const limitVal = getValue(discriminator, path)
1789-
1790-
if (!limitVal) {
1791-
path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}`
1792-
const reqVal = getValue(discriminator, path)
1793-
1794-
if (reqVal) return reqVal
1795-
}
1796-
return limitVal
1797-
}
1798-
17991785
function isMachineValid() {
18001786
const dbDetails = getValue(discriminator, '/dbDetails')
18011787
const spec = dbDetails?.spec?.podTemplate?.spec
1802-
const limits = spec?.resources?.requests || spec?.containers?.[0]?.resources?.requests || {}
1788+
const limits = getLimits()
18031789

18041790
const selectedMachine = getValue(discriminator, '/machine')
18051791
const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory }
@@ -1810,6 +1796,20 @@ export const useFunc = (model) => {
18101796
return false
18111797
}
18121798

1799+
function getLimits() {
1800+
const dbDetails = getValue(discriminator, '/dbDetails')
1801+
let limits = {}
1802+
const containers = dbDetails?.spec?.podTemplate?.spec?.containers || []
1803+
if (containers.length === 0)
1804+
limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {}
1805+
else {
1806+
const kind = dbDetails?.kind
1807+
const resource = containers.filter((ele) => ele.name === kind?.toLowerCase())
1808+
limits = resource[0]?.resources?.requests || {}
1809+
}
1810+
return limits
1811+
}
1812+
18131813
return {
18141814
isMachineValid,
18151815
fetchAliasOptions,

charts/opskubedbcom-clickhouseopsrequest-editor/ui/create-ui.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ step:
154154
name: isMachineValid
155155
type: custom
156156
watcher:
157-
func: onMachineChange|node|/spec/podTemplate/spec/resources
157+
func: onMachineChange|node
158158
paths:
159159
- temp/properties/machine
160160
- elements:

charts/opskubedbcom-clickhouseopsrequest-editor/ui/functions.js

Lines changed: 26 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,10 @@ export const useFunc = (model) => {
421421
const cluster = storeGet('/route/params/cluster')
422422
const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace')
423423
const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name')
424+
const version = storeGet('/route/params/version')
424425

425426
if (namespace && name) {
426-
const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/clickhouses/${name}`
427+
const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/clickhouses/${name}`
427428
const resp = await axios.get(url)
428429

429430
setDiscriminatorValue('/dbDetails', resp.data || {})
@@ -782,8 +783,7 @@ export const useFunc = (model) => {
782783
function getMachines() {
783784
const presets = storeGet('/kubedbuiPresets') || {}
784785
const dbDetails = getValue(discriminator, '/dbDetails')
785-
const containers = dbDetails?.spec?.podTemplate?.spec?.containers || []
786-
const limits = containers[0]?.resources?.limits || {}
786+
const limits = getLimits()
787787

788788
const avlMachines = presets.admin?.machineProfiles?.available || []
789789
let arr = []
@@ -833,10 +833,10 @@ export const useFunc = (model) => {
833833

834834
function setMachine() {
835835
const dbDetails = getValue(discriminator, '/dbDetails')
836-
const containers = dbDetails?.spec?.podTemplate?.spec?.containers || []
837-
const limits = containers[0]?.resources?.limits || {}
836+
const limits = getLimits()
838837
const annotations = dbDetails?.metadata?.annotations || {}
839838
const instance = annotations['kubernetes.io/instance-type']
839+
const type = dbDetails?.spec?.clusterTopology ? 'cluster' : 'standalone'
840840

841841
let parsedInstance = {}
842842
try {
@@ -845,8 +845,7 @@ export const useFunc = (model) => {
845845
console.log(e)
846846
parsedInstance = instance || {}
847847
}
848-
849-
const machine = parsedInstance || 'custom'
848+
const machine = parsedInstance[type] || 'custom'
850849

851850
const machinePresets = machinesFromPreset.find((item) => item.id === machine)
852851
if (machinePresets) {
@@ -858,9 +857,8 @@ export const useFunc = (model) => {
858857
} else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory }
859858
}
860859

861-
function onMachineChange(type, valPath) {
862-
let selectedMachine = {}
863-
selectedMachine = getValue(discriminator, '/machine')
860+
function onMachineChange(type) {
861+
const selectedMachine = getValue(discriminator, '/machine') || {}
864862
const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine)
865863

866864
let obj = {}
@@ -1796,35 +1794,9 @@ export const useFunc = (model) => {
17961794
return data || 'No Data Found'
17971795
}
17981796

1799-
function setExporter(type) {
1800-
let path = `/dbDetails/spec/monitor/prometheus/exporter/resources/limits/${type}`
1801-
const limitVal = getValue(discriminator, path)
1802-
1803-
if (!limitVal) {
1804-
path = `/dbDetails/spec/monitor/prometheus/exporter/resources/requests/${type}`
1805-
const reqVal = getValue(discriminator, path)
1806-
1807-
if (reqVal) return reqVal
1808-
}
1809-
return limitVal
1810-
}
1811-
1812-
function onExporterResourceChange(type) {
1813-
const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}`
1814-
const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}`
1815-
const val = getValue(model, valPath)
1816-
if (val)
1817-
commit('wizard/model$update', {
1818-
path: commitPath,
1819-
value: val,
1820-
force: true,
1821-
})
1822-
}
1823-
18241797
function isMachineValid() {
18251798
const dbDetails = getValue(discriminator, '/dbDetails')
1826-
const containers = dbDetails?.spec?.podTemplate?.spec?.containers || []
1827-
const limits = containers[0]?.resources?.limits || {}
1799+
const limits = getLimits()
18281800

18291801
const selectedMachine = getValue(discriminator, '/machine')
18301802
const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory }
@@ -1835,10 +1807,25 @@ export const useFunc = (model) => {
18351807
return false
18361808
}
18371809

1810+
function getLimits() {
1811+
const dbDetails = getValue(discriminator, '/dbDetails')
1812+
const isTopology = !!dbDetails?.spec?.clusterTopology
1813+
1814+
const spec = isTopology
1815+
? dbDetails?.spec?.clusterTopology?.cluster?.podTemplate?.spec
1816+
: dbDetails?.spec?.podTemplate?.spec
1817+
1818+
const containers = spec?.containers ?? []
1819+
1820+
if (containers.length === 0) {
1821+
return spec?.resources?.requests ?? {}
1822+
}
1823+
const kind = dbDetails?.kind?.toLowerCase()
1824+
return containers.find((container) => container.name === kind)?.resources?.requests ?? {}
1825+
}
1826+
18381827
return {
18391828
isMachineValid,
1840-
setExporter,
1841-
onExporterResourceChange,
18421829
fetchAliasOptions,
18431830
validateNewCertificates,
18441831
disableAlias,

charts/opskubedbcom-documentdbopsrequest-editor/ui/create-ui.yaml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ step:
154154
name: isMachineValid
155155
type: custom
156156
watcher:
157-
func: onMachineChange|documentdb|/spec/podTemplate/spec/resources
157+
func: onMachineChange|documentdb
158158
paths:
159159
- temp/properties/machine
160160
- elements:
@@ -218,10 +218,6 @@ step:
218218
label: Memory
219219
schema: schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
220220
type: input
221-
watcher:
222-
func: onExporterResourceChange|memory
223-
paths:
224-
- schema/properties/spec/properties/verticalScaling/properties/exporter/properties/resources/properties/limits/properties/memory
225221
showLabels: true
226222
type: horizontal-layout
227223
hideBlock: true

charts/opskubedbcom-documentdbopsrequest-editor/ui/functions.js

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,10 @@ export const useFunc = (model) => {
421421
const cluster = storeGet('/route/params/cluster')
422422
const namespace = storeGet('/route/query/namespace') || getValue(model, '/metadata/namespace')
423423
const name = storeGet('/route/params/name') || getValue(model, '/spec/databaseRef/name')
424+
const version = storeGet('/route/params/version')
424425

425426
if (namespace && name) {
426-
const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/v1alpha2/namespaces/${namespace}/documentdbs/${name}`
427+
const url = `/clusters/${owner}/${cluster}/proxy/kubedb.com/${version}/namespaces/${namespace}/documentdbs/${name}`
427428
const resp = await axios.get(url)
428429

429430
setDiscriminatorValue('/dbDetails', resp.data || {})
@@ -782,11 +783,7 @@ export const useFunc = (model) => {
782783
function getMachines() {
783784
const presets = storeGet('/kubedbuiPresets') || {}
784785
const dbDetails = getValue(discriminator, '/dbDetails')
785-
const containers = dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers || []
786-
const kind = dbDetails?.kind
787-
const resource = containers.filter((ele) => ele.name === kind?.toLowerCase())
788-
const limits = resource[0]?.resources?.requests || {}
789-
786+
const limits = getLimits()
790787
const avlMachines = presets.admin?.machineProfiles?.available || []
791788
let arr = []
792789
if (avlMachines.length) {
@@ -835,10 +832,7 @@ export const useFunc = (model) => {
835832

836833
function setMachine() {
837834
const dbDetails = getValue(discriminator, '/dbDetails')
838-
const containers = dbDetails?.spec?.topology?.[type]?.podTemplate?.spec?.containers || []
839-
const kind = dbDetails?.kind
840-
const resource = containers.filter((ele) => ele.name === kind?.toLowerCase())
841-
const limits = resource[0]?.resources?.requests || {}
835+
const limits = getLimits()
842836
const annotations = dbDetails?.metadata?.annotations || {}
843837
const instance = annotations['kubernetes.io/instance-type']
844838

@@ -862,9 +856,8 @@ export const useFunc = (model) => {
862856
} else return { machine: 'custom', cpu: limits.cpu, memory: limits.memory }
863857
}
864858

865-
function onMachineChange(type, valPath) {
866-
let selectedMachine = {}
867-
selectedMachine = getValue(discriminator, '/machine')
859+
function onMachineChange(type) {
860+
const selectedMachine = getValue(discriminator, '/machine') || {}
868861
const machine = machinesFromPreset.find((item) => item.id === selectedMachine.machine)
869862

870863
let obj = {}
@@ -1813,25 +1806,9 @@ export const useFunc = (model) => {
18131806
return limitVal
18141807
}
18151808

1816-
function onExporterResourceChange(type) {
1817-
const commitPath = `/spec/verticalScaling/exporter/resources/requests/${type}`
1818-
const valPath = `/spec/verticalScaling/exporter/resources/limits/${type}`
1819-
const val = getValue(model, valPath)
1820-
if (val)
1821-
commit('wizard/model$update', {
1822-
path: commitPath,
1823-
value: val,
1824-
force: true,
1825-
})
1826-
}
1827-
18281809
function isMachineValid() {
18291810
const dbDetails = getValue(discriminator, '/dbDetails')
1830-
const containers = dbDetails?.spec?.podTemplate?.spec?.containers || []
1831-
const kind = dbDetails?.kind
1832-
const resource = containers.filter((ele) => ele.name === kind?.toLowerCase())
1833-
const limits = resource[0]?.resources?.requests || {}
1834-
console.log(resource)
1811+
const limits = getLimits()
18351812

18361813
const selectedMachine = getValue(discriminator, '/machine')
18371814
const selectedLimits = { cpu: selectedMachine.cpu, memory: selectedMachine.memory }
@@ -1842,10 +1819,23 @@ export const useFunc = (model) => {
18421819
return false
18431820
}
18441821

1822+
function getLimits() {
1823+
const dbDetails = getValue(discriminator, '/dbDetails')
1824+
let limits = {}
1825+
const containers = dbDetails?.spec?.podTemplate?.spec?.containers || []
1826+
if (containers.length === 0)
1827+
limits = dbDetails?.spec?.podTemplate?.spec?.resources?.requests || {}
1828+
else {
1829+
const kind = dbDetails?.kind
1830+
const resource = containers.filter((ele) => ele.name === kind?.toLowerCase())
1831+
limits = resource[0]?.resources?.requests || {}
1832+
}
1833+
return limits
1834+
}
1835+
18451836
return {
18461837
isMachineValid,
18471838
setExporter,
1848-
onExporterResourceChange,
18491839
fetchAliasOptions,
18501840
validateNewCertificates,
18511841
disableAlias,

0 commit comments

Comments
 (0)