.. _aws-driver: .. default-domain:: zuul AWS Driver ---------- If using the AWS driver to upload diskimages, see `VM Import/Export service role`_ for information on configuring the required permissions in AWS. You must also create an S3 Bucket for use by Nodepool. Selecting the ``aws`` driver adds the following options to the :attr:`providers` section of the configuration. .. attr-overview:: :prefix: providers.[aws] :maxdepth: 3 .. attr:: providers.[aws] :type: list An AWS provider's resources are partitioned into groups called `pool` (see :attr:`providers.[aws].pools` for details), and within a pool, the node types which are to be made available are listed (see :attr:`providers.[aws].pools.labels` for details). See `Boto Configuration`_ for information on how to configure credentials and other settings for AWS access in Nodepool's runtime environment. .. note:: For documentation purposes the option names are prefixed ``providers.[aws]`` to disambiguate from other drivers, but ``[aws]`` is not required in the configuration (e.g. below ``providers.[aws].pools`` refers to the ``pools`` key in the ``providers`` section when the ``aws`` driver is selected). Example: .. code-block:: yaml providers: - name: ec2-us-west-2 driver: aws region-name: us-west-2 cloud-images: - name: debian9 image-id: ami-09c308526d9534717 username: admin pools: - name: main max-servers: 5 subnet-id: subnet-0123456789abcdef0 security-group-id: sg-01234567890abcdef labels: - name: debian9 cloud-image: debian9 instance-type: t3.medium iam-instance-profile: arn: arn:aws:iam::123456789012:instance-profile/s3-read-only key-name: zuul tags: key1: value1 - name: debian9-large cloud-image: debian9 instance-type: t3.large key-name: zuul use-spot: True tags: key1: value1 key2: value2 .. attr:: name :required: A unique name for this provider configuration. .. attr:: region-name :required: Name of the `AWS region`_ to interact with. .. attr:: profile-name The AWS credentials profile to load for this provider. If unspecified the `boto3` library will select a profile. See `Boto Configuration`_ for more information. .. attr:: rate :type: float :default: 2.0 The number of operations per second to perform against the provider. .. attr:: boot-timeout :type: int seconds :default: 180 Once an instance is active, how long to try connecting to the image via SSH. If the timeout is exceeded, the node launch is aborted and the instance deleted. .. attr:: launch-timeout :type: int seconds :default: 3600 The time to wait from issuing the command to create a new instance until that instance is reported as "active". If the timeout is exceeded, the node launch is aborted and the instance deleted. .. attr:: max-cores :type: int :default: unlimited Maximum number of cores usable from this provider's pools by default. .. attr:: max-servers :type: int :default: unlimited Maximum number of servers spawnable from this provider's pools by default. .. attr:: max-ram :type: int :default: unlimited Maximum RAM usable from this provider's pools by default. .. attr:: max-resources :type: dict :default: unlimited A dictionary of other quota resource limits. AWS has quotas for certain instance types. These may be specified here to limit Nodepool's usage. The following example limits the number of high-memory instance cores: .. code-block:: yaml max-resources: 'L-43DA4232': 448 See `instance quotas`_ for more information. .. attr:: launch-retries :default: 3 The number of times to retry launching a node before considering the request failed. .. attr:: post-upload-hook :type: string :default: None Filename of an optional script that can be called after an image has been uploaded to a provider but before it is taken into use. This is useful to perform last minute validation tests before an image is really used for build nodes. The script will be called as follows: ``