From 4800f29d193da26b7864c3244a4bf0785c3ca646 Mon Sep 17 00:00:00 2001 From: Thomas Colomb Date: Tue, 4 Oct 2022 11:10:13 +0200 Subject: [PATCH] Karpenter : fallback on ondemand instance by default --- docs/operations/karpenter.md | 2 +- .../aws_s3_object_minimal.example.com-addons-bootstrap_content | 2 +- ...ect_minimal.example.com-addons-karpenter.sh-k8s-1.19_content | 2 ++ .../resources/addons/karpenter.sh/k8s-1.19.yaml.template | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/operations/karpenter.md b/docs/operations/karpenter.md index 38714aef73..d3b7d5ffef 100644 --- a/docs/operations/karpenter.md +++ b/docs/operations/karpenter.md @@ -66,6 +66,6 @@ As mentioned above, kOps will manage a Provisioner resource per InstanceGroup. I ### Other minor limitations * Control plane nodes must be provisioned with an ASG, not Karpenter. -* Provisioners will unconditionally use spot instances +* Provisioners will unconditionally use spot with a fallback on ondemand instances. * Provisioners will unconditionally include burstable instance groups such as the T3 instance family. * kOps will not allow mixing arm64 and amd64 instances in the same Provider. \ No newline at end of file diff --git a/tests/integration/update_cluster/karpenter/data/aws_s3_object_minimal.example.com-addons-bootstrap_content b/tests/integration/update_cluster/karpenter/data/aws_s3_object_minimal.example.com-addons-bootstrap_content index 9dbc109c7c..f258bb3958 100644 --- a/tests/integration/update_cluster/karpenter/data/aws_s3_object_minimal.example.com-addons-bootstrap_content +++ b/tests/integration/update_cluster/karpenter/data/aws_s3_object_minimal.example.com-addons-bootstrap_content @@ -69,7 +69,7 @@ spec: version: 9.99.0 - id: k8s-1.19 manifest: karpenter.sh/k8s-1.19.yaml - manifestHash: cdcc6eea95393014d4b1d416a4a8e1b0ca997f2336e7c21a5488ad809b4463c9 + manifestHash: a6856c8b9223d9ff50fa4f68cc01a44b52163fc5319f4e551f6aa6eda432d56f name: karpenter.sh selector: k8s-addon: karpenter.sh diff --git a/tests/integration/update_cluster/karpenter/data/aws_s3_object_minimal.example.com-addons-karpenter.sh-k8s-1.19_content b/tests/integration/update_cluster/karpenter/data/aws_s3_object_minimal.example.com-addons-karpenter.sh-k8s-1.19_content index 2ff46a01b3..bb3604943c 100644 --- a/tests/integration/update_cluster/karpenter/data/aws_s3_object_minimal.example.com-addons-karpenter.sh-k8s-1.19_content +++ b/tests/integration/update_cluster/karpenter/data/aws_s3_object_minimal.example.com-addons-karpenter.sh-k8s-1.19_content @@ -1419,6 +1419,7 @@ spec: operator: In values: - spot + - ondemand - key: kubernetes.io/arch operator: In values: @@ -1455,6 +1456,7 @@ spec: operator: In values: - spot + - ondemand - key: kubernetes.io/arch operator: In values: diff --git a/upup/models/cloudup/resources/addons/karpenter.sh/k8s-1.19.yaml.template b/upup/models/cloudup/resources/addons/karpenter.sh/k8s-1.19.yaml.template index 04c11a5851..4800fe8564 100644 --- a/upup/models/cloudup/resources/addons/karpenter.sh/k8s-1.19.yaml.template +++ b/upup/models/cloudup/resources/addons/karpenter.sh/k8s-1.19.yaml.template @@ -1159,7 +1159,7 @@ spec: requirements: - key: karpenter.sh/capacity-type operator: In - values: ["spot"] + values: ["spot", "ondemand"] - key: kubernetes.io/arch operator: In values: ["{{ ArchitectureOfAMI $spec.Image }}"]