From 411fdce24b66bae711830ea61125c3ed6e6d65ff Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Fri, 30 Apr 2021 19:01:34 +0100 Subject: [PATCH 1/2] Fix create/edit of resources that use ContainerResourceLimit - Think this covers workloads, container and namespaces - when no limits were set we were still appending the unit, leading to values like `nullMi` - we now overwrite all limits every time, keeping only those with new values --- components/ContainerResourceLimit.vue | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/components/ContainerResourceLimit.vue b/components/ContainerResourceLimit.vue index 9f2bc23c715..607a1d00468 100644 --- a/components/ContainerResourceLimit.vue +++ b/components/ContainerResourceLimit.vue @@ -116,12 +116,21 @@ export default { requestsMemory, } = this; const namespace = this.namespace; // no deep copy in destructure proxy yet - const out = { - limitsCpu: `${ limitsCpu }m`, - limitsMemory: `${ limitsMemory }Mi`, - requestsCpu: `${ requestsCpu }m`, - requestsMemory: `${ requestsMemory }Mi`, - }; + + const out = {}; + + if (limitsCpu) { + out.limitsCpu = `${ limitsCpu }m`; + } + if (limitsMemory) { + out.limitsMemory = `${ limitsMemory }Mi`; + } + if (requestsCpu) { + out.requestsCpu = `${ requestsCpu }Mi`; + } + if (requestsMemory) { + out.requestsMemory = `${ requestsMemory }Mi`; + } if (namespace) { namespace.setAnnotation(CONTAINER_DEFAULT_RESOURCE_LIMIT, JSON.stringify(out)); From 421179d96691678e535fe02ab0418550b78294c2 Mon Sep 17 00:00:00 2001 From: Richard Cox Date: Fri, 30 Apr 2021 19:42:10 +0100 Subject: [PATCH 2/2] Ensure we handle new (number) and untouched (string) values --- components/ContainerResourceLimit.vue | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/components/ContainerResourceLimit.vue b/components/ContainerResourceLimit.vue index 607a1d00468..aba8425f59f 100644 --- a/components/ContainerResourceLimit.vue +++ b/components/ContainerResourceLimit.vue @@ -108,6 +108,12 @@ export default { this.$emit('input', cleanUp(out)); }, + applyUnits(out, key, value, unit) { + if (value) { + out[key] = typeof value === 'string' ? value : `${ value }${ unit }`; + } + }, + updateBeforeSave(value) { const { limitsCpu, @@ -119,18 +125,10 @@ export default { const out = {}; - if (limitsCpu) { - out.limitsCpu = `${ limitsCpu }m`; - } - if (limitsMemory) { - out.limitsMemory = `${ limitsMemory }Mi`; - } - if (requestsCpu) { - out.requestsCpu = `${ requestsCpu }Mi`; - } - if (requestsMemory) { - out.requestsMemory = `${ requestsMemory }Mi`; - } + this.applyUnits(out, 'limitsCpu', limitsCpu, 'm'); + this.applyUnits(out, 'limitsMemory', limitsMemory, 'Mi'); + this.applyUnits(out, 'requestsCpu', requestsCpu, 'Mi'); + this.applyUnits(out, 'requestsMemory', requestsMemory, 'Mi'); if (namespace) { namespace.setAnnotation(CONTAINER_DEFAULT_RESOURCE_LIMIT, JSON.stringify(out));