worker/server: make worker timeout configurable

This commit is contained in:
Sanne Raymaekers 2024-04-19 16:30:26 +02:00
parent 161a15196f
commit 0b277937dd
3 changed files with 20 additions and 12 deletions

View file

@ -60,6 +60,7 @@ func NewComposer(config *ComposerConfigFile, stateDir, cacheDir string) (*Compos
BasePath: config.Worker.BasePath,
JWTEnabled: config.Worker.EnableJWT,
TenantProviderFields: config.Worker.JWTTenantProviderFields,
WorkerWatchFreq: time.Minute * 5,
}
var err error
@ -121,6 +122,10 @@ func NewComposer(config *ComposerConfigFile, stateDir, cacheDir string) (*Compos
if err != nil {
return nil, fmt.Errorf("Unable to parse request job timeout: %v", err)
}
workerConfig.WorkerTimeout, err = time.ParseDuration(config.Worker.WorkerHeartbeatTimeout)
if err != nil {
return nil, fmt.Errorf("Unable to parse request worker heartbeat timeout: %v", err)
}
c.workers = worker.NewServer(c.logger, jobs, workerConfig)

View file

@ -57,6 +57,7 @@ type WorkerAPIConfig struct {
JWTKeysCA string `toml:"jwt_ca_file"`
JWTACLFile string `toml:"jwt_acl_file"`
JWTTenantProviderFields []string `toml:"jwt_tenant_provider_fields"`
WorkerHeartbeatTimeout string `toml:"worker_heartbeat_timeout"`
}
type WeldrAPIConfig struct {
@ -93,12 +94,13 @@ func GetDefaultConfig() *ComposerConfigFile {
EnableJWT: false,
},
Worker: WorkerAPIConfig{
RequestJobTimeout: "0",
BasePath: "/api/worker/v1",
EnableArtifacts: true,
EnableTLS: true,
EnableMTLS: true,
EnableJWT: false,
RequestJobTimeout: "0",
BasePath: "/api/worker/v1",
EnableArtifacts: true,
EnableTLS: true,
EnableMTLS: true,
EnableJWT: false,
WorkerHeartbeatTimeout: "1h",
},
WeldrAPI: WeldrAPIConfig{
map[string]WeldrDistroConfig{

View file

@ -37,12 +37,13 @@ func TestDefaultConfig(t *testing.T) {
}, defaultConfig.Koji)
require.Equal(t, WorkerAPIConfig{
RequestJobTimeout: "0",
BasePath: "/api/worker/v1",
EnableArtifacts: true,
EnableTLS: true,
EnableMTLS: true,
EnableJWT: false,
RequestJobTimeout: "0",
BasePath: "/api/worker/v1",
EnableArtifacts: true,
EnableTLS: true,
EnableMTLS: true,
EnableJWT: false,
WorkerHeartbeatTimeout: "1h",
}, defaultConfig.Worker)
expectedWeldrAPIConfig := WeldrAPIConfig{