KVM Containerization for k8s
Find a file
2018-02-25 21:01:14 -08:00
scripts add monitor socket 2018-02-25 21:01:14 -08:00
Dockerfile add yamls and mods to accept various images 2017-07-02 22:24:08 -07:00
kvm-rc-windows.yaml add yamls and mods to accept various images 2017-07-02 22:24:08 -07:00
kvm-rc.yaml add yamls and mods to accept various images 2017-07-02 22:24:08 -07:00
kvm-windows.svc.yaml add yamls and mods to accept various images 2017-07-02 22:24:08 -07:00
README.md initial commit 2017-06-05 20:18:03 -07:00

coreos-kvm Docker Repository on Quay

coreos-kvm is a container images which runs a QEMU/KVM CoreOS VM.

Usage

Run the container image as a privileged container. Provide Ignition or Cloud-Config user-data to provision the guest instance.

# config
sudo docker run --name kvm --privileged -e CONFIG_FILE=/userdata/config.yaml -v $PWD/examples/config.yaml:/userdata/config.yaml quay.io/dghubble/coreos-kvm

# ignition
sudo docker run --name kvm --privileged -e IGNITION_CONFIG_FILE=/userdata/ignition.json -v $PWD/examples/ignition.json:/userdata/ignition.json quay.io/dghubble/coreos-kvm

# cloud-config
sudo docker run --name kvm --privileged -e CLOUD_CONFIG_FILE=/userdata/cloud.yaml -v $PWD/examples/cloud.yaml:/userdata/cloud.yaml quay.io/dghubble/coreos-kvm

SSH into the container IP on port 2222.

sudo docker network inspect bridge
ssh -p 2222 core@172.17.0.2

The container runs a local port (2222) forward to the CoreOS VM (22).

Environment Variables

env variable example
CONFIG_FILE /userdata/config.yaml
IGNITION_CONFIG_FILE /userdata/ignition.json
CLOUD_CONFIG_FILE /userdata/cloud.yaml
VM_NAME coreos-kvm
VM_MEMORY 4G
VM_DISK_SIZE 12G
HOSTFWD hostfwd=tcp::2222-:22

Development

To develop the container image, build it locally.

Container Image

Build the container image.

make docker-image

Run

Run the container image as a privileged container. Provide Ignition or Cloud-Config user-data to provision the guest instance.

# config
sudo docker run --name kvm --privileged -e CONFIG_FILE=/userdata/config.yaml -v $PWD/examples/config.yaml:/userdata/config.yaml dghubble/coreos-kvm

# ignition
sudo docker run --name kvm --privileged -e IGNITION_CONFIG_FILE=/userdata/ignition.json -v $PWD/examples/ignition.json:/userdata/ignition.json dghubble/coreos-kvm

# cloud-config
sudo docker run --name kvm --privileged -e CLOUD_CONFIG_FILE=/userdata/cloud.yaml -v $PWD/examples/cloud.yaml:/userdata/cloud.yaml dghubble/coreos-kvm

Remove the container from another terminal.

sudo docker stop kvm
sudo docker rm kvm