diff --git a/internal/commands/deploy.go b/internal/commands/deploy.go index 296d28b..0463004 100644 --- a/internal/commands/deploy.go +++ b/internal/commands/deploy.go @@ -45,7 +45,7 @@ var Deploy = &cli.Command{ return fmt.Errorf("unable to retrieve latest deployment: %w", err) } - deploy.Merge(res.DeploymentV2) + deploy.Merge(res.DeploymentV2, cmd.IsSet(idleTimeoutFlag.Name)) } if err := deploy.Validate(); err != nil { @@ -108,12 +108,12 @@ func (c *DeployConfig) Load(cmd *cli.Command) error { return nil } -func (c *DeployConfig) Merge(latest *shared.DeploymentV2) { +func (c *DeployConfig) Merge(latest *shared.DeploymentV2, isIdleTimeoutDefault bool) { if latest == nil { return } - if c.IdleTimeoutEnabled == nil { + if !isIdleTimeoutDefault { c.IdleTimeoutEnabled = &latest.IdleTimeoutEnabled } diff --git a/internal/commands/deployment.go b/internal/commands/deployment.go index 5468e81..4fbd050 100644 --- a/internal/commands/deployment.go +++ b/internal/commands/deployment.go @@ -197,7 +197,6 @@ var ( cli.EnvVar(deploymentEnvVar("IDLE_TIMEOUT_ENABLED")), altsrc.ConfigFile(configFlag.Name, "deployment.idle-timeout-enabled"), ), - Value: false, Usage: "whether to shut down processes that have had no new connections or rooms for five minutes", Persistent: true, Category: "Deployment:", @@ -401,10 +400,19 @@ func (c *CreateDeploymentConfig) Load(cmd *cli.Command) error { c.DeploymentConfig = deployment c.BuildID = int(cmd.Int(buildIDFlag.Name)) + + // Value of the idleTimeoutFlag by priority, high to low + // Passed in as an argument + // From latest deployment config (if from-latest is true) + // Default true if cmd.IsSet(idleTimeoutFlag.Name) { idleTimeoutEnabled := cmd.Bool(idleTimeoutFlag.Name) c.IdleTimeoutEnabled = &idleTimeoutEnabled + } else { + idleTimeoutEnabled := true + c.IdleTimeoutEnabled = &idleTimeoutEnabled } + c.RoomsPerProcess = int(cmd.Int(roomsPerProcessFlag.Name)) c.TransportType = shared.TransportType(cmd.String(transportTypeFlag.Name)) c.ContainerPort = int(cmd.Int(containerPortFlag.Name))