an invention by rweir
Project Description
Rancher Upgrader helps the user upgrade their rancher install and walks them through all need-to-know release notes.
Why? After reviewing customer issues a pattern was observed, serious changes, deprecations, and bugs are not being communicated to the user. Rancher Upgrader is intended to not only upgrade rancher, but inform the user. Release notes can be intimidating. Critical information can feel hidden among interesting but less-important release notes. Whether someone has the habit to navigate to a release page and read release notes prior to upgrading is outside our control.
Rancher-upgrade will also enforce a proper upgrade path, where a user must upgrade from version v2.x.y to the latest patch of v2.x before upgrade to a new minor. Then they can only upgrade to the latest minor.
Goal for this Hackweek
Create a CLI that can upgrade rancher from one version to another while walking the user through relevant release notes.
Resources
This project is part of:
Hack Week 23
Activity
Comments
Be the first to comment!
Similar Projects
A CLI for Harvester by mohamed.belgaied
Harvester does not officially come with a CLI tool, the user is supposed to interact with Harvester mostly through the UI. Though it is theoretically possible to use kubectl to interact with Harvester, the manipulation of Kubevirt YAML objects is absolutely not user friendly. Inspired by tools like multipass from Canonical to easily and rapidly create one of multiple VMs, I began the development of Harvester CLI. Currently, it works but Harvester CLI needs some love to be up-to-date with Harvester v1.0.2 and needs some bug fixes and improvements as well.
Project Description
Harvester CLI is a command line interface tool written in Go, designed to simplify interfacing with a Harvester cluster as a user. It is especially useful for testing purposes as you can easily and rapidly create VMs in Harvester by providing a simple command such as: 
harvester vm create my-vm --count 5
to create 5 VMs named my-vm-01 to my-vm-05.
Harvester CLI is functional but needs a number of improvements: up-to-date functionality with Harvester v1.0.2 (some minor issues right now), modifying the default behaviour to create an opensuse VM instead of an ubuntu VM, solve some bugs, etc.
Github Repo for Harvester CLI: https://github.com/belgaied2/harvester-cli
Done in previous Hackweeks
- Create a Github actions pipeline to automatically integrate Harvester CLI to Homebrew repositories: DONE
 - Automatically package Harvester CLI for OpenSUSE / Redhat RPMs or DEBs: DONE
 
Goal for this Hackweek
The goal for this Hackweek is to bring Harvester CLI up-to-speed with latest Harvester versions (v1.3.X and v1.4.X), and improve the code quality as well as implement some simple features and bug fixes.
Some nice additions might be: * Improve handling of namespaced objects * Add features, such as network management or Load Balancer creation ? * Add more unit tests and, why not, e2e tests * Improve CI * Improve the overall code quality * Test the program and create issues for it
Issue list is here: https://github.com/belgaied2/harvester-cli/issues
Resources
The project is written in Go, and using client-go the Kubernetes Go Client libraries to communicate with the Harvester API (which is Kubernetes in fact).
Welcome contributions are:
- Testing it and creating issues
 - Documentation
 - Go code improvement
 
What you might learn
Harvester CLI might be interesting to you if you want to learn more about:
- GitHub Actions
 - Harvester as a SUSE Product
 - Go programming language
 - Kubernetes API
 - Kubevirt API objects (Manipulating VMs and VM Configuration in Kubernetes using Kubevirt)
 
SUSE Health Check Tools by roseswe
SUSE HC Tools Overview
A collection of tools written in Bash or Go 1.24++ to make life easier with handling of a bunch of tar.xz balls created by supportconfig.
Background: For SUSE HC we receive a bunch of supportconfig tar balls to check them for misconfiguration, areas for improvement or future changes.
Main focus on these HC are High Availability (pacemaker), SLES itself and SAP workloads, esp. around the SUSE best practices.
Goals
- Overall improvement of the tools
 - Adding new collectors
 - Add support for SLES16
 
Resources
csv2xls* example.sh go.mod listprodids.txt sumtext* trails.go README.md csv2xls.go exceltest.go go.sum m.sh* sumtext.go vercheck.py* config.ini csvfiles/ getrpm* listprodids* rpmdate.sh* sumxls* verdriver* credtest.go example.py getrpm.go listprodids.go sccfixer.sh* sumxls.go verdriver.go
docollall.sh* extracthtml.go gethostnamectl* go.sum numastat.go cpuvul* extractcluster.go firmwarebug* gethostnamectl.go m.sh* numastattest.go cpuvul.go extracthtml* firmwarebug.go go.mod numastat* xtr_cib.sh*
terraform-provider-feilong by e_bischoff
Project Description
People need to test operating systems and applications on s390 platform.
Installation from scratch solutions include:
- just deploy and provision manually 
 (with the help of ftpbootscript, if you are at SUSE) - use 
s3270terminal emulation (used byopenQApeople?) - use 
LXCfrom IBM to start CP commands and analyze the results - use 
zPXEto do some PXE-alike booting (used by theorthosteam?) - use 
tessiato install from scratch using autoyast - use 
libvirtfor s390 to do some nested virtualization on some already deployed z/VM system - directly install a Linux kernel on a LPAR and use 
kvm+libvirtfrom there 
Deployment from image solutions include:
- use 
ICICweb interface (openstackin disguise, contributed by IBM) - use 
ICICfrom theopenstackterraformprovider (used byRancherQA) - use 
zvm_ansibleto controlSMAPI - connect directly to 
SMAPIlow-level socket interface 
IBM Cloud Infrastructure Center (ICIC) harnesses the Feilong API, but you can use Feilong without installing ICIC, provided you set up a "z/VM cloud connector" into one of your VMs following this schema.
What about writing a terraform Feilong provider, just like we have the terraform libvirt provider? That would allow to transparently call Feilong from your main.tf files to deploy and destroy resources on your system/z.
Other Feilong-based solutions include:
- make 
libvirtFeilong-aware - simply call 
Feilongfrom shell scripts withcurl - use 
zvmconnectorclient python library from Feilong - use 
zthinpart of Feilong to directly commandSMAPI. 
Goal for Hackweek 23
My final goal is to be able to easily deploy and provision VMs automatically on a z/VM system, in a way that people might enjoy even outside of SUSE.
My technical preference is to write a terraform provider plugin, as it is the approach that involves the least software components for our deployments, while remaining clean, and compatible with our existing development infrastructure.
Goals for Hackweek 24
Feilong provider works and is used internally by SUSE Manager team. Let's push it forward!
Let's add support for fiberchannel disks and multipath.
Possible goals for Hackweek 25
Modernization, maturity, and maintenance.
Play with the userfaultfd(2) system call and download on demand using HTTP Range Requests with Golang by rbranco
Description
The userfaultfd(2) is a cool system call to handle page faults in user-space. This should allow me to list the contents of an ISO or similar archive without downloading the whole thing. The userfaultfd(2) part can also be done in theory with the PROT_NONE mprotect + SIGSEGV trick, for complete Unix portability, though reportedly being slower.
Goals
- Create my own library for userfaultfd(2) in Golang.
 - Create my own library for HTTP Range Requests.
 - Complete portability with Unix.
 - Benchmarks.
 - Contribute some tests to LTP.
 
Resources
- https://docs.kernel.org/admin-guide/mm/userfaultfd.html
 - https://github.com/loopholelabs/userfaultfd-go
 - https://github.com/DHowett/ranger
 - https://www.cons.org/cracauer/cracauer-userfaultfd.html
 
A CLI for Harvester by mohamed.belgaied
Harvester does not officially come with a CLI tool, the user is supposed to interact with Harvester mostly through the UI. Though it is theoretically possible to use kubectl to interact with Harvester, the manipulation of Kubevirt YAML objects is absolutely not user friendly. Inspired by tools like multipass from Canonical to easily and rapidly create one of multiple VMs, I began the development of Harvester CLI. Currently, it works but Harvester CLI needs some love to be up-to-date with Harvester v1.0.2 and needs some bug fixes and improvements as well.
Project Description
Harvester CLI is a command line interface tool written in Go, designed to simplify interfacing with a Harvester cluster as a user. It is especially useful for testing purposes as you can easily and rapidly create VMs in Harvester by providing a simple command such as: 
harvester vm create my-vm --count 5
to create 5 VMs named my-vm-01 to my-vm-05.
Harvester CLI is functional but needs a number of improvements: up-to-date functionality with Harvester v1.0.2 (some minor issues right now), modifying the default behaviour to create an opensuse VM instead of an ubuntu VM, solve some bugs, etc.
Github Repo for Harvester CLI: https://github.com/belgaied2/harvester-cli
Done in previous Hackweeks
- Create a Github actions pipeline to automatically integrate Harvester CLI to Homebrew repositories: DONE
 - Automatically package Harvester CLI for OpenSUSE / Redhat RPMs or DEBs: DONE
 
Goal for this Hackweek
The goal for this Hackweek is to bring Harvester CLI up-to-speed with latest Harvester versions (v1.3.X and v1.4.X), and improve the code quality as well as implement some simple features and bug fixes.
Some nice additions might be: * Improve handling of namespaced objects * Add features, such as network management or Load Balancer creation ? * Add more unit tests and, why not, e2e tests * Improve CI * Improve the overall code quality * Test the program and create issues for it
Issue list is here: https://github.com/belgaied2/harvester-cli/issues
Resources
The project is written in Go, and using client-go the Kubernetes Go Client libraries to communicate with the Harvester API (which is Kubernetes in fact).
Welcome contributions are:
- Testing it and creating issues
 - Documentation
 - Go code improvement
 
What you might learn
Harvester CLI might be interesting to you if you want to learn more about:
- GitHub Actions
 - Harvester as a SUSE Product
 - Go programming language
 - Kubernetes API
 - Kubevirt API objects (Manipulating VMs and VM Configuration in Kubernetes using Kubevirt)
 
Mammuthus - The NFS-Ganesha inside Kubernetes controller by vcheng
Description
As the user-space NFS provider, the NFS-Ganesha is wieldy use with serval projects. e.g. Longhorn/Rook. We want to create the Kubernetes Controller to make configuring NFS-Ganesha easy. This controller will let users configure NFS-Ganesha through different backends like VFS/CephFS.
Goals
- Create NFS-Ganesha Package on OBS: nfs-ganesha5, nfs-ganesha6
 - Create NFS-Ganesha Container Image on OBS: Image
 - Create a Kubernetes controller for NFS-Ganesha and support the VFS configuration on demand. Mammuthus
 
Resources
A CLI for Harvester by mohamed.belgaied
Harvester does not officially come with a CLI tool, the user is supposed to interact with Harvester mostly through the UI. Though it is theoretically possible to use kubectl to interact with Harvester, the manipulation of Kubevirt YAML objects is absolutely not user friendly. Inspired by tools like multipass from Canonical to easily and rapidly create one of multiple VMs, I began the development of Harvester CLI. Currently, it works but Harvester CLI needs some love to be up-to-date with Harvester v1.0.2 and needs some bug fixes and improvements as well.
Project Description
Harvester CLI is a command line interface tool written in Go, designed to simplify interfacing with a Harvester cluster as a user. It is especially useful for testing purposes as you can easily and rapidly create VMs in Harvester by providing a simple command such as: 
harvester vm create my-vm --count 5
to create 5 VMs named my-vm-01 to my-vm-05.
Harvester CLI is functional but needs a number of improvements: up-to-date functionality with Harvester v1.0.2 (some minor issues right now), modifying the default behaviour to create an opensuse VM instead of an ubuntu VM, solve some bugs, etc.
Github Repo for Harvester CLI: https://github.com/belgaied2/harvester-cli
Done in previous Hackweeks
- Create a Github actions pipeline to automatically integrate Harvester CLI to Homebrew repositories: DONE
 - Automatically package Harvester CLI for OpenSUSE / Redhat RPMs or DEBs: DONE
 
Goal for this Hackweek
The goal for this Hackweek is to bring Harvester CLI up-to-speed with latest Harvester versions (v1.3.X and v1.4.X), and improve the code quality as well as implement some simple features and bug fixes.
Some nice additions might be: * Improve handling of namespaced objects * Add features, such as network management or Load Balancer creation ? * Add more unit tests and, why not, e2e tests * Improve CI * Improve the overall code quality * Test the program and create issues for it
Issue list is here: https://github.com/belgaied2/harvester-cli/issues
Resources
The project is written in Go, and using client-go the Kubernetes Go Client libraries to communicate with the Harvester API (which is Kubernetes in fact).
Welcome contributions are:
- Testing it and creating issues
 - Documentation
 - Go code improvement
 
What you might learn
Harvester CLI might be interesting to you if you want to learn more about:
- GitHub Actions
 - Harvester as a SUSE Product
 - Go programming language
 - Kubernetes API
 - Kubevirt API objects (Manipulating VMs and VM Configuration in Kubernetes using Kubevirt)
 
Cluster API Provider for Harvester by rcase
Project Description
The Cluster API "infrastructure provider" for Harvester, also named CAPHV, makes it possible to use Harvester with Cluster API. This enables people and organisations to create Kubernetes clusters running on VMs created by Harvester using a declarative spec.
The project has been bootstrapped in HackWeek 23, and its code is available here.
Work done in HackWeek 2023
- Have a early working version of the provider available on Rancher Sandbox : *DONE *
 - Demonstrated the created cluster can be imported using Rancher Turtles: DONE
 - Stretch goal - demonstrate using the new provider with CAPRKE2: DONE and the templates are available on the repo
 
DONE in HackWeek 24:
- Add more Unit Tests
 - Improve Status Conditions for some phases
 - Add cloud provider config generation
 - Testing with Harvester v1.3.2
 - Template improvements
 - Issues creation
 
DONE in 2025 (out of Hackweek)
- Support of ClusterClass
 - Add to 
clusterctlcommunity providers, you can add it directly withclusterctl - Testing on newer versions of Harvester v1.4.X and v1.5.X
 - Support for 
clusterctl generate cluster ... - Improve Status Conditions to reflect current state of Infrastructure
 - Improve CI (some bugs for release creation)
 
Goals for HackWeek 2025
- FIRST and FOREMOST, any topic is important to you
 - Add e2e testing
 - Certify the provider for Rancher Turtles
 - Add Machine pool labeling
 - Add PCI-e passthrough capabilities.
 - Other improvement suggestions are welcome!
 
Thanks to @isim and Dominic Giebert for their contributions!
Resources
Looking for help from anyone interested in Cluster API (CAPI) or who wants to learn more about Harvester.
This will be an infrastructure provider for Cluster API. Some background reading for the CAPI aspect:
SUSE Health Check Tools by roseswe
SUSE HC Tools Overview
A collection of tools written in Bash or Go 1.24++ to make life easier with handling of a bunch of tar.xz balls created by supportconfig.
Background: For SUSE HC we receive a bunch of supportconfig tar balls to check them for misconfiguration, areas for improvement or future changes.
Main focus on these HC are High Availability (pacemaker), SLES itself and SAP workloads, esp. around the SUSE best practices.
Goals
- Overall improvement of the tools
 - Adding new collectors
 - Add support for SLES16
 
Resources
csv2xls* example.sh go.mod listprodids.txt sumtext* trails.go README.md csv2xls.go exceltest.go go.sum m.sh* sumtext.go vercheck.py* config.ini csvfiles/ getrpm* listprodids* rpmdate.sh* sumxls* verdriver* credtest.go example.py getrpm.go listprodids.go sccfixer.sh* sumxls.go verdriver.go
docollall.sh* extracthtml.go gethostnamectl* go.sum numastat.go cpuvul* extractcluster.go firmwarebug* gethostnamectl.go m.sh* numastattest.go cpuvul.go extracthtml* firmwarebug.go go.mod numastat* xtr_cib.sh*
Rancher/k8s Trouble-Maker by tonyhansen
Project Description
When studying for my RHCSA, I found trouble-maker, which is a program that breaks a Linux OS and requires you to fix it. I want to create something similar for Rancher/k8s that can allow for troubleshooting an unknown environment.
Goals for Hackweek 25
- Update to modern Rancher and verify that existing tests still work
 - Change testing logic to populate secrets instead of requiring a secondary script
 - Add new tests
 
Goals for Hackweek 24 (Complete)
- Create a basic framework for creating Rancher/k8s cluster lab environments as needed for the Break/Fix
 - Create at least 5 modules that can be applied to the cluster and require troubleshooting
 
Resources
- https://github.com/celidon/rancher-troublemaker
 - https://github.com/rancher/terraform-provider-rancher2
 - https://github.com/rancher/tf-rancher-up
 - https://github.com/rancher/quickstart
 
A CLI for Harvester by mohamed.belgaied
Harvester does not officially come with a CLI tool, the user is supposed to interact with Harvester mostly through the UI. Though it is theoretically possible to use kubectl to interact with Harvester, the manipulation of Kubevirt YAML objects is absolutely not user friendly. Inspired by tools like multipass from Canonical to easily and rapidly create one of multiple VMs, I began the development of Harvester CLI. Currently, it works but Harvester CLI needs some love to be up-to-date with Harvester v1.0.2 and needs some bug fixes and improvements as well.
Project Description
Harvester CLI is a command line interface tool written in Go, designed to simplify interfacing with a Harvester cluster as a user. It is especially useful for testing purposes as you can easily and rapidly create VMs in Harvester by providing a simple command such as: 
harvester vm create my-vm --count 5
to create 5 VMs named my-vm-01 to my-vm-05.
Harvester CLI is functional but needs a number of improvements: up-to-date functionality with Harvester v1.0.2 (some minor issues right now), modifying the default behaviour to create an opensuse VM instead of an ubuntu VM, solve some bugs, etc.
Github Repo for Harvester CLI: https://github.com/belgaied2/harvester-cli
Done in previous Hackweeks
- Create a Github actions pipeline to automatically integrate Harvester CLI to Homebrew repositories: DONE
 - Automatically package Harvester CLI for OpenSUSE / Redhat RPMs or DEBs: DONE
 
Goal for this Hackweek
The goal for this Hackweek is to bring Harvester CLI up-to-speed with latest Harvester versions (v1.3.X and v1.4.X), and improve the code quality as well as implement some simple features and bug fixes.
Some nice additions might be: * Improve handling of namespaced objects * Add features, such as network management or Load Balancer creation ? * Add more unit tests and, why not, e2e tests * Improve CI * Improve the overall code quality * Test the program and create issues for it
Issue list is here: https://github.com/belgaied2/harvester-cli/issues
Resources
The project is written in Go, and using client-go the Kubernetes Go Client libraries to communicate with the Harvester API (which is Kubernetes in fact).
Welcome contributions are:
- Testing it and creating issues
 - Documentation
 - Go code improvement
 
What you might learn
Harvester CLI might be interesting to you if you want to learn more about:
- GitHub Actions
 - Harvester as a SUSE Product
 - Go programming language
 - Kubernetes API
 - Kubevirt API objects (Manipulating VMs and VM Configuration in Kubernetes using Kubevirt)
 
Cluster API Provider for Harvester by rcase
Project Description
The Cluster API "infrastructure provider" for Harvester, also named CAPHV, makes it possible to use Harvester with Cluster API. This enables people and organisations to create Kubernetes clusters running on VMs created by Harvester using a declarative spec.
The project has been bootstrapped in HackWeek 23, and its code is available here.
Work done in HackWeek 2023
- Have a early working version of the provider available on Rancher Sandbox : *DONE *
 - Demonstrated the created cluster can be imported using Rancher Turtles: DONE
 - Stretch goal - demonstrate using the new provider with CAPRKE2: DONE and the templates are available on the repo
 
DONE in HackWeek 24:
- Add more Unit Tests
 - Improve Status Conditions for some phases
 - Add cloud provider config generation
 - Testing with Harvester v1.3.2
 - Template improvements
 - Issues creation
 
DONE in 2025 (out of Hackweek)
- Support of ClusterClass
 - Add to 
clusterctlcommunity providers, you can add it directly withclusterctl - Testing on newer versions of Harvester v1.4.X and v1.5.X
 - Support for 
clusterctl generate cluster ... - Improve Status Conditions to reflect current state of Infrastructure
 - Improve CI (some bugs for release creation)
 
Goals for HackWeek 2025
- FIRST and FOREMOST, any topic is important to you
 - Add e2e testing
 - Certify the provider for Rancher Turtles
 - Add Machine pool labeling
 - Add PCI-e passthrough capabilities.
 - Other improvement suggestions are welcome!
 
Thanks to @isim and Dominic Giebert for their contributions!
Resources
Looking for help from anyone interested in Cluster API (CAPI) or who wants to learn more about Harvester.
This will be an infrastructure provider for Cluster API. Some background reading for the CAPI aspect:
