Kubernetes Driver¶
Selecting the kubernetes driver adds the following options to the providers section of the configuration.
-
providers.[kubernetes]¶
Type: list A Kubernetes provider’s resources are partitioned into groups called pools (see providers.[kubernetes].pools for details), and within a pool, the node types which are to be made available are listed (see providers.[kubernetes].pools.labels for details).
Note
For documentation purposes the option names are prefixed
providers.[kubernetes]to disambiguate from other drivers, but[kubernetes]is not required in the configuration (e.g. belowproviders.[kubernetes].poolsrefers to thepoolskey in theproviderssection when thekubernetesdriver is selected).Example:
providers: - name: kubespray driver: kubernetes context: admin-cluster.local pools: - name: main labels: - name: kubernetes-namespace type: namespace - name: pod-fedora type: pod image: docker.io/fedora:28
-
providers.[kubernetes].context¶ Name of the context configured in
kube/config.Before using the driver, Nodepool either needs a
kube/configfile installed with a cluster admin context, in which case this setting is required, or if Nodepool is running inside Kubernetes, this setting and thekube/configfile may be omitted and Nodepool will use a service account loaded from the in-cluster configuration path.
-
providers.[kubernetes].launch-retries¶
Default:3 The number of times to retry launching a node before considering the job failed.
-
providers.[kubernetes].pools¶
Type: list A pool defines a group of resources from a Kubernetes provider.
-
providers.[kubernetes].pools.name(required)¶ Namespaces are prefixed with the pool’s name.
-
providers.[kubernetes].pools.node-attributes¶
Type: dict A dictionary of key-value pairs that will be stored with the node data in ZooKeeper. The keys and values can be any arbitrary string.
-
providers.[kubernetes].pools.labels¶
Type: list Each entry in a pool`s labels section indicates that the corresponding label is available for use in this pool.
Each entry is a dictionary with the following keys
-
providers.[kubernetes].pools.labels.name(required)¶ Identifier for this label; references an entry in the labels section.
-
providers.[kubernetes].pools.labels.type¶ The Kubernetes provider supports two types of labels:
-
namespace¶ Namespace labels provide an empty namespace configured with a service account that can create pods, services, configmaps, etc.
-
pod¶ Pod labels provide a dedicated namespace with a single pod created using the providers.[kubernetes].pools.labels.image parameter and it is configured with a service account that can exec and get the logs of the pod.
-
-
providers.[kubernetes].pools.labels.image¶ Only used by the pod label type; specifies the image name used by the pod.
-
providers.[kubernetes].pools.labels.python-path¶
Default:auto
Type: str The path of the default python interpreter. Used by Zuul to set
ansible_python_interpreter. The special valueautowill direct Zuul to use inbuilt Ansible logic to select the interpreter on Ansible >=2.8, and default to/usr/bin/python2for earlier versions.
-
providers.[kubernetes].pools.labels.cpu¶
Type: int Only used by the pod label type; specifies the number of cpu to request for the pod.
-
providers.[kubernetes].pools.labels.memory¶
Type: int Only used by the pod label type; specifies the amount of memory in MB to request for the pod.
-
providers.[kubernetes].pools.labels.env¶
Default:[]
Type: list Only used by the pod label type; A list of environment variables to pass to the Pod.
-
providers.[kubernetes].pools.labels.env.name(required)¶
Type: str The name of the environment variable passed to the Pod.
-
providers.[kubernetes].pools.labels.env.value(required)¶
Type: str The value of the environment variable passed to the Pod.
-
-
-
-