{"id":22983237,"url":"https://github.com/mikejoh/kollastack","last_synced_at":"2025-04-02T10:22:21.110Z","repository":{"id":133966414,"uuid":"335065209","full_name":"mikejoh/KollaStack","owner":"mikejoh","description":"KollaStack is aimed to be an alternative all-in-one deployment of OpenStack using your local computer as deploy host using kolla-ansible.","archived":false,"fork":false,"pushed_at":"2021-02-01T19:47:45.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-13T04:02:25.462Z","etag":null,"topics":["cinder","kolla-ansible","neutron","nova","openstack","vagrant","virtualbox"],"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/mikejoh.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":"2021-02-01T19:46:49.000Z","updated_at":"2021-02-02T07:44:03.000Z","dependencies_parsed_at":"2024-07-09T13:49:49.838Z","dependency_job_id":null,"html_url":"https://github.com/mikejoh/KollaStack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikejoh%2FKollaStack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikejoh%2FKollaStack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikejoh%2FKollaStack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikejoh%2FKollaStack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikejoh","download_url":"https://codeload.github.com/mikejoh/KollaStack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246794426,"owners_count":20834991,"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":["cinder","kolla-ansible","neutron","nova","openstack","vagrant","virtualbox"],"created_at":"2024-12-15T02:36:57.170Z","updated_at":"2025-04-02T10:22:21.077Z","avatar_url":"https://github.com/mikejoh.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# KollaStack\n\nKollaStack is aimed to be an alternative all-in-one deployment of OpenStack using your local computer as deploy host using `kolla-ansible`.\n\nKollaStack consists of the following components:\n* [`kolla-ansible`](https://docs.openstack.org/kolla-ansible/latest/)\n* [OpenStack](https://www.openstack.org/)\n* [Vagrant](https://www.vagrantup.com/)\n* [VirtualBox](https://www.virtualbox.org/)\n\nOpenStack services available out-of-the-box:\n* Nova (compute)\n* Neutron (network)\n* Heat (orchestration)\n* Keystone (identity)\n* Glance (images)\n* Cinder (block storage - via LVM)\n# Local environment\n\nResources needed:\n* `8192MB` RAM\n* `2` vCPUs\n* `30GB` Disk space (15GB for the host root disk and 15GB used by Cinder to provision storage)\n\nTested the following OpenStack release(s):\n- [X] `Victoria` and `kolla-ansible` version `11.0.0`\n- [ ] `Ussuri`\n- [ ] `Train`\n- [ ] `Stein`\n\nTested deploying OpenStack on the following VM host OS's:\n- [X] `Ubuntu 18.04`\n- [ ] `Ubuntu 20.04`\n\nTested on the following VirtualBox version(s):\n- [X] `6.1.10`\n\nTested with the following Vagrant version(s):\n- [X] `2.2.14`\n\n# Step-by-step instructions\n\n_**IMPORTANT:** Before starting please make any necessary changes to the Vagrant VM configuration file ([`vagrant.yml`](kollastack/vagrant.yml))._\n\n1. Create a local `venv`, source it and install required Python packages:\n```\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n```\n2. Create a local configuration directory that'll contain a global `kolla-ansible` configuration file. *Please use the provided example file if you want to, if so just rename it to `globals.yml` and skip this step!*\n```\nmkdir -p ./etc/kolla\ncp .venv/share/kolla-ansible/etc_examples/kolla/globals.yml ./etc/kolla\n```\n\nThe `globals-example.yml` file contains the following configured options:\n```\nconfig_strategy: \"COPY_ALWAYS\"\nnode_custom_config: \"./etc/kolla/config\"\nenable_haproxy: \"no\nenable_openstack_core: \"yes\"\nenable_cinder: \"yes\"\nenable_cinder_backend_lvm: \"yes\"\ncinder_volume_group: \"cinder-volumes\"\nkolla_base_distro: \"ubuntu\"\nkolla_install_type: \"binary\"\nopenstack_release: \"victoria\"\nkolla_internal_vip_address: \"192.168.50.10\"\nkolla_external_vip_address: \"{{ kolla_internal_vip_address }}\"\nnetwork_interface: \"enp0s8\"\nneutron_external_interface: \"enp0s9\"\nneutron_plugin_agent: \"openvswitch\"\nnova_compute_virt_type: \"qemu\"\n```\n_Note that there's hundreds of other things to tweak and configure in this file, please do test and see what's possible, the provided `globals-example.yml` is more of a bare minimum config file that will give you a working OpenStack deployment in one VM._\n\n_Note that i've added a custom [`ml2_conf.ini`](etc/kolla/config/neutron/ml2_conf.ini) to enable creation of various types of networks in `neutron`._\n\n3. Copy the `passwords.yml` to the local `kolla-ansible` configuration directory and generated all the passwords:\n```\ncp .venv/share/kolla-ansible/etc_examples/kolla/passwords.yml ./etc/kolla\nkolla-genpwd -p ./etc/kolla/passwords.yml\n```\n\n4. Start the VM in VirtualBox:\n```\ncd kollastack/ \u0026\u0026 vagrant up\n```\n\n5. With your venv still sourced run the following from the root of this repository, the `all-in-one` inventory should be configured correctly for you:\n```\nkolla-ansible --configdir ./etc/kolla -i all-in-one bootstrap-servers\nkolla-ansible --configdir ./etc/kolla -i all-in-one prechecks\nkolla-ansible --configdir ./etc/kolla -i all-in-one deploy\n``` \n\n6. Create a NAT Network in VirtualBox via File \u003e Preferences \u003e Network. Give the network the name `extnet` to match what we defined in the [`Vagrantfile`](kollastack/Vagrantfile) for network adapter 3.\n\n7. Generate the `admin` credentials file by running:\n```\nkolla-ansible post-deploy\n``` \n\n8. Login to Horizon as `admin` here: [https://192.168.50.10](https://192.168.50.10). Use the generated password called `keystone_admin_password` in the [`passwords.yml`](etc/kolla/passwords.yml) file.\n\n## [WIP] Create VM flavor and image\n\n1. Create a VM flavor, we'll be testing with a small CirrOS instance:\n```\nopenstack --os-compute-api-version 2.55 flavor create --ram 256 --disk 1 --public m1.super.small\n``` \n\n2. Download a CirrOS image and upload it to the Glance image service:\n```\nopenstack image create --public --container-format bare --disk-format qcow2 --file \u003cPATH TO IMG\u003e cirros\n```\n\n3. OPTIONAL: Create a keypair using your public SSH key, not needed for the CirrOS test but in future scenarios:\n```\nopenstack keypair create --public-key \u003cPATH TO PUBLIC KEY\u003e \u003cKEYPAIR NAME\u003e\n``` \n## [WIP] Create external network and subnet \n1. Create an external network:\n```\nopenstack network create --external --provider-physical-network physnet1 --provider-network-type flat ext-net\n```\n\n2. Create a subnet in the network above:\n```\nopenstack subnet create --no-dhcp --allocation-pool start=10.0.2.15,end=10.0.2.250 --dns-nameserver 8.8.8.8 --network ext-net --subnet-range 10.0.2.0/24 --gateway 10.0.2.2 ext-subnet\n```\n\n## [WIP] Launch an instance\n\n7. Example to launch a CirrOS instance:\n```\nopenstack server create \\\n  --image \u003cIMAGE NAME\u003e \\\n  --flavor m1.tiny \\\n  --key-name \u003cKEYPAIR NAME\u003e \\\n  --network ext-net \\\n    cirros\n```\n\n# Todo\n\n* Reachable instances with FLIPs\n* Octavia (Load Balancing)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikejoh%2Fkollastack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikejoh%2Fkollastack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikejoh%2Fkollastack/lists"}