Kubernetes EBS CSI driver Terraform module
Terraform module which creates Kubernetes EBS CSI controller resources on AWS EKS.
Based on the original repo for the EBS CSI driver
data "aws_eks_cluster" "cluster" {
name = " my-eks-cluster"
}
data "aws_eks_cluster_auth" "cluster" {
name = " my-eks-cluster"
}
data "tls_certificate" "cert" {
url = data. aws_eks_cluster . cluster . identity [0 ]. oidc [0 ]. issuer
}
resource "aws_iam_openid_connect_provider" "openid_connect" {
client_id_list = [" sts.amazonaws.com" ]
thumbprint_list = [data . tls_certificate . cert . certificates . 0 . sha1_fingerprint ]
url = data. aws_eks_cluster . cluster . identity [0 ]. oidc [0 ]. issuer
}
provider "kubernetes" {
host = data. aws_eks_cluster . cluster . endpoint
cluster_ca_certificate = base64decode (data. aws_eks_cluster . cluster . certificate_authority . 0 . data )
token = data. aws_eks_cluster_auth . cluster . token
load_config_file = false
version = " ~> 1.11.4"
}
module "ebs_csi_driver_controller" {
source = " DrFaust92/ebs-csi-driver/kubernetes"
version = " <VERSION>"
ebs_csi_controller_image = " "
ebs_csi_controller_role_name = " ebs-csi-driver-controller"
ebs_csi_controller_role_policy_name_prefix = " ebs-csi-driver-policy"
oidc_url = aws_iam_openid_connect_provider. openid_connect . url
}
Name
Version
terraform
>= 0.12.6
kubernetes
>= 1.11.4
Name
Version
aws
n/a
kubernetes
>= 1.11.4
Name
Description
Type
Default
Required
csi_controller_replica_count
Number of EBS CSI driver controller pods
number
2
no
csi_controller_tolerations
CSI driver controller tolerations
list(map(string))
[]
no
ebs_csi_controller_image
The EBS CSI driver controller's image
string
""
no
ebs_csi_controller_role_name
The name of the EBS CSI driver IAM role
string
"ebs-csi-driver-controller"
no
ebs_csi_controller_role_policy_name_prefix
The prefix of the EBS CSI driver IAM policy
string
"ebs-csi-driver-policy"
no
eks_cluster_id
ID of the Kubernetes cluster used for tagging provisioned EBS volumes
string
""
no
enable_volume_resizing
Whether to enable volume resizing
bool
false
no
enable_volume_snapshot
Whether to enable volume snapshotting
bool
false
no
extra_create_metadata
If set, add pv/pvc metadata to plugin create requests as parameters.
bool
false
no
extra_node_selectors
A map of extra node selectors for all components
map(string)
{}
no
node_extra_node_selectors
A map of extra node selectors for node component
map(string)
{}
no
controller_extra_node_selectors
A map of extra node selectors for controller component
map(string)
{}
no
namespace
The K8s namespace for all EBS CSI driver resources
string
"kube-system"
no
node_tolerations
CSI driver node tolerations
list(map(string))
[]
no
oidc_url
EKS OIDC provider URL, to allow pod to assume role using IRSA
string
n/a
yes
tags
A map of tags to add to all resources
map(string)
{}
no
Name
Description
ebs_csi_driver_controller_role_arn
The Name of the EBS CSI driver controller IAM role ARN
ebs_csi_driver_controller_role_name
The Name of the EBS CSI driver controller IAM role name
ebs_csi_driver_controller_role_policy_arn
The Name of the EBS CSI driver controller IAM role policy ARN
ebs_csi_driver_controller_role_policy_name
The Name of the EBS CSI driver controller IAM role policy name
ebs_csi_driver_name
The Name of the EBS CSI driver