Skip to content

Commit 408a90a

Browse files
committed
feat: add support for Bottlerocket FIPS AMIs
1 parent 4201bc9 commit 408a90a

File tree

4 files changed

+11
-2
lines changed

4 files changed

+11
-2
lines changed

pkg/controllers/nodeclass/ami_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,8 @@ var _ = Describe("NodeClass AMI Status Controller", func() {
305305
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s/arm64/latest/image_id", k8sVersion): "ami-arm64-standard",
306306
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-nvidia/x86_64/latest/image_id", k8sVersion): "ami-amd64-nvidia",
307307
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-nvidia/arm64/latest/image_id", k8sVersion): "ami-arm64-nvidia",
308+
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-fips/x86_64/latest/image_id", k8sVersion): "ami-amd64-standard",
309+
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-fips/arm64/latest/image_id", k8sVersion): "ami-arm64-standard",
308310
}
309311
nodeClass.Spec.AMISelectorTerms = []v1.AMISelectorTerm{{Alias: "bottlerocket@latest"}}
310312
ExpectApplied(ctx, env.Client, nodeClass)

pkg/providers/amifamily/bottlerocket.go

+2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ func (b Bottlerocket) DescribeImageQuery(ctx context.Context, ssmProvider ssm.Pr
4848
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s/arm64/%s/image_id", k8sVersion, trimmedAMIVersion): {VariantStandard},
4949
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-nvidia/x86_64/%s/image_id", k8sVersion, trimmedAMIVersion): {VariantNvidia},
5050
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-nvidia/arm64/%s/image_id", k8sVersion, trimmedAMIVersion): {VariantNvidia},
51+
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-fips/x86_64/%s/image_id", k8sVersion, trimmedAMIVersion): {VariantFips},
52+
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-fips/arm64/%s/image_id", k8sVersion, trimmedAMIVersion): {VariantFips},
5153
} {
5254
imageID, err := ssmProvider.Get(ctx, ssm.Parameter{
5355
Name: path,

pkg/providers/amifamily/suite_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ const (
6363
arm64AMI = "arm64-ami-id"
6464
amd64NvidiaAMI = "amd64-nvidia-ami-id"
6565
arm64NvidiaAMI = "arm64-nvidia-ami-id"
66+
amd64FipsAMI = "amd64-fips-ami-id"
67+
arm64FipsAMI = "arm64-fips-ami-id"
6668
)
6769

6870
var _ = BeforeSuite(func() {
@@ -166,6 +168,8 @@ var _ = Describe("AMIProvider", func() {
166168
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-nvidia/x86_64/latest/image_id", version): amd64NvidiaAMI,
167169
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s/arm64/latest/image_id", version): arm64AMI,
168170
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-nvidia/arm64/latest/image_id", version): arm64NvidiaAMI,
171+
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-fips/x86_64/latest/image_id", version): amd64AMI,
172+
fmt.Sprintf("/aws/service/bottlerocket/aws-k8s-%s-fips/arm64/latest/image_id", version): arm64FipsAMI,
169173
}
170174
amis, err := awsEnv.AMIProvider.List(ctx, nodeClass)
171175
Expect(err).ToNot(HaveOccurred())

pkg/providers/amifamily/types.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,13 @@ var (
6868
VariantStandard Variant = "standard"
6969
VariantNvidia Variant = "nvidia"
7070
VariantNeuron Variant = "neuron"
71+
VariantFips Variant = "fips"
7172
maxTime time.Time = time.Unix(math.MaxInt64, 0)
7273
minTime time.Time = time.Unix(math.MinInt64, 0)
7374
)
7475

7576
func NewVariant(v string) (Variant, error) {
76-
var wellKnownVariants = sets.New(VariantStandard, VariantNvidia, VariantNeuron)
77+
var wellKnownVariants = sets.New(VariantStandard, VariantNvidia, VariantNeuron, VariantFips)
7778
variant := Variant(v)
7879
if !wellKnownVariants.Has(variant) {
7980
return variant, fmt.Errorf("%q is not a well-known variant", variant)
@@ -83,7 +84,7 @@ func NewVariant(v string) (Variant, error) {
8384

8485
func (v Variant) Requirements() scheduling.Requirements {
8586
switch v {
86-
case VariantStandard:
87+
case VariantStandard, VariantFips:
8788
return scheduling.NewRequirements(
8889
scheduling.NewRequirement(v1.LabelInstanceAcceleratorCount, corev1.NodeSelectorOpDoesNotExist),
8990
scheduling.NewRequirement(v1.LabelInstanceGPUCount, corev1.NodeSelectorOpDoesNotExist),

0 commit comments

Comments
 (0)