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;