Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/andreswebs/terraform-aws-eks-ebs-csi-driver

Deploys the Amazon EBS CSI driver on AWS EKS via Helm
https://github.com/andreswebs/terraform-aws-eks-ebs-csi-driver

aws eks kubernetes terraform-module

Last synced: 2 months ago
JSON representation

Deploys the Amazon EBS CSI driver on AWS EKS via Helm

Awesome Lists containing this project

README

        

# terraform-aws-eks-ebs-csi-driver

[//]: # (BEGIN_TF_DOCS)
Deploys the [Amazon EBS CSI driver](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) on AWS EKS via Helm.

## Usage

Example:

```hcl
module "aws_ebs_csi_driver" {
source = "github.com/andreswebs/terraform-aws-eks-ebs-csi-driver"
cluster_name = var.eks_cluster_id
cluster_oidc_provider = var.eks_cluster_oidc_provider
iam_role_name = "ebs-csi-controller-${var.eks_cluster_id}"
chart_version_aws_ebs_csi_driver = var.chart_version_aws_ebs_csi_driver
}
```

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [chart\_version\_aws\_ebs\_csi\_driver](#input\_chart\_version\_aws\_ebs\_csi\_driver) | Chart version | `string` | `null` | no |
| [cluster\_name](#input\_cluster\_name) | Cluster name | `string` | n/a | yes |
| [cluster\_oidc\_provider](#input\_cluster\_oidc\_provider) | OpenID Connect (OIDC) Identity Provider associated with the Kubernetes cluster | `string` | n/a | yes |
| [helm\_atomic\_creation](#input\_helm\_atomic\_creation) | Purge resources on installation failure ? The wait flag will be set automatically if atomic is used | `bool` | `true` | no |
| [helm\_cleanup\_on\_fail](#input\_helm\_cleanup\_on\_fail) | Deletion new resources created in this upgrade if the upgrade fails ? | `bool` | `true` | no |
| [helm\_create\_namespace](#input\_helm\_create\_namespace) | Create the namespace if it does not yet exist ? | `bool` | `true` | no |
| [helm\_dependency\_update](#input\_helm\_dependency\_update) | Run helm dependency update before installing the chart ? | `bool` | `false` | no |
| [helm\_force\_update](#input\_helm\_force\_update) | Force resource update through delete/recreate if needed ? | `bool` | `false` | no |
| [helm\_keyring](#input\_helm\_keyring) | Location of public keys used for verification; used only if verify is true | `string` | `".gnupg/pubring.gpg"` | no |
| [helm\_max\_history](#input\_helm\_max\_history) | Maximum number of release versions stored per release; `0` means no limit | `number` | `3` | no |
| [helm\_recreate\_pods](#input\_helm\_recreate\_pods) | Perform pods restart during upgrade/rollback ? | `bool` | `true` | no |
| [helm\_release\_name](#input\_helm\_release\_name) | Release name | `string` | `"aws-ebs-csi-driver"` | no |
| [helm\_replace](#input\_helm\_replace) | Re-use the given name, even if that name is already used; this is unsafe in production | `bool` | `false` | no |
| [helm\_reset\_values](#input\_helm\_reset\_values) | When upgrading, reset the values to the ones built into the chart ? | `bool` | `false` | no |
| [helm\_reuse\_values](#input\_helm\_reuse\_values) | When upgrading, reuse the last release's values and merge any overrides ? If 'reset\_values' is specified, this is ignored | `bool` | `false` | no |
| [helm\_skip\_crds](#input\_helm\_skip\_crds) | Skip installing CRDs ? | `bool` | `false` | no |
| [helm\_timeout\_seconds](#input\_helm\_timeout\_seconds) | Time in seconds to wait for any individual kubernetes operation | `number` | `300` | no |
| [helm\_verify](#input\_helm\_verify) | Verify the package before installing it. Helm uses a provenance file to verify the integrity of the chart | `bool` | `false` | no |
| [helm\_wait\_for\_completion](#input\_helm\_wait\_for\_completion) | Wait until all resources are in a ready state before marking the release as successful ? | `bool` | `true` | no |
| [helm\_wait\_for\_jobs](#input\_helm\_wait\_for\_jobs) | Wait until all Jobs have been completed before marking the release as successful ? | `bool` | `true` | no |
| [iam\_role\_name](#input\_iam\_role\_name) | Name of the IAM role used by Kubernetes service account | `string` | `"ebs-csi-controller"` | no |
| [k8s\_namespace](#input\_k8s\_namespace) | Kubernetes namespace on which to install resources | `string` | `"kube-system"` | no |
| [k8s\_sa\_name](#input\_k8s\_sa\_name) | Name of the Kubernetes service account | `string` | `"ebs-csi-controller"` | no |
| [kms\_key\_arn](#input\_kms\_key\_arn) | (Optional) ARN of the AWS KMS key used for volume encryption | `string` | `""` | no |

## Modules

| Name | Source | Version |
|------|--------|---------|
| [iam](#module\_iam) | ./modules/iam | n/a |
| [resources](#module\_resources) | ./modules/resources | n/a |

## Outputs

| Name | Description |
|------|-------------|
| [namespace](#output\_namespace) | The name (`metadata.name`) of the Kubernetes namespace |
| [release](#output\_release) | Helm release |
| [role](#output\_role) | IAM role for the Kubernetes service account |

## Providers

No providers.

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0.0 |
| [aws](#requirement\_aws) | >= 3.48.0 |
| [helm](#requirement\_helm) | >= 2.2.0 |

## Resources

No resources.

[//]: # (END_TF_DOCS)

## Authors

**Andre Silva** - [@andreswebs](https://github.com/andreswebs)

## License

This project is licensed under the [Unlicense](UNLICENSE.md).