Skip to content

Commit

Permalink
Merge pull request #5988 from SeldonIO/v2
Browse files Browse the repository at this point in the history
ci: Merge changes from v2 branch for 2.8.5 release
  • Loading branch information
sakoush authored Oct 24, 2024
2 parents bfa5d64 + f446185 commit 233e63d
Show file tree
Hide file tree
Showing 51 changed files with 1,059 additions and 111 deletions.
21 changes: 19 additions & 2 deletions k8s/helm-charts/seldon-core-v2-crds/templates/seldon-v2-crds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -343,8 +343,6 @@ spec:
type: integer
selector:
type: string
required:
- selector
type: object
type: object
served: true
Expand Down Expand Up @@ -32463,6 +32461,25 @@ spec:
serverConfig:
description: Server definition
type: string
statefulSetPersistentVolumeClaimRetentionPolicy:
description: StatefulSetPersistentVolumeClaimRetentionPolicy policy
for stateful set pvc
properties:
whenDeleted:
description: WhenDeleted specifies what happens to PVCs created
from StatefulSet VolumeClaimTemplates when the StatefulSet is
deleted. The default policy of `Retain` causes PVCs to not be
affected by StatefulSet deletion. The `Delete` policy causes
those PVCs to be deleted.
type: string
whenScaled:
description: WhenScaled specifies what happens to PVCs created
from StatefulSet VolumeClaimTemplates when the StatefulSet is
scaled down. The default policy of `Retain` causes PVCs to not
be affected by a scaledown. The `Delete` policy causes the associated
PVCs for any excess pods above the replica count to be deleted.
type: string
type: object
required:
- serverConfig
type: object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1369,12 +1369,12 @@ spec:
- containerPort: 9000
name: http
- containerPort: 9003
name: envoy-admin
name: envoy-stats
readinessProbe:
failureThreshold: 3
httpGet:
path: /ready
port: envoy-admin
port: envoy-stats
initialDelaySeconds: 10
periodSeconds: 5
resources:
Expand Down
4 changes: 2 additions & 2 deletions k8s/yaml/components.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1000,12 +1000,12 @@ spec:
- containerPort: 9000
name: http
- containerPort: 9003
name: envoy-admin
name: envoy-stats
readinessProbe:
failureThreshold: 3
httpGet:
path: /ready
port: envoy-admin
port: envoy-stats
initialDelaySeconds: 10
periodSeconds: 5
resources:
Expand Down
21 changes: 19 additions & 2 deletions k8s/yaml/crds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -346,8 +346,6 @@ spec:
type: integer
selector:
type: string
required:
- selector
type: object
type: object
served: true
Expand Down Expand Up @@ -32471,6 +32469,25 @@ spec:
serverConfig:
description: Server definition
type: string
statefulSetPersistentVolumeClaimRetentionPolicy:
description: StatefulSetPersistentVolumeClaimRetentionPolicy policy
for stateful set pvc
properties:
whenDeleted:
description: WhenDeleted specifies what happens to PVCs created
from StatefulSet VolumeClaimTemplates when the StatefulSet is
deleted. The default policy of `Retain` causes PVCs to not be
affected by StatefulSet deletion. The `Delete` policy causes
those PVCs to be deleted.
type: string
whenScaled:
description: WhenScaled specifies what happens to PVCs created
from StatefulSet VolumeClaimTemplates when the StatefulSet is
scaled down. The default policy of `Retain` causes PVCs to not
be affected by a scaledown. The `Delete` policy causes the associated
PVCs for any excess pods above the replica count to be deleted.
type: string
type: object
required:
- serverConfig
type: object
Expand Down
2 changes: 1 addition & 1 deletion operator/apis/mlops/v1alpha1/model_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ type InferenceArtifactSpec struct {
type ModelStatus struct {
// Total number of replicas targeted by this model
Replicas int32 `json:"replicas,omitempty"`
Selector string `json:"selector"`
Selector string `json:"selector,omitempty"`
duckv1.Status `json:",inline"`
}

Expand Down
3 changes: 3 additions & 0 deletions operator/apis/mlops/v1alpha1/server_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ the Change License after the Change Date as each is defined in accordance with t
package v1alpha1

import (
appsv1 "k8s.io/api/apps/v1"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"knative.dev/pkg/apis"
Expand Down Expand Up @@ -37,6 +38,8 @@ type ServerSpec struct {
// PodSpec overrides
// Slices such as containers would be appended not overridden
PodSpec *PodSpec `json:"podSpec,omitempty"`
// StatefulSetPersistentVolumeClaimRetentionPolicy policy for stateful set pvc
StatefulSetPersistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"statefulSetPersistentVolumeClaimRetentionPolicy,omitempty"`
// Scaling spec
ScalingSpec `json:",inline"`
// +Optional
Expand Down
6 changes: 6 additions & 0 deletions operator/apis/mlops/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions operator/config/crd/bases/mlops.seldon.io_models.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,6 @@ spec:
type: integer
selector:
type: string
required:
- selector
type: object
type: object
served: true
Expand Down
19 changes: 19 additions & 0 deletions operator/config/crd/bases/mlops.seldon.io_servers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8850,6 +8850,25 @@ spec:
serverConfig:
description: Server definition
type: string
statefulSetPersistentVolumeClaimRetentionPolicy:
description: StatefulSetPersistentVolumeClaimRetentionPolicy policy
for stateful set pvc
properties:
whenDeleted:
description: WhenDeleted specifies what happens to PVCs created
from StatefulSet VolumeClaimTemplates when the StatefulSet is
deleted. The default policy of `Retain` causes PVCs to not be
affected by StatefulSet deletion. The `Delete` policy causes
those PVCs to be deleted.
type: string
whenScaled:
description: WhenScaled specifies what happens to PVCs created
from StatefulSet VolumeClaimTemplates when the StatefulSet is
scaled down. The default policy of `Retain` causes PVCs to not
be affected by a scaledown. The `Delete` policy causes the associated
PVCs for any excess pods above the replica count to be deleted.
type: string
type: object
required:
- serverConfig
type: object
Expand Down
4 changes: 2 additions & 2 deletions operator/config/seldonconfigs/default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ spec:
- containerPort: 9000
name: http
- containerPort: 9003
name: envoy-admin
name: envoy-stats
resources:
limits:
memory: 128Mi
Expand All @@ -68,7 +68,7 @@ spec:
readinessProbe:
httpGet:
path: /ready
port: envoy-admin
port: envoy-stats
initialDelaySeconds: 10
periodSeconds: 5
failureThreshold: 3
Expand Down
4 changes: 2 additions & 2 deletions operator/controllers/reconcilers/seldon/service_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,8 @@ func getSeldonMeshService(meta metav1.ObjectMeta, serviceConfig mlopsv1alpha1.Se
},
{
Port: 9003,
TargetPort: intstr.FromString("envoy-admin"),
Name: "admin",
TargetPort: intstr.FromString("envoy-stats"),
Name: "stats",
Protocol: v1.ProtocolTCP,
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ func (s *ServerReconciler) createStatefulSetReconciler(server *mlopsv1alpha1.Ser
podSpec,
serverConfig.Spec.VolumeClaimTemplates,
&server.Spec.ScalingSpec,
server.Spec.StatefulSetPersistentVolumeClaimRetentionPolicy,
serverConfig.ObjectMeta,
annotator)
return statefulSetReconciler, nil
Expand Down
34 changes: 34 additions & 0 deletions operator/controllers/reconcilers/server/server_reconciler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,40 @@ func TestServerReconcile(t *testing.T) {
expectedSvcNames: []string{"myserver-0"},
expectedStatefulSetName: "myserver",
},
{
name: "Test StatefulSetPersistentVolumeClaimRetentionPolicy",
serverConfig: &mlopsv1alpha1.ServerConfig{
ObjectMeta: metav1.ObjectMeta{
Name: mlserverConfigName,
Namespace: constants.SeldonNamespace,
},
Spec: mlopsv1alpha1.ServerConfigSpec{
PodSpec: v1.PodSpec{
Containers: []v1.Container{
{
Name: "mlserver",
Image: "seldonio/mlserver:0.5",
},
},
},
},
},
server: &mlopsv1alpha1.Server{
ObjectMeta: metav1.ObjectMeta{
Name: "myserver",
Namespace: constants.SeldonNamespace,
},
Spec: mlopsv1alpha1.ServerSpec{
ServerConfig: mlserverConfigName,
StatefulSetPersistentVolumeClaimRetentionPolicy: &appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy{
WhenDeleted: appsv1.RetainPersistentVolumeClaimRetentionPolicyType,
WhenScaled: appsv1.RetainPersistentVolumeClaimRetentionPolicyType,
},
},
},
expectedSvcNames: []string{"myserver-0"},
expectedStatefulSetName: "myserver",
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,15 @@ func NewServerStatefulSetReconciler(
podSpec *v1.PodSpec,
volumeClaimTemplates []mlopsv1alpha1.PersistentVolumeClaim,
scaling *mlopsv1alpha1.ScalingSpec,
volumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy,
serverConfigMeta metav1.ObjectMeta,
annotator *patch.Annotator,
) *ServerStatefulSetReconciler {
labels := utils.MergeMaps(meta.Labels, serverConfigMeta.Labels)
annotations := utils.MergeMaps(meta.Annotations, serverConfigMeta.Annotations)
return &ServerStatefulSetReconciler{
ReconcilerConfig: common,
StatefulSet: toStatefulSet(meta, podSpec, volumeClaimTemplates, scaling, labels, annotations),
StatefulSet: toStatefulSet(meta, podSpec, volumeClaimTemplates, scaling, volumeClaimRetentionPolicy, labels, annotations),
Annotator: annotator,
}
}
Expand All @@ -61,6 +62,7 @@ func toStatefulSet(meta metav1.ObjectMeta,
podSpec *v1.PodSpec,
volumeClaimTemplates []mlopsv1alpha1.PersistentVolumeClaim,
scaling *mlopsv1alpha1.ScalingSpec,
volumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy,
labels map[string]string,
annotations map[string]string) *appsv1.StatefulSet {
labels[constants.KubernetesNameLabelKey] = constants.ServerLabelValue
Expand Down Expand Up @@ -88,7 +90,8 @@ func toStatefulSet(meta metav1.ObjectMeta,
},
Spec: *podSpec,
},
PodManagementPolicy: appsv1.ParallelPodManagement,
PodManagementPolicy: appsv1.ParallelPodManagement,
PersistentVolumeClaimRetentionPolicy: volumeClaimRetentionPolicy,
},
}

Expand Down
Loading

0 comments on commit 233e63d

Please sign in to comment.