dynk8s-provisioner/terraform
Dustin f6910f04df
dustin/dynk8s-provisioner/pipeline/head This commit looks good Details
tf/asg: Add CA resource tag for FUSE device plugin
Jenkins jobs that build container images in user namespaces need access
to `/dev/fuse`, which is provided by the [fuse-device-plugin][0].  This
plugin runs as a DaemonSet, which updates the status of the node it's
running on when it starts to indicate that the FUSE device is available.
When scaling up from zero nodes, Cluster Autoscaler has no way to know
that this will occur, and therefore cannot determine that scaling up the
ASG will create a node with the required resources.  Thus, the ASG needs
a tag to inform CA that the nodes it creates will indeed have the
resources and scaling it up will allow the pod to be scheduled.

Although this feature of CA was added in 1.14, it apparently got broken
at some point and no longer works in 1.22.  It works again in 1.26,
though.

[0]: https://github.com/kuberenetes-learning-group/fuse-device-plugin/tree/master
2024-01-14 11:42:46 -06:00
..
.gitattributes terraform: Begin AWS configuration 2022-09-27 12:58:51 -05:00
.gitignore terraform: Begin AWS configuration 2022-09-27 12:58:51 -05:00
.terraform.lock.hcl terraform: Begin AWS configuration 2022-09-27 12:58:51 -05:00
README.md terraform: Begin AWS configuration 2022-09-27 12:58:51 -05:00
asg.tf tf/asg: Add CA resource tag for FUSE device plugin 2024-01-14 11:42:46 -06:00
eventbridge.tf terraform: Begin AWS configuration 2022-09-27 12:58:51 -05:00
iam-policy.json tf/asg: Look up Fedora AMI by attributes 2023-11-13 20:27:50 -06:00
main.tf terraform: Begin AWS configuration 2022-09-27 12:58:51 -05:00
sns.tf terraform: Begin AWS configuration 2022-09-27 12:58:51 -05:00
terraform.tfstate tf/asg: Add CA resource tag for FUSE device plugin 2024-01-14 11:42:46 -06:00
userdata.yml tf/userdata: Install CRI-O from Fedora base 2024-01-13 10:10:46 -06:00
variables.tf terraform: Begin AWS configuration 2022-09-27 12:58:51 -05:00

README.md

Configuring AWS Using Terraform

Prerequisites

The IAM user or role that runs Terraform must have the appropriate permissions. The iam-policy.json file defines a policy that will allow the Terraform to manage all of the necessary resources. Before running Terraform, create an IAM policy and assign it to a user, group, or role. Be sure to replace the AWS account ID in the various target resource names.

To use an IAM role, set the iam_role Terraform variable when executing terraform plan/terraform apply.

Create Resources

Terraform will create all resources automatically:

terraform apply