Skip to content

Commit 79eae37

Browse files
committed
Iter
1 parent bb63efa commit 79eae37

File tree

3 files changed

+46
-18
lines changed

3 files changed

+46
-18
lines changed

docs/api/ArangoMLExtension.V1Alpha1.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ Image define image details
7676

7777
### .spec.deployment.prediction.port
7878

79-
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.35/pkg/apis/ml/v1alpha1/extension_spec_deployment_component.go#L31)</sup>
79+
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.35/pkg/apis/ml/v1alpha1/extension_spec_deployment_component.go#L30)</sup>
8080

8181
Port defines on which port the container will be listening for connections
8282

@@ -132,7 +132,7 @@ Image define image details
132132

133133
### .spec.deployment.project.port
134134

135-
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.35/pkg/apis/ml/v1alpha1/extension_spec_deployment_component.go#L31)</sup>
135+
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.35/pkg/apis/ml/v1alpha1/extension_spec_deployment_component.go#L30)</sup>
136136

137137
Port defines on which port the container will be listening for connections
138138

@@ -180,7 +180,7 @@ Links:
180180

181181
### .spec.deployment.replicas
182182

183-
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.35/pkg/apis/ml/v1alpha1/extension_spec_deployment.go#L33)</sup>
183+
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.35/pkg/apis/ml/v1alpha1/extension_spec_deployment.go#L56)</sup>
184184

185185
Replicas defines the number of replicas running specified components. No replicas created if no components are defined.
186186

@@ -250,7 +250,7 @@ Image define image details
250250

251251
### .spec.deployment.training.port
252252

253-
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.35/pkg/apis/ml/v1alpha1/extension_spec_deployment_component.go#L31)</sup>
253+
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.35/pkg/apis/ml/v1alpha1/extension_spec_deployment_component.go#L30)</sup>
254254

255255
Port defines on which port the container will be listening for connections
256256

pkg/apis/ml/v1alpha1/extension_spec_deployment.go

Lines changed: 40 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,29 @@ import (
2727
"github.com/arangodb/kube-arangodb/pkg/util/errors"
2828
)
2929

30+
const (
31+
ArangoMLExtensionSpecDeploymentComponentPrediction = "prediction"
32+
ArangoMLExtensionSpecDeploymentComponentTraining = "training"
33+
ArangoMLExtensionSpecDeploymentComponentProject = "project"
34+
35+
ArangoMLExtensionSpecDeploymentComponentPredictionDefaultPort = 16000
36+
ArangoMLExtensionSpecDeploymentComponentTrainingDefaultPort = 16001
37+
ArangoMLExtensionSpecDeploymentComponentProjectDefaultPort = 16002
38+
)
39+
40+
func GetArangoMLExtensionSpecDeploymentComponentDefaultPort(component string) int32 {
41+
switch component {
42+
case ArangoMLExtensionSpecDeploymentComponentPrediction:
43+
return ArangoMLExtensionSpecDeploymentComponentPredictionDefaultPort
44+
case ArangoMLExtensionSpecDeploymentComponentTraining:
45+
return ArangoMLExtensionSpecDeploymentComponentTrainingDefaultPort
46+
case ArangoMLExtensionSpecDeploymentComponentProject:
47+
return ArangoMLExtensionSpecDeploymentComponentProjectDefaultPort
48+
}
49+
50+
return 0
51+
}
52+
3053
type ArangoMLExtensionSpecDeployment struct {
3154
// Replicas defines the number of replicas running specified components. No replicas created if no components are defined.
3255
// +doc/default: 1
@@ -87,9 +110,9 @@ func (s *ArangoMLExtensionSpecDeployment) GetComponents() map[string]*ArangoMLEx
87110
return nil
88111
}
89112
return map[string]*ArangoMLExtensionSpecDeploymentComponent{
90-
"prediction": s.GetPrediction(),
91-
"training": s.GetTraining(),
92-
"project": s.GetProject(),
113+
ArangoMLExtensionSpecDeploymentComponentPrediction: s.GetPrediction(),
114+
ArangoMLExtensionSpecDeploymentComponentTraining: s.GetTraining(),
115+
ArangoMLExtensionSpecDeploymentComponentProject: s.GetProject(),
93116
}
94117
}
95118

@@ -130,12 +153,22 @@ func (s *ArangoMLExtensionSpecDeployment) Validate() error {
130153
var usedPorts util.List[int32]
131154
for prefix, component := range s.GetComponents() {
132155
err := component.Validate()
133-
errs = append(errs, shared.PrefixResourceErrors(prefix, err))
156+
if err != nil {
157+
errs = append(errs, shared.PrefixResourceErrors(prefix, err))
158+
continue
159+
}
134160
if err == nil {
135-
if usedPorts.IndexOf(component.GetPort()) >= 0 {
136-
errs = append(errs, shared.PrefixResourceErrors(prefix, errors.Newf("port %d already specified for other component", component.GetPort())))
161+
port := component.GetPort(GetArangoMLExtensionSpecDeploymentComponentDefaultPort(prefix))
162+
163+
if port == 0 {
164+
errs = append(errs, shared.PrefixResourceErrors(prefix, errors.Newf("port not defined")))
165+
continue
166+
}
167+
168+
if usedPorts.IndexOf(port) >= 0 {
169+
errs = append(errs, shared.PrefixResourceErrors(prefix, errors.Newf("port %d already specified for other component", port)))
137170
} else {
138-
usedPorts.Append(component.GetPort())
171+
usedPorts.Append(port)
139172
}
140173
}
141174
}

pkg/apis/ml/v1alpha1/extension_spec_deployment_component.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ package v1alpha1
2323
import (
2424
"github.com/arangodb/kube-arangodb/pkg/apis/shared"
2525
sharedApi "github.com/arangodb/kube-arangodb/pkg/apis/shared/v1"
26-
"github.com/arangodb/kube-arangodb/pkg/util/errors"
2726
)
2827

2928
type ArangoMLExtensionSpecDeploymentComponent struct {
@@ -34,9 +33,9 @@ type ArangoMLExtensionSpecDeploymentComponent struct {
3433
*sharedApi.ContainerTemplate `json:",inline"`
3534
}
3635

37-
func (s *ArangoMLExtensionSpecDeploymentComponent) GetPort() int32 {
36+
func (s *ArangoMLExtensionSpecDeploymentComponent) GetPort(def int32) int32 {
3837
if s == nil || s.Port == nil {
39-
return 0
38+
return def
4039
}
4140
return *s.Port
4241
}
@@ -56,10 +55,6 @@ func (s *ArangoMLExtensionSpecDeploymentComponent) Validate() error {
5655

5756
var err []error
5857

59-
if s.GetPort() < 1 {
60-
err = append(err, shared.PrefixResourceErrors("port", errors.Newf("must be positive")))
61-
}
62-
6358
err = append(err,
6459
s.GetContainerTemplate().Validate(),
6560
)

0 commit comments

Comments
 (0)