Skip to content

Commit 5e72ee2

Browse files
committed
Fix several issues during build
1 parent 1c6d92c commit 5e72ee2

12 files changed

Lines changed: 79 additions & 80 deletions

File tree

cmd/enter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
// EnterCmd is a struct that defines a command call for "enter"
1515
type EnterCmd struct {
1616
flags *EnterCmdFlags
17-
helm *helmClient.HelmClientWrapper
17+
helm *helmClient.ClientWrapper
1818
kubectl *kubernetes.Clientset
1919
pod *k8sv1.Pod
2020
}

cmd/install.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
// InstallCmd is a struct that defines a command call for "install"
1919
type InstallCmd struct {
2020
flags *InstallCmdFlags
21-
helm *helmClient.HelmClientWrapper
21+
helm *helmClient.ClientWrapper
2222
kubectl *kubernetes.Clientset
2323
dsConfig *v1.DevSpaceConfig
2424
workdir string

cmd/reset.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
// ResetCmd holds the needed command information
2020
type ResetCmd struct {
2121
flags *ResetCmdFlags
22-
helm *helmClient.HelmClientWrapper
22+
helm *helmClient.ClientWrapper
2323
kubectl *kubernetes.Clientset
2424
workdir string
2525
}

cmd/status.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
// StatusCmd holds the information needed for the status command
1919
type StatusCmd struct {
2020
flags *StatusCmdFlags
21-
helm *helmClient.HelmClientWrapper
21+
helm *helmClient.ClientWrapper
2222
kubectl *kubernetes.Clientset
2323
workdir string
2424
}
@@ -290,7 +290,7 @@ func (cmd *StatusCmd) getDevspaceStatus() ([]string, error) {
290290
return nil, fmt.Errorf("Devspace helm release %s not found", *config.DevSpace.Release.Name)
291291
}
292292

293-
func getRunningDevSpacePod(helm *helmClient.HelmClientWrapper, client *kubernetes.Clientset) (*k8sv1.Pod, error) {
293+
func getRunningDevSpacePod(helm *helmClient.ClientWrapper, client *kubernetes.Clientset) (*k8sv1.Pod, error) {
294294
config := configutil.GetConfig()
295295
releases, err := helm.Client.ListReleases()
296296

cmd/up.go

Lines changed: 37 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import (
3535
// UpCmd is a struct that defines a command call for "up"
3636
type 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

195200
func (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{}

pkg/devspace/config/configutil/get.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func GetConfig() *v1.Config {
6868

6969
err := loadConfig(configRaw, ConfigPath)
7070
if err != nil {
71-
log.Fatal("Unable to load config.")
71+
log.Fatalf("Unable to load config: %v. Please run `devspace init -r` to correct your config", err)
7272
}
7373

7474
//ignore error as overwrite.yaml is optional
@@ -77,6 +77,10 @@ func GetConfig() *v1.Config {
7777
merge(config, configRaw, unsafe.Pointer(&config), unsafe.Pointer(configRaw))
7878
merge(config, overwriteConfig, unsafe.Pointer(&config), unsafe.Pointer(overwriteConfig))
7979
merge(overwriteConfig, overwriteConfigRaw, unsafe.Pointer(&overwriteConfig), unsafe.Pointer(overwriteConfigRaw))
80+
81+
if config.DevSpace.Release != nil && config.DevSpace.Release.Namespace == nil {
82+
config.DevSpace.Release.Namespace = String("default")
83+
}
8084
})
8185

8286
return config

pkg/devspace/deploy/helm/client.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,16 @@ import (
2929
helmstoragedriver "k8s.io/helm/pkg/storage/driver"
3030
)
3131

32-
// HelmClientWrapper holds the necessary information for helm
33-
type HelmClientWrapper struct {
32+
// ClientWrapper holds the necessary information for helm
33+
type ClientWrapper struct {
3434
Client *k8shelm.Client
3535
Settings *helmenvironment.EnvSettings
3636
TillerConfig *v1.TillerConfig
3737
kubectl *kubernetes.Clientset
3838
}
3939

4040
// NewClient creates a new helm client
41-
func NewClient(kubectlClient *kubernetes.Clientset, upgradeTiller bool) (*HelmClientWrapper, error) {
41+
func NewClient(kubectlClient *kubernetes.Clientset, upgradeTiller bool) (*ClientWrapper, error) {
4242
config := configutil.GetConfig()
4343
tillerNamespace := GetTillerNamespace()
4444

@@ -117,7 +117,6 @@ func NewClient(kubectlClient *kubernetes.Clientset, upgradeTiller bool) (*HelmCl
117117
os.MkdirAll(filepath.Dir(stableRepoCachePathAbs), os.ModePerm)
118118

119119
_, repoFileNotFound := os.Stat(repoFile)
120-
121120
if repoFileNotFound != nil {
122121
err = fsutil.WriteToFile([]byte(defaultRepositories), repoFile)
123122
if err != nil {
@@ -134,7 +133,7 @@ func NewClient(kubectlClient *kubernetes.Clientset, upgradeTiller bool) (*HelmCl
134133
}
135134
}
136135

137-
wrapper := &HelmClientWrapper{
136+
wrapper := &ClientWrapper{
138137
Client: client,
139138
Settings: &helmenvironment.EnvSettings{
140139
Home: helmpath.Home(helmHomePath),
@@ -154,7 +153,7 @@ func NewClient(kubectlClient *kubernetes.Clientset, upgradeTiller bool) (*HelmCl
154153
return wrapper, nil
155154
}
156155

157-
func (helmClientWrapper *HelmClientWrapper) updateRepos() error {
156+
func (helmClientWrapper *ClientWrapper) updateRepos() error {
158157
allRepos, err := repo.LoadRepositoriesFile(helmClientWrapper.Settings.Home.RepositoryFile())
159158
if err != nil {
160159
return err
@@ -194,7 +193,7 @@ func (helmClientWrapper *HelmClientWrapper) updateRepos() error {
194193
}
195194

196195
// ReleaseExists checks if the given release name exists
197-
func (helmClientWrapper *HelmClientWrapper) ReleaseExists(releaseName string) (bool, error) {
196+
func (helmClientWrapper *ClientWrapper) ReleaseExists(releaseName string) (bool, error) {
198197
_, err := helmClientWrapper.Client.ReleaseHistory(releaseName, k8shelm.WithMaxHistory(1))
199198
if err != nil {
200199
if strings.Contains(err.Error(), helmstoragedriver.ErrReleaseNotFound(releaseName).Error()) {
@@ -208,6 +207,6 @@ func (helmClientWrapper *HelmClientWrapper) ReleaseExists(releaseName string) (b
208207
}
209208

210209
// DeleteRelease deletes a helm release and optionally purges it
211-
func (helmClientWrapper *HelmClientWrapper) DeleteRelease(releaseName string, purge bool) (*rls.UninstallReleaseResponse, error) {
210+
func (helmClientWrapper *ClientWrapper) DeleteRelease(releaseName string, purge bool) (*rls.UninstallReleaseResponse, error) {
212211
return helmClientWrapper.Client.DeleteRelease(releaseName, k8shelm.DeletePurge(purge))
213212
}

pkg/devspace/deploy/helm/install.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func checkDependencies(ch *chart.Chart, reqs *helmchartutil.Requirements) error
4040
}
4141

4242
// InstallChartByPath installs the given chartpath und the releasename in the releasenamespace
43-
func (helmClientWrapper *HelmClientWrapper) InstallChartByPath(releaseName string, releaseNamespace string, chartPath string, values *map[interface{}]interface{}) (*hapi_release5.Release, error) {
43+
func (helmClientWrapper *ClientWrapper) InstallChartByPath(releaseName string, releaseNamespace string, chartPath string, values *map[interface{}]interface{}) (*hapi_release5.Release, error) {
4444
chart, err := helmchartutil.Load(chartPath)
4545
if err != nil {
4646
return nil, err
@@ -124,7 +124,7 @@ func (helmClientWrapper *HelmClientWrapper) InstallChartByPath(releaseName strin
124124
}
125125

126126
// InstallChartByName installs the given chart by name under the releasename in the releasenamespace
127-
func (helmClientWrapper *HelmClientWrapper) InstallChartByName(releaseName string, releaseNamespace string, chartName string, chartVersion string, values *map[interface{}]interface{}) (*hapi_release5.Release, error) {
127+
func (helmClientWrapper *ClientWrapper) InstallChartByName(releaseName string, releaseNamespace string, chartName string, chartVersion string, values *map[interface{}]interface{}) (*hapi_release5.Release, error) {
128128
if len(chartVersion) == 0 {
129129
chartVersion = ">0.0.0-0"
130130
}

pkg/devspace/deploy/helm/search.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func (s stringArraySorter) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
2424
func (s stringArraySorter) Less(a, b int) bool { return s[a][0] < s[b][0] }
2525

2626
// PrintAllAvailableCharts prints all available charts
27-
func (helmClientWrapper *HelmClientWrapper) PrintAllAvailableCharts() {
27+
func (helmClientWrapper *ClientWrapper) PrintAllAvailableCharts() {
2828
var values stringArraySorter
2929
var header = []string{
3030
"NAME",
@@ -74,7 +74,7 @@ func (helmClientWrapper *HelmClientWrapper) PrintAllAvailableCharts() {
7474
}
7575

7676
// SearchChart searches the chart name in all repositories
77-
func (helmClientWrapper *HelmClientWrapper) SearchChart(chartName, chartVersion, appVersion string) (*repo.Entry, *repo.ChartVersion, error) {
77+
func (helmClientWrapper *ClientWrapper) SearchChart(chartName, chartVersion, appVersion string) (*repo.Entry, *repo.ChartVersion, error) {
7878
allRepos, err := repo.LoadRepositoriesFile(helmClientWrapper.Settings.Home.RepositoryFile())
7979
if err != nil {
8080
return nil, nil, err
@@ -127,7 +127,7 @@ func (helmClientWrapper *HelmClientWrapper) SearchChart(chartName, chartVersion,
127127
}
128128

129129
// BuildDependencies builds the dependencies
130-
func (helmClientWrapper *HelmClientWrapper) BuildDependencies(chartPath string) error {
130+
func (helmClientWrapper *ClientWrapper) BuildDependencies(chartPath string) error {
131131
man := &helmdownloader.Manager{
132132
Out: ioutil.Discard,
133133
ChartPath: chartPath,
@@ -139,7 +139,7 @@ func (helmClientWrapper *HelmClientWrapper) BuildDependencies(chartPath string)
139139
}
140140

141141
// UpdateDependencies updates the dependencies
142-
func (helmClientWrapper *HelmClientWrapper) UpdateDependencies(chartPath string) error {
142+
func (helmClientWrapper *ClientWrapper) UpdateDependencies(chartPath string) error {
143143
man := &helmdownloader.Manager{
144144
Out: ioutil.Discard,
145145
ChartPath: chartPath,

0 commit comments

Comments
 (0)