You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+73-8Lines changed: 73 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,8 @@
28
28
29
29
-->
30
30
31
-
This `terraform-aws-helm-release` module creates a helm chart with an option to create an EKS IAM role.
31
+
This `terraform-aws-helm-release` module deploys a [Helm chart](https://helm.sh/docs/topics/charts/) with
32
+
an option to create an EKS IAM Role for a Service Account ([IRSA](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)).
32
33
33
34
---
34
35
@@ -93,10 +94,67 @@ the registry shows many of our inputs as required when in fact they are optional
93
94
The table below correctly indicates which inputs are required.
94
95
95
96
96
-
For a complete example, see [examples/complete](examples/complete).
97
97
98
-
For automated tests of the complete example using [bats](https://github.com/bats-core/bats-core) and [Terratest](https://github.com/gruntwork-io/terratest)
99
-
(which tests and deploys the example on AWS), see [test](test).
98
+
This module deploys a [Helm chart](https://helm.sh/docs/topics/charts/) with
99
+
an option to create an EKS IAM Role for a Service Account ([IRSA](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)).
100
+
It has many of the same features and limitations of Helm, and uses the
| <aname="input_chart_version"></a> [chart\_version](#input\_chart\_version)| Specify the exact chart version to install. If this is not specified, the latest version is installed. |`string`|`null`| no |
244
305
| <aname="input_cleanup_on_fail"></a> [cleanup\_on\_fail](#input\_cleanup\_on\_fail)| Allow deletion of new resources created in this upgrade when upgrade fails. Defaults to `false`. |`bool`|`null`| no |
245
306
| <aname="input_context"></a> [context](#input\_context)| Single object for setting entire context at once.<br>See description of individual variables for details.<br>Leave string and numeric variables as `null` to use default value.<br>Individual variable settings (non-null) override settings in context object,<br>except for attributes, tags, and additional\_tag\_map, which are merged. |`any`| <pre>{<br> "additional_tag_map": {},<br> "attributes": [],<br> "delimiter": null,<br> "descriptor_formats": {},<br> "enabled": true,<br> "environment": null,<br> "id_length_limit": null,<br> "label_key_case": null,<br> "label_order": [],<br> "label_value_case": null,<br> "labels_as_tags": [<br> "unset"<br> ],<br> "name": null,<br> "namespace": null,<br> "regex_replace_chars": null,<br> "stage": null,<br> "tags": {},<br> "tenant": null<br>}</pre> | no |
246
-
| <aname="input_create_namespace"></a> [create\_namespace](#input\_create\_namespace)| Create the namespace if it does not yet exist. Defaults to `false`. |`bool`|`null`| no |
307
+
| <aname="input_create_namespace"></a> [create\_namespace](#input\_create\_namespace)| (Not recommended, use `create_namespace_with_kubernetes` instead)<br>Create the namespace via Helm if it does not yet exist. Defaults to `false`.<br>Does not support annotations or labels. May have problems when destroying.<br>Ignored when `create_namespace_with_kubernetes` is set. |`bool`|`null`| no |
308
+
| <aname="input_create_namespace_with_kubernetes"></a> [create\_namespace\_with\_kubernetes](#input\_create\_namespace\_with\_kubernetes)| Create the namespace via Kubernetes if it does not yet exist. Defaults to `false`.<br>Must set `true` if you want to use namespace annotations or labels. |`bool`|`null`| no |
247
309
| <aname="input_delimiter"></a> [delimiter](#input\_delimiter)| Delimiter to be used between ID elements.<br>Defaults to `-` (hyphen). Set to `""` to use no delimiter at all. |`string`|`null`| no |
248
310
| <aname="input_dependency_update"></a> [dependency\_update](#input\_dependency\_update)| Runs helm dependency update before installing the chart. Defaults to `false`. |`bool`|`null`| no |
249
311
| <aname="input_description"></a> [description](#input\_description)| Release description attribute (visible in the history). |`string`|`null`| no |
@@ -262,6 +324,8 @@ Available targets:
262
324
| <aname="input_id_length_limit"></a> [id\_length\_limit](#input\_id\_length\_limit)| Limit `id` to this many characters (minimum 6).<br>Set to `0` for unlimited length.<br>Set to `null` for keep the existing setting, which defaults to `0`.<br>Does not affect `id_full`. |`number`|`null`| no |
263
325
| <aname="input_keyring"></a> [keyring](#input\_keyring)| Location of public keys used for verification. Used only if `verify` is true. Defaults to `/.gnupg/pubring.gpg` in the location set by `home`. |`string`|`null`| no |
264
326
| <aname="input_kubernetes_namespace"></a> [kubernetes\_namespace](#input\_kubernetes\_namespace)| The namespace to install the release into. Defaults to `default`. |`string`|`null`| no |
327
+
| <aname="input_kubernetes_namespace_annotations"></a> [kubernetes\_namespace\_annotations](#input\_kubernetes\_namespace\_annotations)| Annotations to be added to the created namespace. Ignored unless `create_namespace_with_kubernetes` is `true`. |`map(string)`|`{}`| no |
328
+
| <aname="input_kubernetes_namespace_labels"></a> [kubernetes\_namespace\_labels](#input\_kubernetes\_namespace\_labels)| Labels to be added to the created namespace. Ignored unless `create_namespace_with_kubernetes` is `true`. |`map(string)`|`{}`| no |
265
329
| <aname="input_label_key_case"></a> [label\_key\_case](#input\_label\_key\_case)| Controls the letter case of the `tags` keys (label names) for tags generated by this module.<br>Does not affect keys of tags passed in via the `tags` input.<br>Possible values: `lower`, `title`, `upper`.<br>Default value: `title`. |`string`|`null`| no |
266
330
| <aname="input_label_order"></a> [label\_order](#input\_label\_order)| The order in which the labels (ID elements) appear in the `id`.<br>Defaults to ["namespace", "environment", "stage", "name", "attributes"].<br>You can omit any of the 6 labels ("tenant" is the 6th), but at least one must be present. |`list(string)`|`null`| no |
267
331
| <aname="input_label_value_case"></a> [label\_value\_case](#input\_label\_value\_case)| Controls the letter case of ID elements (labels) as included in `id`,<br>set as tag values, and output by this module individually.<br>Does not affect values of tags passed in via the `tags` input.<br>Possible values: `lower`, `title`, `upper` and `none` (no transformation).<br>Set this to `title` and set `delimiter` to `""` to yield Pascal Case IDs.<br>Default value: `lower`. |`string`|`null`| no |
@@ -330,15 +394,16 @@ Are you using this project or any of our other projects? Consider [leaving a tes
330
394
331
395
Check out these related projects.
332
396
397
+
-[terraform-aws-eks-iam-role](https://github.com/cloudposse/terraform-aws-eks-iam-role/) - Terraform module to provision an EKS IAM Role for Service Account.
333
398
-[terraform-null-label](https://github.com/cloudposse/terraform-null-label) - Terraform module designed to generate consistent names and tags for resources. Use terraform-null-label to implement a strict naming convention.
334
399
335
400
336
401
## References
337
402
338
403
For additional context, refer to some of these links.
339
404
340
-
-[Terraform Standard Module Structure](https://www.terraform.io/docs/modules/index.html#standard-module-structure) - HashiCorp's standard module structure is a file and directory layout we recommend for reusable modules distributed in separate repositories.
341
-
-[Terraform Module Requirements](https://www.terraform.io/docs/registry/modules/publish.html#requirements) - HashiCorp's guidance on all the requirements for publishing a module. Meeting the requirements for publishing a module is extremely easy.
405
+
-[Helm](https://helm.sh/) - Helm: The package manager for Kubernetes.
406
+
-[IAM Roles for Service Accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) - HashiCorp's guidance on all the requirements for publishing a module. Meeting the requirements for publishing a module is extremely easy.
342
407
-[Terraform Version Pinning](https://www.terraform.io/docs/configuration/terraform.html#specifying-a-required-terraform-version) - The required_version setting can be used to constrain which versions of the Terraform CLI can be used with your configuration
343
408
344
409
@@ -414,7 +479,7 @@ In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow.
description: "Terraform module designed to generate consistent names and tags for resources. Use terraform-null-label to implement a strict naming convention."
# List any resources helpful for someone to get started. For example, link to the hashicorp documentation or AWS documentation.
44
47
references:
45
-
- name: "Terraform Standard Module Structure"
46
-
description: "HashiCorp's standard module structure is a file and directory layout we recommend for reusable modules distributed in separate repositories."
description: "Helm: The package manager for Kubernetes."
50
+
url: "https://helm.sh/"
51
+
- name: "IAM Roles for Service Accounts"
49
52
description: "HashiCorp's guidance on all the requirements for publishing a module. Meeting the requirements for publishing a module is extremely easy."
This `terraform-aws-helm-release` module creates a helm chart with an option to create an EKS IAM role.
58
-
59
-
# Introduction to the project
60
-
#introduction: |-
61
-
# This is an introduction.
60
+
This `terraform-aws-helm-release` module deploys a [Helm chart](https://helm.sh/docs/topics/charts/) with
61
+
an option to create an EKS IAM Role for a Service Account ([IRSA](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)).
62
62
63
63
# How to use this module. Should be an easy example to copy and paste.
64
64
usage: |-
65
-
For a complete example, see [examples/complete](examples/complete).
66
65
67
-
For automated tests of the complete example using [bats](https://github.com/bats-core/bats-core) and [Terratest](https://github.com/gruntwork-io/terratest)
68
-
(which tests and deploys the example on AWS), see [test](test).
66
+
This module deploys a [Helm chart](https://helm.sh/docs/topics/charts/) with
67
+
an option to create an EKS IAM Role for a Service Account ([IRSA](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)).
68
+
It has many of the same features and limitations of Helm, and uses the
0 commit comments