Create and deploy the AWS-EFS storage class on Kubernetes.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Christophe van de Kerchove db71498493
feat: allow user to use custom image by setting variable
3 months ago
examples/default chore: Update example with latest version of EKS 5 months ago
.gitignore Add pre-commit config and pre-commit run 1 year ago
.pre-commit-config.yaml feat: dependencies for clean destroy 9 months ago
CHANGELOG.md feat: allow user to use custom image by setting variable 3 months ago
Jenkinsfile Add Jenkinsfile to module 1 year ago
LICENSE Initial push 1 year ago
README.md feat: allow user to use custom image by setting variable 3 months ago
main.tf feat: allow user to use custom image by setting variable 3 months ago
outputs.tf Fixes 1 year ago
variables.tf feat: allow user to use custom image by setting variable 3 months ago
versions.tf feat: Use efs module version 2.1.1 9 months ago

README.md

terraform-module-multi-efs-storage-class

Create and deploy the AWS-EFS storage class on Kubernetes.

Requirements

Name Version
terraform >= 0.12
aws >= 2.31.0
kubernetes >= 1.9.0
random >= 2.0.0

Providers

Name Version
aws >= 2.31.0
kubernetes >= 1.9.0
random >= 2.0.0

Inputs

Name Description Type Default Required
annotations Annotations that will be applied and merged on all the kubernetes resources. map {} no
cluster_role_annotations Map of annotations that will be added to the cluster role. map {} no
cluster_role_binding_annotations Map of annotations that will be added to the cluster role binding. map {} no
cluster_role_binding_labels Map of labels that will be added to the cluster role binding. map {} no
cluster_role_binding_name Name of the cluster role binding that will be created in kubernetes. string "efs-provisioner" no
cluster_role_labels Map of labels that will be added to the cluster role. map {} no
cluster_role_name Name of the cluster role that will be created in kubernetes. string "efs-provisioner" no
deployment_annotations Map of annotations that will be added to the deployment. map {} no
deployment_labels Map of labels that will be added to the deployment. map {} no
deployment_name Name of the deployment that will be created in kubernetes. string "efs-provisioner" no
deployment_replicas Number of replicas for the deployment. number 2 no
efs_allowed_cidrs CIDRs allowed to access the EFS. Must be a list of object containing “cidr” and “target” (the target of the CIDR). list [] no
efs_allowed_security_group_ids List of security group ids that are allowed to communicate with EFS. list [] no
efs_kms_key_alias_name Name of the alias for the KMS key used by the AWS EFS. string "alias/efs-storage-class-k8s" no
efs_kms_key_name Name of the KMS key used by the AWS EFS. string "efs-storage-class-k8s" no
efs_kms_tags Tags to add on the AWS EFS. map {} no
efs_name Name of the AWS EFS that will be created. string n/a yes
efs_performance_mode Performance mode of the AWS EFS. string null no
efs_provisioned_throughput_in_mibps Provisioned throughput in MiB/s for the AWS EFS. number null no
efs_security_group_name Name that will be given to the security group used by the AWS EFS. string n/a yes
efs_security_group_tags Tags to add on the security group for AWS EFS. map {} no
efs_subnet_ids Subnet ID's from which the AWS EFS will be available. list n/a yes
efs_tags Map of tags that will applied and merged with all the AWS EFS related resources. map {} no
efs_throughput_mode Troughput mode for the AWS EFS. string null no
enabled Whether or not to enable this module. bool true no
image Name of the image to use. string "quay.io/external_storage/efs-provisioner" no
image_version Version of the docker image to use for the efs-provisionner docker image. string "latest" no
labels Map of labels that will be applied on all kubernetes resources. map {} no
namespace Namespace in which the efs-provisioner will be deployed. string "kube-system" no
role_annotations Map of annotations that will be added to the cluster role. map {} no
role_binding_annotations Map of annotations that will be added to the cluster role binding. map {} no
role_binding_labels Map of labels that will be added to the cluster role binding. map {} no
role_binding_name Name of the cluster role binding that will be created in kubernetes. string "efs-provisioner" no
role_labels Map of labels that will be added to the cluster role. map {} no
role_name Name of the cluster role that will be created in kubernetes. string "efs-provisioner" no
service_account_annotations Map of annotations that will be added on the service account. map {} no
service_account_labels Map of labels that will be added on the service account. map {} no
service_account_name Name of the service account that will be created in kubernetes. string "efs-provisioner" no
storage_class_annotations Map of annotations that will be added on the storage class. map {} no
storage_class_labels Map of labels that will be added on the storage class. map {} no
storage_class_name Name of the storage class. string "efs" no
tags Map of tags that will be applied and merge with all the AWS resources. map {} no

Outputs

Name Description
cluster_role_binding_name Name of the kubernetes cluster role binding created for the efs-provisioner.
cluster_role_name Name of the kubernetes cluster role created for the efs-provisioner.
deployment_name Name of the kubernetes deployment created for the efs-provisioner.
efs_arn Amazon Resource Name of the file system.
efs_dns_name The DNS name for the filesystem.
efs_id The ID that identifies the file system (e.g. fs-ccfc0d65).
efs_kms_alias_arn The Amazon Resource Name (ARN) of the EFS key alias. This output will be empty if the KMS key was passed as variable.
efs_kms_key_arn The Amazon Resource Name (ARN) of the EFS key. This output will be empty if the KMS key was passed as variable.
efs_kms_key_id The globally unique identifier for the EFS key. This output will be empty if the KMS key was passed as variable.
efs_mount_target_ids The IDs of the EFS mount targets.
efs_mount_target_network_interface_ids The IDs of the network interfaces that Amazon EFS created when it created the mount targets.
efs_security_group_id ID of the security group used for the EFS. This output will be empty if the security groups IDs were passed as variables.
namespace Namespace in which the efs-storage-class is deployed.
role_binding_name Name of the kubernetes role binding created for the efs-provisioner.
role_name Name of the kubernetes role created for the efs-provisioner.
service_account_name Name of the kubernetes service account created for the efs-provisioner.
storage_class_name Name of the kubernetes storage class created.