Feature: aws
Description
A platform feature that builds a Garden Linux image for Amazon Web Services (AWS). The image is delivered as a .raw file suitable for import into AWS.
What it does
Installs cloud-init and amazon-ec2-utils to handle instance initialization, metadata retrieval, and EC2-specific utilities. The feature configures:
- DNS resolver: configures
systemd-resolvedwith AWS-specific settings. - Time synchronization: configures
systemd-timesyncdto use the - Clocksource: enables a systemd service (
aws-clocksource.service) that selects the appropriate clocksource for the EC2 hypervisor. AWS-provided NTP endpoint. - Cloud-init: removes the
growpart,resizefs, andntpmodules from the cloud-init configuration (partition growth is handled in the initramfs; NTP is managed bysystemd-timesyncd). - Kernel command line: sets console and NVMe parameters for the AWS environment.
- Dracut: includes the
xen-blkfrontdriver for compatibility with Xen-based instance types.
Files
Files present in this feature and their purpose. See the feature file reference for the semantics of each file type.
| File | Purpose |
|---|---|
exec.config (ref) | Strips growpart, resizefs, and ntp modules from cloud-init configuration and enables aws-clocksource.service. |
file.include.markers.yaml (ref) | Maps files to test-coverage marker IDs. |
info.yaml (ref) | Declares type: platform and included/excluded features. |
pkg.include (ref) | Installs cloud-init, amazon-ec2-utils, dmidecode, and python3-cffi-backend. |
file.include/etc/cloud/cloud.cfg.d/01_debian-cloud.cfg (file.include) | Debian-specific cloud-init configuration baseline. |
file.include/etc/cloud/cloud.cfg.d/99_disable-network-config.cfg (file.include) | Disables cloud-init network configuration management (networking is handled by systemd). |
file.include/etc/dracut.conf.d/90-xen-blkfront-driver.conf (file.include) | Includes the xen-blkfront kernel module in the initramfs for Xen-backed instance types. |
file.include/etc/kernel/cmdline.d/10-console.cfg (file.include) | Sets the kernel console parameter for the AWS serial console. |
file.include/etc/kernel/cmdline.d/70-nvme.cfg (file.include) | Adds NVMe-specific kernel parameters. |
file.include/etc/systemd/resolved.conf.d/00-gardenlinux-aws.conf (file.include) | Configures systemd-resolved with AWS DNS settings. |
file.include/etc/systemd/system/aws-clocksource.service (file.include) | Systemd service that sets the clocksource appropriate for the EC2 hypervisor. |
file.include/etc/systemd/system/cloud-init-local.service.d/override.conf (file.include) | Systemd drop-in that adjusts cloud-init-local ordering. |
file.include/etc/systemd/timesyncd.conf.d/00-gardenlinux-aws.conf (file.include) | Configures systemd-timesyncd to use the AWS NTP endpoint (169.254.169.123). |
file.include/usr/local/sbin/clocksource-setup.sh (file.include) | Script invoked by aws-clocksource.service to detect and set the correct clocksource. |
Related features
Includes:
cloud— provides common cloud-init integration and base cloud configuration shared across cloud platforms.