Skip to content

Commit 8f63b1a

Browse files
committed
new port validations for nemo microservice CRs
Signed-off-by: Varun Ramachandra Sekar <vsekar@nvidia.com>
1 parent d89fca0 commit 8f63b1a

20 files changed

Lines changed: 100 additions & 15 deletions

api/apps/v1alpha1/nemo_customizer_types.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,11 @@ type NemoCustomizerSpec struct {
7777
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
7878
PodAffinity *corev1.PodAffinity `json:"podAffinity,omitempty"`
7979
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
80-
Expose ExposeV1 `json:"expose,omitempty"`
81-
Scale Autoscaling `json:"scale,omitempty"`
82-
Metrics Metrics `json:"metrics,omitempty"`
80+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.grpcPort))", message="unsupported field: spec.expose.service.grpcPort"
81+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.metricsPort))", message="unsupported field: spec.expose.service.metricsPort"
82+
Expose ExposeV1 `json:"expose,omitempty"`
83+
Scale Autoscaling `json:"scale,omitempty"`
84+
Metrics Metrics `json:"metrics,omitempty"`
8385

8486
// +kubebuilder:validation:Minimum=1
8587
// +kubebuilder:default:=1

api/apps/v1alpha1/nemo_datastore_types.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,11 @@ type NemoDatastoreSpec struct {
6868
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
6969
PodAffinity *corev1.PodAffinity `json:"podAffinity,omitempty"`
7070
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
71-
Expose ExposeV1 `json:"expose,omitempty"`
72-
Scale Autoscaling `json:"scale,omitempty"`
73-
Metrics Metrics `json:"metrics,omitempty"`
71+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.grpcPort))", message="unsupported field: spec.expose.service.grpcPort"
72+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.metricsPort))", message="unsupported field: spec.expose.service.metricsPort"
73+
Expose ExposeV1 `json:"expose,omitempty"`
74+
Scale Autoscaling `json:"scale,omitempty"`
75+
Metrics Metrics `json:"metrics,omitempty"`
7476
// +kubebuilder:validation:Minimum=1
7577
// +kubebuilder:default:=1
7678
Replicas int `json:"replicas,omitempty"`

api/apps/v1alpha1/nemo_entitystore_types.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,11 @@ type NemoEntitystoreSpec struct {
6969
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
7070
PodAffinity *corev1.PodAffinity `json:"podAffinity,omitempty"`
7171
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
72-
Expose ExposeV1 `json:"expose,omitempty"`
73-
Scale Autoscaling `json:"scale,omitempty"`
74-
Metrics Metrics `json:"metrics,omitempty"`
72+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.grpcPort))", message="unsupported field: spec.expose.service.grpcPort"
73+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.metricsPort))", message="unsupported field: spec.expose.service.metricsPort"
74+
Expose ExposeV1 `json:"expose,omitempty"`
75+
Scale Autoscaling `json:"scale,omitempty"`
76+
Metrics Metrics `json:"metrics,omitempty"`
7577
// +kubebuilder:validation:Minimum=1
7678
// +kubebuilder:default:=1
7779
Replicas int `json:"replicas,omitempty"`

api/apps/v1alpha1/nemo_evaluator_types.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,11 @@ type NemoEvaluatorSpec struct {
6868
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
6969
PodAffinity *corev1.PodAffinity `json:"podAffinity,omitempty"`
7070
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
71-
Expose ExposeV1 `json:"expose,omitempty"`
72-
Scale Autoscaling `json:"scale,omitempty"`
73-
Metrics Metrics `json:"metrics,omitempty"`
71+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.grpcPort))", message="unsupported field: spec.expose.service.grpcPort"
72+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.metricsPort))", message="unsupported field: spec.expose.service.metricsPort"
73+
Expose ExposeV1 `json:"expose,omitempty"`
74+
Scale Autoscaling `json:"scale,omitempty"`
75+
Metrics Metrics `json:"metrics,omitempty"`
7476
// +kubebuilder:validation:Minimum=1
7577
// +kubebuilder:default:=1
7678
Replicas int `json:"replicas,omitempty"`

api/apps/v1alpha1/nemo_guardrails_types.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,11 @@ type NemoGuardrailSpec struct {
7070
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
7171
PodAffinity *corev1.PodAffinity `json:"podAffinity,omitempty"`
7272
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
73-
Expose ExposeV1 `json:"expose,omitempty"`
74-
Scale Autoscaling `json:"scale,omitempty"`
75-
Metrics Metrics `json:"metrics,omitempty"`
73+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.grpcPort))", message="unsupported field: spec.expose.service.grpcPort"
74+
// +kubebuilder:validation:XValidation:rule="!(has(self.service.metricsPort))", message="unsupported field: spec.expose.service.metricsPort"
75+
Expose ExposeV1 `json:"expose,omitempty"`
76+
Scale Autoscaling `json:"scale,omitempty"`
77+
Metrics Metrics `json:"metrics,omitempty"`
7678
// +kubebuilder:validation:Minimum=1
7779
// +kubebuilder:default:=1
7880
Replicas int `json:"replicas,omitempty"`

bundle/manifests/apps.nvidia.com_nemocustomizers.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,11 @@ spec:
335335
type: string
336336
type: object
337337
type: object
338+
x-kubernetes-validations:
339+
- message: 'unsupported field: spec.expose.service.grpcPort'
340+
rule: '!(has(self.service.grpcPort))'
341+
- message: 'unsupported field: spec.expose.service.metricsPort'
342+
rule: '!(has(self.service.metricsPort))'
338343
groupID:
339344
format: int64
340345
type: integer

bundle/manifests/apps.nvidia.com_nemodatastores.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,11 @@ spec:
315315
type: string
316316
type: object
317317
type: object
318+
x-kubernetes-validations:
319+
- message: 'unsupported field: spec.expose.service.grpcPort'
320+
rule: '!(has(self.service.grpcPort))'
321+
- message: 'unsupported field: spec.expose.service.metricsPort'
322+
rule: '!(has(self.service.metricsPort))'
318323
groupID:
319324
format: int64
320325
type: integer

bundle/manifests/apps.nvidia.com_nemoentitystores.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,11 @@ spec:
327327
type: string
328328
type: object
329329
type: object
330+
x-kubernetes-validations:
331+
- message: 'unsupported field: spec.expose.service.grpcPort'
332+
rule: '!(has(self.service.grpcPort))'
333+
- message: 'unsupported field: spec.expose.service.metricsPort'
334+
rule: '!(has(self.service.metricsPort))'
330335
groupID:
331336
format: int64
332337
type: integer

bundle/manifests/apps.nvidia.com_nemoevaluators.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,11 @@ spec:
403403
type: string
404404
type: object
405405
type: object
406+
x-kubernetes-validations:
407+
- message: 'unsupported field: spec.expose.service.grpcPort'
408+
rule: '!(has(self.service.grpcPort))'
409+
- message: 'unsupported field: spec.expose.service.metricsPort'
410+
rule: '!(has(self.service.metricsPort))'
406411
groupID:
407412
format: int64
408413
type: integer

bundle/manifests/apps.nvidia.com_nemoguardrails.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,11 @@ spec:
302302
type: string
303303
type: object
304304
type: object
305+
x-kubernetes-validations:
306+
- message: 'unsupported field: spec.expose.service.grpcPort'
307+
rule: '!(has(self.service.grpcPort))'
308+
- message: 'unsupported field: spec.expose.service.metricsPort'
309+
rule: '!(has(self.service.metricsPort))'
305310
groupID:
306311
format: int64
307312
type: integer

0 commit comments

Comments
 (0)