Skip to content

feat(check): add Longhorn upgrade pre-check command - #605

Draft
davidcheng0922 wants to merge 1 commit into
longhorn:masterfrom
davidcheng0922:issue-8343-precheck-before-upgrade
Draft

davidcheng0922 wants to merge 1 commit into
longhorn:masterfrom
davidcheng0922:issue-8343-precheck-before-upgrade

Conversation

@davidcheng0922

Copy link
Copy Markdown
Contributor

Which issue(s) this PR fixes:

longhorn/longhorn#8343

What this PR does / why we need it:

Adds longhornctl check upgrade, a pre-check for V2 instance-manager rolling live upgrades.

The command validates V2 feature availability, upgrade compatibility, attached-volume constraints, volume health, replica topology, and required instance-manager/node/block-disk readiness. It reports unsupported and temporarily not-ready conditions before an upgrade starts.

Special notes for your reviewer:

This command is intentionally V2-only. V1 engine-image upgrades are volume-by-volume and are not covered by this check.

Additional documentation or context

Usage:

longhornctl check upgrade

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Critical readiness validation and additional moderate correctness issues remain unresolved.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 High severity

Open (1)
What changed in this PR

Adds longhornctl check upgrade for V2 instance-manager live-upgrade readiness validation.

Changes:

  • Adds upgrade-check command wiring and constants.
  • Validates volumes, replicas, nodes, disks, and instance managers.
  • Refreshes vendored Kubernetes, Longhorn, and third-party dependencies.
File Summary
vendor/​k8s.io/​mount-utils/​README.md Vendored dependency update
vendor/​k8s.io/​mount-utils/​mount_linux.go Vendored dependency update
vendor/​k8s.io/​mount-utils/​CONTRIBUTING.md Vendored dependency update
vendor/​k8s.io/​kube-openapi/​pkg/​internal/​serialization.go Vendored dependency update
vendor/​k8s.io/​component-base/​version/​base.go Vendored dependency update
vendor/​k8s.io/​client-go/​util/​retry/​util.go Vendored dependency update
vendor/​k8s.io/​client-go/​util/​retry/​OWNERS Vendored dependency update
vendor/​k8s.io/​client-go/​util/​jsonpath/​jsonpath.go Vendored dependency update
vendor/​k8s.io/​client-go/​transport/​transport.go Vendored dependency update
vendor/​k8s.io/​client-go/​transport/​spdy/​spdy.go Vendored dependency update
vendor/​k8s.io/​client-go/​transport/​OWNERS Vendored dependency update
vendor/​k8s.io/​client-go/​tools/​watch/​retrywatcher.go Vendored dependency update
vendor/​k8s.io/​client-go/​tools/​pager/​pager.go Vendored dependency update
vendor/​k8s.io/​client-go/​tools/​internal/​events/​interfaces.go Vendored dependency update
vendor/​k8s.io/​client-go/​tools/​clientcmd/​api/​v1/​doc.go Vendored dependency update
vendor/​k8s.io/​client-go/​tools/​cache/​store.go Vendored dependency update
vendor/​k8s.io/​client-go/​tools/​cache/​reflector.go Vendored dependency update
vendor/​k8s.io/​client-go/​tools/​cache/​OWNERS Vendored dependency update
vendor/​k8s.io/​client-go/​tools/​cache/​informer_metrics.go Vendored dependency update
vendor/​k8s.io/​client-go/​rest/​transport.go Vendored dependency update
vendor/​k8s.io/​client-go/​rest/​request.go Vendored dependency update
vendor/​k8s.io/​client-go/​rest/​OWNERS Vendored dependency update
vendor/​k8s.io/​client-go/​rest/​config.go Vendored dependency update
vendor/​k8s.io/​client-go/​rest/​client.go Vendored dependency update
vendor/​k8s.io/​client-go/​plugin/​pkg/​client/​auth/​exec/​exec.go Vendored dependency update
vendor/​k8s.io/​client-go/​pkg/​apis/​clientauthentication/​v1beta1/​types.go Vendored dependency update
vendor/​k8s.io/​client-go/​pkg/​apis/​clientauthentication/​v1/​types.go Vendored dependency update
vendor/​k8s.io/​client-go/​openapi/​OWNERS Vendored dependency update
vendor/​k8s.io/​client-go/​listers/​scheduling/​v1beta1/​expansion_generated.go Vendored dependency update
vendor/​k8s.io/​client-go/​listers/​scheduling/​v1alpha3/​expansion_generated.go Vendored dependency update
vendor/​k8s.io/​client-go/​listers/​resource/​v1/​expansion_generated.go Vendored dependency update
vendor/​k8s.io/​client-go/​listers/​certificates/​v1/​expansion_generated.go Vendored dependency update
vendor/​k8s.io/​client-go/​kubernetes/​typed/​storagemigration/​v1/​generated_expansion.go Vendored dependency update
vendor/​k8s.io/​client-go/​kubernetes/​typed/​storagemigration/​v1/​doc.go Vendored dependency update
vendor/​k8s.io/​client-go/​kubernetes/​typed/​scheduling/​v1beta1/​generated_expansion.go Vendored dependency update
vendor/​k8s.io/​client-go/​kubernetes/​typed/​scheduling/​v1alpha3/​generated_expansion.go Vendored dependency update
vendor/​k8s.io/​client-go/​kubernetes/​typed/​scheduling/​v1alpha3/​doc.go Vendored dependency update
vendor/​k8s.io/​client-go/​kubernetes/​typed/​resource/​v1/​resource_client.go Vendored dependency update
vendor/​k8s.io/​client-go/​kubernetes/​typed/​resource/​v1/​generated_expansion.go Vendored dependency update
vendor/​k8s.io/​client-go/​kubernetes/​typed/​lifecycle/​v1alpha1/​doc.go Vendored dependency update
vendor/​k8s.io/​client-go/​kubernetes/​typed/​certificates/​v1/​generated_expansion.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​scheduling/​v1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​node/​v1beta1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​node/​v1alpha1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​node/​v1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​events/​v1beta1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​events/​v1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​discovery/​v1beta1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​discovery/​v1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​coordination/​v1alpha2/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​coordination/​v1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​certificates/​v1alpha1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​batch/​v1beta1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​informers/​apiserverinternal/​v1alpha1/​interface.go Vendored dependency update
vendor/​k8s.io/​client-go/​dynamic/​simple.go Vendored dependency update
vendor/​k8s.io/​client-go/​discovery/​helper.go Vendored dependency update
vendor/​k8s.io/​client-go/​discovery/​cached/​disk/​round_tripper.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storagemigration/​v1beta1/​storageversionmigration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1beta1/​volumeattributesclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1beta1/​volumeattachment.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1beta1/​storageclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1beta1/​csistoragecapacity.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1beta1/​csidriver.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1alpha1/​volumeattributesclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1alpha1/​volumeattachment.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1alpha1/​csistoragecapacity.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1/​volumeattributesclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1/​volumeattachment.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1/​storageclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1/​csistoragecapacity.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​storage/​v1/​csidriver.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​scheduling/​v1beta1/​priorityclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​scheduling/​v1alpha3/​topologyconstraint.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​scheduling/​v1alpha3/​podgroupschedulingconstraints.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​scheduling/​v1/​priorityclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​resourceslice.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​resourcepool.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​resourceclaimtemplate.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​resourceclaim.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​devicetaintrule.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​deviceclassspec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​deviceclassconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​deviceclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​deviceclaimconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta2/​deviceallocationconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta1/​resourceslice.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta1/​resourcepool.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta1/​resourceclaimtemplate.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta1/​resourceclaim.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta1/​deviceclassspec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta1/​deviceclassconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta1/​deviceclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta1/​deviceclaimconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1beta1/​deviceallocationconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1alpha3/​resourcepoolstatusrequest.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1alpha3/​devicetaintrule.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1/​resourceslice.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1/​resourcepool.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1/​resourceclaimtemplate.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1/​resourceclaim.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1/​deviceclassspec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1/​deviceclassconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1/​deviceclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1/​deviceclaimconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​resource/​v1/​deviceallocationconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​rbac/​v1beta1/​roleref.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​rbac/​v1beta1/​role.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​rbac/​v1beta1/​aggregationrule.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​rbac/​v1alpha1/​roleref.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​rbac/​v1alpha1/​role.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​rbac/​v1alpha1/​aggregationrule.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​rbac/​v1/​roleref.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​rbac/​v1/​role.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​rbac/​v1/​aggregationrule.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​policy/​v1beta1/​eviction.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​policy/​v1/​eviction.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​node/​v1beta1/​runtimeclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​node/​v1alpha1/​runtimeclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​node/​v1/​runtimeclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1beta1/​servicecidrspec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1beta1/​servicecidr.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1beta1/​parentreference.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1beta1/​ipaddressspec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1beta1/​ipaddress.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1beta1/​ingressrulevalue.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1beta1/​ingressrule.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1beta1/​ingressclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1beta1/​ingress.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​servicecidrspec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​servicecidr.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​parentreference.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​networkpolicy.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​ipaddressspec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​ipaddress.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​ingressrulevalue.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​ingressrule.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​ingressclass.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​networking/​v1/​ingress.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​meta/​v1/​deleteoptions.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​meta/​v1/​condition.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta3/​prioritylevelconfigurationcondition.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta3/​prioritylevelconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta3/​flowschemacondition.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta3/​flowschema.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta2/​prioritylevelconfigurationcondition.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta2/​prioritylevelconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta2/​flowschemacondition.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta2/​flowschema.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta1/​prioritylevelconfigurationcondition.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta1/​prioritylevelconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta1/​flowschemacondition.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1beta1/​flowschema.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1/​prioritylevelconfigurationcondition.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1/​prioritylevelconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1/​flowschemacondition.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​flowcontrol/​v1/​flowschema.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​extensions/​v1beta1/​scale.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​extensions/​v1beta1/​replicaset.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​extensions/​v1beta1/​networkpolicy.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​extensions/​v1beta1/​ingressrule.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​extensions/​v1beta1/​ingress.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​extensions/​v1beta1/​deployment.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​extensions/​v1beta1/​daemonset.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​events/​v1beta1/​event.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​events/​v1/​event.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​discovery/​v1beta1/​endpointslice.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​discovery/​v1/​endpointslice.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​volume.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​serviceaccount.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​service.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​secretprojection.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​secretkeyselector.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​secretenvsource.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​secret.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​resourcequota.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​replicationcontroller.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​probe.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​podtemplate.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​podsecuritycontext.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​pod.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​persistentvolumespec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​persistentvolumeclaim.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​persistentvolume.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​node.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​namespace.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​limitrange.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​event.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​ephemeralcontainer.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​endpoints.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​configmapprojection.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​configmapkeyselector.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​configmapenvsource.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​core/​v1/​componentstatus.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​coordination/​v1beta1/​leasespec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​coordination/​v1beta1/​leasecandidate.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​coordination/​v1beta1/​lease.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​coordination/​v1alpha2/​leasecandidate.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​coordination/​v1/​leasespec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​coordination/​v1/​lease.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​certificates/​v1beta1/​podcertificaterequest.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​certificates/​v1beta1/​certificatesigningrequest.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​certificates/​v1/​certificatesigningrequest.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​batch/​v1beta1/​cronjob.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​batch/​v1/​jobstatus.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​batch/​v1/​job.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​batch/​v1/​cronjob.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​autoscaling/​v2/​objectmetricstatus.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​autoscaling/​v2/​metricvaluestatus.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​autoscaling/​v2/​metricstatus.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​autoscaling/​v2/​horizontalpodautoscaler.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​autoscaling/​v1/​scale.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​autoscaling/​v1/​horizontalpodautoscalerspec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​autoscaling/​v1/​horizontalpodautoscaler.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta2/​statefulset.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta2/​scale.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta2/​replicaset.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta2/​deployment.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta2/​daemonset.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta2/​controllerrevision.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta1/​statefulsetspec.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta1/​statefulset.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta1/​deployment.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1beta1/​controllerrevision.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1/​statefulset.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1/​replicaset.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1/​deployment.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1/​daemonset.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apps/​v1/​controllerrevision.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​apiserverinternal/​v1alpha1/​storageversion.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1beta1/​validatingwebhookconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1beta1/​validatingadmissionpolicybinding.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1beta1/​validatingadmissionpolicy.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1beta1/​namedrulewithoperations.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1beta1/​mutatingwebhookconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1beta1/​mutatingadmissionpolicybinding.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1beta1/​mutatingadmissionpolicy.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1alpha1/​validatingadmissionpolicybinding.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1alpha1/​validatingadmissionpolicy.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1alpha1/​namedrulewithoperations.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1alpha1/​mutatingadmissionpolicybinding.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1alpha1/​mutatingadmissionpolicy.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1/​validatingwebhookconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1/​validatingadmissionpolicybinding.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1/​validatingadmissionpolicy.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1/​rulewithoperations.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1/​namedrulewithoperations.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1/​mutatingwebhookconfiguration.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1/​mutatingadmissionpolicybinding.go Vendored dependency update
vendor/​k8s.io/​client-go/​applyconfigurations/​admissionregistration/​v1/​mutatingadmissionpolicy.go Vendored dependency update
vendor/​k8s.io/​cli-runtime/​pkg/​resource/​metadata_decoder.go Vendored dependency update
vendor/​k8s.io/​cli-runtime/​pkg/​genericclioptions/​json_yaml_flags.go Vendored dependency update
vendor/​k8s.io/​cli-runtime/​pkg/​genericclioptions/​builder_flags.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​util/​intstr/​intstr.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​runtime/​serializer/​versioning/​versioning.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​runtime/​serializer/​json/​json.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​runtime/​codec.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​conversion/​queryparams/​convert.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​apis/​meta/​v1beta1/​types.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​apis/​meta/​v1/​validation/​doc.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​apis/​meta/​v1/​unstructured/​helpers.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​api/​validate/​subfield.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​api/​validate/​discriminator.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​api/​validate/​content/​kube.go Vendored dependency update
vendor/​k8s.io/​apimachinery/​pkg/​api/​resource/​quantity.go Vendored dependency update
vendor/​k8s.io/​api/​storagemigration/​v1/​doc.go Vendored dependency update
vendor/​k8s.io/​api/​scheduling/​v1beta1/​register.go Vendored dependency update
vendor/​k8s.io/​api/​scheduling/​v1/​types.go Vendored dependency update
vendor/​k8s.io/​api/​scheduling/​v1/​generated.proto Vendored dependency update
vendor/​k8s.io/​api/​resource/​v1/​register.go Vendored dependency update
vendor/​k8s.io/​api/​resource/​v1/​doc.go Vendored dependency update
vendor/​k8s.io/​api/​lifecycle/​v1alpha1/​doc.go Vendored dependency update
vendor/​k8s.io/​api/​extensions/​v1beta1/​doc.go Vendored dependency update
vendor/​k8s.io/​api/​events/​v1beta1/​generated.proto Vendored dependency update
vendor/​k8s.io/​api/​events/​v1/​generated.proto Vendored dependency update
vendor/​k8s.io/​api/​core/​v1/​zz_generated.prerelease-lifecycle.go Vendored dependency update
vendor/​k8s.io/​api/​core/​v1/​register.go Vendored dependency update
vendor/​k8s.io/​api/​certificates/​v1/​register.go Vendored dependency update
vendor/​k8s.io/​api/​batch/​v1/​zz_generated.model_name.go Vendored dependency update
vendor/​k8s.io/​api/​autoscaling/​v2/​zz_generated.deepcopy.go Vendored dependency update
vendor/​k8s.io/​api/​autoscaling/​v1/​zz_generated.deepcopy.go Vendored dependency update
vendor/​k8s.io/​api/​authentication/​v1alpha1/​types.go Vendored dependency update
vendor/​k8s.io/​api/​authentication/​v1alpha1/​generated.proto Vendored dependency update
vendor/​k8s.io/​api/​apiserverinternal/​v1alpha1/​types.go Vendored dependency update
vendor/​k8s.io/​api/​apiserverinternal/​v1alpha1/​generated.proto Vendored dependency update
vendor/​k8s.io/​api/​admission/​v1beta1/​types.go Vendored dependency update
vendor/​k8s.io/​api/​admission/​v1/​types.go Vendored dependency update
vendor/​golang.org/​x/​sys/​windows/​types_windows.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_s390x.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_riscv64.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_ppc64le.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_ppc64.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_ppc.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_mipsle.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_mips64le.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_mips64.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_mips.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_loong64.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_arm64.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_arm.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_amd64.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​zerrors_linux_386.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​syscall.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​syscall_linux.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​syscall_bsd.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​ioctl_linux.go Vendored dependency update
vendor/​golang.org/​x/​sys/​unix/​ifreq_linux.go Vendored dependency update
vendor/​golang.org/​x/​sys/​cpu/​cpu_sparc64.go Vendored dependency update
vendor/​golang.org/​x/​sys/​cpu/​cpu_riscv64.s Vendored dependency update
vendor/​golang.org/​x/​sys/​cpu/​cpu_other_x86.go Vendored dependency update
vendor/​golang.org/​x/​sys/​cpu/​cpu_gc_riscv64.go Vendored dependency update
vendor/​golang.org/​x/​sync/​semaphore/​semaphore.go Vendored dependency update
vendor/​github.com/​moby/​term/​term_unix.go Vendored dependency update
vendor/​github.com/​longhorn/​longhorn-manager/​util/​util.go Vendored dependency update
vendor/​github.com/​longhorn/​longhorn-manager/​util/​informer_factory.go Vendored dependency update
vendor/​github.com/​longhorn/​longhorn-manager/​types/​deploy.go Vendored dependency update
vendor/​github.com/​longhorn/​longhorn-manager/​k8s/​pkg/​client/​clientset/​versioned/​typed/​longhorn/​v1beta2/​generated_expansion.go Vendored dependency update
vendor/​github.com/​longhorn/​longhorn-manager/​k8s/​pkg/​client/​applyconfiguration/​longhorn/​v1beta2/​v2dataenginespec.go Vendored dependency update
vendor/​github.com/​longhorn/​longhorn-manager/​k8s/​pkg/​apis/​longhorn/​v1beta2/​node.go Vendored dependency update
vendor/​github.com/​longhorn/​longhorn-manager/​k8s/​pkg/​apis/​longhorn/​v1beta2/​enginefrontend.go Vendored dependency update
vendor/​github.com/​longhorn/​longhorn-manager/​k8s/​pkg/​apis/​longhorn/​v1beta2/​backupvolume.go Vendored dependency update
vendor/​github.com/​go-openapi/​swag/​revive.toml Vendored dependency update
vendor/​github.com/​go-openapi/​swag/​pools/​README.md Vendored dependency update
vendor/​github.com/​go-openapi/​swag/​pools/​debug.go Vendored dependency update
vendor/​github.com/​go-openapi/​swag/​loading_iface.go Vendored dependency update
vendor/​github.com/​go-openapi/​swag/​go.work Vendored dependency update
vendor/​github.com/​go-openapi/​swag/​fileutils/​file.go Vendored dependency update
vendor/​github.com/​go-openapi/​swag/​.golangci.yml Vendored dependency update
vendor/​github.com/​go-openapi/​swag/​.gitignore Vendored dependency update
vendor/​github.com/​go-openapi/​jsonreference/​reference.go Vendored dependency update
vendor/​github.com/​go-openapi/​jsonreference/​NOTICE Vendored dependency update
vendor/​github.com/​go-openapi/​jsonreference/​.golangci.yml Vendored dependency update
vendor/​github.com/​go-openapi/​jsonreference/​.gitignore Vendored dependency update
vendor/​github.com/​go-openapi/​jsonpointer/​NOTICE Vendored dependency update
vendor/​github.com/​go-openapi/​jsonpointer/​jsonname/​ifaces.go Vendored dependency update
vendor/​github.com/​go-openapi/​jsonpointer/​jsonname/​doc.go Vendored dependency update
vendor/​github.com/​go-openapi/​jsonpointer/​.golangci.yml Vendored dependency update
vendor/​github.com/​go-openapi/​jsonpointer/​.gitignore Vendored dependency update
vendor/​github.com/​go-logr/​logr/​slogsink.go Vendored dependency update
vendor/​github.com/​go-logr/​logr/​slogr.go Vendored dependency update
vendor/​github.com/​go-logr/​logr/​sloghandler.go Vendored dependency update
vendor/​github.com/​go-logr/​logr/​context_slog.go Vendored dependency update
vendor/​github.com/​go-logr/​logr/​context_noslog.go Vendored dependency update
vendor/​github.com/​fxamacker/​cbor/​v2/​tag.go Vendored dependency update
vendor/​github.com/​fxamacker/​cbor/​v2/​simplevalue.go Vendored dependency update
pkg/​consts/​cmd.go Adds the upgrade subcommand constant

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread pkg/upgrade/checker.go Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

One or more issues must be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
Resolved since last review (1)

Comment thread pkg/upgrade/checker.go Resolved
@davidcheng0922
davidcheng0922 force-pushed the issue-8343-precheck-before-upgrade branch from 7cbc792 to db0652a Compare September 21, 2026 08:23
@mergify

mergify Bot commented Sep 27, 2026

Copy link
Copy Markdown

This pull request is now in conflict. Could you fix it @davidcheng0922? 🙏

@davidcheng0922
davidcheng0922 force-pushed the issue-8343-precheck-before-upgrade branch 2 times, most recently from 2c7712e to a7c01bc Compare October 14, 2026 07:29
@davidcheng0922
davidcheng0922 requested a lite review from Copilot October 14, 2026 07:32

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Critical compilation and overlay semantics issues remain, along with multiple upgrade-readiness and error-reporting defects.

5 open findings

🧠 Review effort: Lite

Comment thread pkg/upgrade/checker.go Resolved
Comment thread cmd/remote/subcmd/check.go Resolved
Comment thread pkg/upgrade/checker.go Resolved
Comment thread pkg/upgrade/checker.go Resolved
@codecov

codecov Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 5.39683% with 298 lines in your changes missing coverage. Please review.
✅ Project coverage is 6.38%. Comparing base (9529a41) to head (697c937).

Files with missing lines Patch % Lines
pkg/upgrade/checker.go 6.74% 234 Missing and 1 partial ⚠️
cmd/remote/subcmd/check.go 0.00% 33 Missing ⚠️
pkg/utils/longhorn/client.go 0.00% 30 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff            @@
##           master    #605      +/-   ##
=========================================
- Coverage    6.44%   6.38%   -0.07%     
=========================================
  Files          57      58       +1     
  Lines        4904    5219     +315     
=========================================
+ Hits          316     333      +17     
- Misses       4581    4878     +297     
- Partials        7       8       +1     
Flag Coverage Δ
unittests 6.38% <5.39%> (-0.07%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Comment thread pkg/upgrade/checker.go Resolved
Comment thread pkg/upgrade/checker.go Resolved
Comment thread pkg/upgrade/checker.go Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Unresolved moderate findings remain in upgrade readiness checks and vendored overlay behavior.

1 open finding
3 resolved since last review

🧠 Review effort: Lite

Comment thread pkg/upgrade/checker.go Resolved
Longhorn: 8343

Signed-off-by: David Cheng <david.cheng@suse.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Moderate readiness-validation issues remain unresolved.

0 open findings

1 resolved since last review

🧠 Review effort: Lite

@mergify

mergify Bot commented Oct 14, 2026

Copy link
Copy Markdown

This pull request is now in conflict. Could you fix it @davidcheng0922? 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants