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 ] }