Skip to content

Comments

Robot Upgrade: volcano chart upgrade from 1.9.0 to 1.14.1#3919

Open
weizhoublue wants to merge 1 commit intomainfrom
upgrade/volcano/1.14.1
Open

Robot Upgrade: volcano chart upgrade from 1.9.0 to 1.14.1#3919
weizhoublue wants to merge 1 commit intomainfrom
upgrade/volcano/1.14.1

Conversation

@weizhoublue
Copy link
Member

I am robot, upgrade: project volcano chart upgrade from 1.9.0 to 1.14.1

@gemini-code-assist
Copy link

Summary of Changes

Hello @weizhoublue, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request performs a significant upgrade of the Volcano Helm chart from version 1.9.0 to 1.14.1. The update introduces several new Custom Resource Definitions (CRDs) to enhance resource colocation, node sharding, and hypernode topology management. It also integrates new Kubernetes Validating and Mutating Admission Policies to enforce robust validation and mutation rules for various Volcano resources. Additionally, the changes include updates to scheduler configurations, Helm chart templates for improved customization and security, and expanded Grafana dashboards for better observability of Volcano's scheduling and resource utilization.

Highlights

  • Volcano Chart Version Upgrade: The Volcano Helm chart has been upgraded from version 1.9.0 to 1.14.1, reflecting the latest features and improvements.
  • New Custom Resource Definitions (CRDs): Introduced new CRDs for ColocationConfiguration, NodeShard, and HyperNode, expanding Volcano's capabilities in resource management and topology awareness.
  • Admission Policy Enhancements: Added new ValidatingAdmissionPolicies and MutatingAdmissionPolicies for various Volcano resources including HyperNodes, JobFlows, Jobs, PodGroups, Pods, and Queues, improving validation and mutation logic.
  • Scheduler Configuration Updates: Updated the volcano-scheduler-ci.conf with dynamic resource allocation and network topology aware plugins, and introduced a new agent-scheduler.conf.
  • Helm Chart Template Refinements: Modified Helm templates across admission, controller, scheduler, and Grafana components to support new custom configurations, common labels, security contexts, and IP family policies.
  • Observability Improvements: Updated existing Grafana dashboards and added new ones for scheduler internal metrics and queue-specific metrics, enhancing monitoring capabilities.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • charts/volcano/config
    • Updated the VERSION from 1.9.0 to 1.14.1.
  • charts/volcano/volcano/Chart.yaml
    • Updated appVersion and version fields to 1.14.1.
  • charts/volcano/volcano/charts/volcano/Chart.yaml
    • Updated appVersion and version fields to 1.14.1.
  • charts/volcano/volcano/charts/volcano/config/agent-scheduler.conf
    • Added a new scheduler configuration file for the agent.
  • charts/volcano/volcano/charts/volcano/config/volcano-scheduler-ci.conf
    • Added predicate.DynamicResourceAllocationEnable argument and network-topology-aware plugin to the predicates tier.
  • charts/volcano/volcano/charts/volcano/crd/bases/bus.volcano.sh_commands.yaml
    • Updated controller-gen version to v0.18.0.
    • Refined descriptions for APIVersion, Kind, blockOwnerDeletion, kind, name, and uid fields.
    • Removed creationTimestamp and the status block.
  • charts/volcano/volcano/charts/volcano/crd/bases/config.volcano.sh_colocationconfigurations.yaml
    • Added a new Custom Resource Definition for ColocationConfiguration.
  • charts/volcano/volcano/charts/volcano/crd/bases/nodeinfo.volcano.sh_numatopologies.yaml
    • Updated controller-gen version to v0.18.0.
    • Added minimum constraints to CPUInfo fields (core, numa, socket).
    • Refined descriptions for cpu topology and numa resource info.
    • Removed creationTimestamp and the status block.
  • charts/volcano/volcano/charts/volcano/crd/bases/scheduling.volcano.sh_podgroups.yaml
    • Updated controller-gen version to v0.18.0.
    • Added minimum constraint to minMember.
    • Refined descriptions for various fields.
    • Introduced new fields for networkTopology and subGroupPolicy within the spec.
    • Added minimum constraints and enum values for status fields (failed, running, succeeded, phase).
    • Removed creationTimestamp and the status block.
  • charts/volcano/volcano/charts/volcano/crd/bases/scheduling.volcano.sh_queues.yaml
    • Updated controller-gen version to v0.18.0.
    • Added additionalPrinterColumns for parent in v1beta1 version.
    • Refined descriptions for various fields.
    • Introduced new fields like dequeueStrategy, priority, and constraints for weight.
    • Added minimum constraints and enum values for status fields (completed, inqueue, pending, running, unknown, state).
    • Removed creationTimestamp and the status block.
  • charts/volcano/volcano/charts/volcano/crd/bases/shard.volcano.sh_nodeshards.yaml
    • Added a new Custom Resource Definition for NodeShard.
  • charts/volcano/volcano/charts/volcano/crd/bases/topology.volcano.sh_hypernodes.yaml
    • Added a new Custom Resource Definition for HyperNode.
  • charts/volcano/volcano/charts/volcano/crd/v1/bus.volcano.sh_commands.yaml
    • Updated controller-gen version to v0.18.0.
    • Refined descriptions for APIVersion, Kind, blockOwnerDeletion, kind, name, and uid fields.
    • Removed creationTimestamp and the status block.
  • charts/volcano/volcano/charts/volcano/crd/v1/config.volcano.sh_colocationconfigurations.yaml
    • Added a new Custom Resource Definition for ColocationConfiguration.
  • charts/volcano/volcano/charts/volcano/crd/v1/nodeinfo.volcano.sh_numatopologies.yaml
    • Updated controller-gen version to v0.18.0.
    • Added minimum constraints to CPUInfo fields (core, numa, socket).
    • Refined descriptions for cpu topology and numa resource info.
    • Removed creationTimestamp and the status block.
  • charts/volcano/volcano/charts/volcano/crd/v1/scheduling.volcano.sh_podgroups.yaml
    • Updated controller-gen version to v0.18.0.
    • Added minimum constraint to minMember.
    • Refined descriptions for various fields.
    • Introduced new fields for networkTopology and subGroupPolicy within the spec.
    • Added minimum constraints and enum values for status fields (failed, running, succeeded, phase).
    • Removed creationTimestamp and the status block.
  • charts/volcano/volcano/charts/volcano/crd/v1/scheduling.volcano.sh_queues.yaml
    • Updated controller-gen version to v0.18.0.
    • Added additionalPrinterColumns for parent in v1beta1 version.
    • Refined descriptions for various fields.
    • Introduced new fields like dequeueStrategy, priority, and constraints for weight.
    • Added minimum constraints and enum values for status fields (completed, inqueue, pending, running, unknown, state).
    • Removed creationTimestamp and the status block.
  • charts/volcano/volcano/charts/volcano/crd/v1/shard.volcano.sh_nodeshards.yaml
    • Added a new Custom Resource Definition for NodeShard.
  • charts/volcano/volcano/charts/volcano/crd/v1/topology.volcano.sh_hypernodes.yaml
    • Added a new Custom Resource Definition for HyperNode.
  • charts/volcano/volcano/charts/volcano/policy/hypernodes-validating.yaml
    • Added ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding for HyperNode resources.
  • charts/volcano/volcano/charts/volcano/policy/jobflows-validating.yaml
    • Added ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding for JobFlow resources.
  • charts/volcano/volcano/charts/volcano/policy/jobs-mutating.yaml
    • Added MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding for Job resources.
  • charts/volcano/volcano/charts/volcano/policy/jobs-validating.yaml
    • Added ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding for Job resources.
  • charts/volcano/volcano/charts/volcano/policy/podgroups-mutating.yaml
    • Added MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding for PodGroup resources.
  • charts/volcano/volcano/charts/volcano/policy/podgroups-validating.yaml
    • Added ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding for PodGroup resources.
  • charts/volcano/volcano/charts/volcano/policy/pods-mutating.yaml
    • Added MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding for Pod resources.
  • charts/volcano/volcano/charts/volcano/policy/pods-validating.yaml
    • Added ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding for Pod resources.
  • charts/volcano/volcano/charts/volcano/policy/queues-mutating.yaml
    • Added MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding for Queue resources.
  • charts/volcano/volcano/charts/volcano/policy/queues-validating.yaml
    • Added ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding for Queue resources.
  • charts/volcano/volcano/charts/volcano/templates/admission-init.yaml
    • Added a new Helm template for admission initialization resources (ServiceAccount, Role, RoleBinding, Job).
  • charts/volcano/volcano/charts/volcano/templates/admission.yaml
    • Updated admission controller configuration with common labels, new security context options, and scheduler name argument.
    • Removed secret-related rules from the admission ClusterRole.
    • Added conditional inclusion of namespace resources for podgroup mutation.
    • Updated image path to include image_registry.
  • charts/volcano/volcano/charts/volcano/templates/agent.yaml
    • Added a new Helm template for the Volcano agent DaemonSet, ServiceAccount, ClusterRole, and ClusterRoleBinding.
  • charts/volcano/volcano/charts/volcano/templates/agent_scheduler.yaml
    • Added a new Helm template for the Volcano agent scheduler Deployment, ServiceAccount, ClusterRole, ClusterRoleBinding, and Service.
  • charts/volcano/volcano/charts/volcano/templates/batch_v1alpha1_cronjob.yaml
    • Added a new Helm template for the CronJob CRD.
  • charts/volcano/volcano/charts/volcano/templates/config_v1alpha1_colocationconfigurations.yaml
    • Added a new Helm template for the ColocationConfiguration CRD.
  • charts/volcano/volcano/charts/volcano/templates/controllers.yaml
    • Updated controller configuration with common labels, new security context options, and extended ClusterRole permissions for new CRDs (CronJobs, HyperNodes, NodeShards, ColocationConfigurations) and resources.
    • Added a new Service and ConfigMap for the controller.
    • Updated image path to include image_registry.
  • charts/volcano/volcano/charts/volcano/templates/grafana.yaml
    • Updated Grafana ConfigMaps with common labels.
    • Added new Grafana dashboards for scheduler internal metrics and queue metrics.
    • Added IP family policy options to the Grafana Service.
  • charts/volcano/volcano/charts/volcano/templates/kubestatemetrics.yaml
    • Updated kube-state-metrics deployment with common labels and new nodeSelector configuration.
    • Updated image tag for kube-state-metrics to v2.0.0-beta.
    • Added IP family policy options to the kube-state-metrics Service.
  • charts/volcano/volcano/charts/volcano/templates/mutating_admission_policy.yaml
    • Added a new Helm template to enable MutatingAdmissionPolicies for jobs, queues, podgroups, and pods.
  • charts/volcano/volcano/charts/volcano/templates/prometheus.yaml
    • Updated Prometheus ClusterRole, ClusterRoleBinding, ConfigMap, Deployment, and Service with common labels and IP family policy options.
  • charts/volcano/volcano/charts/volcano/templates/scheduler.yaml
    • Updated scheduler configuration with common labels, new security context options, and extended ClusterRole permissions for new CRDs (HyperNodes, NodeShards) and resources.
    • Updated image path to include image_registry.
    • Added IP family policy options to the scheduler Service.
  • charts/volcano/volcano/charts/volcano/templates/shard_v1alpha1_nodeshards.yaml
    • Added a new Helm template for the NodeShard CRD.
  • charts/volcano/volcano/charts/volcano/templates/topology_v1alpha1_hypernodes.yaml
    • Added a new Helm template for the HyperNode CRD.
  • charts/volcano/volcano/charts/volcano/templates/validating_admission_policy.yaml
    • Added a new Helm template to enable ValidatingAdmissionPolicies for jobs, queues, podgroups, pods, hypernodes, and jobflows.
  • charts/volcano/volcano/charts/volcano/templates/vcjob_editor_role.yaml
    • Added a new Helm template for the vcjob-editor-role ClusterRole.
  • charts/volcano/volcano/charts/volcano/templates/vcjob_viewer_role.yaml
    • Added a new Helm template for the vcjob-viewer-role ClusterRole.
  • charts/volcano/volcano/charts/volcano/values.yaml
    • Updated image_tag_version to v1.14.0.
    • Added image_registry field.
    • Introduced numerous new custom configuration options for agent, agent scheduler, admission, controller, and scheduler components, including security contexts, API QPS/burst, worker threads, feature gates, and sharding.
    • Added vap_enable and map_enable flags for Validating/Mutating Admission Policies.
    • Introduced common_labels and aggregationRule_labels for consistent labeling.
    • Added IP family policy options for services.
    • Updated enabled_admissions list to include new admission paths.
  • charts/volcano/volcano/values.schema.json
    • Updated the schema to reflect all new fields and types introduced in values.yaml.
Activity
  • The pull request was created by the bot 'weizhoublue' to perform an automated upgrade of the Volcano chart.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the Volcano Helm chart from version 1.9.0 to 1.14.1. The changes are extensive, including updates to CRD definitions, the introduction of new components like agent and agent-scheduler, and a move towards using ValidatingAdmissionPolicy and MutatingAdmissionPolicy for admission control. While this is a significant and valuable upgrade, I've identified a few critical and high-severity issues that need to be addressed. Specifically, there are problems with how container image paths are constructed, leading to invalid paths, and inconsistencies in the version tags used across the chart files. There's also a regression in the configurability of the kube-state-metrics image. Please review the detailed comments for suggestions on how to resolve these issues.

- -v={{.Values.custom.admission_log_level}}
- 2>&1
image: {{ .Values.admission.image.registry }}/{{ .Values.admission.image.repository }}:{{.Values.admission.image.tag }}
image: {{ .Values.basic.image_registry }}/{{ .Values.admission.image.registry }}/{{ .Values.admission.image.repository }}:{{.Values.admission.image.tag }}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The image path is constructed by concatenating basic.image_registry and admission.image.registry, which results in an invalid image path like docker.io/docker.m.daocloud.io/.... This will cause image pull failures.

A similar issue exists in templates/controllers.yaml and templates/scheduler.yaml.

Please correct the image path construction. You should likely remove the {{ .Values.basic.image_registry }}/ prefix and rely on the component-specific registry value.

          image: {{ .Values.admission.image.registry }}/{{ .Values.admission.image.repository }}:{{.Values.admission.image.tag }}

- --logtostderr
- --enable-healthz=true
- --leader-elect={{ .Values.custom.leader_elect_enable }}
image: {{ .Values.basic.image_registry }}/{{ .Values.controller.image.registry }}/{{ .Values.controller.image.repository }}:{{.Values.controller.image.tag }}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The image path is constructed by concatenating basic.image_registry and controller.image.registry, which results in an invalid image path like docker.io/docker.m.daocloud.io/.... This will cause image pull failures.

Please correct the image path construction by removing the {{ .Values.basic.image_registry }}/ prefix.

          image: {{ .Values.controller.image.registry }}/{{ .Values.controller.image.repository }}:{{.Values.controller.image.tag }}

containers:
- name: {{ .Release.Name }}-scheduler
image: {{ .Values.scheduler.image.registry }}/{{ .Values.scheduler.image.repository }}:{{.Values.scheduler.image.tag }}
image: {{ .Values.basic.image_registry }}/{{ .Values.scheduler.image.registry }}/{{ .Values.scheduler.image.repository }}:{{.Values.scheduler.image.tag }}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The image path is constructed by concatenating basic.image_registry and scheduler.image.registry, which results in an invalid image path like docker.io/docker.m.daocloud.io/.... This will cause image pull failures.

Please correct the image path construction by removing the {{ .Values.basic.image_registry }}/ prefix.

          image: {{ .Values.scheduler.image.registry }}/{{ .Values.scheduler.image.repository }}:{{.Values.scheduler.image.tag }}

image_pull_secret: ""
image_pull_policy: "Always"
image_tag_version: "v1.9.0"
image_tag_version: "v1.14.0"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

There is a version inconsistency. The PR upgrades to 1.14.1, which is reflected in Chart.yaml, but this values.yaml file specifies v1.14.0 as the image_tag_version. This should be updated to v1.14.1 for consistency. This also applies to the specific image tags for controller, scheduler, and admission components later in this file.

  image_tag_version: "v1.14.1"

image_pull_secret: ""
image_pull_policy: "Always"
image_tag_version: "v1.9.0"
image_tag_version: "v1.14.0"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

There is a version inconsistency. The PR upgrades to 1.14.1, which is reflected in Chart.yaml, but this values.yaml file specifies v1.14.0 as the image_tag_version. This should be updated to v1.14.1 for consistency. This also applies to the specific image tags for controller, scheduler, and admission components later in this file.

    image_tag_version: "v1.14.1"

spec:
containers:
- image: {{ .Values.kubeStateMetrics.image.registry }}/{{ .Values.kubeStateMetrics.image.repository }}:{{.Values.kubeStateMetrics.image.tag }}
- image: docker.io/volcanosh/kube-state-metrics:v2.0.0-beta

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The kube-state-metrics image is now hardcoded. Previously, it was configurable via values.yaml. This change removes the flexibility to customize the image registry, repository, or tag. Please restore the template to use values from values.yaml. You may also need to update the kubeStateMetrics values in values.yaml to use the desired version.

        - image: {{ .Values.kubeStateMetrics.image.registry }}/{{ .Values.kubeStateMetrics.image.repository }}:{{.Values.kubeStateMetrics.image.tag }}

@github-actions github-actions bot force-pushed the upgrade/volcano/1.14.1 branch 7 times, most recently from 1a06c62 to 7ca2301 Compare February 19, 2026 20:19
Signed-off-by: robot <robot@example.com>
@github-actions github-actions bot force-pushed the upgrade/volcano/1.14.1 branch from 7ca2301 to 86587bc Compare February 20, 2026 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants