-
Notifications
You must be signed in to change notification settings - Fork 71
Things for a developer to do after installing Kata
- You're a developer ;)
You've installed Kata Containers and tried running some workloads. What do you do now? Here are some suggestions to get you more familiar with the project so you can start thinking about contributing to Kata Containers.
Notes:
These ideas focus mostly on the new rust (
runtime-rs
) runtime.However, it helps to read the golang architecture docs as they are mostly still relevant and provide a holistic overview of a (any) Kata system.
For tasks that involve changing config files: the recommendation is to not touch the default config files. Instead, create the directory
/etc/kata-containers/
and copy the pristine config files into this directory. Kata will read the files in this directory first. So, you can hack around with this version of the files and if you break things, simply delete the config files in/etc/kata-containers/
. This is equivalent to performing a "factory reset" as Kata will then use the pristine (and working) config files.
Idea | Rationale | Notes |
---|---|---|
Read the golang runtime architecture docs | Understand golang system | |
Read the rust runtime architecture docs | Understand rust system | |
Read the developer guide | ||
Raise issues / PRs for prooblems found with the developer guide | Helpful to community | That doc probably needs a "refresh" given the amount of recent change in Kata! ;) |
Enable full debug for Kata and containerd, and collect some debug logs | Help understand what Kata is doing | See if you can find the log entry to launch the configured hypervisor |
Play with the kata-runtime utility command |
Useful familiarisation | Try out check , env and exec to login the the VM itself |
Change the default hypervisor from QEMU to, say, Cloud Hypervisor | Useful familiarisation | Involves switching the config file |
Change the default runtime from the default golang one to the rust one | Useful familiarisation | Careful! Both runtimes have the same name - it's required. Prove to yourself you are using the right one |
Change the default image from "image" to an "initrd" (initramfs) | Useful familiarisation | Only requires a change to the [hypervisor.*] section of the config file |
Look at the configuration options for your chosen hypervisor and try changing some | Familiarisation | |
Raise a simple "one liner" PR | Help understand how CIs and review process works | Look at the good first issues list |
Build the rust runtime | Required to allow you to make changes and test them | |
Build the agent-ctl and interact with the agent | Useful to understand the role of and features provided by the agent | Try to break the agent by sending bad data / large messages! |
Build the katal-ctl and try out some of the commands | Note you'll need to be using the rust runtime for any commands that talk to the agent! |