Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: Merge changes from v2 branch for 2.8.5 release #5988

Merged
merged 8 commits into from
Oct 24, 2024
5,479 changes: 5,295 additions & 184 deletions CHANGELOG.md

Large diffs are not rendered by default.

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
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
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
Loading