nextflow.k8s
The nextflow.k8s
package implements the Kubernetes executor and the kuberun
command.
Class Diagram
classDiagram
%%
%% nextflow.k8s
%%
Executor <|-- K8sExecutor
TaskHandler <|-- K8sTaskHandler
BashWrapperBuilder <|-- K8sWrapperBuilder
K8sExecutor --> TaskPollingMonitor : init
K8sExecutor --> K8sTaskHandler : submit
K8sExecutor --* K8sClient
K8sTaskHandler --> K8sWrapperBuilder : submit
CmdKubeRun --> K8sDriverLauncher : run
class K8sDriverLauncher {
args : List~String~
cmd : CmdKubeRun
config : ConfigObject
configMapName : String
headCpus : int
headImage : String
headMemory : String
headPreScript : String
paramsFile : String
pipelineName : String
runName : String
}
K8sDriverLauncher --* K8sClient
K8sDriverLauncher --* K8sConfig
K8sClient --* ClientConfig
%% ConfigDiscovery --> ClientConfig : discover
class K8sConfig {
target : Map
podOptions : PodOptions
}
K8sConfig --* PodOptions
class PodOptions {
affinity : Map
annotations : Map
automountServiceAccountToken : boolean
configMaps : Collection~PodMountConfig~
envVars : Collection~PodEnv~
imagePullPolicy : String
imagePullSecret : String
labels : Map
nodeSelector : PodNodeSelector
priorityClassName : String
privileged : Boolean
secrets : Collection~PodMountSecret~
securityContext : PodSecurityContext
tolerations : List~Map~
volumeClaims : Collection~PodVolumeClaim~
}
Note
Some classes may be excluded from the above diagram for brevity.
Notes
The Kubernetes integration uses the K8s REST API to interact with K8s clusters, and relies on the kubectl
command and ~/.kube/config
file for authentication.