keda
This component is used to install the KEDA operator.
Usage
Stack Level: Regional
Use this in the catalog or use these variables to overwrite the catalog values.
components:
terraform:
eks/keda:
vars:
enabled: true
name: keda
create_namespace: true
kubernetes_namespace: "keda"
chart_repository: "https://kedacore.github.io/charts"
chart: "keda"
chart_version: "2.13.2"
chart_values: {}
timeout: 180
Variables
Required Variables
kubernetes_namespace
(string
) requiredThe namespace to install the release into.
region
(string
) requiredAWS Region
Optional Variables
atomic
(bool
) optionalIf set, installation process purges chart on fail. The wait flag will be set automatically if atomic is used.
Default value:
true
chart
(string
) optionalChart name to be installed. The chart name can be local path, a URL to a chart, or the name of the chart if
repository
is specified. It is also possible to use the<repository>/<chart>
format here if you are running Terraform on a system that the repository has been added to withhelm repo add
but this is not recommended.Default value:
"keda"
chart_version
(string
) optionalSpecify the exact chart version to install. If this is not specified, the latest version is installed.
Default value:
"2.8"
cleanup_on_fail
(bool
) optionalAllow deletion of new resources created in this upgrade when upgrade fails.
Default value:
true
create_namespace
(bool
) optionalCreate the Kubernetes namespace if it does not yet exist
Default value:
true
description
(string
) optionalSet release description attribute (visible in the history).
Default value:
"Used for autoscaling from external metrics configured as triggers."
eks_component_name
(string
) optionalThe name of the eks component
Default value:
"eks/cluster"
helm_manifest_experiment_enabled
(bool
) optionalEnable storing of the rendered manifest for helm_release so the full diff of what is changing can been seen in the plan
Default value:
false
kube_data_auth_enabled
(bool
) optionalIf
true
, use anaws_eks_cluster_auth
data source to authenticate to the EKS cluster.
Disabled bykubeconfig_file_enabled
orkube_exec_auth_enabled
.Default value:
false
kube_exec_auth_aws_profile
(string
) optionalThe AWS config profile for
aws eks get-token
to useDefault value:
""
kube_exec_auth_aws_profile_enabled
(bool
) optionalIf
true
, passkube_exec_auth_aws_profile
as theprofile
toaws eks get-token
Default value:
false
kube_exec_auth_enabled
(bool
) optionalIf
true
, use the Kubernetes providerexec
feature to executeaws eks get-token
to authenticate to the EKS cluster.
Disabled bykubeconfig_file_enabled
, overrideskube_data_auth_enabled
.Default value:
true
kube_exec_auth_role_arn
(string
) optionalThe role ARN for
aws eks get-token
to useDefault value:
""
kube_exec_auth_role_arn_enabled
(bool
) optionalIf
true
, passkube_exec_auth_role_arn
as the role ARN toaws eks get-token
Default value:
true
kubeconfig_context
(string
) optionalContext to choose from the Kubernetes config file.
If supplied,kubeconfig_context_format
will be ignored.Default value:
""
kubeconfig_context_format
(string
) optionalA format string to use for creating the
kubectl
context name when
kubeconfig_file_enabled
istrue
andkubeconfig_context
is not supplied.
Must include a single%s
which will be replaced with the cluster name.Default value:
""
kubeconfig_exec_auth_api_version
(string
) optionalThe Kubernetes API version of the credentials returned by the
exec
auth pluginDefault value:
"client.authentication.k8s.io/v1beta1"
kubeconfig_file
(string
) optionalThe Kubernetes provider
config_path
setting to use whenkubeconfig_file_enabled
istrue
Default value:
""
kubeconfig_file_enabled
(bool
) optionalIf
true
, configure the Kubernetes provider withkubeconfig_file
and use that kubeconfig file for authenticating to the EKS clusterDefault value:
false
rbac_enabled
(bool
) optionalService Account for pods.
Default value:
true
repository
(string
) optionalRepository URL where to locate the requested chart.
Default value:
"https://kedacore.github.io/charts"
resources
(any
) optionalA sub-nested map of deployment to resources. e.g. { operator = { requests = { cpu = 100m, memory = 100Mi }, limits = { cpu = 200m, memory = 200Mi } } }
Default value:
null
timeout
(number
) optionalTime in seconds to wait for any individual kubernetes operation (like Jobs for hooks). Defaults to
300
secondsDefault value:
null
wait
(bool
) optionalWill wait until all resources are in a ready state before marking the release as successful. It will wait for as long as
timeout
. Defaults totrue
.Default value:
true
Context Variables
The following variables are defined in the context.tf
file of this module and part of the terraform-null-label pattern.
context.tf
file of this module and part of the terraform-null-label pattern.Outputs
metadata
Block status of the deployed release.
service_account_name
Kubernetes Service Account name
service_account_namespace
Kubernetes Service Account namespace
service_account_policy_arn
IAM policy ARN
service_account_policy_id
IAM policy ID
service_account_policy_name
IAM policy name
service_account_role_arn
IAM role ARN
service_account_role_name
IAM role name
service_account_role_unique_id
IAM role unique ID
Dependencies
Requirements
terraform
, version:>= 1.0.0
aws
, version:>= 4.0
helm
, version:>= 2.6.0
kubernetes
, version:>= 2.9.0, != 2.21.0
Providers
aws
, version:>= 4.0
Modules
Name | Version | Source | Description |
---|---|---|---|
eks | 1.8.0 | cloudposse/stack-config/yaml//modules/remote-state | n/a |
iam_roles | latest | ../../account-map/modules/iam-roles | n/a |
keda | 0.10.1 | cloudposse/helm-release/aws | n/a |
this | 0.25.0 | cloudposse/label/null | n/a |
Resources
The following resources are used by this module:
Data Sources
The following data sources are used by this module:
aws_eks_cluster_auth.eks
(data source)
References
- cloudposse/terraform-aws-components - Cloud Posse's upstream component