Website: kubevirt-manager.io
Maintainers: feitnomore
Feedback/Feature Request: form
Simple Angular Frontend Web UI Interface to operate Kubevirt. This tools lets you perform basic operations around Virtual Machines, Virtual Machine Instances, Virtual Machine Pools and Disks. As the tool grew, other features got added like Load Balancing, Auto Scaling, Monitoring and Cluster API support. This tool was built initially based on requirements I had for my own environment at home and started growing as needed.
For a Quick Start, go to our website https://kubevirt-manager.io/
If you are using the tool, please help us by providing feedback here.
WARNING: Use it at your own risk.
I've created this Frontend for KubeVirt while I was trying to learn a little bit of Angular. Basically this tool uses kubectl proxy to proxy API requests to kubeapiserver. To handle the Disk/Volume part, the tool works through CDI. As the time passed by, support for other features like HPA, Services, Prometheus and Cluster API were added.
For a Quick Start, go to our website https://kubevirt-manager.io/ as we provide a bundled.yaml file that has the basic setup.
These are the minimum requirements to have the system running.
Kubevirt featureGate ExpandDisks is required.
CDI is required with featureGate HonorWaitForFirstConsumer active:
config:
featureGates:
- HonorWaitForFirstConsumer
StorageClass feature allowVolumeExpansion is required:
allowVolumeExpansion: true
If you are using hostpath-provisioner or any other local node storage, you will need to use WaitForFirstConsumer:
volumeBindingMode: WaitForFirstConsumer
Note: These settings are required to work with a hostpath csi driver, in order to prevent virtual machine instances from being started in a node different from the node in which the disk/volume resides.
$ kubectl apply -f kubernetes/ns.yaml$ kubectl apply -f kubernetes/crd.yaml$ kubectl apply -f kubernetes/rbac.yaml$ kubectl apply -f kubernetes/deployment.yaml$ kubectl apply -f kubernetes/pc.yamlkubectl apply -f kubernetes/service.yamlThe recommended way to use this tool is through an Ingress or a Service.
You can also use kubectl port-forward on port 8080.
Note: As the tool needs Websocket support, if you are using an Ingress make sure you set it up accordingly.
To optimize the load of the main repo README, screenshots were removed from here. To see the screenshots, visit images directory.
To build the tool simply run:
docker build -t your-repo/kubevirt-manager:version .
docker push your-repo/kubevirt-manager:versionPlease clone noVNC:
cd src/assets/
git clone https://github.com/novnc/noVNC.gitTo build the tool run:
npm install
ng buildTo run the tool:
kubectl proxy --www=./dist/kubevirtmgr-webui/browser/ --accept-hosts=^.*$ --address=[::] --api-prefix=/k8s/ --www-prefix=Access the tool at: http://localhost:8001/
Note: Make sure your kubectl is pointing to the right cluster.
Note: Make sure the account your kubectl is using has correct RBAC.
Note: This method doesn't like websocket VNC.
Note: This method doesn't support Prometheus integration.
Note: This method doesn't support NGINX basic_auth.
The tests implemented are pretty simple so far. To run the tests, simply execure:
npm test- kubevirt-manager.io
- Kubernetes
- Kubectl
- CDI
- KubeVirt
- NodeJS
- Angular
- AdminLTE
- NoVNC
- Prometheus Operator
- kube-state-metrics
- KubeVirt Monitoring
- NGINX basic_auth
- Kubernetes Cluster API Provider for Kubevirt
- Cluster API Quick Start
- ClusterResourceSet
- image-builder
- capk-versions.json
- cni-versions.json
- features.json
kubevirt-manager.io is licensed under the Apache Licence, Version 2.0.