This adds a workflow to build standardized Ubuntu Cloud Images. AMIs are build and tested using Packer. They are pre-configured with cloud-init and the AWS SSM agent. The images are built using the official Ubuntu Cloud Image artifacts.
Containers are built using buildah The containers undergo normalization and minimalization to ensure they are as small as possible and behave consistently.
The ubuntu-cloud-images script is used to scope the workflow to only the Ubuntu Cloud Image release which it has not yet built. This script caches the etag of each release so that it can be skipped if it has already been built. The script outputs this scope to json as a step output for use as a matrix strategy in the workflow. It also securely downloads the official Ubuntu Cloud Image artifacts.
Estimate details (includes details of unsupported resources and skipped projects due to errors)
```
──────────────────────────────────
Project: terraform-stacks-runners
Module path: terraform/stacks/runners
Errors:
Failed to lookup module "spacelift.io/jhatler/runner-template/aws" - No versions found for registry module
──────────────────────────────────
──────────────────────────────────
9 projects have no cost estimate changes.
Run the following command to see their breakdown: infracost breakdown --path=/path/to/code
──────────────────────────────────
181 cloud resources were detected:
∙ 15 were estimated
∙ 153 were free
∙ 13 are not supported yet, see https://infracost.io/requested-resources:
∙ 10 x aws_network_acl_association
∙ 3 x aws_s3_bucket_lifecycle_configuration
```
This adds a workflow to build standardized Ubuntu Cloud Images. AMIs are build and tested using Packer. They are pre-configured with cloud-init and the AWS SSM agent. The images are built using the official Ubuntu Cloud Image artifacts.
Containers are built using buildah The containers undergo normalization and minimalization to ensure they are as small as possible and behave consistently.
The ubuntu-cloud-images script is used to scope the workflow to only the Ubuntu Cloud Image release which it has not yet built. This script caches the etag of each release so that it can be skipped if it has already been built. The script outputs this scope to json as a step output for use as a matrix strategy in the workflow. It also securely downloads the official Ubuntu Cloud Image artifacts.
Fixes: #378