@@ -57,7 +57,7 @@ type ClusterManagerSpec struct {
57
57
Tags unikornv1core.TagList `json:"tags,omitempty"`
58
58
// ApplicationBundle defines the applications used to create the cluster manager.
59
59
// Change this to a new bundle to start an upgrade.
60
- ApplicationBundle * string `json:"applicationBundle"`
60
+ ApplicationBundle string `json:"applicationBundle"`
61
61
// ApplicationBundleAutoUpgrade enables automatic upgrade of application bundles.
62
62
// When no properties are set in the specification, the platform will automatically
63
63
// choose an upgrade time for your resource. This will be before a working day
@@ -75,22 +75,18 @@ type ClusterManagerStatus struct {
75
75
// File is a file that can be deployed to a cluster node on creation.
76
76
type File struct {
77
77
// Path is the absolute path to create the file in.
78
- Path * string `json:"path"`
78
+ Path string `json:"path"`
79
79
// Content is the file contents.
80
80
Content []byte `json:"content"`
81
81
}
82
82
83
83
// MachineGenericAutoscaling defines generic autoscaling configuration.
84
- // +kubebuilder:validation:XValidation:message="maximumReplicas must be greater than minimumReplicas",rule=(self.maximumReplicas > self.minimumReplicas)
84
+ // The maximum number of replicas are sourced from the pool's replica count.
85
85
type MachineGenericAutoscaling struct {
86
86
// MinimumReplicas defines the minimum number of replicas that
87
87
// this pool can be scaled down to.
88
88
// +kubebuilder:validation:Minimum=0
89
- MinimumReplicas * int `json:"minimumReplicas"`
90
- // MaximumReplicas defines the maximum numer of replicas that
91
- // this pool can be scaled up to.
92
- // +kubebuilder:validation:Minimum=1
93
- MaximumReplicas * int `json:"maximumReplicas"`
89
+ MinimumReplicas int `json:"minimumReplicas"`
94
90
}
95
91
96
92
// KubernetesWorkloadPoolSpec defines the requested machine pool
@@ -151,20 +147,20 @@ type KubernetesClusterSpec struct {
151
147
// Version is the Kubernetes version to install. For performance
152
148
// reasons this should match what is already pre-installed on the
153
149
// provided image.
154
- Version * unikornv1core.SemanticVersion `json:"version"`
150
+ Version unikornv1core.SemanticVersion `json:"version"`
155
151
// Network defines the Kubernetes networking.
156
- Network * KubernetesClusterNetworkSpec `json:"network"`
152
+ Network KubernetesClusterNetworkSpec `json:"network"`
157
153
// API defines Kubernetes API specific options.
158
154
API * KubernetesClusterAPISpec `json:"api,omitempty"`
159
155
// ControlPlane defines the cluster manager topology.
160
- ControlPlane * unikornv1core.MachineGeneric `json:"controlPlane"`
156
+ ControlPlane unikornv1core.MachineGeneric `json:"controlPlane"`
161
157
// WorkloadPools defines the workload cluster topology.
162
- WorkloadPools * KubernetesClusterWorkloadPoolsSpec `json:"workloadPools"`
158
+ WorkloadPools KubernetesClusterWorkloadPoolsSpec `json:"workloadPools"`
163
159
// Features defines add-on features that can be enabled for the cluster.
164
160
Features * KubernetesClusterFeaturesSpec `json:"features,omitempty"`
165
161
// ApplicationBundle defines the applications used to create the cluster.
166
162
// Change this to a new bundle to start an upgrade.
167
- ApplicationBundle * string `json:"applicationBundle"`
163
+ ApplicationBundle string `json:"applicationBundle"`
168
164
// ApplicationBundleAutoUpgrade enables automatic upgrade of application bundles.
169
165
// When no properties are set in the specification, the platform will automatically
170
166
// choose an upgrade time for your resource. This will be before a working day
@@ -185,19 +181,19 @@ type KubernetesClusterAPISpec struct {
185
181
type KubernetesClusterNetworkSpec struct {
186
182
unikornv1core.NetworkGeneric `json:",inline"`
187
183
// PodNetwork is the IPv4 prefix for the pod network.
188
- PodNetwork * unikornv1core.IPv4Prefix `json:"podNetwork"`
184
+ PodNetwork unikornv1core.IPv4Prefix `json:"podNetwork"`
189
185
// ServiceNetwork is the IPv4 prefix for the service network.
190
- ServiceNetwork * unikornv1core.IPv4Prefix `json:"serviceNetwork"`
186
+ ServiceNetwork unikornv1core.IPv4Prefix `json:"serviceNetwork"`
191
187
}
192
188
193
189
type KubernetesClusterFeaturesSpec struct {
194
190
// Autoscaling enables the provision of a cluster autoscaler.
195
191
// This is only installed if a workload pool has autoscaling enabled.
196
- Autoscaling * bool `json:"autoscaling,omitempty"`
192
+ Autoscaling bool `json:"autoscaling,omitempty"`
197
193
// GPUOperator enables the provision of a GPU operator.
198
194
// This is only installed if a workload pool has a flavor that defines
199
195
// a valid GPU specification and vendor.
200
- GPUOperator * bool `json:"gpuOperator,omitempty"`
196
+ GPUOperator bool `json:"gpuOperator,omitempty"`
201
197
}
202
198
203
199
type KubernetesClusterWorkloadPoolsPoolSpec struct {
@@ -257,7 +253,7 @@ type VirtualKubernetesClusterSpec struct {
257
253
WorkloadPools []VirtualKubernetesClusterWorkloadPoolSpec `json:"workloadPools"`
258
254
// ApplicationBundle defines the applications used to create the cluster.
259
255
// Change this to a new bundle to start an upgrade.
260
- ApplicationBundle * string `json:"applicationBundle"`
256
+ ApplicationBundle string `json:"applicationBundle"`
261
257
// ApplicationBundleAutoUpgrade enables automatic upgrade of application bundles.
262
258
// When no properties are set in the specification, the platform will automatically
263
259
// choose an upgrade time for your resource. This will be before a working day
@@ -270,11 +266,10 @@ type VirtualKubernetesClusterWorkloadPoolSpec struct {
270
266
// Name is the name of the pool.
271
267
Name string `json:"name"`
272
268
// Flavor is the regions service flavor to deploy with.
273
- FlavorID * string `json:"flavorId"`
269
+ FlavorID string `json:"flavorId"`
274
270
// Replicas is the initial pool size to deploy.
275
271
// +kubebuilder:validation:Minimum=0
276
- // +kubebuilder:default=3
277
- Replicas * int `json:"replicas,omitempty"`
272
+ Replicas int `json:"replicas,omitempty"`
278
273
}
279
274
280
275
// VirtualKubernetesClusterStatus defines the observed state of the Kubernetes cluster.
@@ -365,7 +360,7 @@ type ApplicationBundleSpec struct {
365
360
Version unikornv1core.SemanticVersion `json:"version"`
366
361
// Preview indicates that this bundle is a preview and should not be
367
362
// used by default.
368
- Preview * bool `json:"preview,omitempty"`
363
+ Preview bool `json:"preview,omitempty"`
369
364
// EndOfLife marks when this bundle should not be advertised any more
370
365
// by Unikorn server. It also provides a hint that users should upgrade
371
366
// ahead of the deadline, or that a forced upgrade should be triggered.
@@ -377,9 +372,9 @@ type ApplicationBundleSpec struct {
377
372
type ApplicationNamedReference struct {
378
373
// Name is the name of the application. This must match what is encoded into
379
374
// Unikorn's application management engine.
380
- Name * string `json:"name"`
375
+ Name string `json:"name"`
381
376
// Reference is a reference to the application definition.
382
- Reference * unikornv1core.ApplicationReference `json:"reference"`
377
+ Reference unikornv1core.ApplicationReference `json:"reference"`
383
378
}
384
379
385
380
type ApplicationBundleStatus struct {}
0 commit comments