@@ -23,13 +23,43 @@ import (
2323	clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" 
2424)
2525
26+ // Architecture represents the CPU architecture of the node. 
27+ // Its underlying type is a string and its value can be any of amd64, arm64. 
28+ // +kubebuilder:validation:Enum=amd64;arm64 
29+ // +enum 
30+ type  Architecture  string 
31+ 
32+ // Architecture constants. 
33+ const  (
34+ 	ArchitectureAmd64  Architecture  =  "amd64" 
35+ 	ArchitectureArm64  Architecture  =  "arm64" 
36+ )
37+ 
38+ // NodeInfo contains information about the node's architecture and operating system. 
39+ type  NodeInfo  struct  {
40+ 	// Architecture is the CPU architecture of the node. 
41+ 	// Its underlying type is a string and its value can be any of amd64, arm64. 
42+ 	// +optional 
43+ 	Architecture  Architecture  `json:"architecture,omitempty"` 
44+ 	// OperatingSystem is a string representing the operating system of the node. 
45+ 	// This may be a string like 'linux' or 'windows'. 
46+ 	// +optional 
47+ 	OperatingSystem  string  `json:"operatingSystem,omitempty"` 
48+ }
49+ 
2650// AWSMachineTemplateStatus defines a status for an AWSMachineTemplate. 
2751type  AWSMachineTemplateStatus  struct  {
2852	// Capacity defines the resource capacity for this machine. 
2953	// This value is used for autoscaling from zero operations as defined in: 
3054	// https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20210310-opt-in-autoscaling-from-zero.md 
3155	// +optional 
3256	Capacity  corev1.ResourceList  `json:"capacity,omitempty"` 
57+ 
58+ 	// NodeInfo contains information about the node's architecture and operating system. 
59+ 	// This value is used for autoscaling from zero operations as defined in: 
60+ 	// https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20210310-opt-in-autoscaling-from-zero.md 
61+ 	// +optional 
62+ 	NodeInfo  * NodeInfo  `json:"nodeInfo,omitempty"` 
3363}
3464
3565// AWSMachineTemplateSpec defines the desired state of AWSMachineTemplate. 
0 commit comments