Skip to content

Commit b8fa263

Browse files
committed
Remove ImmediateMode and make Delayed the only option
Signed-off-by: Kevin Klues <[email protected]>
1 parent f43b6e0 commit b8fa263

File tree

14 files changed

+182
-1165
lines changed

14 files changed

+182
-1165
lines changed

api/nvidia.com/resource/v1beta1/computedomain.go

Lines changed: 3 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,10 @@
1717
package v1beta1
1818

1919
import (
20-
corev1 "k8s.io/api/core/v1"
2120
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2221
)
2322

2423
const (
25-
ComputeDomainModeImmediate = "Immediate"
26-
ComputeDomainModeDelayed = "Delayed"
27-
2824
ComputeDomainStatusReady = "Ready"
2925
ComputeDomainStatusNotReady = "NotReady"
3026
)
@@ -55,55 +51,18 @@ type ComputeDomainList struct {
5551
}
5652

5753
// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="A computeDomain.spec is immutable"
58-
// +kubebuilder:validation:XValidation:rule="self.mode == 'Immediate' || (self.mode == 'Delayed' && size(self.resourceClaimTemplates) == 1)",message="When 'mode' is 'Delayed', 'resourceClaimTemplates' must have exactly one entry."
59-
// +kubebuilder:validation:XValidation:rule="self.mode == 'Immediate' || (self.mode == 'Delayed' && !has(self.nodeSelector))",message="When 'mode' is 'Delayed', 'NodeSelector' must not be set."
60-
// +kubebuilder:validation:XValidation:rule="self.mode == 'Immediate' || (self.mode == 'Delayed' && !has(self.topologyAlignment))",message="When 'mode' is 'Delayed', 'TopologyAlignment' must not be set."
61-
// +kubebuilder:validation:XValidation:rule="self.mode == 'Immediate' || (self.mode == 'Delayed' && (!has(self.nodeAffinity) || !has(self.nodeAffinity.preferred)))",message="When mode is 'Delayed', 'nodeAffinity.preferred' must not be set; only 'nodeAffinity.required' is allowed."
62-
// +kubebuilder:validation:XValidation:rule="self.mode == 'Immediate' || (self.mode == 'Delayed' && !has(self.topologyAntiAlignment))",message="When 'mode' is 'Delayed', 'TopologyAntiAlignment' must not be set."
6354

6455
// ComputeDomainSpec provides the spec for a ComputeDomain.
6556
type ComputeDomainSpec struct {
66-
// +kubebuilder:validation:Enum=Immediate;Delayed
67-
// +kubebuilder:default=Immediate
68-
Mode string `json:"mode"`
69-
NumNodes int `json:"numNodes"`
70-
ResourceClaimTemplates []ComputeDomainResourceClaimTemplate `json:"resourceClaimTemplates"`
71-
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
72-
NodeAffinity *ComputeDomainNodeAffinity `json:"nodeAffinity,omitempty"`
73-
TopologyAlignment *ComputeDomainTopologyAlignment `json:"topologyAlignment,omitempty"`
74-
TopologyAntiAlignment *ComputeDomainTopologyAlignment `json:"topologyAntiAlignment,omitempty"`
57+
NumNodes int `json:"numNodes"`
58+
ResourceClaimTemplate ComputeDomainResourceClaimTemplate `json:"resourceClaimTemplate"`
7559
}
7660

61+
// ComputeDomainResourceClaimTemplate provides the details of the ResourceClaimTemplate to generate.
7762
type ComputeDomainResourceClaimTemplate struct {
7863
Name string `json:"name"`
7964
}
8065

81-
// +kubebuilder:validation:XValidation:rule="has(self.preferred) || has(self.required)",message="At least one of 'preferred' or 'required' must be set."
82-
83-
type ComputeDomainNodeAffinity struct {
84-
// +listType=atomic
85-
Preferred []corev1.PreferredSchedulingTerm `json:"preferred,omitempty"`
86-
Required *corev1.NodeSelector `json:"required,omitempty"`
87-
}
88-
89-
// +kubebuilder:validation:XValidation:rule="has(self.preferred) || has(self.required)",message="At least one of 'preferred' or 'required' must be set."
90-
91-
type ComputeDomainTopologyAlignment struct {
92-
// +listType=atomic
93-
Preferred []ComputeDomainWeightedTopologyKey `json:"preferred,omitempty"`
94-
Required *ComputeDomainTopologyKeys `json:"required,omitempty"`
95-
}
96-
97-
type ComputeDomainTopologyKeys struct {
98-
// +listType=atomic
99-
TopologyKeys []string `json:"topologyKeys"`
100-
}
101-
102-
type ComputeDomainWeightedTopologyKey struct {
103-
Weight int32 `json:"weight"`
104-
TopologyKey string `json:"topologyKey"`
105-
}
106-
10766
// ComputeDomainStatus provides the status for a ComputeDomain.
10867
type ComputeDomainStatus struct {
10968
// +kubebuilder:validation:Enum=Ready;NotReady

api/nvidia.com/resource/v1beta1/computedomainconfig.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
// ComputeDomainChannelConfig holds the set of parameters for configuring an ComputeDomainChannel.
2828
type ComputeDomainChannelConfig struct {
2929
metav1.TypeMeta `json:",inline"`
30-
WaitForReady bool `json:"waitForReady"`
3130
DomainID string `json:"domainID"`
3231
}
3332

api/nvidia.com/resource/v1beta1/zz_generated.deepcopy.go

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

0 commit comments

Comments
 (0)