<commit_before># Getting Started

A quick start guide to get KubeVirt up and running inside Vagrant.

**Note**: This guide was tested on Fedora 23 and Fedora 25.

**Note:** Fedora 24 is known to have a bug which affects our vagrant setup.


## Building

### Go (1.8 or higher)

[Go](https://golang.org) needs to be setup to be able to compile the sources.

**Note:** Go is pretty picky about paths, thus use the suggested ones.

```bash
    # If you haven't set it already, set a GOPATH
    echo "export GOPATH=~/go" >> ~/.bashrc
    echo "export PATH=$PATH:$GOPATH/bin" >> ~/.bashrc
    source ~/.bashrc

    mkdir -p ~/go

    sudo dnf install golang
```

**Note:** Some code within k8s.io/client-go and k8s.io/apimachinery uses
features from the Go standard libaries introduced in version 1.8.

If needed, a helpful tool to dynamically manage multiple versions of Go is
[gimme](https://github.com/travis-ci/gimme)

### Vagrant

[Vagrant](https://www.vagrantup.com/) is used to bring up a development and
demo environment:

```bash
    sudo dnf install vagrant vagrant-libvirt
    sudo systemctl restart virtlogd # Work around rpm packaging bug
    sudo systemctl restart libvirtd
```

On some systems Vagrant will always ask you for your sudo password when you try
to do something with a VM. To avoid retyping your password all the time you can
add yourself to the `libvirt` group.

```bash
sudo gpasswd -a ${USER} libvirt
newgrp libvirt
```

On CentOS/RHEL 7 you might also need to change the libvirt connection string to be able to see all libvirt information:

```
export LIBVIRT_DEFAULT_URI=qemu:///system
```

### Build dependencies

Now we can finally get to the sources, before building KubeVirt we'll need
to install a few build requirements:

```bash
    # We are interfacing with libvirt<commit_msg>docs: Small getting started guide fixes<commit_after># Getting Started

A quick start guide to get KubeVirt up and running inside Vagrant.

**Note**: This guide was tested on Fedora 23 and Fedora 25.

**Note:** Fedora 24 is known to have a bug which affects our vagrant setup.


## Building

### Go (1.8 or higher)

[Go](https://golang.org) needs to be setup to be able to compile the sources.

**Note:** Go is pretty picky about paths, thus use the suggested ones.

```bash
    # If you haven't set it already, set a GOPATH
    echo "export GOPATH=~/go" >> ~/.bashrc
    echo "export PATH=\$GOPATH/bin:\$PATH" >> ~/.bashrc
    source ~/.bashrc

    mkdir -p ~/go

    sudo dnf install golang
```

**Note:** Some code within k8s.io/client-go and k8s.io/apimachinery uses
features from the Go standard libaries introduced in version 1.8.

If needed, a helpful tool to dynamically manage multiple versions of Go is
[gimme](https://github.com/travis-ci/gimme)

### Vagrant

[Vagrant](https://www.vagrantup.com/) is used to bring up a development and
demo environment:

```bash
    sudo dnf install vagrant vagrant-libvirt
    sudo systemctl enable --now libvirtd
    sudo systemctl restart virtlogd # Work around rpm packaging bug
```

On some systems Vagrant will always ask you for your sudo password when you try
to do something with a VM. To avoid retyping your password all the time you can
add yourself to the `libvirt` group.

```bash
sudo gpasswd -a ${USER} libvirt
newgrp libvirt
```

On CentOS/RHEL 7 you might also need to change the libvirt connection string to be able to see all libvirt information:

```
export LIBVIRT_DEFAULT_URI=qemu:///system
```

### Build dependencies

Now we can finally get to the sources, before building KubeVirt we'll need
to install a few build requirements:

```bash
    # We are interfacing with libvirt
{'fraction_non_alphanumeric': 0.08941755537325677, 'fraction_numerical': 0.007109652720809406, 'mean_word_length': 3.806833114323259, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 11, 'https://': 6, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7451059', 'n_tokens_mistral': 1185, 'n_tokens_neox': 1086, 'n_words': 513}