Execution Dynamic Config
This page documents the dynamic configuration for all execution components.
Configuration Options
Each of the following sections corresponds to a single key in the dynamic configuration ConfigMap.
jobs
Defines configuration for Jobs.
defaultTTLSecondsAfterFinished
Defines the default value of ttlSecondsAfterFinished
for a Job if it is not defined. For more information, see Garbage Collection.
To avoid issues with huge amounts of finished Jobs building up, a non-zero TTL is enforced.
Defaults to 3600 (1 hour).
defaultPendingTimeoutSeconds
Defines the default value of pendingTimeoutSeconds
for a Job if it is not defined. For more information, see Pending Timeouts.
Defaults to 900 (15 minutes).
forceDeleteTaskTimeoutSeconds
The duration before the controller uses force deletion instead of normal deletion. This timeout is computed from the deletionTimestamp of the object, which may also include an additional delay of deletionGracePeriodSeconds
. For more information, see Force Deletion.
Force deletion causes the task to be deleted without confirmation that the task has already terminated. When pod
is used for taskTemplate, this means that the container may remain running on the node even though the task or Job is already marked as terminated.
Set this value to 0 to disable force deletion globally. Individual jobs can also specify spec.forbidTaskForceDeletion in the JobTemplate to disable force deletion if this behavior is not desired.
Defaults to 900 (15 minutes).
jobConfigs
Defines configuration for JobConfigs.
maxEnqueuedJobs
The global maximum enqueued jobs that can be enqueued for a single JobConfig.
Defaults to 20
.
cron
Defines configuration for parsing cron expressions within the cluster.
cronFormat
Specifies the format used to parse cron expressions. The only difference is in the Day of Week digit parsing.
Only the following values are supported:
standard
(default): Standard cron format.quartz
: Quartz cron format.
cronHashNames
Specifies if cron expressions should be hashed using the JobConfig's name. Enabling this option would allow H
tokens to be used. If disabled, any JobConfigs that use the H
syntax will throw a parse error.
Defaults to true
.
cronHashSecondsByDefault
Specifies if the seconds field of a cron expression should be a H
or 0
by default if omitted. If enabled, the default seconds field will be H
, otherwise it will be 0
.
For JobConfigs which use a short cron expression format (i.e. 5 or 6 tokens long), the seconds field is omitted and is typically assumed to be 0
(e.g. 5 10 * * *
means to run at 10:05:00 every day). Enabling this option will allow JobConfigs to be scheduled across the minute, improving load balancing.
Users can still choose to start at 0 seconds by explicitly specifying a long cron expression format with 0
in the seconds field. In the above example, this would be 0 5 10 * * * *
.
Defaults to false
.
cronHashFields
Specifies if the "type of field" should be hashed along with the JobConfig's name.
For example, H H * * * * *
will always hash the seconds and minutes to the same value, for example 00:37:37, 01:37:37, etc. Enabling this option will append additional keys to be hashed to introduce additional non-determinism.
Defaults to true
.
defaultTimezone
Defines a default timezone to use for JobConfigs that do not specify a timezone.
Defaults to UTC
.
maxMissedSchedules
Defines a maximum number of jobs that the controller should back-schedule, or attempt to create after coming back up from downtime. Having a sane value here would prevent a thundering herd of jobs being scheduled that would exhaust resources in the cluster. For more information, see Back-Scheduling.
In practice, setting this to too high of a value could result in accidental resource exhaustion in the cluster if the controller was intentionally shut down for an extended period of time.
Set this to 0 to disable back-scheduling entirely. Defaults to 5.
maxDowntimeThresholdSeconds
Defines the maximum downtime that the controller can tolerate. If the controller was intentionally shut down for an extended period of time, we should not attempt to back-schedule jobs once it was started. For more information, see Back-Scheduling.
In practice, setting this to too high of a value means that jobs could be ridiculously delayed when they are better off being skipped entirely (say, sending out a end-of-week report on the following Monday instead).
Defaults to 300
(5 minutes). It is recommended to tune this to the maximum realistic outage duration of the controller.
Sample Configuration
The following sample shows how to configure the full dynamic configuration ConfigMap of the execution component, as well as the default configuration values for each field.