Skip to content

Instantly share code, notes, and snippets.

@jparrill
Created May 24, 2018 12:44
Show Gist options
  • Select an option

  • Save jparrill/557f2b8939fad7fbb6b82e83ef850df8 to your computer and use it in GitHub Desktop.

Select an option

Save jparrill/557f2b8939fad7fbb6b82e83ef850df8 to your computer and use it in GitHub Desktop.
Local Kubevirt

Kubevirt Overview

Kubevirt Installation

wget -O /tmp/oc.tar.gz https://github.com/openshift/origin/releases/download/v3.9.0/openshift-origin-client-tools-v3.9.0-191fece-linux-64bit.tar.gz
tar -C ~/bin/ -xvzf /tmp/oc.tar.gz
mv openshift-origin-client-tools-*/oc .
chmod 755 oc
curl -L https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl -o ~/bin/kubectl
chmod 755 ~/bin/kubectl
rm -rf openshift-origin-client-tools-*

export IP=`ip a l wlp4s0 | grep 'inet ' | cut -d' ' -f6 | awk -F'/' '{ print $1}'`
oc cluster up --public-hostname $IP.xip.io --routing-suffix $IP.xip.io
oc login -u system:admin
docker update --restart=always origin

oc adm policy add-cluster-role-to-user cluster-admin developer
VERSION="v0.5.0"
oc project kube-system
oc adm policy add-scc-to-user privileged -z kubevirt-privileged
oc adm policy add-scc-to-user privileged -z kubevirt-controller
oc adm policy add-scc-to-user hostmount-anyuid -z kubevirt-iscsi

mkdir -p ~/projects/kubevirt && cd ~/projects/kubevirt
wget https://github.com/kubevirt/kubevirt/releases/download/$VERSION/kubevirt.yaml -O ~/projects/kubevirt/kubevirt.yaml
wget https://github.com/kubevirt/kubevirt/releases/download/$VERSION/virtctl-$VERSION-linux-amd64 -O ~/bin/virtctl
chmod u+x /usr/bin/virtctl
oc create -f kubevirt.yaml
oc project default

Kubevirt usage

  • Create VM and manage it
oc create -f vm-fedora.yaml
virtctl console vm-fedora
virtctl vnc vm-fedora
oc get vms
  • Create ovm and manage it
oc create -f ovm-fedora.yaml
virtctl stop/start ovm-fedora
virtctl vnc ovm-fedora
oc get ovms
apiVersion: kubevirt.io/v1alpha1
kind: OfflineVirtualMachine
metadata:
creationTimestamp: null
labels:
kubevirt.io/ovm: ovm-fedora
name: ovm-fedora
spec:
running: false
template:
metadata:
creationTimestamp: null
labels:
kubevirt.io/ovm: ovm-fedora
spec:
domain:
devices:
disks:
- disk:
bus: virtio
name: registrydisk
volumeName: registryvolume
- disk:
bus: virtio
name: cloudinitdisk
volumeName: cloudinitvolume
machine:
type: ""
resources:
requests:
memory: 1024M
terminationGracePeriodSeconds: 0
volumes:
- name: registryvolume
registryDisk:
image: kubevirt/fedora-cloud-registry-disk-demo:latest
- cloudInitNoCloud:
userData: |-
#cloud-config
password: fedora
chpasswd: { expire: False }
name: cloudinitvolume
status: {}
```yaml
apiVersion: kubevirt.io/v1alpha1
kind: VirtualMachine
metadata:
creationTimestamp: null
name: vm-fedora
spec:
domain:
devices:
disks:
- disk:
bus: virtio
name: registrydisk
volumeName: registryvolume
- disk:
bus: virtio
name: cloudinitdisk
volumeName: cloudinitvolume
machine:
type: ""
resources:
requests:
memory: 1024M
terminationGracePeriodSeconds: 0
volumes:
- name: registryvolume
registryDisk:
image: kubevirt/fedora-cloud-registry-disk-demo:latest
- cloudInitNoCloud:
userData: |-
#cloud-config
password: fedora
chpasswd: { expire: False }
name: cloudinitvolume
status: {}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment