41 lines
1.1 KiB
Terraform
41 lines
1.1 KiB
Terraform
|
provider "kubectl" {
|
||
|
apply_retry_count = 5
|
||
|
host = module.eks.cluster_endpoint
|
||
|
cluster_ca_certificate = base64decode(module.eks.cluster_certificate_authority_data)
|
||
|
load_config_file = false
|
||
|
|
||
|
exec {
|
||
|
api_version = "client.authentication.k8s.io/v1beta1"
|
||
|
command = "aws"
|
||
|
args = ["eks", "get-token", "--cluster-name", module.eks.cluster_id]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
resource "kubectl_manifest" "karpenter_provisioner" {
|
||
|
yaml_body = <<-YAML
|
||
|
apiVersion: karpenter.sh/v1alpha5
|
||
|
kind: Provisioner
|
||
|
metadata:
|
||
|
name: default
|
||
|
spec:
|
||
|
requirements:
|
||
|
- key: karpenter.sh/capacity-type
|
||
|
operator: In
|
||
|
values: ["spot"]
|
||
|
limits:
|
||
|
resources:
|
||
|
cpu: 1000
|
||
|
provider:
|
||
|
subnetSelector:
|
||
|
Name: "*private*"
|
||
|
securityGroupSelector:
|
||
|
karpenter.sh/discovery/${module.eks.cluster_id}: ${module.eks.cluster_id}
|
||
|
tags:
|
||
|
karpenter.sh/discovery/${module.eks.cluster_id}: ${module.eks.cluster_id}
|
||
|
ttlSecondsAfterEmpty: 30
|
||
|
YAML
|
||
|
|
||
|
depends_on = [
|
||
|
helm_release.karpenter
|
||
|
]
|
||
|
}
|