You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

kubernetes-sigs/scheduler-plugins代码生成脚本警告及DeepCopy生成问题求助

问题描述

我正在为kubernetes-sigs/scheduler-plugins开发新插件,参考了官方开发文档和ScoreByLabel插件的示例实现。已按示例添加ScoreByLabel插件,但执行./hack/update-codegen.sh命令时出现一系列废弃警告,虽代码生成看似仍在运行,但希望解决这些警告,确保能正常为新增结构体生成DeepCopy等函数。

警告内容如下:

Generating deepcopy funcs
Generating defaulters
Generating conversions
WARNING: generate-groups.sh is deprecated.
WARNING: Please use k8s.io/code-generator/kube_codegen.sh instead.

WARNING: Specifying "all" as a generator is deprecated.
WARNING: Please list the specific generators needed.
WARNING: "all" is now an alias for "applyconfiguration,client,deepcopy,informer,lister"; new code generators WILL NOT be added to this set

WARNING: generate-internal-groups.sh is deprecated.
WARNING: Please use k8s.io/code-generator/kube_codegen.sh instead.

Generating deepcopy funcs
Generating apply configuration for scheduling:v1alpha1 at sigs.k8s.io/scheduler-plugins/pkg/generated/applyconfiguration
Generating clientset for scheduling:v1alpha1 at sigs.k8s.io/scheduler-plugins/pkg/generated/clientset
Generating listers for scheduling:v1alpha1 at sigs.k8s.io/scheduler-plugins/pkg/generated/listers
Generating informers for scheduling:v1alpha1 at sigs.k8s.io/scheduler-plugins/pkg/generated/informers
解决方案

这些警告源于当前使用的代码生成脚本和参数已被Kubernetes官方废弃,需调整./hack/update-codegen.sh脚本内容适配新工具链:

  • 替换废弃的生成脚本
    将脚本中调用generate-groups.sh或generate-internal-groups.sh的部分,替换为官方推荐的kube_codegen.sh,该脚本是code-generator的统一入口,支持外部与内部API组的代码生成。

  • 替换"all"为具体生成器列表
    不再使用all作为生成器参数,明确列出所需的生成器。根据你的需求(生成DeepCopy、defaulters、conversions及客户端相关代码),可指定:

    • 仅基础CRD相关生成:deepcopy,defaulter,conversion
    • 包含客户端、informer、lister:deepcopy,client,informer,lister,applyconfiguration
  • 调整脚本参数格式
    kube_codegen.sh的参数格式略有不同,典型调用示例如下:

    "${CODEGEN_PKG}/kube_codegen.sh" \
      --boilerplate "${BOILERPLATE_PATH}" \
      --output-dir "${OUTPUT_DIR}" \
      --output-pkg "${OUTPUT_PKG}" \
      --deepcopy \
      --defaulter \
      --conversion \
      --client \
      --informer \
      --lister \
      "${API_PKG}"
    

    需根据scheduler-plugins的目录结构,调整CODEGEN_PKG、BOILERPLATE_PATH、OUTPUT_DIR、OUTPUT_PKG、API_PKG等变量的路径值。

  • 验证生成结果
    修改脚本后重新执行./hack/update-codegen.sh,检查警告是否消失,同时确认新增结构体对应的DeepCopy、defaulter等函数是否正常生成在pkg/generated目录下。

注:当前警告仅为工具废弃提示,实际代码生成可能已完成,但为兼容后续code-generator版本更新,建议尽快完成脚本迁移。

内容的提问来源于stack exchange,提问作者Kiran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:46:21