diff --git a/examples/user_data/README.md b/examples/user_data/README.md
index b2215a0..6e1605c 100644
--- a/examples/user_data/README.md
+++ b/examples/user_data/README.md
@@ -18,40 +18,65 @@ $ terraform apply
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.3 |
+| [local](#requirement\_local) | >= 2.4 |
## Providers
-No providers.
+| Name | Version |
+|------|---------|
+| [local](#provider\_local) | >= 2.4 |
## Modules
| Name | Source | Version |
|------|--------|---------|
+| [eks\_mng\_al2\_additional](#module\_eks\_mng\_al2\_additional) | ../../modules/_user_data | n/a |
+| [eks\_mng\_al2\_custom\_ami](#module\_eks\_mng\_al2\_custom\_ami) | ../../modules/_user_data | n/a |
+| [eks\_mng\_al2\_custom\_template](#module\_eks\_mng\_al2\_custom\_template) | ../../modules/_user_data | n/a |
+| [eks\_mng\_al2\_no\_op](#module\_eks\_mng\_al2\_no\_op) | ../../modules/_user_data | n/a |
| [eks\_mng\_bottlerocket\_additional](#module\_eks\_mng\_bottlerocket\_additional) | ../../modules/_user_data | n/a |
| [eks\_mng\_bottlerocket\_custom\_ami](#module\_eks\_mng\_bottlerocket\_custom\_ami) | ../../modules/_user_data | n/a |
| [eks\_mng\_bottlerocket\_custom\_template](#module\_eks\_mng\_bottlerocket\_custom\_template) | ../../modules/_user_data | n/a |
| [eks\_mng\_bottlerocket\_no\_op](#module\_eks\_mng\_bottlerocket\_no\_op) | ../../modules/_user_data | n/a |
-| [eks\_mng\_linux\_additional](#module\_eks\_mng\_linux\_additional) | ../../modules/_user_data | n/a |
-| [eks\_mng\_linux\_custom\_ami](#module\_eks\_mng\_linux\_custom\_ami) | ../../modules/_user_data | n/a |
-| [eks\_mng\_linux\_custom\_template](#module\_eks\_mng\_linux\_custom\_template) | ../../modules/_user_data | n/a |
-| [eks\_mng\_linux\_no\_op](#module\_eks\_mng\_linux\_no\_op) | ../../modules/_user_data | n/a |
| [eks\_mng\_windows\_additional](#module\_eks\_mng\_windows\_additional) | ../../modules/_user_data | n/a |
| [eks\_mng\_windows\_custom\_ami](#module\_eks\_mng\_windows\_custom\_ami) | ../../modules/_user_data | n/a |
| [eks\_mng\_windows\_custom\_template](#module\_eks\_mng\_windows\_custom\_template) | ../../modules/_user_data | n/a |
| [eks\_mng\_windows\_no\_op](#module\_eks\_mng\_windows\_no\_op) | ../../modules/_user_data | n/a |
+| [self\_mng\_al2\_bootstrap](#module\_self\_mng\_al2\_bootstrap) | ../../modules/_user_data | n/a |
+| [self\_mng\_al2\_custom\_template](#module\_self\_mng\_al2\_custom\_template) | ../../modules/_user_data | n/a |
+| [self\_mng\_al2\_no\_op](#module\_self\_mng\_al2\_no\_op) | ../../modules/_user_data | n/a |
| [self\_mng\_bottlerocket\_bootstrap](#module\_self\_mng\_bottlerocket\_bootstrap) | ../../modules/_user_data | n/a |
| [self\_mng\_bottlerocket\_custom\_template](#module\_self\_mng\_bottlerocket\_custom\_template) | ../../modules/_user_data | n/a |
| [self\_mng\_bottlerocket\_no\_op](#module\_self\_mng\_bottlerocket\_no\_op) | ../../modules/_user_data | n/a |
-| [self\_mng\_linux\_bootstrap](#module\_self\_mng\_linux\_bootstrap) | ../../modules/_user_data | n/a |
-| [self\_mng\_linux\_custom\_template](#module\_self\_mng\_linux\_custom\_template) | ../../modules/_user_data | n/a |
-| [self\_mng\_linux\_no\_op](#module\_self\_mng\_linux\_no\_op) | ../../modules/_user_data | n/a |
| [self\_mng\_windows\_bootstrap](#module\_self\_mng\_windows\_bootstrap) | ../../modules/_user_data | n/a |
| [self\_mng\_windows\_custom\_template](#module\_self\_mng\_windows\_custom\_template) | ../../modules/_user_data | n/a |
| [self\_mng\_windows\_no\_op](#module\_self\_mng\_windows\_no\_op) | ../../modules/_user_data | n/a |
## Resources
-No resources.
+| Name | Type |
+|------|------|
+| [local_file.eks_mng_al2_additional](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_al2_custom_ami](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_al2_custom_template](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_al2_no_op](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_bottlerocket_additional](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_bottlerocket_custom_ami](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_bottlerocket_custom_template](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_bottlerocket_no_op](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_windows_additional](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_windows_custom_ami](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_windows_custom_template](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.eks_mng_windows_no_op](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.self_mng_al2_bootstrap](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.self_mng_al2_custom_template](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.self_mng_al2_no_op](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.self_mng_bottlerocket_bootstrap](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.self_mng_bottlerocket_custom_template](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.self_mng_bottlerocket_no_op](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.self_mng_windows_bootstrap](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.self_mng_windows_custom_template](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
+| [local_file.self_mng_windows_no_op](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource |
## Inputs
@@ -59,27 +84,5 @@ No inputs.
## Outputs
-| Name | Description |
-|------|-------------|
-| [eks\_mng\_bottlerocket\_additional](#output\_eks\_mng\_bottlerocket\_additional) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_bottlerocket\_custom\_ami](#output\_eks\_mng\_bottlerocket\_custom\_ami) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_bottlerocket\_custom\_template](#output\_eks\_mng\_bottlerocket\_custom\_template) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_bottlerocket\_no\_op](#output\_eks\_mng\_bottlerocket\_no\_op) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_linux\_additional](#output\_eks\_mng\_linux\_additional) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_linux\_custom\_ami](#output\_eks\_mng\_linux\_custom\_ami) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_linux\_custom\_template](#output\_eks\_mng\_linux\_custom\_template) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_linux\_no\_op](#output\_eks\_mng\_linux\_no\_op) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_windows\_additional](#output\_eks\_mng\_windows\_additional) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_windows\_custom\_ami](#output\_eks\_mng\_windows\_custom\_ami) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_windows\_custom\_template](#output\_eks\_mng\_windows\_custom\_template) | Base64 decoded user data rendered for the provided inputs |
-| [eks\_mng\_windows\_no\_op](#output\_eks\_mng\_windows\_no\_op) | Base64 decoded user data rendered for the provided inputs |
-| [self\_mng\_bottlerocket\_bootstrap](#output\_self\_mng\_bottlerocket\_bootstrap) | Base64 decoded user data rendered for the provided inputs |
-| [self\_mng\_bottlerocket\_custom\_template](#output\_self\_mng\_bottlerocket\_custom\_template) | Base64 decoded user data rendered for the provided inputs |
-| [self\_mng\_bottlerocket\_no\_op](#output\_self\_mng\_bottlerocket\_no\_op) | Base64 decoded user data rendered for the provided inputs |
-| [self\_mng\_linux\_bootstrap](#output\_self\_mng\_linux\_bootstrap) | Base64 decoded user data rendered for the provided inputs |
-| [self\_mng\_linux\_custom\_template](#output\_self\_mng\_linux\_custom\_template) | Base64 decoded user data rendered for the provided inputs |
-| [self\_mng\_linux\_no\_op](#output\_self\_mng\_linux\_no\_op) | Base64 decoded user data rendered for the provided inputs |
-| [self\_mng\_windows\_bootstrap](#output\_self\_mng\_windows\_bootstrap) | Base64 decoded user data rendered for the provided inputs |
-| [self\_mng\_windows\_custom\_template](#output\_self\_mng\_windows\_custom\_template) | Base64 decoded user data rendered for the provided inputs |
-| [self\_mng\_windows\_no\_op](#output\_self\_mng\_windows\_no\_op) | Base64 decoded user data rendered for the provided inputs |
+No outputs.
diff --git a/examples/user_data/main.tf b/examples/user_data/main.tf
index ea08c8c..5853635 100644
--- a/examples/user_data/main.tf
+++ b/examples/user_data/main.tf
@@ -7,15 +7,14 @@ locals {
}
################################################################################
-# User Data Module
+# EKS managed node group - AL2
################################################################################
-# EKS managed node group - linux
-module "eks_mng_linux_no_op" {
+module "eks_mng_al2_no_op" {
source = "../../modules/_user_data"
}
-module "eks_mng_linux_additional" {
+module "eks_mng_al2_additional" {
source = "../../modules/_user_data"
pre_bootstrap_user_data = <<-EOT
@@ -23,7 +22,7 @@ module "eks_mng_linux_additional" {
EOT
}
-module "eks_mng_linux_custom_ami" {
+module "eks_mng_al2_custom_ami" {
source = "../../modules/_user_data"
cluster_name = local.name
@@ -45,7 +44,7 @@ module "eks_mng_linux_custom_ami" {
}
-module "eks_mng_linux_custom_template" {
+module "eks_mng_al2_custom_template" {
source = "../../modules/_user_data"
cluster_name = local.name
@@ -66,7 +65,10 @@ module "eks_mng_linux_custom_template" {
EOT
}
-# EKS managed node group - bottlerocket
+################################################################################
+# EKS managed node group - Bottlerocket
+################################################################################
+
module "eks_mng_bottlerocket_no_op" {
source = "../../modules/_user_data"
@@ -121,7 +123,10 @@ module "eks_mng_bottlerocket_custom_template" {
EOT
}
-# EKS managed node group - windows
+################################################################################
+# EKS managed node group - Windows
+################################################################################
+
module "eks_mng_windows_no_op" {
source = "../../modules/_user_data"
@@ -184,14 +189,17 @@ module "eks_mng_windows_custom_template" {
EOT
}
-# Self managed node group - linux
-module "self_mng_linux_no_op" {
+################################################################################
+# Self-managed node group - AL2
+################################################################################
+
+module "self_mng_al2_no_op" {
source = "../../modules/_user_data"
is_eks_managed_node_group = false
}
-module "self_mng_linux_bootstrap" {
+module "self_mng_al2_bootstrap" {
source = "../../modules/_user_data"
enable_bootstrap_user_data = true
@@ -213,7 +221,7 @@ module "self_mng_linux_bootstrap" {
EOT
}
-module "self_mng_linux_custom_template" {
+module "self_mng_al2_custom_template" {
source = "../../modules/_user_data"
enable_bootstrap_user_data = true
@@ -237,7 +245,10 @@ module "self_mng_linux_custom_template" {
EOT
}
-# Self managed node group - bottlerocket
+################################################################################
+# Self-managed node group - Bottlerocket
+################################################################################
+
module "self_mng_bottlerocket_no_op" {
source = "../../modules/_user_data"
@@ -286,7 +297,10 @@ module "self_mng_bottlerocket_custom_template" {
EOT
}
-# Self managed node group - windows
+################################################################################
+# Self-managed node group - Windows
+################################################################################
+
module "self_mng_windows_no_op" {
source = "../../modules/_user_data"
diff --git a/examples/user_data/outputs.tf b/examples/user_data/outputs.tf
index 768d81c..22988e9 100644
--- a/examples/user_data/outputs.tf
+++ b/examples/user_data/outputs.tf
@@ -1,110 +1,136 @@
-# EKS managed node group - linux
-output "eks_mng_linux_no_op" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_linux_no_op.user_data)
+################################################################################
+# We are writing to local file so that we can better track diffs across changes
+#
+# Its harder to verify changes and diffs when we use the standard `output`
+# route, writing to file makes this easier and better highlights changes
+# to avoid unintended disruptions
+################################################################################
+
+################################################################################
+# EKS managed node group - AL2
+################################################################################
+
+resource "local_file" "eks_mng_al2_no_op" {
+ content = base64decode(module.eks_mng_al2_no_op.user_data)
+ filename = "${path.module}/rendered/al2/eks-mng-no-op.sh"
}
-output "eks_mng_linux_additional" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_linux_additional.user_data)
+resource "local_file" "eks_mng_al2_additional" {
+ content = base64decode(module.eks_mng_al2_additional.user_data)
+ filename = "${path.module}/rendered/al2/eks-mng-additional.sh"
}
-output "eks_mng_linux_custom_ami" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_linux_custom_ami.user_data)
+resource "local_file" "eks_mng_al2_custom_ami" {
+ content = base64decode(module.eks_mng_al2_custom_ami.user_data)
+ filename = "${path.module}/rendered/al2/eks-mng-custom-ami.sh"
}
-output "eks_mng_linux_custom_template" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_linux_custom_template.user_data)
+resource "local_file" "eks_mng_al2_custom_template" {
+ content = base64decode(module.eks_mng_al2_custom_template.user_data)
+ filename = "${path.module}/rendered/al2/eks-mng-custom-template.sh"
}
-# EKS managed node group - bottlerocket
-output "eks_mng_bottlerocket_no_op" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_bottlerocket_no_op.user_data)
+################################################################################
+# EKS managed node group - Bottlerocket
+################################################################################
+
+resource "local_file" "eks_mng_bottlerocket_no_op" {
+ content = base64decode(module.eks_mng_bottlerocket_no_op.user_data)
+ filename = "${path.module}/rendered/bottlerocket/eks-mng-no-op.toml"
}
-output "eks_mng_bottlerocket_additional" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_bottlerocket_additional.user_data)
+resource "local_file" "eks_mng_bottlerocket_additional" {
+ content = base64decode(module.eks_mng_bottlerocket_additional.user_data)
+ filename = "${path.module}/rendered/bottlerocket/eks-mng-additional.toml"
}
-output "eks_mng_bottlerocket_custom_ami" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_bottlerocket_custom_ami.user_data)
+resource "local_file" "eks_mng_bottlerocket_custom_ami" {
+ content = base64decode(module.eks_mng_bottlerocket_custom_ami.user_data)
+ filename = "${path.module}/rendered/bottlerocket/eks-mng-custom-ami.toml"
}
-output "eks_mng_bottlerocket_custom_template" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_bottlerocket_custom_template.user_data)
+resource "local_file" "eks_mng_bottlerocket_custom_template" {
+ content = base64decode(module.eks_mng_bottlerocket_custom_template.user_data)
+ filename = "${path.module}/rendered/bottlerocket/eks-mng-custom-template.toml"
}
-# EKS managed node group - windows
-output "eks_mng_windows_no_op" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_windows_no_op.user_data)
+################################################################################
+# EKS managed node group - Windows
+################################################################################
+
+resource "local_file" "eks_mng_windows_no_op" {
+ content = base64decode(module.eks_mng_windows_no_op.user_data)
+ filename = "${path.module}/rendered/windows/eks-mng-no-op.ps1"
}
-output "eks_mng_windows_additional" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_windows_additional.user_data)
+resource "local_file" "eks_mng_windows_additional" {
+ content = base64decode(module.eks_mng_windows_additional.user_data)
+ filename = "${path.module}/rendered/windows/eks-mng-additional.ps1"
}
-output "eks_mng_windows_custom_ami" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_windows_custom_ami.user_data)
+resource "local_file" "eks_mng_windows_custom_ami" {
+ content = base64decode(module.eks_mng_windows_custom_ami.user_data)
+ filename = "${path.module}/rendered/windows/eks-mng-custom-ami.ps1"
}
-output "eks_mng_windows_custom_template" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.eks_mng_windows_custom_template.user_data)
+resource "local_file" "eks_mng_windows_custom_template" {
+ content = base64decode(module.eks_mng_windows_custom_template.user_data)
+ filename = "${path.module}/rendered/windows/eks-mng-custom-template.ps1"
}
-# Self managed node group - linux
-output "self_mng_linux_no_op" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.self_mng_linux_no_op.user_data)
+################################################################################
+# Self-managed node group - AL2
+################################################################################
+
+resource "local_file" "self_mng_al2_no_op" {
+ content = base64decode(module.self_mng_al2_no_op.user_data)
+ filename = "${path.module}/rendered/al2/self-mng-no-op.sh"
}
-output "self_mng_linux_bootstrap" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.self_mng_linux_bootstrap.user_data)
+resource "local_file" "self_mng_al2_bootstrap" {
+ content = base64decode(module.self_mng_al2_bootstrap.user_data)
+ filename = "${path.module}/rendered/al2/self-mng-bootstrap.sh"
}
-output "self_mng_linux_custom_template" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.self_mng_linux_custom_template.user_data)
+resource "local_file" "self_mng_al2_custom_template" {
+ content = base64decode(module.self_mng_al2_custom_template.user_data)
+ filename = "${path.module}/rendered/al2/self-mng-custom-template.sh"
}
-# Self managed node group - bottlerocket
-output "self_mng_bottlerocket_no_op" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.self_mng_bottlerocket_no_op.user_data)
+################################################################################
+# Self-managed node group - Bottlerocket
+################################################################################
+
+resource "local_file" "self_mng_bottlerocket_no_op" {
+ content = base64decode(module.self_mng_bottlerocket_no_op.user_data)
+ filename = "${path.module}/rendered/bottlerocket/self-mng-no-op.toml"
}
-output "self_mng_bottlerocket_bootstrap" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.self_mng_bottlerocket_bootstrap.user_data)
+resource "local_file" "self_mng_bottlerocket_bootstrap" {
+ content = base64decode(module.self_mng_bottlerocket_bootstrap.user_data)
+ filename = "${path.module}/rendered/bottlerocket/self-mng-bootstrap.toml"
}
-output "self_mng_bottlerocket_custom_template" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.self_mng_bottlerocket_custom_template.user_data)
+resource "local_file" "self_mng_bottlerocket_custom_template" {
+ content = base64decode(module.self_mng_bottlerocket_custom_template.user_data)
+ filename = "${path.module}/rendered/bottlerocket/self-mng-custom-template.toml"
}
-# Self managed node group - windows
-output "self_mng_windows_no_op" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.self_mng_windows_no_op.user_data)
+################################################################################
+# Self-managed node group - Windows
+################################################################################
+
+resource "local_file" "self_mng_windows_no_op" {
+ content = base64decode(module.self_mng_windows_no_op.user_data)
+ filename = "${path.module}/rendered/windows/self-mng-no-op.ps1"
}
-output "self_mng_windows_bootstrap" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.self_mng_windows_bootstrap.user_data)
+resource "local_file" "self_mng_windows_bootstrap" {
+ content = base64decode(module.self_mng_windows_bootstrap.user_data)
+ filename = "${path.module}/rendered/windows/self-mng-bootstrap.ps1"
}
-output "self_mng_windows_custom_template" {
- description = "Base64 decoded user data rendered for the provided inputs"
- value = base64decode(module.self_mng_windows_custom_template.user_data)
+resource "local_file" "self_mng_windows_custom_template" {
+ content = base64decode(module.self_mng_windows_custom_template.user_data)
+ filename = "${path.module}/rendered/windows/self-mng-custom-template.ps1"
}
diff --git a/examples/user_data/rendered/al2/eks-mng-additional.sh b/examples/user_data/rendered/al2/eks-mng-additional.sh
new file mode 100755
index 0000000..70b3142
--- /dev/null
+++ b/examples/user_data/rendered/al2/eks-mng-additional.sh
@@ -0,0 +1,11 @@
+Content-Type: multipart/mixed; boundary="//"
+MIME-Version: 1.0
+
+--//
+Content-Transfer-Encoding: 7bit
+Content-Type: text/x-shellscript
+Mime-Version: 1.0
+
+export USE_MAX_PODS=false
+
+--//--
diff --git a/examples/user_data/rendered/al2/eks-mng-custom-ami.sh b/examples/user_data/rendered/al2/eks-mng-custom-ami.sh
new file mode 100755
index 0000000..4be9d96
--- /dev/null
+++ b/examples/user_data/rendered/al2/eks-mng-custom-ami.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+set -e
+export FOO=bar
+export SERVICE_IPV4_CIDR=172.16.0.0/16
+B64_CLUSTER_CA=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
+API_SERVER_URL=https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com
+/etc/eks/bootstrap.sh ex-user-data --kubelet-extra-args '--instance-type t3a.large' --b64-cluster-ca $B64_CLUSTER_CA --apiserver-endpoint $API_SERVER_URL
+echo "All done"
diff --git a/examples/user_data/rendered/al2/eks-mng-custom-template.sh b/examples/user_data/rendered/al2/eks-mng-custom-template.sh
new file mode 100755
index 0000000..d27a40a
--- /dev/null
+++ b/examples/user_data/rendered/al2/eks-mng-custom-template.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+set -ex
+
+echo "foo"
+export FOO=bar
+
+# Custom user data template provided for rendering
+B64_CLUSTER_CA=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
+API_SERVER_URL=https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com
+/etc/eks/bootstrap.sh ex-user-data --kubelet-extra-args '--node-labels=node.kubernetes.io/lifecycle=spot' --b64-cluster-ca $B64_CLUSTER_CA --apiserver-endpoint $API_SERVER_URL
+echo "All done"
diff --git a/examples/user_data/rendered/al2/eks-mng-no-op.sh b/examples/user_data/rendered/al2/eks-mng-no-op.sh
new file mode 100755
index 0000000..e69de29
diff --git a/examples/user_data/rendered/al2/self-mng-bootstrap.sh b/examples/user_data/rendered/al2/self-mng-bootstrap.sh
new file mode 100755
index 0000000..5dea4bf
--- /dev/null
+++ b/examples/user_data/rendered/al2/self-mng-bootstrap.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+set -e
+echo "foo"
+export FOO=bar
+B64_CLUSTER_CA=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
+API_SERVER_URL=https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com
+/etc/eks/bootstrap.sh ex-user-data --kubelet-extra-args '--node-labels=node.kubernetes.io/lifecycle=spot' --b64-cluster-ca $B64_CLUSTER_CA --apiserver-endpoint $API_SERVER_URL
+echo "All done"
diff --git a/examples/user_data/rendered/al2/self-mng-custom-template.sh b/examples/user_data/rendered/al2/self-mng-custom-template.sh
new file mode 100755
index 0000000..d27a40a
--- /dev/null
+++ b/examples/user_data/rendered/al2/self-mng-custom-template.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+set -ex
+
+echo "foo"
+export FOO=bar
+
+# Custom user data template provided for rendering
+B64_CLUSTER_CA=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
+API_SERVER_URL=https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com
+/etc/eks/bootstrap.sh ex-user-data --kubelet-extra-args '--node-labels=node.kubernetes.io/lifecycle=spot' --b64-cluster-ca $B64_CLUSTER_CA --apiserver-endpoint $API_SERVER_URL
+echo "All done"
diff --git a/examples/user_data/rendered/al2/self-mng-no-op.sh b/examples/user_data/rendered/al2/self-mng-no-op.sh
new file mode 100755
index 0000000..e69de29
diff --git a/examples/user_data/rendered/bottlerocket/eks-mng-additional.toml b/examples/user_data/rendered/bottlerocket/eks-mng-additional.toml
new file mode 100755
index 0000000..7ed4aff
--- /dev/null
+++ b/examples/user_data/rendered/bottlerocket/eks-mng-additional.toml
@@ -0,0 +1,3 @@
+# extra args added
+[settings.kernel]
+lockdown = "integrity"
diff --git a/examples/user_data/rendered/bottlerocket/eks-mng-custom-ami.toml b/examples/user_data/rendered/bottlerocket/eks-mng-custom-ami.toml
new file mode 100755
index 0000000..a1bac20
--- /dev/null
+++ b/examples/user_data/rendered/bottlerocket/eks-mng-custom-ami.toml
@@ -0,0 +1,7 @@
+[settings.kubernetes]
+"cluster-name" = "ex-user-data"
+"api-server" = "https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com"
+"cluster-certificate" = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ=="
+# extra args added
+[settings.kernel]
+lockdown = "integrity"
diff --git a/examples/user_data/rendered/bottlerocket/eks-mng-custom-template.toml b/examples/user_data/rendered/bottlerocket/eks-mng-custom-template.toml
new file mode 100755
index 0000000..c5c6774
--- /dev/null
+++ b/examples/user_data/rendered/bottlerocket/eks-mng-custom-template.toml
@@ -0,0 +1,9 @@
+# Custom user data template provided for rendering
+[settings.kubernetes]
+"cluster-name" = "ex-user-data"
+"api-server" = "https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com"
+"cluster-certificate" = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ=="
+
+# extra args added
+[settings.kernel]
+lockdown = "integrity"
diff --git a/examples/user_data/rendered/bottlerocket/eks-mng-no-op.toml b/examples/user_data/rendered/bottlerocket/eks-mng-no-op.toml
new file mode 100755
index 0000000..e69de29
diff --git a/examples/user_data/rendered/bottlerocket/self-mng-bootstrap.toml b/examples/user_data/rendered/bottlerocket/self-mng-bootstrap.toml
new file mode 100755
index 0000000..a1bac20
--- /dev/null
+++ b/examples/user_data/rendered/bottlerocket/self-mng-bootstrap.toml
@@ -0,0 +1,7 @@
+[settings.kubernetes]
+"cluster-name" = "ex-user-data"
+"api-server" = "https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com"
+"cluster-certificate" = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ=="
+# extra args added
+[settings.kernel]
+lockdown = "integrity"
diff --git a/examples/user_data/rendered/bottlerocket/self-mng-custom-template.toml b/examples/user_data/rendered/bottlerocket/self-mng-custom-template.toml
new file mode 100755
index 0000000..c5c6774
--- /dev/null
+++ b/examples/user_data/rendered/bottlerocket/self-mng-custom-template.toml
@@ -0,0 +1,9 @@
+# Custom user data template provided for rendering
+[settings.kubernetes]
+"cluster-name" = "ex-user-data"
+"api-server" = "https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com"
+"cluster-certificate" = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ=="
+
+# extra args added
+[settings.kernel]
+lockdown = "integrity"
diff --git a/examples/user_data/rendered/bottlerocket/self-mng-no-op.toml b/examples/user_data/rendered/bottlerocket/self-mng-no-op.toml
new file mode 100755
index 0000000..e69de29
diff --git a/examples/user_data/rendered/windows/eks-mng-additional.ps1 b/examples/user_data/rendered/windows/eks-mng-additional.ps1
new file mode 100755
index 0000000..0debfcf
--- /dev/null
+++ b/examples/user_data/rendered/windows/eks-mng-additional.ps1
@@ -0,0 +1 @@
+[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
diff --git a/examples/user_data/rendered/windows/eks-mng-custom-ami.ps1 b/examples/user_data/rendered/windows/eks-mng-custom-ami.ps1
new file mode 100755
index 0000000..182195b
--- /dev/null
+++ b/examples/user_data/rendered/windows/eks-mng-custom-ami.ps1
@@ -0,0 +1,9 @@
+
+[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
+[string]$EKSBinDir = "$env:ProgramFiles\Amazon\EKS"
+[string]$EKSBootstrapScriptName = 'Start-EKSBootstrap.ps1'
+[string]$EKSBootstrapScriptFile = "$EKSBinDir\$EKSBootstrapScriptName"
+& $EKSBootstrapScriptFile -EKSClusterName ex-user-data -APIServerEndpoint https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com -Base64ClusterCA LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ== -KubeletExtraArgs --node-labels=node.kubernetes.io/lifecycle=spot 3>&1 4>&1 5>&1 6>&1
+$LastError = if ($?) { 0 } else { $Error[0].Exception.HResult }
+[string]$Something = 'IStillDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
+
diff --git a/examples/user_data/rendered/windows/eks-mng-custom-template.ps1 b/examples/user_data/rendered/windows/eks-mng-custom-template.ps1
new file mode 100755
index 0000000..aa4008c
--- /dev/null
+++ b/examples/user_data/rendered/windows/eks-mng-custom-template.ps1
@@ -0,0 +1,10 @@
+# Custom user data template provided for rendering
+
+[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
+[string]$EKSBinDir = "$env:ProgramFiles\Amazon\EKS"
+[string]$EKSBootstrapScriptName = 'Start-EKSBootstrap.ps1'
+[string]$EKSBootstrapScriptFile = "$EKSBinDir\$EKSBootstrapScriptName"
+& $EKSBootstrapScriptFile -EKSClusterName ex-user-data -APIServerEndpoint https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com -Base64ClusterCA LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ== -KubeletExtraArgs --node-labels=node.kubernetes.io/lifecycle=spot 3>&1 4>&1 5>&1 6>&1
+$LastError = if ($?) { 0 } else { $Error[0].Exception.HResult }
+[string]$Something = 'IStillDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
+
diff --git a/examples/user_data/rendered/windows/eks-mng-no-op.ps1 b/examples/user_data/rendered/windows/eks-mng-no-op.ps1
new file mode 100755
index 0000000..e69de29
diff --git a/examples/user_data/rendered/windows/self-mng-bootstrap.ps1 b/examples/user_data/rendered/windows/self-mng-bootstrap.ps1
new file mode 100755
index 0000000..182195b
--- /dev/null
+++ b/examples/user_data/rendered/windows/self-mng-bootstrap.ps1
@@ -0,0 +1,9 @@
+
+[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
+[string]$EKSBinDir = "$env:ProgramFiles\Amazon\EKS"
+[string]$EKSBootstrapScriptName = 'Start-EKSBootstrap.ps1'
+[string]$EKSBootstrapScriptFile = "$EKSBinDir\$EKSBootstrapScriptName"
+& $EKSBootstrapScriptFile -EKSClusterName ex-user-data -APIServerEndpoint https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com -Base64ClusterCA LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ== -KubeletExtraArgs --node-labels=node.kubernetes.io/lifecycle=spot 3>&1 4>&1 5>&1 6>&1
+$LastError = if ($?) { 0 } else { $Error[0].Exception.HResult }
+[string]$Something = 'IStillDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
+
diff --git a/examples/user_data/rendered/windows/self-mng-custom-template.ps1 b/examples/user_data/rendered/windows/self-mng-custom-template.ps1
new file mode 100755
index 0000000..aa4008c
--- /dev/null
+++ b/examples/user_data/rendered/windows/self-mng-custom-template.ps1
@@ -0,0 +1,10 @@
+# Custom user data template provided for rendering
+
+[string]$Something = 'IDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
+[string]$EKSBinDir = "$env:ProgramFiles\Amazon\EKS"
+[string]$EKSBootstrapScriptName = 'Start-EKSBootstrap.ps1'
+[string]$EKSBootstrapScriptFile = "$EKSBinDir\$EKSBootstrapScriptName"
+& $EKSBootstrapScriptFile -EKSClusterName ex-user-data -APIServerEndpoint https://012345678903AB2BAE5D1E0BFE0E2B50.gr7.us-east-1.eks.amazonaws.com -Base64ClusterCA LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKbXFqQ1VqNGdGR2w3ZW5PeWthWnZ2RjROOTVOUEZCM2o0cGhVZUsrWGFtN2ZSQnZya0d6OGxKZmZEZWF2b2plTwpQK2xOZFlqdHZncmxCUEpYdHZIZmFzTzYxVzdIZmdWQ2EvamdRM2w3RmkvL1dpQmxFOG9oWUZkdWpjc0s1SXM2CnNkbk5KTTNYUWN2TysrSitkV09NT2ZlNzlsSWdncmdQLzgvRU9CYkw3eUY1aU1hS3lsb1RHL1V3TlhPUWt3ZUcKblBNcjdiUmdkQ1NCZTlXYXowOGdGRmlxV2FOditsTDhsODBTdFZLcWVNVlUxbjQyejVwOVpQRTd4T2l6L0xTNQpYV2lXWkVkT3pMN0xBWGVCS2gzdkhnczFxMkI2d1BKZnZnS1NzWllQRGFpZTloT1NNOUJkNFNPY3JrZTRYSVBOCkVvcXVhMlYrUDRlTWJEQzhMUkVWRDdCdVZDdWdMTldWOTBoL3VJUy9WU2VOcEdUOGVScE5DakszSjc2aFlsWm8KWjNGRG5QWUY0MWpWTHhiOXF0U1ROdEp6amYwWXBEYnFWci9xZzNmQWlxbVorMzd3YWM1eHlqMDZ4cmlaRUgzZgpUM002d2lCUEVHYVlGeWN5TmNYTk5aYW9DWDJVL0N1d2JsUHAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ== -KubeletExtraArgs --node-labels=node.kubernetes.io/lifecycle=spot 3>&1 4>&1 5>&1 6>&1
+$LastError = if ($?) { 0 } else { $Error[0].Exception.HResult }
+[string]$Something = 'IStillDoNotKnowAnyPowerShell ¯\_(ツ)_/¯'
+
diff --git a/examples/user_data/rendered/windows/self-mng-no-op.ps1 b/examples/user_data/rendered/windows/self-mng-no-op.ps1
new file mode 100755
index 0000000..e69de29
diff --git a/examples/user_data/versions.tf b/examples/user_data/versions.tf
index 6964268..af91653 100644
--- a/examples/user_data/versions.tf
+++ b/examples/user_data/versions.tf
@@ -1,3 +1,10 @@
terraform {
required_version = ">= 1.3"
+
+ required_providers {
+ local = {
+ source = "hashicorp/local"
+ version = ">= 2.4"
+ }
+ }
}