复制一个configmap,但在同一命名空间中使用另一个名称(kubernetes/kubectl)

复制一个configmap,但在同一命名空间中使用另一个名称(kubernetes/kubectl),kubernetes,Kubernetes,我在命名空间中有一个configmapmy config,需要制作一个副本(一些临时实验的一部分),但使用了另一个名称,因此我最终得到了: my-config my-config-copy 我可以这样做: kubectl get cm my-config -o yaml > my-config-copy.yaml 手动编辑名称,后跟: kubectl create -f my-config-copy.yaml 但是有没有一种方法可以在一行中自动完成呢 我可以通过以下方式获得一些信息:

我在命名空间中有一个configmap
my config
,需要制作一个副本(一些临时实验的一部分),但使用了另一个名称,因此我最终得到了:

my-config
my-config-copy
我可以这样做:

kubectl get cm my-config -o yaml > my-config-copy.yaml
手动编辑名称,后跟:

kubectl create -f my-config-copy.yaml
但是有没有一种方法可以在一行中自动完成呢

我可以通过以下方式获得一些信息:

kubectl get cm my-config --export -o yaml | kubectl apply -f -
但是我缺少新名称的部分(因为名称是不可变的,我知道这不是标准行为)

也最好不使用导出,因为:

Flag--导出已弃用,此标志已弃用,将在将来删除


有什么建议吗?

您可以通过组合kubectl的
补丁
应用
功能来实现这一点

 kubectl patch cm source-cm -p '{"metadata":{ "name":"target-cm"}}' --dry-run=client -o yaml | kubectl apply -f -

源cm
目标cm
是配置映射名称

您可以通过组合kubectl的
补丁
应用
功能来实现这一点

 kubectl patch cm source-cm -p '{"metadata":{ "name":"target-cm"}}' --dry-run=client -o yaml | kubectl apply -f -

源cm
目标cm
是配置映射名称

Hello@u123。您考虑过使用这个命令吗?它用于将内容复制到容器中。我的帖子是关于k8s资源/清单的。您考虑过使用这个命令吗?它用于将内容复制到容器中。我的帖子是关于k8s资源/清单的。它给出了:Error:invalid参数“client”for--dry run”flag:strconv.ParseBool:parsing“client”:无效语法,然后我尝试使用--dry run=true创建复制的对象可能您使用的是旧版本“不推荐使用--dry run标志的布尔值和未设置值,并且在将来的版本中将需要一个值--dry run=server | client | none。”这将给出:错误:无效参数--dry run标志的“client”:strconv.ParseBool:parsing“client”“:无效语法,然后我尝试使用--dry run=true创建复制的对象可能您使用的是旧版本”“不推荐使用--dry run标志的布尔值和未设置值,并且在将来的版本中将不需要--dry run=server | client | none。”