{"id":20145023,"url":"https://github.com/michalswi/kubevirt-openstack","last_synced_at":"2026-03-11T00:02:58.854Z","repository":{"id":112989333,"uuid":"224656047","full_name":"michalswi/kubevirt-openstack","owner":"michalswi","description":"Run VM on K8s deployed on openstack","archived":false,"fork":false,"pushed_at":"2019-11-29T07:57:34.000Z","size":5,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-21T08:44:10.661Z","etag":null,"topics":["kubernetes","openstack"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michalswi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-28T13:09:51.000Z","updated_at":"2025-07-14T01:59:48.000Z","dependencies_parsed_at":"2023-04-11T18:12:59.731Z","dependency_job_id":null,"html_url":"https://github.com/michalswi/kubevirt-openstack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/michalswi/kubevirt-openstack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michalswi%2Fkubevirt-openstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michalswi%2Fkubevirt-openstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michalswi%2Fkubevirt-openstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michalswi%2Fkubevirt-openstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michalswi","download_url":"https://codeload.github.com/michalswi/kubevirt-openstack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michalswi%2Fkubevirt-openstack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30362720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"ssl_error","status_checked_at":"2026-03-10T21:40:59.357Z","response_time":106,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kubernetes","openstack"],"created_at":"2024-11-13T22:13:36.795Z","updated_at":"2026-03-11T00:02:58.846Z","avatar_url":"https://github.com/michalswi.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\nOfficial **kubevirt** documentation you can find [here](https://kubevirt.io/user-guide/docs/latest/welcome/index.html).  \nOnce **kubevirt** is up and running you can deploy VM.\n\nK8s deployed on openstack  \nK8s ExternalIP - openstack **LBaaS**  \nK8s StorageClass - openstack **Cinder**\n\n\n### Tools\n- kubevirt **v0.23.0**\n- virtctl \n- kubectl **v1.14.6**\n\n\n### Deployment\n\n\n```sh\n## GENERATE ssh keys and add public to 'centos7vm.yml'\n$ ssh-keygen -b 1024 -t rsa -N \"\" -f ./k8s_rsa -C test@kubevirt\n\n## RUN VM\n\n$ kubectl create -f centos7vm.yml\n\n$ kubectl get pods \nNAME                        READY   STATUS    RESTARTS   AGE\nimporter-centos7-dv-q9chc -f   1/1     Running   0          28s\n\n$ kubectl logs importer-centos7-dv-q9chc -f\n(...)\nI1127 13:44:02.697165       1 data-processor.go:183] New phase: Resize\nW1127 13:44:02.720237       1 data-processor.go:240] Available space less than requested size, resizing image to available space 10447220736.\nI1127 13:44:02.720827       1 data-processor.go:246] Expanding image size to: 10447220736\nI1127 13:44:04.469317       1 data-processor.go:183] New phase: Complete\nI1127 13:44:04.469648       1 importer.go:160] Import complete\n\n# once it's completed start your VM\n\n$ virtctl start testvm\n\n$ kubectl get pods\nNAME                         READY   STATUS    RESTARTS   AGE\nvirt-launcher-testvm-dtdxm   1/1     Running   0          27s\n\n# optional check\n\n$ kubectl exec -it virt-launcher-testvm-dtdxm bash\n[root@testvm /]$ virsh list\n Id   Name             State\n--------------------------------\n 1    default_testvm   running\n\n# checks\n\n$ kubectl get vm\nNAME     AGE     RUNNING   VOLUME\ntestvm   5m33s   true      \n\n$ kubectl get vmi\nNAME     AGE    PHASE     IP            NODENAME\ntestvm   107s   Running   10.42.5.191   worker-0\n\n$ kubectl get pv,pvc\nNAME                                                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                              STORAGECLASS   REASON   AGE\npersistentvolume/pvc-c2c4d5af-11e0-11ea-876b-fa163e803940   10Gi       RWO            Delete           Bound    default/centos7-dv                                 cinder                  9m15s\n\nNAME                               STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE\npersistentvolumeclaim/centos7-dv   Bound    pvc-c2c4d5af-11e0-11ea-876b-fa163e803940   10Gi       RWO            cinder         9m16s\n\n# once VM is up and running you can access your VM\n\n# using console (password in 'centos7vm.yml')\n$ virtctl console testvm\nSuccessfully connected to testvm console. The escape sequence is ^]\n\nCentOS Linux 7 (Core)\nKernel 3.10.0-957.27.2.el7.x86_64 on an x86_64\n\ntestvm login:\n[centos@testvm ~]$\n\n# using ssh\n$ virtctl expose vmi testvm --port=22 --name=testvm-ssh --type=LoadBalancer\n\n$ kubectl get svc\nNAME         TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE\ntestvm-ssh   LoadBalancer   10.43.132.105   \u003cexternal_ip\u003e   22:58337/TCP   58s\n\n$ ssh -i k8s_rsa centos@\u003cexternal_ip\u003e\n[centos@testvm ~]$\n\n\n## DELETE VM\n\n# remove LB\n$ kubectl delete svc testvm-ssh\n\n$ virtctl stop testvm\n$ kubectl delete -f centos7vm.yml\n```\n\n### Running VM\n\n```sh\n# disks\n[root@testvm ~]$ df -h\nFilesystem      Size  Used Avail Use% Mounted on\n/dev/vda1       9.8G  889M  8.9G   9% /\ndevtmpfs        473M     0  473M   0% /dev\ntmpfs           496M     0  496M   0% /dev/shm\ntmpfs           496M   13M  483M   3% /run\ntmpfs           496M     0  496M   0% /sys/fs/cgroup\ntmpfs           100M     0  100M   0% /run/user/1000\n\n[root@testvm ~]$ lsblk\nNAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT\nvda    253:0    0  9.7G  0 disk \n└─vda1 253:1    0  9.7G  0 part /\nvdb    253:16   0  366K  0 disk \n\n# docker\n[root@testvm ~]$ docker --version\nDocker version 19.03.5, build 633a0ea\n\n[root@testvm ~]$ docker images\nREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE\nnginx               latest              231d40e811cd        5 days ago          126MB\n\n[root@testvm ~]$ docker run -d -p 80:80 nginx:latest\n\n[root@testvm ~]$ docker ps\nCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES\nb691b0475618        nginx:latest        \"nginx -g 'daemon of…\"   6 seconds ago       Up 3 seconds        0.0.0.0:5050-\u003e80/tcp   zealous_euclid\n\n[root@testvm ~]$ curl localhost:80\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n\u003ctitle\u003eWelcome to nginx!\u003c/title\u003e\n(...)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichalswi%2Fkubevirt-openstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichalswi%2Fkubevirt-openstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichalswi%2Fkubevirt-openstack/lists"}