@@ -35,7 +35,7 @@ import (
3535// UpCmd is a struct that defines a command call for "up"
3636type UpCmd struct {
3737 flags * UpCmdFlags
38- helm * helmClient.HelmClientWrapper
38+ helm * helmClient.ClientWrapper
3939 kubectl * kubernetes.Clientset
4040 workdir string
4141 pod * k8sv1.Pod
@@ -116,7 +116,6 @@ func (cmd *UpCmd) Run(cobraCmd *cobra.Command, args []string) {
116116 }
117117
118118 cmd .workdir = workdir
119-
120119 configExists , _ := configutil .ConfigExists ()
121120 if ! configExists {
122121 initCmd := & InitCmd {
@@ -147,49 +146,55 @@ func (cmd *UpCmd) Run(cobraCmd *cobra.Command, args []string) {
147146 cmd .initRegistries ()
148147 }
149148
149+ cmd .buildAndDeploy ()
150+
151+ if cmd .flags .portforwarding {
152+ cmd .startPortForwarding ()
153+ }
154+
155+ if cmd .flags .sync {
156+ syncConfigs := cmd .startSync ()
157+ defer func () {
158+ for _ , v := range syncConfigs {
159+ v .Stop ()
160+ }
161+ }()
162+ }
163+
164+ enterTerminal (cmd .kubectl , cmd .pod , cmd .flags .container , args )
165+ }
166+
167+ func (cmd * UpCmd ) buildAndDeploy () {
168+ // Load config
169+ generatedConfig , err := generated .LoadConfig ()
170+ if err != nil {
171+ log .Fatalf ("Error loading generated.yaml: %v" , err )
172+ }
173+
150174 // Build image if necessary
151- mustRedeploy := cmd .buildImages ()
175+ mustRedeploy := cmd .buildImages (generatedConfig )
152176
153177 // Check if the chart directory has changed
154178 hash , err := hash .Directory ("chart" )
155179 if err != nil {
156180 log .Fatalf ("Error hashing chart directory: %v" , err )
157181 }
158182
159- // Load config
160- runtimeConfig , err := generated .LoadConfig ()
161- if err != nil {
162- log .Fatalf ("Error loading .runtime.yaml: %v" , err )
163- }
164-
165183 // Check if we find a running release pod
166184 pod , err := getRunningDevSpacePod (cmd .helm , cmd .kubectl )
167- if err != nil || mustRedeploy || cmd .flags .deploy || runtimeConfig .HelmChartHash != hash {
168- cmd .deployChart ()
185+ if err != nil || mustRedeploy || cmd .flags .deploy || generatedConfig .HelmChartHash != hash {
186+ cmd .deployChart (generatedConfig )
187+
188+ generatedConfig .HelmChartHash = hash
169189
170- runtimeConfig . HelmChartHash = hash
171- err = generated .SaveConfig (runtimeConfig )
190+ // Save Config
191+ err = generated .SaveConfig (generatedConfig )
172192 if err != nil {
173193 log .Fatalf ("Error saving config: %v" , err )
174194 }
175195 } else {
176196 cmd .pod = pod
177197 }
178-
179- if cmd .flags .portforwarding {
180- cmd .startPortForwarding ()
181- }
182-
183- if cmd .flags .sync {
184- syncConfigs := cmd .startSync ()
185- defer func () {
186- for _ , v := range syncConfigs {
187- v .Stop ()
188- }
189- }()
190- }
191-
192- enterTerminal (cmd .kubectl , cmd .pod , cmd .flags .container , args )
193198}
194199
195200func (cmd * UpCmd ) ensureNamespace () error {
@@ -333,13 +338,9 @@ func (cmd *UpCmd) initRegistries() {
333338}
334339
335340// returns true when one of the images had to be rebuild
336- func (cmd * UpCmd ) buildImages () bool {
341+ func (cmd * UpCmd ) buildImages (generatedConfig * generated. Config ) bool {
337342 re := false
338343 config := configutil .GetConfig ()
339- generatedConfig , err := generated .LoadConfig ()
340- if err != nil {
341- log .Fatalf ("Error loading generated.yaml: %v" , err )
342- }
343344
344345 for imageName , imageConf := range * config .Images {
345346 shouldRebuild , err := image .Build (cmd .kubectl , generatedConfig , imageName , imageConf , cmd .flags .build )
@@ -352,11 +353,6 @@ func (cmd *UpCmd) buildImages() bool {
352353 }
353354 }
354355
355- err = generated .SaveConfig (generatedConfig )
356- if err != nil {
357- log .Fatalf ("Error saving generated.yaml: %v" , err )
358- }
359-
360356 return re
361357}
362358
@@ -375,12 +371,8 @@ func (cmd *UpCmd) initHelm() {
375371 }
376372}
377373
378- func (cmd * UpCmd ) deployChart () {
374+ func (cmd * UpCmd ) deployChart (generatedConfig * generated. Config ) {
379375 config := configutil .GetConfig ()
380- generatedConfig , err := generated .LoadConfig ()
381- if err != nil {
382- log .Panic (err )
383- }
384376
385377 log .StartWait ("Deploying helm chart" )
386378 defer log .StopWait ()
@@ -392,7 +384,7 @@ func (cmd *UpCmd) deployChart() {
392384 values := map [interface {}]interface {}{}
393385 overwriteValues := map [interface {}]interface {}{}
394386
395- err = yamlutil .ReadYamlFromFile (chartPath + "values.yaml" , values )
387+ err : = yamlutil .ReadYamlFromFile (chartPath + "values.yaml" , values )
396388 if err != nil {
397389 log .Fatalf ("Couldn't deploy chart, error reading from chart values %s: %v" , chartPath + "values.yaml" , err )
398390 }
@@ -401,7 +393,7 @@ func (cmd *UpCmd) deployChart() {
401393
402394 for imageName , imageConf := range * config .Images {
403395 container := map [string ]interface {}{}
404- container ["image" ] = registry .GetImageURL (imageName , generatedConfig , imageConf , true )
396+ container ["image" ] = registry .GetImageURL (generatedConfig , imageConf , true )
405397
406398 if cmd .flags .noSleep {
407399 container ["command" ] = []string {}
0 commit comments