Skip to content

Commit 470a808

Browse files
build(deps): Bump sigs.k8s.io/cluster-api-provider-aws/v2 from 2.8.4 to 2.9.0 in /hack/third-party/capa (#1271)
Bumps [sigs.k8s.io/cluster-api-provider-aws/v2](https://github.com/kubernetes-sigs/cluster-api-provider-aws) from 2.8.4 to 2.9.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/releases">sigs.k8s.io/cluster-api-provider-aws/v2's releases</a>.</em></p> <blockquote> <h2>v2.9.0</h2> <h1>Release notes for Cluster API Provider AWS (CAPA) v2.9.0</h1> <p><a href="https://cluster-api-aws.sigs.k8s.io/">Documentation</a></p> <h1>Changelog since v2.8.4</h1> <h2>Urgent Upgrade Notes</h2> <h3>(No, really, you MUST read this before you upgrade)</h3> <ul> <li>Action required Add missing permissions for controller. Its recommended that you update your CloudFormation stack. (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5537">#5537</a>, <a href="https://github.com/richardcase"><code>@​richardcase</code></a>)</li> <li>Action required Garbage collection graduated out of experimental. If you don't want this feature enabled please see the docs on how to disabled it. (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5348">#5348</a>, <a href="https://github.com/richardcase"><code>@​richardcase</code></a>)</li> <li>Action required Support setting role path and permissions boundary on managed IAM roles. If you want to use permission boundaries, then you will need to update your IAM permissions by running <strong>clusterawsadm bootstrap iam create-cloudformation-stack</strong> again. (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5286">#5286</a>, <a href="https://github.com/robinkb"><code>@​robinkb</code></a>)</li> <li>Action required Support storing Ignition user data in S3 bucket for <code>AWSMachinePool</code>. If you plan to use this feature then you will need to update the permissions for CAPA using clusterawsadm. (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5318">#5318</a>, <a href="https://github.com/AndiDog"><code>@​AndiDog</code></a>)</li> </ul> <h2>Changes by Kind</h2> <h3>Support</h3> <ul> <li>Add machine pool template for Flatcar Linux (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5522">#5522</a>, <a href="https://github.com/AndiDog"><code>@​AndiDog</code></a>)</li> <li>Bump calico used in e2e tests to newest version. (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5459">#5459</a>, <a href="https://github.com/richardcase"><code>@​richardcase</code></a>)</li> <li>Bump github.com/golang/glog to v1.2.5 (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5590">#5590</a>, <a href="https://github.com/damdo"><code>@​damdo</code></a>)</li> <li>Bump to go 1.23 (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5437">#5437</a>, <a href="https://github.com/damdo"><code>@​damdo</code></a>)</li> </ul> <h3>Deprecation</h3> <ul> <li>Migrate ServiceLimiters to AWS SDK V2 (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5574">#5574</a>, <a href="https://github.com/punkwalker"><code>@​punkwalker</code></a>)</li> <li>Migrate autoscaling to AWS SDK V2 (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5497">#5497</a>, <a href="https://github.com/alexander-demicev"><code>@​alexander-demicev</code></a>)</li> <li>Migrate elb to AWS SDK v2 (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5572">#5572</a>, <a href="https://github.com/phuhung273"><code>@​phuhung273</code></a>)</li> <li>Migrate iam to aws sdk v2 (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5526">#5526</a>, <a href="https://github.com/alexander-demicev"><code>@​alexander-demicev</code></a>)</li> <li>Migrate instancestate code to AWS SDK v2 (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5562">#5562</a>, <a href="https://github.com/phuhung273"><code>@​phuhung273</code></a>)</li> <li>Migrate sts to sdk v2 (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5601">#5601</a>, <a href="https://github.com/alexander-demicev"><code>@​alexander-demicev</code></a>)</li> </ul> <h3>API Change</h3> <ul> <li>Add support for managed machine AMI types BottleRocket, AL2023 and Windows (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5540">#5540</a>, <a href="https://github.com/afarbos"><code>@​afarbos</code></a>)</li> </ul> <h3>Feature</h3> <ul> <li>Add ClusterClass support for EKS clusters (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5375">#5375</a>, <a href="https://github.com/alexander-demicev"><code>@​alexander-demicev</code></a>)</li> <li>Add support for 'fast' channelGroupType in ROSA provider (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5587">#5587</a>, <a href="https://github.com/cblecker"><code>@​cblecker</code></a>)</li> <li>Adds the capability of provisioning machines on to dedicated hosts. (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5548">#5548</a>, <a href="https://github.com/rvanderp3"><code>@​rvanderp3</code></a>)</li> <li>Control plane load balancers are created concurrently, reducing cluster installation time when specifying a secondary control plane load balancer. (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5569">#5569</a>, <a href="https://github.com/mdbooth"><code>@​mdbooth</code></a>)</li> <li>Migrate EC2 packages to AWS SDK v2 (<a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5521">#5521</a>, <a href="https://github.com/yiannistri"><code>@​yiannistri</code></a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/dcfaef0f0308aab17f70feaa50b5f87a0b0bcaa7"><code>dcfaef0</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5633">#5633</a> from BraeTroutman/OCPBUGS-60943</li> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/fa170d47c4fd26e73579617606ec48be6617abaf"><code>fa170d4</code></a> Add validation to prevent Spot instances with capacity-reservations-only pref...</li> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/8ab87314c0d2c8bad4febb161acb3f6b009727dc"><code>8ab8731</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5628">#5628</a> from chrischdi/pr-krpomo-remove-hacktools</li> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/210f86c21fac3fc6e96c0ef4ff522b3e77e43923"><code>210f86c</code></a> remove kpromo from hack/tools/go.mod and directly install it instead</li> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/645f38e4c152b6059a62e6765ba78a045ef136bd"><code>645f38e</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5622">#5622</a> from chrischdi/pr-dump-pod-logs</li> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/7f1e2760fe804d7b228d3ea38d81ab4f3ec2cd50"><code>7f1e276</code></a> test: create tarball as artifact with pod logs for debugging</li> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/98f6979f80a584e439e5303516bc5cf4dd34cb8f"><code>98f6979</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5479">#5479</a> from kubernetes-sigs/dependabot/go_modules/hack/tool...</li> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/81092dbf033eabdfe9e7893fc1cf7e4eeddc5210"><code>81092db</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5620">#5620</a> from punkwalker/aws-v1-cleanup</li> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/f5a5ce45a6e7536c029c43582514406f9710292f"><code>f5a5ce4</code></a> Merge pull request <a href="https://redirect.github.com/kubernetes-sigs/cluster-api-provider-aws/issues/5621">#5621</a> from nrb/remove-unsupported-flag</li> <li><a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/commit/3e88691436feaa304a56629d6f8fd1b7a6dbb5c4"><code>3e88691</code></a> fix e2e test panic</li> <li>Additional commits viewable in <a href="https://github.com/kubernetes-sigs/cluster-api-provider-aws/compare/v2.8.4...v2.9.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sigs.k8s.io/cluster-api-provider-aws/v2&package-manager=go_modules&previous-version=2.8.4&new-version=2.9.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jimmi Dyson <[email protected]>
1 parent 933a30d commit 470a808

File tree

15 files changed

+415
-139
lines changed

15 files changed

+415
-139
lines changed

api/external/sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2/awsmachine_types.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,16 @@ const (
2929

3030
// DefaultIgnitionVersion represents default Ignition version generated for machine userdata.
3131
DefaultIgnitionVersion = "2.3"
32+
33+
// DefaultIgnitionStorageType represents the default storage type of Ignition userdata
34+
DefaultIgnitionStorageType = IgnitionStorageTypeOptionClusterObjectStore
35+
36+
// DefaultMachinePoolIgnitionStorageType represents the default storage type of Ignition userdata for machine pools.
37+
//
38+
// This is only different from DefaultIgnitionStorageType because of backward compatibility. Machine pools used to
39+
// default to store Ignition user data directly on the EC2 instance. Since the choice between remote storage (S3)
40+
// and direct storage was introduced, the default was kept, but might change in newer API versions.
41+
DefaultMachinePoolIgnitionStorageType = IgnitionStorageTypeOptionUnencryptedUserData
3242
)
3343

3444
// SecretBackend defines variants for backend secret storage.
@@ -64,6 +74,8 @@ const (
6474
)
6575

6676
// AWSMachineSpec defines the desired state of an Amazon EC2 instance.
77+
// +kubebuilder:validation:XValidation:rule="!has(self.capacityReservationId) || !has(self.marketType) || self.marketType != 'Spot'",message="capacityReservationId may not be set when marketType is Spot"
78+
// +kubebuilder:validation:XValidation:rule="!has(self.capacityReservationId) || !has(self.spotMarketOptions)",message="capacityReservationId cannot be set when spotMarketOptions is specified"
6779
type AWSMachineSpec struct {
6880
// ProviderID is the unique identifier as specified by the cloud provider.
6981
ProviderID *string `json:"providerID,omitempty"`
@@ -221,6 +233,26 @@ type AWSMachineSpec struct {
221233
// If marketType is not specified and spotMarketOptions is provided, the marketType defaults to "Spot".
222234
// +optional
223235
MarketType MarketType `json:"marketType,omitempty"`
236+
237+
// HostID specifies the Dedicated Host on which the instance must be started.
238+
// +optional
239+
HostID *string `json:"hostID,omitempty"`
240+
241+
// HostAffinity specifies the dedicated host affinity setting for the instance.
242+
// When hostAffinity is set to host, an instance started onto a specific host always restarts on the same host if stopped.
243+
// When hostAffinity is set to default, and you stop and restart the instance, it can be restarted on any available host.
244+
// When HostAffinity is defined, HostID is required.
245+
// +optional
246+
// +kubebuilder:validation:Enum:=default;host
247+
HostAffinity *string `json:"hostAffinity,omitempty"`
248+
249+
// CapacityReservationPreference specifies the preference for use of Capacity Reservations by the instance. Valid values include:
250+
// "Open": The instance may make use of open Capacity Reservations that match its AZ and InstanceType
251+
// "None": The instance may not make use of any Capacity Reservations. This is to conserve open reservations for desired workloads
252+
// "CapacityReservationsOnly": The instance will only run if matched or targeted to a Capacity Reservation. Note that this is incompatible with a MarketType of `Spot`
253+
// +kubebuilder:validation:Enum="";None;CapacityReservationsOnly;Open
254+
// +optional
255+
CapacityReservationPreference CapacityReservationPreference `json:"capacityReservationPreference,omitempty"`
224256
}
225257

226258
// CloudInit defines options related to the bootstrapping systems where
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/*
2+
Copyright 2025 The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package v1beta2
18+
19+
import (
20+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21+
)
22+
23+
// AWSManagedClusterTemplateSpec defines the desired state of AWSManagedClusterTemplate.
24+
type AWSManagedClusterTemplateSpec struct {
25+
Template AWSManagedClusterTemplateResource `json:"template"`
26+
}
27+
28+
// +kubebuilder:object:root=true
29+
// +kubebuilder:resource:path=awsmanagedclustertemplates,scope=Namespaced,categories=cluster-api,shortName=amct
30+
// +kubebuilder:storageversion
31+
32+
// AWSManagedClusterTemplate is the Schema for the AWSManagedClusterTemplates API.
33+
type AWSManagedClusterTemplate struct {
34+
metav1.TypeMeta `json:",inline"`
35+
metav1.ObjectMeta `json:"metadata,omitempty"`
36+
37+
Spec AWSManagedClusterTemplateSpec `json:"spec,omitempty"`
38+
}
39+
40+
// +kubebuilder:object:root=true
41+
42+
// AWSManagedClusterTemplateList contains a list of AWSManagedClusterTemplates.
43+
type AWSManagedClusterTemplateList struct {
44+
metav1.TypeMeta `json:",inline"`
45+
metav1.ListMeta `json:"metadata,omitempty"`
46+
Items []AWSManagedClusterTemplate `json:"items"`
47+
}
48+
49+
func init() {
50+
SchemeBuilder.Register(&AWSManagedClusterTemplate{}, &AWSManagedClusterTemplateList{})
51+
}
52+
53+
// AWSManagedClusterTemplateResource describes the data needed to create an AWSManagedCluster from a template.
54+
type AWSManagedClusterTemplateResource struct {
55+
Spec AWSManagedClusterSpec `json:"spec"`
56+
}

api/external/sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2/network_types.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import (
2121
"sort"
2222
"time"
2323

24-
"github.com/aws/aws-sdk-go/aws"
25-
"github.com/aws/aws-sdk-go/service/ec2"
24+
"github.com/aws/aws-sdk-go-v2/aws"
25+
"github.com/aws/aws-sdk-go-v2/service/ec2/types"
2626
"k8s.io/utils/ptr"
2727
)
2828

@@ -207,6 +207,14 @@ type TargetGroupAttribute string
207207
var (
208208
// TargetGroupAttributeEnablePreserveClientIP defines the attribute key for enabling preserve client IP.
209209
TargetGroupAttributeEnablePreserveClientIP = "preserve_client_ip.enabled"
210+
211+
// TargetGroupAttributeEnableConnectionTermination defines the attribute key for terminating
212+
// established connections to unhealthy targets.
213+
TargetGroupAttributeEnableConnectionTermination = "target_health_state.unhealthy.connection_termination.enabled"
214+
215+
// TargetGroupAttributeUnhealthyDrainingIntervalSeconds defines the attribute key for the
216+
// unhealthy target connection draining interval.
217+
TargetGroupAttributeUnhealthyDrainingIntervalSeconds = "target_health_state.unhealthy.draining_interval_seconds"
210218
)
211219

212220
// LoadBalancerAttribute defines a set of attributes for a V2 load balancer.
@@ -352,6 +360,10 @@ type NetworkSpec struct {
352360
// +optional
353361
AdditionalControlPlaneIngressRules []IngressRule `json:"additionalControlPlaneIngressRules,omitempty"`
354362

363+
// AdditionalNodeIngressRules is an optional set of ingress rules to add to every node
364+
// +optional
365+
AdditionalNodeIngressRules []IngressRule `json:"additionalNodeIngressRules,omitempty"`
366+
355367
// NodePortIngressRuleCidrBlocks is an optional set of CIDR blocks to allow traffic to nodes' NodePort services.
356368
// If none are specified here, all IPs are allowed to connect.
357369
// +optional
@@ -655,11 +667,11 @@ func (s *SubnetSpec) IsEdgeWavelength() bool {
655667
}
656668

657669
// SetZoneInfo updates the subnets with zone information.
658-
func (s *SubnetSpec) SetZoneInfo(zones []*ec2.AvailabilityZone) error {
659-
zoneInfo := func(zoneName string) *ec2.AvailabilityZone {
670+
func (s *SubnetSpec) SetZoneInfo(zones []types.AvailabilityZone) error {
671+
zoneInfo := func(zoneName string) *types.AvailabilityZone {
660672
for _, zone := range zones {
661-
if aws.StringValue(zone.ZoneName) == zoneName {
662-
return zone
673+
if aws.ToString(zone.ZoneName) == zoneName {
674+
return &zone
663675
}
664676
}
665677
return nil
@@ -814,7 +826,7 @@ func (s Subnets) GetUniqueZones() []string {
814826
}
815827

816828
// SetZoneInfo updates the subnets with zone information.
817-
func (s Subnets) SetZoneInfo(zones []*ec2.AvailabilityZone) error {
829+
func (s Subnets) SetZoneInfo(zones []types.AvailabilityZone) error {
818830
for i := range s {
819831
if err := s[i].SetZoneInfo(zones); err != nil {
820832
return err

api/external/sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2/tags.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,12 @@ const (
195195
// of the bootstrap secret that was used to create the user data for the latest launch
196196
// template version.
197197
LaunchTemplateBootstrapDataSecret = NameAWSProviderPrefix + "bootstrap-data-secret"
198+
199+
// LaunchTemplateBootstrapDataHash is the tag we use to store the hash of the raw bootstrap data.
200+
// If bootstrap data is stored in S3, this hash relates to that data, not to the EC2 instance
201+
// user data which only references the S3 object. We store this tag on launch template versions
202+
// so that S3 bootstrap data objects can be deleted when they get outdated.
203+
LaunchTemplateBootstrapDataHash = NameAWSProviderPrefix + "bootstrap-data-hash"
198204
)
199205

200206
// ClusterTagKey generates the key for resources associated with a cluster.

api/external/sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2/types.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,8 +273,44 @@ type Instance struct {
273273
// If marketType is not specified and spotMarketOptions is provided, the marketType defaults to "Spot".
274274
// +optional
275275
MarketType MarketType `json:"marketType,omitempty"`
276+
277+
// HostAffinity specifies the dedicated host affinity setting for the instance.
278+
// When hostAffinity is set to host, an instance started onto a specific host always restarts on the same host if stopped.
279+
// When hostAffinity is set to default, and you stop and restart the instance, it can be restarted on any available host.
280+
// When HostAffinity is defined, HostID is required.
281+
// +optional
282+
// +kubebuilder:validation:Enum:=default;host
283+
HostAffinity *string `json:"hostAffinity,omitempty"`
284+
285+
// HostID specifies the dedicated host on which the instance should be started.
286+
// +optional
287+
HostID *string `json:"hostID,omitempty"`
288+
289+
// CapacityReservationPreference specifies the preference for use of Capacity Reservations by the instance. Valid values include:
290+
// "Open": The instance may make use of open Capacity Reservations that match its AZ and InstanceType
291+
// "None": The instance may not make use of any Capacity Reservations. This is to conserve open reservations for desired workloads
292+
// "CapacityReservationsOnly": The instance will only run if matched or targeted to a Capacity Reservation. Note that this is incompatible with a MarketType of `Spot`
293+
// +kubebuilder:validation:Enum="";None;CapacityReservationsOnly;Open
294+
// +optional
295+
CapacityReservationPreference CapacityReservationPreference `json:"capacityReservationPreference,omitempty"`
276296
}
277297

298+
// CapacityReservationPreference describes the preferred use of capacity reservations
299+
// of an instance
300+
// +kubebuilder:validation:Enum:="";None;CapacityReservationsOnly;Open
301+
type CapacityReservationPreference string
302+
303+
const (
304+
// CapacityReservationPreferenceNone the instance may not make use of any Capacity Reservations. This is to conserve open reservations for desired workloads
305+
CapacityReservationPreferenceNone CapacityReservationPreference = "None"
306+
307+
// CapacityReservationPreferenceOnly the instance will only run if matched or targeted to a Capacity Reservation. Note that this is incompatible with a MarketType of `Spot`
308+
CapacityReservationPreferenceOnly CapacityReservationPreference = "CapacityReservationsOnly"
309+
310+
// CapacityReservationPreferenceOpen the instance may make use of open Capacity Reservations that match its AZ and InstanceType.
311+
CapacityReservationPreferenceOpen CapacityReservationPreference = "Open"
312+
)
313+
278314
// MarketType describes the market type of an Instance
279315
// +kubebuilder:validation:Enum:=OnDemand;Spot;CapacityBlock
280316
type MarketType string

api/external/sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2/zz_generated.deepcopy.go

Lines changed: 117 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)