2017-05-05 17 views
-1

我想有點netperf-tester升級從contrib程序存儲庫,但我有一個問題,因爲我不是一個優秀的開發 我已經增加了一個ARG爲kubectl從代碼執行二進制失敗,但在命令行中運行它的工作原理

args := []string{"run", serviceName, "--image=" + image, fmt.Sprintf("--port=%d", port), "--hostport=65530", fmt.Sprintf("--overrides='{ \"apiVersion\": \"extensions/v1beta1\", \"spec\": { \"nodeSelector\": { \"kubernetes.io/hostname\": \"%s\" } } }'", node)} 

,但它給我一個錯誤:

2017/05/05 10:18:02 kubectl path := kubectl 
2017/05/05 10:18:02 Running kubectl with args := [run netperf-tester-host --image=paultiplady/netserver:ubuntu.2 --port=12865 --hostport=65530 --overrides='{ "apiVersion": "extensions/v1beta1", "spec": { "nodeSelector": { "kubernetes.io/hostname": "10.122.16.118" } } }'] 
2017/05/05 10:18:04 Error adding service: exit status 1 
Output: error: Invalid JSON Patch 

當我運行它手動它的工作原理

$ kubectl run netperf-tester-host --image=paultiplady/netserver:ubuntu.2 --port=12865 --hostport=65530 --overrides='{ "apiVersion": "extensions/v1beta1", "spec": { "nodeSelector": { "kubernetes.io/hostname": "10.122.16.118" } } }' 
deployment "netperf-tester-host" created 

如果有人能指出我錯誤所在,我將非常感激

+0

的prablem是'--overrides' arg中的單引號,它應該看起來像這樣: 'args:= [] string {「run」,serviceName,「--image =」+ image,fmt.Sprintf(「 --port =%d「,port),」--hostport = 65530「,fmt.Sprintf(」--overrides = {\「apiVersion \」:\「extensions/v1beta1 \」,\「spec \「:{\」nodeSelector \「:{\」kubernetes.io/hostname \「:\」%s \「}}}」,node)}' – widget

回答

0

的prablem是單引號--overrides ARG爲exec根據this thread,它應該是這樣的:

args := []string{"run", serviceName, "--image=" + image, fmt.Sprintf("--port=%d", port), "--hostport=65530", fmt.Sprintf("--overrides={ \"apiVersion\": \"extensions/v1beta1\", \"spec\": { \"nodeSelector\": { \"kubernetes.io/hostname\": \"%s\" } } }", node)} 
相關問題