diff --git a/plugins/reboot.yaml b/plugins/reboot.yaml new file mode 100644 index 00000000000..6d97f7b6331 --- /dev/null +++ b/plugins/reboot.yaml @@ -0,0 +1,101 @@ +apiVersion: krew.googlecontainertools.github.com/v1alpha2 +kind: Plugin +metadata: + name: reboot +spec: + version: "v1.1.1" + homepage: https://github.com/ayetkin/kubectl-reboot + shortDescription: Safely restart Kubernetes nodes with automated drain and SSH reboot + description: | + kubectl-reboot is a kubectl plugin that provides safe node restart operations for Kubernetes clusters. + + Features: + - ๐Ÿ”„ Safe Node Restart: Automatically cordon, drain, reboot, and uncordon nodes + - ๐Ÿš€ SSH Integration: Reboot nodes via SSH with customizable commands + - ๐Ÿ” Reboot Verification: Verify successful reboots by monitoring Boot ID changes + - ๐ŸŒ Cluster-wide Operations: Restart all nodes or specific subsets + - ๐Ÿงช Dry-run Mode: Preview operations without making changes + - โšก Flexible Configuration: Extensive customization options + + Usage examples: + - kubectl reboot node1 # Restart single node + - kubectl reboot --all # Restart all nodes + - kubectl reboot --dry-run node1 # Preview without executing + - kubectl reboot --ssh-user ubuntu node1 # Custom SSH user + + caveats: | + This plugin requires: + - SSH access to target nodes (key-based authentication recommended) + - Appropriate RBAC permissions for node operations + - kubectl configured and authenticated to your cluster + + IMPORTANT: Always test in non-production environments first. + + platforms: + - selector: + matchExpressions: + - key: "os" + operator: "In" + values: + - linux + - key: "arch" + operator: "In" + values: + - amd64 + uri: https://github.com/ayetkin/kubectl-reboot/releases/download/v1.1.1/kubectl-reboot-linux-amd64.tar.gz + sha256: "6b3317b65c19402bea50ff3dcd783eeea8be9647867ebb4889165357dded9e41" + bin: kubectl-reboot + files: + - from: "kubectl-reboot-linux-amd64" + to: kubectl-reboot + + - selector: + matchExpressions: + - key: "os" + operator: "In" + values: + - linux + - key: "arch" + operator: "In" + values: + - arm64 + uri: https://github.com/ayetkin/kubectl-reboot/releases/download/v1.1.1/kubectl-reboot-linux-arm64.tar.gz + sha256: "99400f8fce6095112b3fd22e13428cd8fdea5080f6e271eb694cd66ff91e0790" + bin: kubectl-reboot + files: + - from: "kubectl-reboot-linux-arm64" + to: kubectl-reboot + + - selector: + matchExpressions: + - key: "os" + operator: "In" + values: + - darwin + - key: "arch" + operator: "In" + values: + - amd64 + uri: https://github.com/ayetkin/kubectl-reboot/releases/download/v1.1.1/kubectl-reboot-darwin-amd64.tar.gz + sha256: "8bb1b6fdf03d44b4c77053b69309674a31c5d60e61b9cc883b2a9fad52685882" + bin: kubectl-reboot + files: + - from: "kubectl-reboot-darwin-amd64" + to: kubectl-reboot + + - selector: + matchExpressions: + - key: "os" + operator: "In" + values: + - darwin + - key: "arch" + operator: "In" + values: + - arm64 + uri: https://github.com/ayetkin/kubectl-reboot/releases/download/v1.1.1/kubectl-reboot-darwin-arm64.tar.gz + sha256: "24ced929b6a58c035e89ab61dfbed3cc6d25bdd410344eee75e6443d2b300c9e" + bin: kubectl-reboot + files: + - from: "kubectl-reboot-darwin-arm64" + to: kubectl-reboot