Skip to content

Commit af75b49

Browse files
committed
stacks: Add support for start interval
Signed-off-by: Brian Goff <[email protected]>
1 parent dcc1610 commit af75b49

3 files changed

Lines changed: 33 additions & 21 deletions

File tree

cli/compose/convert/service.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -436,8 +436,8 @@ func convertHealthcheck(healthcheck *composetypes.HealthCheckConfig) (*container
436436
return nil, nil
437437
}
438438
var (
439-
timeout, interval, startPeriod time.Duration
440-
retries int
439+
timeout, interval, startPeriod, startInterval time.Duration
440+
retries int
441441
)
442442
if healthcheck.Disable {
443443
if len(healthcheck.Test) != 0 {
@@ -457,15 +457,19 @@ func convertHealthcheck(healthcheck *composetypes.HealthCheckConfig) (*container
457457
if healthcheck.StartPeriod != nil {
458458
startPeriod = time.Duration(*healthcheck.StartPeriod)
459459
}
460+
if healthcheck.StartInterval != nil {
461+
startInterval = time.Duration(*healthcheck.StartInterval)
462+
}
460463
if healthcheck.Retries != nil {
461464
retries = int(*healthcheck.Retries)
462465
}
463466
return &container.HealthConfig{
464-
Test: healthcheck.Test,
465-
Timeout: timeout,
466-
Interval: interval,
467-
Retries: retries,
468-
StartPeriod: startPeriod,
467+
Test: healthcheck.Test,
468+
Timeout: timeout,
469+
Interval: interval,
470+
Retries: retries,
471+
StartPeriod: startPeriod,
472+
StartInterval: startInterval,
469473
}, nil
470474
}
471475

cli/compose/convert/service_test.go

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,17 +124,24 @@ func TestConvertHealthcheck(t *testing.T) {
124124
retries := uint64(10)
125125
timeout := composetypes.Duration(30 * time.Second)
126126
interval := composetypes.Duration(2 * time.Millisecond)
127+
startPeriod := composetypes.Duration(time.Minute)
128+
startInterval := composetypes.Duration(2 * time.Second)
129+
127130
source := &composetypes.HealthCheckConfig{
128-
Test: []string{"EXEC", "touch", "/foo"},
129-
Timeout: &timeout,
130-
Interval: &interval,
131-
Retries: &retries,
131+
Test: []string{"EXEC", "touch", "/foo"},
132+
Timeout: &timeout,
133+
Interval: &interval,
134+
Retries: &retries,
135+
StartPeriod: &startPeriod,
136+
StartInterval: &startInterval,
132137
}
133138
expected := &container.HealthConfig{
134-
Test: source.Test,
135-
Timeout: time.Duration(timeout),
136-
Interval: time.Duration(interval),
137-
Retries: 10,
139+
Test: source.Test,
140+
Timeout: time.Duration(timeout),
141+
Interval: time.Duration(interval),
142+
StartPeriod: time.Duration(startPeriod),
143+
StartInterval: time.Duration(startInterval),
144+
Retries: 10,
138145
}
139146

140147
healthcheck, err := convertHealthcheck(source)

cli/compose/types/types.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -276,12 +276,13 @@ type DeployConfig struct {
276276

277277
// HealthCheckConfig the healthcheck configuration for a service
278278
type HealthCheckConfig struct {
279-
Test HealthCheckTest `yaml:",omitempty" json:"test,omitempty"`
280-
Timeout *Duration `yaml:",omitempty" json:"timeout,omitempty"`
281-
Interval *Duration `yaml:",omitempty" json:"interval,omitempty"`
282-
Retries *uint64 `yaml:",omitempty" json:"retries,omitempty"`
283-
StartPeriod *Duration `mapstructure:"start_period" yaml:"start_period,omitempty" json:"start_period,omitempty"`
284-
Disable bool `yaml:",omitempty" json:"disable,omitempty"`
279+
Test HealthCheckTest `yaml:",omitempty" json:"test,omitempty"`
280+
Timeout *Duration `yaml:",omitempty" json:"timeout,omitempty"`
281+
Interval *Duration `yaml:",omitempty" json:"interval,omitempty"`
282+
Retries *uint64 `yaml:",omitempty" json:"retries,omitempty"`
283+
StartPeriod *Duration `mapstructure:"start_period" yaml:"start_period,omitempty" json:"start_period,omitempty"`
284+
StartInterval *Duration `yaml:",omitempty" json:"start_interval,omitempty"`
285+
Disable bool `yaml:",omitempty" json:"disable,omitempty"`
285286
}
286287

287288
// HealthCheckTest is the command run to test the health of a service

0 commit comments

Comments
 (0)