2.9 KiB
Dynamic Plugins Configuration
Table of Contents
Created by gh-md-toc
Motivation
There are several plugins and actions in kube-batch right now; the users may want to only enable part of plugins and actions. This document is going to introduce dynamic plugins configuration, so the users can configure kube-batch according to their
scenario on the fly.
Function Detail
The following YAML format will be introduced for dynamic plugin configuration:
actions: "list_of_action_in_order"
tiers:
- plugins:
- name: "plugin_1"
disableJobOrder: true
- name: "plugin_2"
- plugins:
- name: "plugin_3"
disableJobOrder: true
The actions is a list of actions that will be executed by kube-batch in order, separated
by commas. Refer to the tutorial for
the list of supported actions in kube-batch. Those actions will be executed in order, although
the "order" maybe incorrect; the kube-batch does not enforce that.
The tiers is a list of plugins that will be used by related actions, e.g. allocate. It includes
several tiers of plugin list by plugins; if it fits plugins in high priority tier, the action will not
go through the plugins in lower priority tiers. In each tier, it's considered passed if all the plugins are
fitted in plugins.names.
The options defines the detail behaviour of each plugins, e.g. whether preemption is enabled. If not
specific, true is default value. For now, preemptable, jobOrder, taskOrder are supported.
Takes following example as demonstration:
- The actions
"reclaim, allocate, backfill, preempt"will be executed in order bykube-batch "priority"has higher priority than"gang, drf, predicates, proportion"; a job with higher priority will preempt other jobs, although it's already allocated "enough" resource according to"drf""tiers.plugins.drf.disableTaskOrder"istrue, sodrfwill not impact task order phase/action
actions: "reclaim, allocate, backfill, preempt"
tiers:
- plugins:
- name: "priority"
- name: "gang"
- plugins:
- name: "drf"
disableTaskOrder: true
- name: "predicates"
- name: "proportion"
Feature Interaction
ConfigMap
kube-batch will read the plugin configuration from command line argument --scheduler-conf; user can
use ConfigMap to acesss the volume of kube-batch pod during deployment.