Browse Source

Fix secrets of model/dataset in federated/joint

Signed-off-by: llhuii <liulinghui@huawei.com>
tags/v0.2.0
llhuii 4 years ago
parent
commit
e80f458989
3 changed files with 43 additions and 8 deletions
  1. +20
    -4
      pkg/globalmanager/federatedlearningjob.go
  2. +19
    -2
      pkg/globalmanager/jointinferenceservice.go
  3. +4
    -2
      pkg/globalmanager/types.go

+ 20
- 4
pkg/globalmanager/federatedlearningjob.go View File

@@ -409,6 +409,13 @@ func (fc *FederatedController) createPod(job *sednav1.FederatedLearningJob) (act
return active, fmt.Errorf("failed to get model %s: %w",
modelName, err)
}

secretName := model.Spec.CredentialName
var modelSecret *v1.Secret
if secretName != "" {
modelSecret, _ = fc.kubeClient.CoreV1().Secrets(job.Namespace).Get(context.TODO(), secretName, metav1.GetOptions{})
}

participantsCount := strconv.Itoa(len(job.Spec.TrainingWorkers))

// deliver pod for aggregation worker
@@ -432,8 +439,9 @@ func (fc *FederatedController) createPod(job *sednav1.FederatedLearningJob) (act
aggWorkerParam.mounts = append(aggWorkerParam.mounts,
WorkerMount{
URL: &MountURL{
URL: model.Spec.URL,
Mode: workerMountWriteOnly,
URL: model.Spec.URL,
Mode: workerMountWriteOnly,
Secret: modelSecret,
},
EnvName: "MODEL_URL",
},
@@ -467,20 +475,28 @@ func (fc *FederatedController) createPod(job *sednav1.FederatedLearningJob) (act
datasetName, err)
}

secretName := dataset.Spec.CredentialName
var datasetSecret *v1.Secret
if secretName != "" {
datasetSecret, _ = fc.kubeClient.CoreV1().Secrets(job.Namespace).Get(context.TODO(), secretName, metav1.GetOptions{})
}

// Configure container mounting and Env information by initial WorkerParam
var workerParam *WorkerParam = new(WorkerParam)

workerParam.mounts = append(workerParam.mounts,
WorkerMount{
URL: &MountURL{
URL: model.Spec.URL,
URL: model.Spec.URL,
Secret: modelSecret,
},
EnvName: "MODEL_URL",
},

WorkerMount{
URL: &MountURL{
URL: dataset.Spec.URL,
URL: dataset.Spec.URL,
Secret: datasetSecret,
},
EnvName: "TRAIN_DATASET_URL",
},


+ 19
- 2
pkg/globalmanager/jointinferenceservice.go View File

@@ -434,8 +434,16 @@ func (jc *JointInferenceServiceController) createCloudWorker(service *sednav1.Jo

var workerParam WorkerParam

secretName := cloudModel.Spec.CredentialName
var modelSecret *v1.Secret
if secretName != "" {
modelSecret, _ = jc.kubeClient.CoreV1().Secrets(service.Namespace).Get(context.TODO(), secretName, metav1.GetOptions{})
}
workerParam.mounts = append(workerParam.mounts, WorkerMount{
URL: &MountURL{URL: cloudModel.Spec.URL},
URL: &MountURL{
URL: cloudModel.Spec.URL,
Secret: modelSecret,
},
Name: "model",
EnvName: "MODEL_URL",
})
@@ -468,6 +476,12 @@ func (jc *JointInferenceServiceController) createEdgeWorker(service *sednav1.Joi
edgeModelName, err)
}

secretName := edgeModel.Spec.CredentialName
var modelSecret *v1.Secret
if secretName != "" {
modelSecret, _ = jc.kubeClient.CoreV1().Secrets(service.Namespace).Get(context.TODO(), secretName, metav1.GetOptions{})
}

// FIXME(llhuii): only the case that Spec.NodeName specified is support,
// will support Spec.NodeSelector.
// get bigModelIP from nodeName in cloudWorker
@@ -483,7 +497,10 @@ func (jc *JointInferenceServiceController) createEdgeWorker(service *sednav1.Joi
var workerParam WorkerParam

workerParam.mounts = append(workerParam.mounts, WorkerMount{
URL: &MountURL{URL: edgeModel.Spec.URL},
URL: &MountURL{
URL: edgeModel.Spec.URL,
Secret: modelSecret,
},
Name: "model",
EnvName: "MODEL_URL",
})


+ 4
- 2
pkg/globalmanager/types.go View File

@@ -54,8 +54,10 @@ type IncrementalCondData struct {

// the data samples reference will be stored into this URL.
// The content of this url would be:
// s3://dataset/ mnist/0.jpg
// s3://dataset/ mnist/1.jpg
// # the first uncomment line means the directory
// s3://dataset/
// mnist/0.jpg
// mnist/1.jpg
DataIndexURL string `json:"dataIndexURL,omitempty"`

OutputDir string `json:"outputDir,omitempty"`


Loading…
Cancel
Save