Skip to content

Commit 3f1eba0

Browse files
committed
feat: add volumeForceMount option to SuggestionConfig
1 parent 1e7e3c1 commit 3f1eba0

File tree

3 files changed

+10
-11
lines changed

3 files changed

+10
-11
lines changed

manifests/v1beta1/components/controller/katib-config.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ data:
7070
"storage": "5Gi"
7171
}
7272
}
73-
}
73+
},
74+
"volumeForceMount": true
7475
}
7576
}
7677
early-stopping: |-

pkg/controller.v1beta1/suggestion/suggestion_controller.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ import (
4242
"github.com/kubeflow/katib/pkg/controller.v1beta1/suggestion/composer"
4343
"github.com/kubeflow/katib/pkg/controller.v1beta1/suggestion/suggestionclient"
4444
"github.com/kubeflow/katib/pkg/controller.v1beta1/util"
45+
"github.com/kubeflow/katib/pkg/util/v1beta1/katibconfig"
4546
)
4647

4748
const (
4849
ControllerName = "suggestion-controller"
4950
)
50-
var ReconcileSuggestionVolumeOverrides = [...] string {"pbt"}
5151

5252
var log = logf.Log.WithName(ControllerName)
5353

@@ -192,17 +192,14 @@ func (r *ReconcileSuggestion) ReconcileSuggestion(instance *suggestionsv1beta1.S
192192
suggestionNsName := types.NamespacedName{Name: instance.GetName(), Namespace: instance.GetNamespace()}
193193
logger := log.WithValues("Suggestion", suggestionNsName)
194194

195-
// Check if requested algorithm is in reconcile override list
196-
isReconcileOverride := false
197-
for _, algorithmName := range ReconcileSuggestionVolumeOverrides {
198-
if algorithmName == instance.Spec.Algorithm.AlgorithmName {
199-
isReconcileOverride = true
200-
break
201-
}
195+
// Check if algorithm overrides volume reconcile policy
196+
suggestionConfigData, err := katibconfig.GetSuggestionConfigData(instance.Spec.Algorithm.AlgorithmName, r.Client)
197+
if err != nil {
198+
return err
202199
}
203200

204-
// If ResumePolicy = FromVolume volume is reconciled for suggestion
205-
if isReconcileOverride || instance.Spec.ResumePolicy == experimentsv1beta1.FromVolume {
201+
// If ResumePolicy = FromVolume (or overriden), volume is reconciled for suggestion
202+
if suggestionConfigData.VolumeForceMount || instance.Spec.ResumePolicy == experimentsv1beta1.FromVolume {
206203
pvc, pv, err := r.DesiredVolume(instance)
207204
if err != nil {
208205
return err

pkg/util/v1beta1/katibconfig/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ type SuggestionConfig struct {
4242
PersistentVolumeClaimSpec corev1.PersistentVolumeClaimSpec `json:"persistentVolumeClaimSpec,omitempty"`
4343
PersistentVolumeSpec corev1.PersistentVolumeSpec `json:"persistentVolumeSpec,omitempty"`
4444
PersistentVolumeLabels map[string]string `json:"persistentVolumeLabels,omitempty"`
45+
VolumeForceMount bool `json:"volumeForceMount,omitempty"`
4546
}
4647

4748
// EarlyStoppingConfig is the JSON early stopping structure in Katib config.

0 commit comments

Comments
 (0)