@@ -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+
184209func (cmd * UpCmd ) shouldRebuild (buildFlagChanged bool ) bool {
185210 config := configutil .GetConfig (false )
186211 mustRebuild := true
0 commit comments