mirror of
https://github.com/rancher/os.git
synced 2025-08-13 04:16:37 +00:00
79 lines
3.3 KiB
Markdown
79 lines
3.3 KiB
Markdown
---
|
|
title: Contributing to RancherOS
|
|
layout: os-default
|
|
|
|
---
|
|
|
|
## Contributing to RancherOS
|
|
---
|
|
|
|
## Developing
|
|
|
|
Development is easiest done with QEMU on Linux. OS X works too, although QEMU doesn't have KVM support. If you are running Linux in a virtual machine, then we recommend you run VMWare Fusion/Workstation and enable VT-x support. Then, QEMU will have KVM support and run sufficiently fast inside your Linux VM.
|
|
|
|
### Building
|
|
|
|
#### Requirements:
|
|
|
|
* bash
|
|
* make
|
|
* Docker 1.10.3+
|
|
|
|
```
|
|
$ make
|
|
```
|
|
|
|
The build will run in Docker containers, and when the build is done, the vmlinuz, initrd, and ISO should be in `dist/artifacts`.
|
|
|
|
If you're building a version of RancherOS used for development and not for a release, you can instead run `make dev`. This will run faster than the standard build by avoiding building the `installer.tar` and `rootfs.tar.gz` artifacts which are not needed by QEMU.
|
|
|
|
### Testing
|
|
|
|
Run `make integration-tests` to run the all integration tests in a container, or `./scripts/integration-tests` to run them outside a container (they use QEMU to test the OS.)
|
|
|
|
To run just one integration test, or a group of them (using regex's like `.*Console.*`, you can set the `RUNTEST` environment variable:
|
|
|
|
```
|
|
$ RUNTEST=TestPreload make integration-test
|
|
```
|
|
|
|
### Running
|
|
|
|
Prerequisites: QEMU, coreutils, cdrtools/genisoimage/mkisofs.
|
|
On OS X, `brew` is recommended to install those. On Linux, use your distro package manager.
|
|
|
|
To launch RancherOS in QEMU from your dev version, you can either use `make run`, or customise the vm using `./scripts/run` and its options. You can use `--append your.kernel=params here` and `--cloud-config your-cloud-config.yml` to configure the RancherOS instance you're launching.
|
|
|
|
You can SSH in using `./scripts/ssh`. Your SSH keys should have been populated (if you didn't provide your own cloud-config) so you won't need a password. If you don't have SSH keys, or something is wrong with your cloud-config, then the password is "`rancher`".
|
|
|
|
If you're on OS X, you can run RancherOS using [_xhyve_](https://github.com/mist64/xhyve) instead of QEMU: just pass `--xhyve` to `./scripts/run` and `./scripts/ssh`.
|
|
|
|
### Debugging and logging.
|
|
|
|
You can enable extra log information in the console by setting them using `sudo ros config set`,
|
|
or as kernel boot parameters.
|
|
Enable all logging by setting `rancher.debug` true
|
|
or you can set `rancher.docker.debug`, `rancher.system_docker.debug`, `rancher.bootstrap_docker.debug`, or `rancher.log` individually.
|
|
|
|
You will also be able to view the debug logging information by running `dmesg` as root.
|
|
|
|
## Repositories
|
|
|
|
All of repositories are located within our main GitHub [page](https://github.com/rancher).
|
|
|
|
[RancherOS Repo](https://github.com/rancher/os): This repo contains the bulk of the RancherOS code.
|
|
|
|
[RancherOS Services Repo](https://github.com/rancher/os-services): This repo is where any [system-services]({{site.baseurl}}/os/system-services/) can be contributed.
|
|
|
|
[RancherOS Images Repo](https://github.com/rancher/os-images): This repo is for the corresponding service images.
|
|
|
|
|
|
## Bugs
|
|
|
|
If you find any bugs or are having any trouble, please contact us by filing an [issue](https://github.com/rancher/os/issues/new).
|
|
|
|
If you have any updates to our documentation, please make any PRs to our [docs repo](https://github.com/rancher/rancher.github.io).
|
|
|
|
<br>
|
|
<br>
|