Skip to content

Commit da808ea

Browse files
authored
Merge pull request #63 from StatCan/add-prob-volume
fix(prob volumes) yolo
2 parents 416bcb1 + 687924f commit da808ea

File tree

1 file changed

+38
-20
lines changed

1 file changed

+38
-20
lines changed

notebooks.go

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -232,23 +232,41 @@ func (s *server) GetNotebooks(w http.ResponseWriter, r *http.Request) {
232232
}
233233

234234
func (s *server) handleVolume(ctx context.Context, req volumerequest, notebook *kubeflowv1.Notebook) error {
235+
var pvc = corev1.PersistentVolumeClaim{}
235236
if req.Type == VolumeTypeNew {
236-
// Create the PVC
237-
pvc := corev1.PersistentVolumeClaim{
238-
ObjectMeta: v1.ObjectMeta{
239-
Name: req.Name,
240-
Namespace: notebook.Namespace,
241-
},
242-
Spec: corev1.PersistentVolumeClaimSpec{
243-
AccessModes: []corev1.PersistentVolumeAccessMode{req.Mode},
244-
Resources: corev1.ResourceRequirements{
245-
Requests: corev1.ResourceList{
246-
corev1.ResourceStorage: req.Size,
237+
if _, ok := notebook.Labels["notebook.statcan.gc.ca/protected-b"]; ok {
238+
pvc = corev1.PersistentVolumeClaim{
239+
ObjectMeta: v1.ObjectMeta{
240+
Name: req.Name,
241+
Namespace: notebook.Namespace,
242+
Labels: map[string]string{"data.statcan.gc.ca/classification": "protected-b"},
243+
},
244+
Spec: corev1.PersistentVolumeClaimSpec{
245+
AccessModes: []corev1.PersistentVolumeAccessMode{req.Mode},
246+
Resources: corev1.ResourceRequirements{
247+
Requests: corev1.ResourceList{
248+
corev1.ResourceStorage: req.Size,
249+
},
247250
},
248251
},
249-
},
252+
}
253+
} else {
254+
// Create the PVC
255+
pvc = corev1.PersistentVolumeClaim{
256+
ObjectMeta: v1.ObjectMeta{
257+
Name: req.Name,
258+
Namespace: notebook.Namespace,
259+
},
260+
Spec: corev1.PersistentVolumeClaimSpec{
261+
AccessModes: []corev1.PersistentVolumeAccessMode{req.Mode},
262+
Resources: corev1.ResourceRequirements{
263+
Requests: corev1.ResourceList{
264+
corev1.ResourceStorage: req.Size,
265+
},
266+
},
267+
},
268+
}
250269
}
251-
252270
// Add the storage class, if set and not set to an "empty" value
253271
if req.Class != "" && req.Class != "{none}" && req.Class != "{empty}" {
254272
pvc.Spec.StorageClassName = &req.Class
@@ -478,14 +496,14 @@ func (s *server) NewNotebook(w http.ResponseWriter, r *http.Request) {
478496
//Add Language
479497
//Validate that the language format is valid (language[_territory])
480498
match, err := regexp.MatchString("^[[:alpha:]]{2}(_[[:alpha:]]{2})?$", req.Language)
481-
if (err != nil || !match) {
482-
var errLanguageFormat = errors.New("Error: the value of KF_LANG environment variable ('" + req.Language + "') is not a valid format (e.g 'en', 'en_US', ...)")
483-
s.error(w, r, errLanguageFormat)
484-
return
485-
}
499+
if err != nil || !match {
500+
var errLanguageFormat = errors.New("Error: the value of KF_LANG environment variable ('" + req.Language + "') is not a valid format (e.g 'en', 'en_US', ...)")
501+
s.error(w, r, errLanguageFormat)
502+
return
503+
}
486504
notebook.Spec.Template.Spec.Containers[0].Env = append(notebook.Spec.Template.Spec.Containers[0].Env, corev1.EnvVar{
487-
Name: EnvKfLanguage,
488-
Value: req.Language,
505+
Name: EnvKfLanguage,
506+
Value: req.Language,
489507
})
490508

491509
log.Printf("creating notebook %q for %q", notebook.ObjectMeta.Name, namespace)

0 commit comments

Comments
 (0)