@@ -125,6 +125,9 @@ type RunOptions struct {
125
125
TTY bool
126
126
fieldManager string
127
127
128
+ Namespace string
129
+ EnforceNamespace bool
130
+
128
131
genericclioptions.IOStreams
129
132
}
130
133
@@ -283,7 +286,7 @@ func (o *RunOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
283
286
return cmdutil .UsageErrorf (cmd , "--port must be set when exposing a service" )
284
287
}
285
288
286
- namespace , _ , err : = f .ToRawKubeConfigLoader ().Namespace ()
289
+ o . Namespace , o . EnforceNamespace , err = f .ToRawKubeConfigLoader ().Namespace ()
287
290
if err != nil {
288
291
return err
289
292
}
@@ -324,7 +327,7 @@ func (o *RunOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
324
327
params ["env" ] = cmdutil .GetFlagStringArray (cmd , "env" )
325
328
326
329
var createdObjects = []* RunObject {}
327
- runObject , err := o .createGeneratedObject (f , cmd , generator , names , params , cmdutil .GetFlagString (cmd , "overrides" ), namespace )
330
+ runObject , err := o .createGeneratedObject (f , cmd , generator , names , params , cmdutil .GetFlagString (cmd , "overrides" ))
328
331
if err != nil {
329
332
return err
330
333
}
@@ -336,7 +339,7 @@ func (o *RunOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
336
339
if len (serviceGenerator ) == 0 {
337
340
return cmdutil .UsageErrorf (cmd , "No service generator specified" )
338
341
}
339
- serviceRunObject , err := o .generateService (f , cmd , serviceGenerator , params , namespace )
342
+ serviceRunObject , err := o .generateService (f , cmd , serviceGenerator , params )
340
343
if err != nil {
341
344
allErrs = append (allErrs , err )
342
345
} else {
@@ -563,7 +566,7 @@ func verifyImagePullPolicy(cmd *cobra.Command) error {
563
566
return cmdutil .UsageErrorf (cmd , "invalid image pull policy: %s" , pullPolicy )
564
567
}
565
568
566
- func (o * RunOptions ) generateService (f cmdutil.Factory , cmd * cobra.Command , serviceGenerator string , paramsIn map [string ]interface {}, namespace string ) (* RunObject , error ) {
569
+ func (o * RunOptions ) generateService (f cmdutil.Factory , cmd * cobra.Command , serviceGenerator string , paramsIn map [string ]interface {}) (* RunObject , error ) {
567
570
generators := generateversioned .GeneratorFn ("expose" )
568
571
generator , found := generators [serviceGenerator ]
569
572
if ! found {
@@ -593,7 +596,7 @@ func (o *RunOptions) generateService(f cmdutil.Factory, cmd *cobra.Command, serv
593
596
params ["default-name" ] = name
594
597
}
595
598
596
- runObject , err := o .createGeneratedObject (f , cmd , generator , names , params , cmdutil .GetFlagString (cmd , "service-overrides" ), namespace )
599
+ runObject , err := o .createGeneratedObject (f , cmd , generator , names , params , cmdutil .GetFlagString (cmd , "service-overrides" ))
597
600
if err != nil {
598
601
return nil , err
599
602
}
@@ -609,7 +612,7 @@ func (o *RunOptions) generateService(f cmdutil.Factory, cmd *cobra.Command, serv
609
612
return runObject , nil
610
613
}
611
614
612
- func (o * RunOptions ) createGeneratedObject (f cmdutil.Factory , cmd * cobra.Command , generator generate.Generator , names []generate.GeneratorParam , params map [string ]interface {}, overrides , namespace string ) (* RunObject , error ) {
615
+ func (o * RunOptions ) createGeneratedObject (f cmdutil.Factory , cmd * cobra.Command , generator generate.Generator , names []generate.GeneratorParam , params map [string ]interface {}, overrides string ) (* RunObject , error ) {
613
616
err := generate .ValidateParams (names , params )
614
617
if err != nil {
615
618
return nil , err
@@ -665,10 +668,14 @@ func (o *RunOptions) createGeneratedObject(f cmdutil.Factory, cmd *cobra.Command
665
668
NewHelper (client , mapping ).
666
669
DryRun (o .DryRunStrategy == cmdutil .DryRunServer ).
667
670
WithFieldManager (o .fieldManager ).
668
- Create (namespace , false , obj )
671
+ Create (o . Namespace , false , obj )
669
672
if err != nil {
670
673
return nil , err
671
674
}
675
+ } else {
676
+ if meta , err := meta .Accessor (actualObj ); err == nil && o .EnforceNamespace {
677
+ meta .SetNamespace (o .Namespace )
678
+ }
672
679
}
673
680
674
681
return & RunObject {
0 commit comments