mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Merge pull request #88998 from zhouya0/kubectl_apply_generate_name_error_message
Add kubectl apply generate name error message
This commit is contained in:
commit
dbef5e3e31
@ -399,6 +399,14 @@ func (o *ApplyOptions) applyOneObject(info *resource.Info) error {
|
|||||||
klog.V(4).Infof("error recording current command: %v", err)
|
klog.V(4).Infof("error recording current command: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(info.Name) == 0 {
|
||||||
|
metadata, _ := meta.Accessor(info.Object)
|
||||||
|
generatedName := metadata.GetGenerateName()
|
||||||
|
if len(generatedName) > 0 {
|
||||||
|
return fmt.Errorf("from %s: cannot use generate name with apply", generatedName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
helper := resource.NewHelper(info.Client, info.Mapping).
|
helper := resource.NewHelper(info.Client, info.Mapping).
|
||||||
DryRun(o.DryRunStrategy == cmdutil.DryRunServer).
|
DryRun(o.DryRunStrategy == cmdutil.DryRunServer).
|
||||||
WithFieldManager(o.FieldManager)
|
WithFieldManager(o.FieldManager)
|
||||||
|
@ -97,6 +97,7 @@ const (
|
|||||||
filenameRCPatchTest = "../../../testdata/apply/patch.json"
|
filenameRCPatchTest = "../../../testdata/apply/patch.json"
|
||||||
dirName = "../../../testdata/apply/testdir"
|
dirName = "../../../testdata/apply/testdir"
|
||||||
filenameRCJSON = "../../../testdata/apply/rc.json"
|
filenameRCJSON = "../../../testdata/apply/rc.json"
|
||||||
|
filenamePodGeneratedName = "../../../testdata/apply/pod-generated-name.yaml"
|
||||||
|
|
||||||
filenameWidgetClientside = "../../../testdata/apply/widget-clientside.yaml"
|
filenameWidgetClientside = "../../../testdata/apply/widget-clientside.yaml"
|
||||||
filenameWidgetServerside = "../../../testdata/apply/widget-serverside.yaml"
|
filenameWidgetServerside = "../../../testdata/apply/widget-serverside.yaml"
|
||||||
@ -1410,3 +1411,22 @@ func TestDontAllowForceApplyWithServerDryRun(t *testing.T) {
|
|||||||
|
|
||||||
t.Fatalf(`expected error "%s"`, expectedError)
|
t.Fatalf(`expected error "%s"`, expectedError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDontAllowApplyWithPodGeneratedName(t *testing.T) {
|
||||||
|
expectedError := "error: from testing-: cannot use generate name with apply"
|
||||||
|
cmdutil.BehaviorOnFatal(func(str string, code int) {
|
||||||
|
if str != expectedError {
|
||||||
|
t.Fatalf(`expected error "%s", but got "%s"`, expectedError, str)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
tf := cmdtesting.NewTestFactory().WithNamespace("test")
|
||||||
|
defer tf.Cleanup()
|
||||||
|
tf.ClientConfigVal = cmdtesting.DefaultClientConfig()
|
||||||
|
|
||||||
|
ioStreams, _, _, _ := genericclioptions.NewTestIOStreams()
|
||||||
|
cmd := NewCmdApply("kubectl", tf, ioStreams)
|
||||||
|
cmd.Flags().Set("filename", filenamePodGeneratedName)
|
||||||
|
cmd.Flags().Set("dry-run", "client")
|
||||||
|
cmd.Run(cmd, []string{})
|
||||||
|
}
|
||||||
|
8
staging/src/k8s.io/kubectl/testdata/apply/pod-generated-name.yaml
vendored
Normal file
8
staging/src/k8s.io/kubectl/testdata/apply/pod-generated-name.yaml
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
kind: Pod
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
generateName: testing-
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: nginx
|
||||||
|
name: nginx
|
Loading…
Reference in New Issue
Block a user