# Cluster has only k3s-server nodes, no need for k3s-agent plan apiVersion: upgrade.cattle.io/v1 kind: Plan metadata: name: k3s-server-v1.28 namespace: system-upgrade labels: k3s-upgrade: server spec: concurrency: 1 # Batch size (roughly maps to maximum number of unschedulable nodes) channel: https://update.k3s.io/v1-release/channels/v1.28 nodeSelector: matchExpressions: - {key: k3s-upgrade, operator: Exists} - {key: k3s-upgrade, operator: NotIn, values: ["disabled", "false"]} - {key: k3os.io/mode, operator: DoesNotExist} - {key: node-role.kubernetes.io/control-plane, operator: Exists} serviceAccountName: system-upgrade # jobActiveDeadlineSecs: 3600 cordon: true drain: force: true ignoreDaemonSets: true deleteLocalData: true skipWaitForDeleteTimeout: 180 # ! We ignore longhorn-manager and instance-manager pods # ! because with storageclass longhorn-static which has only single replica, it is impossible to drain the node # ! without violating the pod disruption budget. podSelector: matchExpressions: - key: app operator: NotIn values: - longhorn-manager - key: longhorn.io/component operator: NotIn values: - instance-manager upgrade: image: rancher/k3s-upgrade