Merge pull request #90 from ctk-hq/feat/deploy-fields

Add missing deploy fields
pull/91/head
Artem Golub 3 years ago committed by GitHub
commit 5b49a6031c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -153,6 +153,95 @@ const Deploy = () => {
</Group>
</Accordion>
<Accordion id={`${uuid}.deploy.rollbackConfig`} title="Rollback config">
<TextField
label="Parallelism"
name="deploy.rollbackConfig.parallelism"
/>
<TextField label="Delay" name="deploy.rollbackConfig.delay" />
<Toggle
name="deploy.rollbackConfig.failureAction"
label="Failure action"
options={[
{
value: "continue",
text: "Continue"
},
{
value: "pause",
text: "Pause"
}
]}
/>
<TextField label="Monitor" name="deploy.rollbackConfig.monitor" />
<TextField
label="Max failure ratio"
name="deploy.rollbackConfig.maxFailureRatio"
/>
<Toggle
name="deploy.rollbackConfig.order"
label="Order"
options={[
{
value: "stop-first",
text: "Stop first"
},
{
value: "start-first",
text: "Start first"
}
]}
/>
</Accordion>
<Accordion id={`${uuid}.deploy.updateConfig`} title="Update config">
<TextField label="Parallelism" name="deploy.updateConfig.parallelism" />
<TextField label="Delay" name="deploy.updateConfig.delay" />
<Toggle
name="deploy.updateConfig.failureAction"
label="Failure action"
options={[
{
value: "continue",
text: "Continue"
},
{
value: "pause",
text: "Pause"
}
]}
/>
<TextField label="Monitor" name="deploy.updateConfig.monitor" />
<TextField
label="Max failure ratio"
name="deploy.updateConfig.maxFailureRatio"
/>
<Toggle
name="deploy.updateConfig.order"
label="Order"
options={[
{
value: "stop-first",
text: "Stop first"
},
{
value: "start-first",
text: "Start first"
}
]}
/>
</Accordion>
<Records
name="deploy.labels"
title="Labels"

@ -84,6 +84,22 @@ const initialValues: IEditServiceForm = {
maxAttempts: "",
window: ""
},
rollbackConfig: {
parallelism: "",
delay: "",
failureAction: "",
monitor: "",
maxFailureRatio: "",
order: ""
},
updateConfig: {
parallelism: "",
delay: "",
failureAction: "",
monitor: "",
maxFailureRatio: "",
order: ""
},
labels: []
},
imageName: "",
@ -185,6 +201,22 @@ export const validationSchema = yup.object({
maxAttempts: yup.string(),
window: yup.string()
}),
rollbackConfig: yup.object({
parallelism: yup.string(),
delay: yup.string(),
failureAction: yup.string().oneOf(["", "continue", "pause"]),
monitor: yup.string(),
maxFailureRatio: yup.string(),
order: yup.string().oneOf(["", "stop-first", "start-first"])
}),
updateConfig: yup.object({
parallelism: yup.string(),
delay: yup.string(),
failureAction: yup.string().oneOf(["", "continue", "pause"]),
monitor: yup.string(),
maxFailureRatio: yup.string(),
order: yup.string().oneOf(["", "stop-first", "start-first"])
}),
labels: yup.array(
yup.object({
key: yup.string().required("Key is required"),
@ -362,6 +394,50 @@ export const getInitialValues = (node?: IServiceNodeItem): IEditServiceForm => {
initialValues.deploy.restartPolicy.window
}
: initialValues.deploy.restartPolicy,
rollbackConfig: deploy.rollback_config
? {
parallelism:
deploy.rollback_config.parallelism?.toString() ??
initialValues.deploy.rollbackConfig.parallelism,
delay:
deploy.rollback_config.delay ??
initialValues.deploy.rollbackConfig.delay,
failureAction:
deploy.rollback_config.failure_action ??
initialValues.deploy.rollbackConfig.failureAction,
monitor:
deploy.rollback_config.monitor ??
initialValues.deploy.rollbackConfig.monitor,
maxFailureRatio:
deploy.rollback_config.max_failure_ratio ??
initialValues.deploy.rollbackConfig.maxFailureRatio,
order:
deploy.rollback_config.order ??
initialValues.deploy.rollbackConfig.order
}
: initialValues.deploy.rollbackConfig,
updateConfig: deploy.update_config
? {
parallelism:
deploy.update_config.parallelism?.toString() ??
initialValues.deploy.updateConfig.parallelism,
delay:
deploy.update_config.delay ??
initialValues.deploy.updateConfig.delay,
failureAction:
deploy.update_config.failure_action ??
initialValues.deploy.updateConfig.failureAction,
monitor:
deploy.update_config.monitor ??
initialValues.deploy.updateConfig.monitor,
maxFailureRatio:
deploy.update_config.max_failure_ratio ??
initialValues.deploy.updateConfig.maxFailureRatio,
order:
deploy.update_config.order ??
initialValues.deploy.updateConfig.order
}
: initialValues.deploy.updateConfig,
labels:
extractObjectOrArray("=", "key", "value", deploy.labels) ??
initialValues.deploy.labels
@ -483,6 +559,22 @@ export const getFinalValues = (
maxAttempts: pruneNumber(parseInt(deploy.restartPolicy.maxAttempts)),
window: pruneString(deploy.restartPolicy.window)
}),
rollback_config: pruneObject({
parallelism: pruneNumber(parseInt(deploy.rollbackConfig.parallelism)),
delay: pruneString(deploy.rollbackConfig.delay),
failure_action: pruneString(deploy.rollbackConfig.failureAction),
monitor: pruneString(deploy.rollbackConfig.monitor),
max_failure_ratio: pruneString(deploy.rollbackConfig.maxFailureRatio),
order: pruneString(deploy.rollbackConfig.order)
}),
update_config: pruneObject({
parallelism: pruneNumber(parseInt(deploy.updateConfig.parallelism)),
delay: pruneString(deploy.updateConfig.delay),
failure_action: pruneString(deploy.updateConfig.failureAction),
monitor: pruneString(deploy.updateConfig.monitor),
max_failure_ratio: pruneString(deploy.updateConfig.maxFailureRatio),
order: pruneString(deploy.updateConfig.order)
}),
labels: packArrayAsObject(deploy.labels, "key", "value")
}),
image: `${values.imageName}${

@ -183,18 +183,18 @@ export interface IService {
rollback_config?: {
parallelism?: number;
delay?: string;
failure_action?: string;
failure_action?: "continue" | "pause";
monitor?: string;
max_failure_ratio?: string;
order?: string;
order?: "stop-first" | "start-first";
};
update_config?: {
parallelism?: number;
delay?: string;
failure_action?: string;
failure_action?: "continue" | "pause";
monitor?: string;
max_failure_ratio?: string;
order?: string;
order?: "stop-first" | "start-first";
};
};
device_cgroup_rules: string[];
@ -429,6 +429,22 @@ export interface IEditServiceForm {
maxAttempts: string;
window: string;
};
rollbackConfig: {
parallelism: string;
delay: string;
failureAction: "" | "continue" | "pause";
monitor: string;
maxFailureRatio: string;
order: "" | "stop-first" | "start-first";
};
updateConfig: {
parallelism: string;
delay: string;
failureAction: "" | "continue" | "pause";
monitor: string;
maxFailureRatio: string;
order: "" | "stop-first" | "start-first";
};
labels: {
key: string;
value: string;

Loading…
Cancel
Save