From 9f70ca7f104fcfff96e58824bfd4559cf12a7af8 Mon Sep 17 00:00:00 2001 From: Lun-Kai Hsu Date: Sat, 30 Mar 2019 20:36:33 -0700 Subject: [PATCH] add labels for notebook so that gcp credentials will be injected by webhook (kubeflow/kubeflow#2853) * add labels for gcp cred * kfctl set flag * review comment * review comment --- .../notebook/notebook_controller.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/components/notebook-controller/pkg/controller/notebook/notebook_controller.go b/components/notebook-controller/pkg/controller/notebook/notebook_controller.go index 228c6e93..c57609f4 100644 --- a/components/notebook-controller/pkg/controller/notebook/notebook_controller.go +++ b/components/notebook-controller/pkg/controller/notebook/notebook_controller.go @@ -18,6 +18,7 @@ package notebook import ( "context" + "os" "strings" v1alpha1 "github.com/kubeflow/kubeflow/components/notebook-controller/pkg/apis/notebook/v1alpha1" @@ -283,6 +284,24 @@ func generateStatefulSet(instance *v1alpha1.Notebook) *appsv1.StatefulSet { }, }, } + + // Inject GCP credentials + if labels := os.Getenv("POD_LABELS"); labels != "" { + // labels should be comma separated labels, e.g. "k1=v1,k2=v2" + l := &ss.Spec.Template.ObjectMeta.Labels + labelList := strings.Split(labels, ",") + for _, label := range labelList { + // label is something like k1=v1 + s := strings.Split(label, "=") + if len(s) != 2 { + log.Info("Invalid env var POD_LABELS, skip..") + continue + } + // s[0] = k1, s[1] = v1 + (*l)[s[0]] = s[1] + } + } + podSpec := &ss.Spec.Template.Spec container := &podSpec.Containers[0] if container.WorkingDir == "" {