diff --git a/services/frontend/src/components/Modal/service/Deploy.tsx b/services/frontend/src/components/Modal/service/Deploy.tsx index 120bf39..411b508 100644 --- a/services/frontend/src/components/Modal/service/Deploy.tsx +++ b/services/frontend/src/components/Modal/service/Deploy.tsx @@ -153,6 +153,95 @@ const Deploy = () => { + + + + + + + + + + + + + + + + + + + + + + + + + + + + { 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}${ diff --git a/services/frontend/src/types/index.ts b/services/frontend/src/types/index.ts index 8dfa319..913acf3 100644 --- a/services/frontend/src/types/index.ts +++ b/services/frontend/src/types/index.ts @@ -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;