diff --git a/examples/auto-mode/README.md b/examples/auto-mode/README.md index bdc3d6e..d53da10 100644 --- a/examples/auto-mode/README.md +++ b/examples/auto-mode/README.md @@ -71,7 +71,7 @@ Terraform applies two **`kubernetes_manifest`** resources after `module.eks` (se | NodePool | Role | | --- | --- | | `gpu` | Accelerated / NVIDIA (**g5/g6/g6e**), on-demand, GPU taint for isolation. | -| `batch-spot` | Spot-first batch-style general compute with on-demand fallback; caps and disruption in YAML. | +| `spot` | Spot-first batch-style general compute with on-demand fallback; caps and disruption in YAML. | Both set `nodeClassRef` to Auto Mode **`NodeClass`** **`default`**. Remove or edit the `.tf` / YAML files if you do not want these pools. @@ -90,7 +90,7 @@ kubectl get nodes -w # kubectl create deployment demo --image=nginx --replicas=5 ``` -You should see nodes appear for the **built-in** pools when pending pods need capacity. **GPU** and **batch** shapes appear when workloads match the **Karpenter `NodePool`** requirements and tolerations. +You should see nodes appear for the **built-in** pools when pending pods need capacity. **GPU** and **spot** NodePool shapes appear when workloads match the **Karpenter `NodePool`** requirements and tolerations. ## Optional: Headlamp OIDC and SAML @@ -98,7 +98,7 @@ Headlamp in your GitOps repo consumes **Cognito** as OIDC issuer; this Terraform **Typical SAML flow:** -1. **First apply** without `headlamp_saml_metadata_url`. Use IdP ACS / audience from: +1. **First apply** without `headlamp_saml_metadata_url` (and without legacy `headlamp_idc_saml_metadata_url`). Use IdP ACS / audience from: ```bash terraform output -raw headlamp_cognito_saml_acs_url diff --git a/examples/auto-mode/karpenter-nodepool-batch-spot.tf b/examples/auto-mode/karpenter-nodepool-gpu.tf similarity index 50% rename from examples/auto-mode/karpenter-nodepool-batch-spot.tf rename to examples/auto-mode/karpenter-nodepool-gpu.tf index b49df19..9d2fa31 100644 --- a/examples/auto-mode/karpenter-nodepool-batch-spot.tf +++ b/examples/auto-mode/karpenter-nodepool-gpu.tf @@ -1,5 +1,5 @@ -resource "kubernetes_manifest" "karpenter_batch_spot_nodepool" { - manifest = yamldecode(file("${path.module}/manifests/karpenter-nodepool-batch-spot.yaml")) +resource "kubernetes_manifest" "karpenter_gpu_nodepool" { + manifest = yamldecode(file("${path.module}/manifests/karpenter-nodepool-gpu.yaml")) depends_on = [module.eks] } diff --git a/examples/auto-mode/karpenter-nodepool-spot.tf b/examples/auto-mode/karpenter-nodepool-spot.tf new file mode 100644 index 0000000..904085d --- /dev/null +++ b/examples/auto-mode/karpenter-nodepool-spot.tf @@ -0,0 +1,5 @@ +resource "kubernetes_manifest" "karpenter_spot_nodepool" { + manifest = yamldecode(file("${path.module}/manifests/karpenter-nodepool-spot.yaml")) + + depends_on = [module.eks] +} diff --git a/examples/auto-mode/karpenter-nodepool.tf b/examples/auto-mode/karpenter-nodepool.tf deleted file mode 100644 index 53fbecf..0000000 --- a/examples/auto-mode/karpenter-nodepool.tf +++ /dev/null @@ -1,5 +0,0 @@ -resource "kubernetes_manifest" "karpenter_accelerated_nodepool" { - manifest = yamldecode(file("${path.module}/manifests/karpenter-nodepool-accelerated.yaml")) - - depends_on = [module.eks] -} diff --git a/examples/auto-mode/main.tf b/examples/auto-mode/main.tf index 744a5a9..4775ea8 100644 --- a/examples/auto-mode/main.tf +++ b/examples/auto-mode/main.tf @@ -25,13 +25,6 @@ provider "aws" { region = var.aws_region } -# Required while state still has resources created in us-east-1 (e.g. ACM for CloudFront). After `terraform apply` -# removes them, this block can stay (harmless) or you may remove it if no resource uses `provider = aws.us_east_1`. -provider "aws" { - alias = "us_east_1" - region = "us-east-1" -} - data "aws_caller_identity" "current" {} locals { diff --git a/examples/auto-mode/manifests/karpenter-nodepool-accelerated.yaml b/examples/auto-mode/manifests/karpenter-nodepool-gpu.yaml similarity index 100% rename from examples/auto-mode/manifests/karpenter-nodepool-accelerated.yaml rename to examples/auto-mode/manifests/karpenter-nodepool-gpu.yaml diff --git a/examples/auto-mode/manifests/karpenter-nodepool-batch-spot.yaml b/examples/auto-mode/manifests/karpenter-nodepool-spot.yaml similarity index 91% rename from examples/auto-mode/manifests/karpenter-nodepool-batch-spot.yaml rename to examples/auto-mode/manifests/karpenter-nodepool-spot.yaml index 3b1b6d6..6fd1b97 100644 --- a/examples/auto-mode/manifests/karpenter-nodepool-batch-spot.yaml +++ b/examples/auto-mode/manifests/karpenter-nodepool-spot.yaml @@ -1,6 +1,6 @@ # Karpenter NodePool: interruptible batch capacity on general compute (C + M categories), spot-first # with on-demand fallback (separate from GPU accelerated pool). -# Applied by karpenter-nodepool-batch-spot.tf only — do not merge into karpenter-nodepool-accelerated.yaml. +# Applied by karpenter-nodepool-spot.tf only — do not merge into karpenter-nodepool-accelerated.yaml. # # Spot-first with on-demand fallback in ONE pool: requirements allow both capacity types; Karpenter # prefers spot and falls back to on-demand when spot cannot satisfy provisioning (see Karpenter @@ -11,7 +11,7 @@ apiVersion: karpenter.sh/v1 kind: NodePool metadata: - name: batch-spot + name: spot spec: # Prefer reclaiming underutilized capacity when budgets allow. disruption: @@ -46,7 +46,7 @@ spec: - c - m taints: - - key: devops.k8sforge/batch-spot + - key: devops.k8sforge/spot effect: NoSchedule # 336h == 14 days; aligns with EKS Auto Mode default node lifetime (AWS “Create a Node Pool” → Disruption). expireAfter: 336h