Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

CKS: upgradeKubernetesCluster fails on control node when binaries ISO ships headlamp.yaml instead of dashboard.yaml

Đang mở Phù hợp với người mới
#14,244 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
68/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
kubernetes, shell
Lĩnh vực
devops, infrastructure

Hướng nghiên cứu

Bắt đầu với script/upgrade-kubernetes.sh và so sánh cách xử lý dashboard với k8s-control-node.yml; issue cũng xác định create-kubernetes-binaries-iso.sh là nguồn của nội dung ISO. Tái hiện quá trình nâng cấp với một ISO chứa headlamp.yaml, sau đó xác minh rằng quá trình nâng cấp hoàn tất khi dashboard.yaml không tồn tại và hành vi fallback được bao phủ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug
problem

Since 4.23, create-kubernetes-binaries-iso.sh packages the Headlamp dashboard as headlamp.yaml
instead of dashboard.yaml. The cluster create path (k8s-control-node.yml) handles both files,
but upgrade-kubernetes.sh still hardcodes:

/opt/bin/kubectl apply -f ${BINARIES_DIR}/dashboard.yaml

The script runs with bash -e, so on the first control node it exits non-zero after kubeadm
upgrade apply and the kubelet swap have already succeeded. The worker retries
(cloud.kubernetes.cluster.upgrade.retries) and then fails the job, leaving the control node
on the new version but cordoned, the workers on the old version, the cluster in Alert,
and the DB still recording the old version.

Management server log:
SSH execution of command sudo ./upgrade-kubernetes.sh.sh 1.36.0 true false false true
has an error status code in return. Result output: Installing binaries from /mnt/k8sdisk/
Failed to upgrade Kubernetes cluster : single, unable to upgrade Kubernetes node on VM : single-control-...

Running the script by hand on the control node shows:
error: the path "/mnt/k8sdisk//dashboard.yaml" does not exist

ISO contents:
10-kubeadm.conf autoscaler.yaml cni cri-tools docker headlamp.yaml k8s kubelet.service
manifest.yaml network.yaml provider.yaml snapshot-crds.yaml

versions

ACS 4.23.0.0 (also present on main at 0a5bf30)
Kubernetes upgrade 1.35.8 -> 1.36.0, ISO built with the 4.23 create-kubernetes-binaries-iso.sh
Hypervisor: kvm Network: isolated..

The steps to reproduce the bug
  1. Build and register a Kubernetes version ISO with the 4.23 create-kubernetes-binaries-iso.sh (contains headlamp.yaml)
  2. Deploy a CKS cluster on the previous minor version
  3. Call upgradeKubernetesCluster to the new version
  4. Job fails on the first control node; kubectl get nodes shows control on new version, SchedulingDisabled
What to do about it?

Make upgrade-kubernetes.sh use the same fallback as k8s-control-node.yml: apply headlamp.yaml
if present, else dashboard.yaml, else warn. I'll open a PR. Workaround: patch
script/upgrade-kubernetes.sh inside the management server jar and restart.
I already have tested a fix and will put in a PR.

Ngôn ngữ chính
Java
Star
3.1k
Fork
1.4k
Merge trung bình
5 ngày 15 giờ
Pull request đã merge (30 ngày)
24

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/cloudstack

Tất cả issue của apache/cloudstack

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.