σ —ΐv]c@@sdZddlmZddlZddlmZddlZddlZddlZddlm Z m Z ddl m Z ddl Z idd 6Zidd 6dd 6Ziid 6id 6Zd Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZdS(sK DMLC submission script by kubernetes One need to make sure kubectl-able. i(tabsolute_importN(tpath(tclienttconfigi(ttrackerttnamet mountPathtrequeststlimitsiƒ#c C@sbtjdi|d6dtjddd|d|ƒgƒ}tjdtjd |ƒd |ƒ}|S( NtselectortapptportstprotocoltTCPtportt target_porttmetadataRtspec(Rt V1ServiceSpect V1ServicePortt V1Servicet V1ObjectMeta(RRRRtservice((s8/tmp/pip-install-Qvdv_2/mxnet/dmlc_tracker/kubernetes.pytcreate_svc_manifests   $$cC@st|||ƒS(N(R(RR((s8/tmp/pip-install-Qvdv_2/mxnet/dmlc_tracker/kubernetes.pytcreate_sched_svc_manifest%sc C@s›|dk rρt|ƒΤ}tj|ƒ}||dd<||ddddd<||dddddd <||dddddd <||dddddd<||dddddd <||dddddd R.RR/R0R((s8/tmp/pip-install-Qvdv_2/mxnet/dmlc_tracker/kubernetes.pytcreate_wk_manifestJs  cC@sh|jtjddddƒƒd}x*|D]"}|jdkr,|j}Pq,q,Wt||||dƒS(NRR8R7t schedulerRtDMLC_PS_ROOT_URI(R:RR;RR7R5R%(RDR=R.RR/Rti((s8/tmp/pip-install-Qvdv_2/mxnet/dmlc_tracker/kubernetes.pytcreate_sched_job_manifestTs  cC@s˜g}|jtjddd|ƒƒ|jtjdddt|ƒƒƒ|jtjdddt|ƒƒƒ|jtjdddt|ƒƒƒ|S(NRRGR7tDMLC_PS_ROOT_PORTtDMLC_NUM_SERVERtDMLC_NUM_WORKER(R:RR;tstr(troot_urit root_porttsv_numRDR.((s8/tmp/pip-install-Qvdv_2/mxnet/dmlc_tracker/kubernetes.pyt create_env]s %%%c@s8‡‡fd†‰tjˆjˆjdˆddƒdS(Nc @sCˆj}ˆj}ˆjdk r5dˆjd}nd}d}t||||ƒ}g}tt|ƒt|ƒ||ˆjƒ} t||ƒ} xit |ƒD][} t||||ƒ} t t| ƒt|ƒˆj| |ˆjˆj ƒ} |j | ƒqŸWxrt |ƒD]d} t||||ƒ} t t| ƒt|ƒt|ƒˆj| |ˆjˆjƒ}|j |ƒq Wtjƒtjƒ}tjƒ}|jdˆjd| ƒ}|jd|jjdGH|jdd d| ƒ}|jd|jjdGHx@|D]8}|jd|dd ƒ}|jd|jjdGHqWˆS( Nsmx-s-schedsmx-schediƒ#t namespacetbodyt s is created.tdefault(tkube_server_imagetkube_worker_imagetjobnameR%RQRIRMRRtrangeR?tkube_server_templateR:REtkube_worker_templateRtload_kube_configRt CoreV1Apit BatchV1Apitcreate_namespaced_jobtkube_namespaceR#RRtcreate_namespaced_service(tnworkertnservert pass_envstsv_imagetwk_imagetr_uritr_porttsd_envstmn_jobst mn_sh_jobt mn_sh_svcRHR.tmn_svtmn_wkt k8s_coreapit k8s_batchtresptm(targstkubernetes_submit(s8/tmp/pip-install-Qvdv_2/mxnet/dmlc_tracker/kubernetes.pyRtgs<  '3<     t fun_submittpscmdsRecho "To check each log, try 'kubectl logs job/{{role}}-{{jobname}}-{{workerID}}'"(Rtsubmitt num_workerst num_servers(Rs((RsRts8/tmp/pip-install-Qvdv_2/mxnet/dmlc_tracker/kubernetes.pyRwfs&(t__doc__t __future__RtosRtsystuuidtloggingt kubernetesRRRRR'ttemplate_volumettemplate_volumemountttemplate_resoucet sched_portRRR5R?RERIRQRw(((s8/tmp/pip-install-Qvdv_2/mxnet/dmlc_tracker/kubernetes.pyts4