Implementation of flexvolume driver and provisioner for oVirt
container image | status |
---|---|
ovirt-flexvolume-driver | |
ovirt-volume-provisioner | |
ovirt-cloud-provider | |
ovirt-flexvolume-driver-apb | |
ovirt-openshift-installer |
Make oVirt the a prefered platform for openshift installation. The main components this project will ship are:
A kubernetes controller that creates/deletes persistent volumes, and allocates disks
in ovirt as a result. This is the first part for providing volumes from oVirt.
A kubernetes node plugin that attaches/detaches a volume to a container.
It attaches the oVirt disk to the kube node (which is an oVirt VM). It identifies the disk device on the os,
prepares a filesystem, then mounts it so it is ready as a volume mount for a container.
An out-of-tree implementation of a cloudprovider.
A controller that manages the admission of new nodes for openshift, from oVirt VMs. \
version | ovirt version | openshift version |
---|---|---|
<= v0.3.1 | >= 4.2 | 3.9, 3.10 |
>= v0.3.2 | >= 4.2 | 3.10, 3.11 |
Pre-requisite:
From the repo:
$ make apb_build apb_push
make sure oc
command is configured and has access to your cluster, e.g. run oc status
use a cluster admin user to deploy, or grant permission to one
$ oc login -u system:admin
$ oc adm policy add-cluster-role-to-user cluster-admin developer
Run on a master (replace the input with yours):
docker run \
-it \
--rm \
--net=host \
-v $HOME/.kube:/opt/apb/.kube:z \
-u $UID quay.io/rgolangh/ovirt-flexvolume-driver-apb \
provision -e \
'{
"admin_user":"developer",
"admin_password":"YOURPASS",
"cluster":"openshift",
"namespace":"default",
"engine_username":"admin@internal",
"engine_password":"YOURPASS",
"engine_url":"https://ENGINE-FQDN/ovirt-engine/api",
}'
If it's the first time deploying the image then it should take few moments to download it. To customize the images to be deployed, provide these environment variables to the container invocation:
Example: docker run -e FLEX_REGISTRY=registry.example.com ...
Upon completion you have these components running:
$ oc get ds -n default ovirt-flexvolume-driver
name desired current ready up-to-date available node selector age
ovirt-flexvolume-driver 1 1 1 1 1 <none> 15m
$ oc get deployment -n default ovirt-volume-provisioner
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
ovirt-volume-provisioner 1 1 1 1 17m
For topics not covered in this Readme, see the project documentation.
Feedback is most welcome, if you have an idea, proposal, fix, or want to chat
you'll find the details here:
Blog post in ovirt: https://www.ovirt.org/blog/2018/02/your-container-volumes-served-by-ovirt/
Youtube Demo: https://youtu.be/_E9pUVrI0hs