mirror of https://github.com/rancher/dashboard.git
add terminationgraceperiodseconds to job/cronjob scaling/upgrading tab
fix args input update container name when workload name changes in create
This commit is contained in:
parent
6de75253be
commit
19069cfe83
|
|
@ -96,17 +96,16 @@ export default {
|
||||||
update() {
|
update() {
|
||||||
const out = {
|
const out = {
|
||||||
...this.value,
|
...this.value,
|
||||||
...cleanUp({
|
stdin: this.stdin,
|
||||||
stdin: this.stdin,
|
stdinOnce: this.stdinOnce,
|
||||||
stdinOnce: this.stdinOnce,
|
command: this.command,
|
||||||
command: this.command,
|
args: this.args,
|
||||||
args: this.args,
|
workingDir: this.workingDir,
|
||||||
workingDir: this.workingDir,
|
tty: this.tty,
|
||||||
tty: this.tty,
|
|
||||||
}),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.$emit('input', out);
|
this.$emit('input', cleanUp(out) );
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ export default {
|
||||||
let out = null;
|
let out = null;
|
||||||
|
|
||||||
if ( userValue ) {
|
if ( userValue ) {
|
||||||
out = userValue.split(/ /);
|
out = userValue.match(/(\"[^\"]+\")|\S+/g).map(string => string.replace(/^"|"$/g, ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$emit('input', out);
|
this.$emit('input', out);
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
const {
|
const {
|
||||||
failedJobsHistoryLimit, successfulJobsHistoryLimit, suspend = false, schedule
|
failedJobsHistoryLimit, successfulJobsHistoryLimit, suspend = false, schedule,
|
||||||
} = this.value;
|
} = this.value;
|
||||||
|
|
||||||
if (this.type === WORKLOAD_TYPES.CRON_JOB) {
|
if (this.type === WORKLOAD_TYPES.CRON_JOB) {
|
||||||
|
|
@ -38,19 +38,22 @@ export default {
|
||||||
}
|
}
|
||||||
const { concurrencyPolicy = 'Allow', startingDeadlineSeconds } = this.value;
|
const { concurrencyPolicy = 'Allow', startingDeadlineSeconds } = this.value;
|
||||||
const {
|
const {
|
||||||
completions, parallelism, backoffLimit, activeDeadlineSeconds
|
completions, parallelism, backoffLimit, activeDeadlineSeconds,
|
||||||
|
template:{ spec: { terminationGracePeriodSeconds } }
|
||||||
|
|
||||||
} = this.value.jobTemplate.spec;
|
} = this.value.jobTemplate.spec;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
completions, parallelism, backoffLimit, activeDeadlineSeconds, failedJobsHistoryLimit, successfulJobsHistoryLimit, suspend, schedule, concurrencyPolicy, startingDeadlineSeconds
|
completions, parallelism, backoffLimit, activeDeadlineSeconds, failedJobsHistoryLimit, successfulJobsHistoryLimit, suspend, schedule, concurrencyPolicy, startingDeadlineSeconds, terminationGracePeriodSeconds
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
const {
|
const {
|
||||||
completions, parallelism, backoffLimit, activeDeadlineSeconds
|
completions, parallelism, backoffLimit, activeDeadlineSeconds,
|
||||||
|
template:{ spec: { terminationGracePeriodSeconds } }
|
||||||
} = this.value;
|
} = this.value;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
completions, parallelism, backoffLimit, activeDeadlineSeconds, failedJobsHistoryLimit, successfulJobsHistoryLimit, suspend, schedule
|
completions, parallelism, backoffLimit, activeDeadlineSeconds, failedJobsHistoryLimit, successfulJobsHistoryLimit, suspend, schedule, terminationGracePeriodSeconds
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -73,6 +76,8 @@ export default {
|
||||||
activeDeadlineSeconds: this.activeDeadlineSeconds,
|
activeDeadlineSeconds: this.activeDeadlineSeconds,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
spec.template.spec.terminationGracePeriodSeconds = this.terminationGracePeriodSeconds;
|
||||||
|
|
||||||
this.$emit('input', spec);
|
this.$emit('input', spec);
|
||||||
} else {
|
} else {
|
||||||
const spec = {
|
const spec = {
|
||||||
|
|
@ -87,10 +92,13 @@ export default {
|
||||||
completions: this.completions,
|
completions: this.completions,
|
||||||
parallelism: this.parallelism,
|
parallelism: this.parallelism,
|
||||||
backoffLimit: this.backoffLimit,
|
backoffLimit: this.backoffLimit,
|
||||||
activeDeadlineSeconds: this.activeDeadlineSeconds
|
activeDeadlineSeconds: this.activeDeadlineSeconds,
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
spec.jobTemplate.spec.template.spec.terminationGracePeriodSeconds = this.terminationGracePeriodSeconds;
|
||||||
|
|
||||||
this.$emit('input', spec);
|
this.$emit('input', spec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -144,8 +152,9 @@ export default {
|
||||||
</UnitInput>
|
</UnitInput>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<template v-if="isCronJob">
|
<template v-if="isCronJob">
|
||||||
<div class="row mb-20">
|
<div class="row mb-20">
|
||||||
<div class="col span-6">
|
<div class="col span-6">
|
||||||
<LabeledInput v-model.number="successfulJobsHistoryLimit" :mode="mode">
|
<LabeledInput v-model.number="successfulJobsHistoryLimit" :mode="mode">
|
||||||
<template #label>
|
<template #label>
|
||||||
|
|
@ -179,15 +188,14 @@ export default {
|
||||||
</UnitInput>
|
</UnitInput>
|
||||||
</div>
|
</div>
|
||||||
<div class="col span-6">
|
<div class="col span-6">
|
||||||
<RadioGroup
|
<UnitInput v-model="terminationGracePeriodSeconds" :suffix="terminationGracePeriodSeconds == 1 ? 'Second' : 'Seconds'" :label="t('workload.upgrading.activeDeadlineSeconds.label')" :mode="mode">
|
||||||
v-model="suspend"
|
<template #label>
|
||||||
:mode="mode"
|
<label class="has-tooltip" :style="{'color':'var(--input-label)'}">
|
||||||
:label="t('workload.job.suspend')"
|
{{ t('workload.upgrading.terminationGracePeriodSeconds.label') }}
|
||||||
name="suspend"
|
<i v-tooltip="t('workload.upgrading.terminationGracePeriodSeconds.tip')" class="icon icon-info" style="font-size: 14px" />
|
||||||
:options="[true, false]"
|
</label>
|
||||||
:labels="['Yes', 'No']"
|
</template>
|
||||||
@input="update"
|
</UnitInput>
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
@ -202,7 +210,30 @@ export default {
|
||||||
@input="update"
|
@input="update"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col span-6">
|
||||||
|
<RadioGroup
|
||||||
|
v-model="suspend"
|
||||||
|
:mode="mode"
|
||||||
|
:label="t('workload.job.suspend')"
|
||||||
|
name="suspend"
|
||||||
|
:options="[true, false]"
|
||||||
|
:labels="['Yes', 'No']"
|
||||||
|
@input="update"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<div v-else class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<UnitInput v-model="terminationGracePeriodSeconds" :suffix="terminationGracePeriodSeconds == 1 ? 'Second' : 'Seconds'" :label="t('workload.upgrading.activeDeadlineSeconds.label')" :mode="mode">
|
||||||
|
<template #label>
|
||||||
|
<label class="has-tooltip" :style="{'color':'var(--input-label)'}">
|
||||||
|
{{ t('workload.upgrading.terminationGracePeriodSeconds.label') }}
|
||||||
|
<i v-tooltip="t('workload.upgrading.terminationGracePeriodSeconds.tip')" class="icon icon-info" style="font-size: 14px" />
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</UnitInput>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import Networking from '@/components/form/Networking';
|
||||||
import VolumeClaimTemplate from '@/edit/workload/VolumeClaimTemplate';
|
import VolumeClaimTemplate from '@/edit/workload/VolumeClaimTemplate';
|
||||||
import Job from '@/edit/workload/Job';
|
import Job from '@/edit/workload/Job';
|
||||||
import { defaultAsyncData } from '@/components/ResourceDetail';
|
import { defaultAsyncData } from '@/components/ResourceDetail';
|
||||||
import { _EDIT } from '@/config/query-params';
|
import { _EDIT, _CREATE } from '@/config/query-params';
|
||||||
import WorkloadPorts from '@/components/form/WorkloadPorts';
|
import WorkloadPorts from '@/components/form/WorkloadPorts';
|
||||||
import ContainerResourceLimit from '@/components/ContainerResourceLimit';
|
import ContainerResourceLimit from '@/components/ContainerResourceLimit';
|
||||||
import KeyValue from '@/components/form/KeyValue';
|
import KeyValue from '@/components/form/KeyValue';
|
||||||
|
|
@ -249,7 +249,7 @@ export default {
|
||||||
get() {
|
get() {
|
||||||
if (!this.podTemplateSpec.containers) {
|
if (!this.podTemplateSpec.containers) {
|
||||||
this.$set(this.podTemplateSpec, 'containers', [
|
this.$set(this.podTemplateSpec, 'containers', [
|
||||||
{ name: this.value?.metadata?.name, imagePullPolicy: 'Always' }
|
{ imagePullPolicy: 'Always' }
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -507,7 +507,7 @@ export default {
|
||||||
|
|
||||||
delete this.value.kind;
|
delete this.value.kind;
|
||||||
|
|
||||||
if (!this.container.name) {
|
if (!this.container.name || this.mode === _CREATE) {
|
||||||
this.$set(this.container, 'name', this.value.metadata.name);
|
this.$set(this.container, 'name', this.value.metadata.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue