tron.config.schema module

Immutable config schema objects. WARNING: it is NOT safe to delete these classes (or their attributes) if there are any references to them in DynamoDB until TRON-2200 is complete! (See DAR-2328) NOTE: this means that reverting a change that adds a new attribute is not safe :)

class tron.config.schema.ActionOnRerun(value)

Bases: Enum

An enumeration.

rerun = 'rerun'
class tron.config.schema.ActionRunnerTypes(value)

Bases: Enum

An enumeration.

none = 'none'
subprocess = 'subprocess'
class tron.config.schema.ConfigAction(name, command, requires, node, retries, retries_delay, executor, cpus, mem, disk, cap_add, cap_drop, constraints, docker_image, docker_parameters, env, secret_env, secret_volumes, projected_sa_volumes, field_selector_env, extra_volumes, expected_runtime, trigger_downstreams, triggered_by, on_upstream_rerun, trigger_timeout, node_selectors, node_affinities, labels, annotations, service_account_name, ports)

Bases: tuple

annotations

Alias for field number 29

cap_add

Alias for field number 10

cap_drop

Alias for field number 11

command

Alias for field number 1

constraints

Alias for field number 12

cpus

Alias for field number 7

disk

Alias for field number 9

docker_image

Alias for field number 13

docker_parameters

Alias for field number 14

env

Alias for field number 15

executor

Alias for field number 6

expected_runtime

Alias for field number 21

extra_volumes

Alias for field number 20

field_selector_env

Alias for field number 19

labels

Alias for field number 28

mem

Alias for field number 8

name

Alias for field number 0

node

Alias for field number 3

node_affinities

Alias for field number 27

node_selectors

Alias for field number 26

on_upstream_rerun

Alias for field number 24

optional_keys = ['requires', 'node', 'retries', 'retries_delay', 'executor', 'cpus', 'mem', 'disk', 'cap_add', 'cap_drop', 'constraints', 'docker_image', 'docker_parameters', 'env', 'secret_env', 'secret_volumes', 'projected_sa_volumes', 'field_selector_env', 'extra_volumes', 'expected_runtime', 'trigger_downstreams', 'triggered_by', 'on_upstream_rerun', 'trigger_timeout', 'node_selectors', 'node_affinities', 'labels', 'annotations', 'service_account_name', 'ports']
ports

Alias for field number 31

projected_sa_volumes

Alias for field number 18

required_keys = ['name', 'command']
requires

Alias for field number 2

retries

Alias for field number 4

retries_delay

Alias for field number 5

secret_env

Alias for field number 16

secret_volumes

Alias for field number 17

service_account_name

Alias for field number 30

trigger_downstreams

Alias for field number 22

trigger_timeout

Alias for field number 25

triggered_by

Alias for field number 23

class tron.config.schema.ConfigActionRunner(runner_type, remote_status_path, remote_exec_path)

Bases: tuple

optional_keys = ['runner_type', 'remote_status_path', 'remote_exec_path']
remote_exec_path

Alias for field number 2

remote_status_path

Alias for field number 1

required_keys = []
runner_type

Alias for field number 0

class tron.config.schema.ConfigCleanupAction(command, name, node, retries, retries_delay, expected_runtime, executor, cpus, mem, disk, cap_add, cap_drop, constraints, docker_image, docker_parameters, env, secret_env, secret_volumes, projected_sa_volumes, field_selector_env, extra_volumes, trigger_downstreams, triggered_by, on_upstream_rerun, trigger_timeout, node_selectors, node_affinities, labels, annotations, service_account_name, ports)

Bases: tuple

annotations

Alias for field number 28

cap_add

Alias for field number 10

cap_drop

Alias for field number 11

command

Alias for field number 0

constraints

Alias for field number 12

cpus

Alias for field number 7

disk

Alias for field number 9

docker_image

Alias for field number 13

docker_parameters

Alias for field number 14

env

Alias for field number 15

executor

Alias for field number 6

expected_runtime

Alias for field number 5

extra_volumes

Alias for field number 20

field_selector_env

Alias for field number 19

labels

Alias for field number 27

mem

Alias for field number 8

name

Alias for field number 1

node

Alias for field number 2

node_affinities

Alias for field number 26

node_selectors

Alias for field number 25

on_upstream_rerun

Alias for field number 23

optional_keys = ['name', 'node', 'retries', 'retries_delay', 'expected_runtime', 'executor', 'cpus', 'mem', 'disk', 'cap_add', 'cap_drop', 'constraints', 'docker_image', 'docker_parameters', 'env', 'secret_env', 'secret_volumes', 'projected_sa_volumes', 'field_selector_env', 'extra_volumes', 'trigger_downstreams', 'triggered_by', 'on_upstream_rerun', 'trigger_timeout', 'node_selectors', 'node_affinities', 'labels', 'annotations', 'service_account_name', 'ports']
ports

Alias for field number 30

projected_sa_volumes

Alias for field number 18

required_keys = ['command']
retries

Alias for field number 3

retries_delay

Alias for field number 4

secret_env

Alias for field number 16

secret_volumes

Alias for field number 17

service_account_name

Alias for field number 29

trigger_downstreams

Alias for field number 21

trigger_timeout

Alias for field number 24

triggered_by

Alias for field number 22

class tron.config.schema.ConfigConstraint(attribute, operator, value)

Bases: tuple

attribute

Alias for field number 0

operator

Alias for field number 1

optional_keys = []
required_keys = ['attribute', 'operator', 'value']
value

Alias for field number 2

class tron.config.schema.ConfigFieldSelectorSource(field_path)

Bases: tuple

field_path

Alias for field number 0

optional_keys = []
required_keys = ['field_path']
class tron.config.schema.ConfigJob(name, node, schedule, actions, namespace, monitoring, queueing, run_limit, all_nodes, cleanup_action, enabled, allow_overlap, max_runtime, time_zone, expected_runtime, use_k8s)

Bases: tuple

actions

Alias for field number 3

all_nodes

Alias for field number 8

allow_overlap

Alias for field number 11

cleanup_action

Alias for field number 9

enabled

Alias for field number 10

expected_runtime

Alias for field number 14

max_runtime

Alias for field number 12

monitoring

Alias for field number 5

name

Alias for field number 0

namespace

Alias for field number 4

node

Alias for field number 1

optional_keys = ['monitoring', 'queueing', 'run_limit', 'all_nodes', 'cleanup_action', 'enabled', 'allow_overlap', 'max_runtime', 'time_zone', 'expected_runtime', 'use_k8s']
queueing

Alias for field number 6

required_keys = ['name', 'node', 'schedule', 'actions', 'namespace']
run_limit

Alias for field number 7

schedule

Alias for field number 2

time_zone

Alias for field number 13

use_k8s

Alias for field number 15

class tron.config.schema.ConfigKubernetes(kubeconfig_path, enabled, default_volumes)

Bases: tuple

default_volumes

Alias for field number 2

enabled

Alias for field number 1

kubeconfig_path

Alias for field number 0

optional_keys = ['kubeconfig_path', 'enabled', 'default_volumes']
required_keys = []
class tron.config.schema.ConfigMesos(master_address, master_port, secret_file, principal, role, enabled, default_volumes, dockercfg_location, offer_timeout)

Bases: tuple

default_volumes

Alias for field number 6

dockercfg_location

Alias for field number 7

enabled

Alias for field number 5

master_address

Alias for field number 0

master_port

Alias for field number 1

offer_timeout

Alias for field number 8

optional_keys = ['master_address', 'master_port', 'secret_file', 'principal', 'role', 'enabled', 'default_volumes', 'dockercfg_location', 'offer_timeout']
principal

Alias for field number 3

required_keys = []
role

Alias for field number 4

secret_file

Alias for field number 2

class tron.config.schema.ConfigNode(hostname, name, username, port)

Bases: tuple

hostname

Alias for field number 0

name

Alias for field number 1

optional_keys = ['name', 'username', 'port']
port

Alias for field number 3

required_keys = ['hostname']
username

Alias for field number 2

class tron.config.schema.ConfigNodeAffinity(key, operator, value)

Bases: tuple

key

Alias for field number 0

operator

Alias for field number 1

optional_keys = []
required_keys = ['key', 'operator', 'value']
value

Alias for field number 2

class tron.config.schema.ConfigNodePool(nodes, name)

Bases: tuple

name

Alias for field number 1

nodes

Alias for field number 0

optional_keys = ['name']
required_keys = ['nodes']
class tron.config.schema.ConfigParameter(key, value)

Bases: tuple

key

Alias for field number 0

optional_keys = []
required_keys = ['key', 'value']
value

Alias for field number 1

class tron.config.schema.ConfigProjectedSAVolume(container_path, audience, expiration_seconds)

Bases: tuple

audience

Alias for field number 1

container_path

Alias for field number 0

expiration_seconds

Alias for field number 2

optional_keys = ['expiration_seconds']
required_keys = ['container_path', 'audience']
class tron.config.schema.ConfigSSHOptions(agent, identities, known_hosts_file, connect_timeout, idle_connection_timeout, jitter_min_load, jitter_max_delay, jitter_load_factor)

Bases: tuple

agent

Alias for field number 0

connect_timeout

Alias for field number 3

identities

Alias for field number 1

idle_connection_timeout

Alias for field number 4

jitter_load_factor

Alias for field number 7

jitter_max_delay

Alias for field number 6

jitter_min_load

Alias for field number 5

known_hosts_file

Alias for field number 2

optional_keys = ['agent', 'identities', 'known_hosts_file', 'connect_timeout', 'idle_connection_timeout', 'jitter_min_load', 'jitter_max_delay', 'jitter_load_factor']
required_keys = []
class tron.config.schema.ConfigSecretSource(secret_name, key)

Bases: tuple

key

Alias for field number 1

optional_keys = []
required_keys = ['secret_name', 'key']
secret_name

Alias for field number 0

class tron.config.schema.ConfigSecretVolume(secret_volume_name, secret_name, container_path, default_mode=None, items=None)

Bases: ConfigSecretVolume

class tron.config.schema.ConfigSecretVolumeItem(key, path, mode)

Bases: tuple

key

Alias for field number 0

mode

Alias for field number 2

optional_keys = ['mode']
path

Alias for field number 1

required_keys = ['key', 'path']
class tron.config.schema.ConfigState(name, store_type, buffer_size, dynamodb_region, table_name)

Bases: tuple

buffer_size

Alias for field number 2

dynamodb_region

Alias for field number 3

name

Alias for field number 0

optional_keys = ['buffer_size', 'dynamodb_region', 'table_name']
required_keys = ['name', 'store_type']
store_type

Alias for field number 1

table_name

Alias for field number 4

class tron.config.schema.ConfigVolume(container_path, host_path, mode)

Bases: tuple

container_path

Alias for field number 0

host_path

Alias for field number 1

mode

Alias for field number 2

optional_keys = ['mode']
required_keys = ['container_path', 'host_path']
class tron.config.schema.ExecutorTypes(value)

Bases: Enum

An enumeration.

kubernetes = 'kubernetes'
mesos = 'mesos'
spark = 'spark'
ssh = 'ssh'
class tron.config.schema.NamedTronConfig(jobs)

Bases: tuple

jobs

Alias for field number 0

optional_keys = ['jobs']
required_keys = []
class tron.config.schema.StatePersistenceTypes(value)

Bases: Enum

An enumeration.

dynamodb = 'dynamodb'
shelve = 'shelve'
yaml = 'yaml'
class tron.config.schema.TronConfig(output_stream_dir, action_runner, state_persistence, command_context, ssh_options, time_zone, nodes, node_pools, jobs, mesos_options, k8s_options, eventbus_enabled)

Bases: tuple

action_runner

Alias for field number 1

command_context

Alias for field number 3

eventbus_enabled

Alias for field number 11

jobs

Alias for field number 8

k8s_options

Alias for field number 10

mesos_options

Alias for field number 9

node_pools

Alias for field number 7

nodes

Alias for field number 6

optional_keys = ['output_stream_dir', 'action_runner', 'state_persistence', 'command_context', 'ssh_options', 'time_zone', 'nodes', 'node_pools', 'jobs', 'mesos_options', 'k8s_options', 'eventbus_enabled']
output_stream_dir

Alias for field number 0

required_keys = []
ssh_options

Alias for field number 4

state_persistence

Alias for field number 2

time_zone

Alias for field number 5

class tron.config.schema.VolumeModes(value)

Bases: Enum

An enumeration.

RO = 'RO'
RW = 'RW'
tron.config.schema.config_object_factory(name, required=None, optional=None)
Creates a namedtuple which has two additional attributes:
required_keys:

all keys required to be set on this configuration object

optional keys:

optional keys for this configuration object

The tuple is created from required + optional