{"id":27374420,"url":"https://github.com/xnaaro/osm-k8s","last_synced_at":"2025-04-13T11:56:26.910Z","repository":{"id":216693816,"uuid":"163329826","full_name":"xNaaro/osm-k8s","owner":"xNaaro","description":"Open Source MANO kubernetes deployment","archived":false,"fork":false,"pushed_at":"2018-12-28T11:18:38.000Z","size":15,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-13T11:56:24.435Z","etag":null,"topics":["k8s","kubernetes","mano","nfv","open","openstack","osm","source","vim"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xNaaro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-12-27T19:35:38.000Z","updated_at":"2021-04-23T12:04:35.000Z","dependencies_parsed_at":"2024-01-12T03:18:07.550Z","dependency_job_id":"7ce92149-d1af-498e-8d77-e78da0b65ba4","html_url":"https://github.com/xNaaro/osm-k8s","commit_stats":null,"previous_names":["xnaaro/osm-k8s"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xNaaro%2Fosm-k8s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xNaaro%2Fosm-k8s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xNaaro%2Fosm-k8s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xNaaro%2Fosm-k8s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xNaaro","download_url":"https://codeload.github.com/xNaaro/osm-k8s/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248710437,"owners_count":21149188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["k8s","kubernetes","mano","nfv","open","openstack","osm","source","vim"],"created_at":"2025-04-13T11:56:23.803Z","updated_at":"2025-04-13T11:56:26.896Z","avatar_url":"https://github.com/xNaaro.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Open Source MANO kubernetes deployment\n\nK8s deployment for Open Source MANO(OSM).\n\n## Current state of development\n\n* Currently only deployed in All in one using minikube,\nsome issues exists with kafka topics which makes OSM unusable for now.\n* Some bugs are present in the docker images, other things are hardcoded\nwhich makes the deployment kind of weird and not much configurable.\n* LCM and POl services are restarting in CrashLoopBackOff state.\n\nGive some time for testing and contribute in you feel it ;)\n\n## Architecture design discussion and items to be work\n\nGoal of this project is to deploy an OSM in HA multi-cluster within k8s.\n\n###Main requirements\n\n* Database replication (mongodb and mariadb)\n* MQ/data HA (zookeeper and kafka)\n* APIs active/active HA\n\nTo achieve this goal is probably the best option to use already existing\nk8s deployments for kafka, mongodb,zookeeper and prometheus.\n\nLet do the experts in the area do their work, and we do our job to deploy OSM.\n\n### Work items\n\n* Fix docker images to be more configurable and less attached to Swarm deployment.\n  Others deployer will benefit from this\n* Healthcheck\n* Stateful deployment for data services\n* Service dependencies, wait for previous to be available with initContainers\nparameter\n* Some kind of script to configure a few parameters like passwords\n* Ability to configure different service types, as LB, NodePort, etc\n* Helm charts (Maybe?)\n\n## Quickstart k8s installation\n### Install minikube - KVM driver\n\n```bash\nsudo usermod -a -G libvirt $(whoami)\ncurl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \\\n    \u0026\u0026 sudo install docker-machine-driver-kvm2 /usr/local/bin/\n\nsudo wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O  /usr/local/bin/minikube\nsudo chmod +x /usr/local/bin/minikube\n\ncurl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl\nchmod +x ./kubectl\nsudo mv ./kubectl /usr/local/bin/kubectl\ncurl -L https://github.com/kubernetes/kompose/releases/download/v1.16.0/kompose-linux-amd64 -o kompose\nchmod +x kompose\nsudo mv ./kompose /usr/local/bin/kompose\n\nminikube start --vm-driver kvm2 --memory 8096\n```\n\n### Verify minikube\n```bash\nkubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080\nkubectl expose deployment hello-minikube --type=NodePort\ncurl $(minikube service hello-minikube --url)\n```\n\n## Open Source MANO deployment\n### Required osm images\n\n* wurstmeister/zookeeper:latest\n* wurstmeister/kafka\n* mongo\n* prom/prometheus\n* mariadb:10\n* opensourcemano/keystone\n* opensourcemano/lcm\n* opensourcemano/nbi\n* mysql:5\n* opensourcemano/ro\n* opensourcemano/mon\n* opensourcemano/pol\n* opensourcemano/light-ui\n\n\n### Deploy OSM\nDeploy one by one, wait for the previous service to be available.\n```bash\nkubectl apply -f osm-zookeeper.yaml\nkubectl apply -f osm-kafka.yaml\nkubectl apply -f osm-mongo.yaml\nkubectl apply -f osm-prometheus.yaml\nkubectl apply -f osm-keystone-db.yaml\nkubectl apply -f osm-keystone.yaml\nkubectl apply -f osm-nbi.yaml\nkubectl apply -f osm-ro-db.yaml\nkubectl apply -f osm-ro.yaml\nkubectl apply -f osm-lcm.yaml\nkubectl apply -f osm-mon.yaml\nkubectl apply -f osm-pol.yaml\nkubectl apply -f osm-light-ui.yaml\n```\n\n### Web UI user password\n```bash\nadmin:admin\n```\n\n### Bonus point\n##### Create tunnel to service's IP to allow external traffic (when not using LB)\n```bash\nssh -i ~/.minikube/machines/minikube/id_rsa docker@$(minikube ip) -L \u003clocal_port\u003e:\u003cservice_ip\u003e:\u003cservice_port\u003e\n\ncurl http://$(minikube ip):\u003clocal_port\u003e\n```\n\n## License\n\nApache version 2\n\n## Contact information\n\nFeel free to reach me at ``dabarren@gmail.com`` or as ``egonzalez`` at OSM slack channel\nor at ```#openstack-kolla``` IRC channel at freenode.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxnaaro%2Fosm-k8s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxnaaro%2Fosm-k8s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxnaaro%2Fosm-k8s/lists"}