//运行
func runDeleteCluster(out io.Writer, configAccess clientcmd.ConfigAccess, cmd *cobra.Command) error {
config, err := configAccess.GetStartingConfig()//加载config
if err != nil {
return err
}
args := cmd.Flags().Args()//获取参数
if len(args) != 1 {//参数不为1个报错
cmd.Help()
return nil
}
configFile := configAccess.GetDefaultFilename()//获取config文件名称
if configAccess.IsExplicitFile() {//如果config文件使用--kubeconfig指定的
configFile = configAccess.GetExplicitFile()// 获取指定的config文件名称
}
name := args[0]//获取cluster名称
_, ok := config.Clusters[name]//判断cluster是否存在
if !ok {// 如果不存在则报错
return fmt.Errorf("cannot delete cluster %s, not in %s", name, configFile)
}
delete(config.Clusters, name)//从config中删除cluster
if err := clientcmd.ModifyConfig(configAccess, *config, true); err != nil {//把配置写回文件
return err
}
fmt.Fprintf(out, "deleted cluster %s from %s\n", name, configFile)//打印结果
return nil
}