Skip to content

Commit 39a1da7

Browse files
authored
Merge pull request #189 from covexo/issue-62
Resolve #62
2 parents b421ce9 + 5fd997d commit 39a1da7

3 files changed

Lines changed: 69 additions & 13 deletions

File tree

cmd/up.go

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,27 +103,31 @@ func (cmd *UpCmd) Run(cobraCmd *cobra.Command, args []string) {
103103
log.StartFileLogging()
104104

105105
workdir, err := os.Getwd()
106-
107106
if err != nil {
108107
log.Fatalf("Unable to determine current workdir: %s", err.Error())
109108
}
110109

111110
cmd.workdir = workdir
112111

113112
configExists, _ := configutil.ConfigExists()
114-
115113
if !configExists {
116114
initCmd := &InitCmd{
117115
flags: InitCmdFlagsDefault,
118116
}
119117

120118
initCmd.Run(nil, []string{})
121119
}
120+
122121
cmd.kubectl, err = kubectl.NewClient()
122+
if err != nil {
123+
log.Fatalf("Unable to create new kubectl client: %v", err)
124+
}
123125

126+
err = cmd.ensureNamespace()
124127
if err != nil {
125-
log.Fatalf("Unable to create new kubectl client: %s", err.Error())
128+
log.Fatalf("Unable to create release namespace: %v", err)
126129
}
130+
127131
cmd.initHelm()
128132

129133
if cmd.flags.initRegistry {
@@ -133,7 +137,7 @@ func (cmd *UpCmd) Run(cobraCmd *cobra.Command, args []string) {
133137
log.StopWait()
134138

135139
if err != nil {
136-
log.Fatalf("Docker registry error: %s", err.Error())
140+
log.Fatalf("Docker registry error: %v", err)
137141
}
138142

139143
log.Done("Docker registry started")
@@ -149,7 +153,6 @@ func (cmd *UpCmd) Run(cobraCmd *cobra.Command, args []string) {
149153
cmd.buildImage()
150154

151155
err = configutil.SaveConfig()
152-
153156
if err != nil {
154157
log.Fatalf("Config saving error: %s", err.Error())
155158
}
@@ -181,6 +184,28 @@ func (cmd *UpCmd) Run(cobraCmd *cobra.Command, args []string) {
181184
cmd.enterTerminal()
182185
}
183186

187+
func (cmd *UpCmd) ensureNamespace() error {
188+
config := configutil.GetConfig(false)
189+
releaseNamespace := *config.DevSpace.Release.Namespace
190+
191+
// Check if registry namespace exists
192+
_, err := cmd.kubectl.CoreV1().Namespaces().Get(releaseNamespace, metav1.GetOptions{})
193+
if err != nil {
194+
// Create registry namespace
195+
_, err = cmd.kubectl.CoreV1().Namespaces().Create(&k8sv1.Namespace{
196+
ObjectMeta: metav1.ObjectMeta{
197+
Name: releaseNamespace,
198+
},
199+
})
200+
201+
if err != nil {
202+
return err
203+
}
204+
}
205+
206+
return nil
207+
}
208+
184209
func (cmd *UpCmd) shouldRebuild(buildFlagChanged bool) bool {
185210
config := configutil.GetConfig(false)
186211
mustRebuild := true

pkg/devspace/clients/helm/client.go

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,22 @@ func ensureTiller(kubectlClient *kubernetes.Clientset, config *v1.Config, upgrad
198198
ImageSpec: "gcr.io/kubernetes-helm/tiller:v2.9.1",
199199
ServiceAccount: tillerSA.ObjectMeta.Name,
200200
}
201+
202+
// Check if tiller namespace exists
203+
_, err := kubectlClient.CoreV1().Namespaces().Get(tillerNamespace, metav1.GetOptions{})
204+
if err != nil {
205+
// Create tiller namespace
206+
_, err := kubectlClient.CoreV1().Namespaces().Create(&k8sv1.Namespace{
207+
ObjectMeta: metav1.ObjectMeta{
208+
Name: tillerNamespace,
209+
},
210+
})
211+
212+
if err != nil {
213+
return err
214+
}
215+
}
216+
201217
_, tillerCheckErr := kubectlClient.ExtensionsV1beta1().Deployments(tillerNamespace).Get(TillerDeploymentName, metav1.GetOptions{})
202218

203219
// Tiller is not there
@@ -488,13 +504,13 @@ func (helmClientWrapper *HelmClientWrapper) InstallChartByPath(releaseName strin
488504
return nil, err
489505
}
490506
chartDownloader := &helmdownloader.Manager{
491-
/* Out: i.out,
492-
ChartPath: i.chartPath,
493-
HelmHome: settings.Home,
494-
Keyring: defaultKeyring(),
495-
SkipUpdate: false,
496-
Getters: getter.All(settings),
497-
*/
507+
/* Out: i.out,
508+
ChartPath: i.chartPath,
509+
HelmHome: settings.Home,
510+
Keyring: defaultKeyring(),
511+
SkipUpdate: false,
512+
Getters: getter.All(settings),
513+
*/
498514
}
499515
err = chartDownloader.Update()
500516

pkg/devspace/registry/registry.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,22 @@ func InitRegistry(kubectl *kubernetes.Clientset, helm *helm.HelmClientWrapper) e
3535
registryReleaseName := *registry.Release.Name
3636
registryReleaseNamespace := *registry.Release.Namespace
3737

38-
_, err := helm.InstallChartByName(registryReleaseName, registryReleaseNamespace, "stable/docker-registry", "", registry.Release.Values)
38+
// Check if registry namespace exists
39+
_, err := kubectl.CoreV1().Namespaces().Get(registryReleaseNamespace, metav1.GetOptions{})
40+
if err != nil {
41+
// Create registry namespace
42+
_, err = kubectl.CoreV1().Namespaces().Create(&k8sv1.Namespace{
43+
ObjectMeta: metav1.ObjectMeta{
44+
Name: registryReleaseNamespace,
45+
},
46+
})
47+
48+
if err != nil {
49+
return err
50+
}
51+
}
52+
53+
_, err = helm.InstallChartByName(registryReleaseName, registryReleaseNamespace, "stable/docker-registry", "", registry.Release.Values)
3954

4055
if err != nil {
4156
return fmt.Errorf("Unable to initialize docker registry: %s", err.Error())

0 commit comments

Comments
 (0)