Skip to content

Conversation

@chucklever
Copy link
Contributor

Series adds three Python scripts (and related files) that construct some of the Kconfig menus for configuring the use of the AWS cloud provider. In addition, the newly-rebuilt menus are committed as part of this series.

The new scripts use the AWS API to retrieve up-to-the-minute configuration information for region/availability zones, instance families and types, and Linux AMIs. This augments the set of resources that were already in place in the hand-generated menus, and gives a simple way to regenerate these menus at any time.

The new scripts can be triggered by make targets (not included here) or run manually.

Enable kdevops to quickly pick up new regions and availability zones
whenever they are introduced by AWS. The regions that are discovered
and output by this script are those that the user has opted-in or are
"no opt-in required".

boto3 reuses connections to the API endpoint, making the generation
of the Kconfig menu quick. Jinja2 lets us manage a large amount of
bespoke Kconfig help text painlessly. The new script reports some
basic authentication issues and has a "raw" output to enable
troubleshooting.

This implementation is still missing geographic location information
that is retrieved via the 'pricing' API. IMO that can be introduced
later.

To use:

  $ terraform/aws/scripts/gen_kconfig_location >
	terraform/aws/kconfigs/Kconfig.location

Signed-off-by: Chuck Lever <[email protected]>
The generated version has the same number of regions -- all of the
regions that do not require opt-in were already included. However
the number of availability zones has increased for many regions.
The script picks these up automatically.

Signed-off-by: Chuck Lever <[email protected]>
Enable kdevops to quickly pick up new instance families and types
whenever they are introduced by AWS.

boto3 reuses connections to the API endpoint, making the generation
of the Kconfig menu quick. Jinja2 lets us manage a large amount of
bespoke Kconfig help text painlessly. The new script reports some
basic authentication issues and has a "raw" output to enable
troubleshooting.

This implementation is still missing information which can be
retrieved via the 'pricing' API.

To use:

  $ terraform/aws/scripts/gen_kconfig_instance >
        terraform/aws/kconfigs/Kconfig.instance

Signed-off-by: Chuck Lever <[email protected]>
The generated version has many more families. The TARGET_ARCH_*
Kconfig settings controls which families and types show up in the
menu.

New family choices include more cost-effective types like t1,
t2, and t3, as well as all of the GPU-enabled instance types.

Signed-off-by: Chuck Lever <[email protected]>
Enable kdevops to quickly pick up new Linux distributions whenever
they are introduced by AWS or in the marketplace.

boto3 reuses connections to the API endpoint, making the generation
of the Kconfig menu quick. Jinja2 lets us manage a large amount of
bespoke Kconfig help text painlessly. The new script reports some
basic authentication issues and has a "raw" output to enable
troubleshooting.

To use:

  $ terraform/aws/scripts/gen_kconfig_ami >
        terraform/aws/kconfigs/Kconfig.ami

Signed-off-by: Chuck Lever <[email protected]>
The generated menu has more choices of Linux distributions and
releases.

Signed-off-by: Chuck Lever <[email protected]>
@chucklever chucklever merged commit 9442566 into main Sep 23, 2025
10 checks passed
@chucklever chucklever deleted the cel-aws-dyn-kconfig branch September 23, 2025 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants