kuryr-kubernetes/contrib/vagrant
Roman Dobosz bd8469b40b Change documentation for devstack deployment.
Reflect reality to the docs regarding devstack deployment.
Also, there were changes to refresh docs for vagrant, updated
Vagrantfile, and removed outdated Opendaylight docs.

Change-Id: Ic038967547ebf748c5b41ad598e8553c4a6bebad
2021-07-20 11:00:40 +02:00
..
config Removing detected Keystone Port in vagrant kury_rc 2017-06-19 05:03:40 +00:00
devstack.sh Adding vagrant configs to kuryr-kubernetes 2017-03-15 09:37:59 -07:00
README.rst Change documentation for devstack deployment. 2021-07-20 11:00:40 +02:00
vagrant.sh Fix the IPv6 enablement 2020-10-14 17:25:38 +02:00
Vagrantfile Change documentation for devstack deployment. 2021-07-20 11:00:40 +02:00

Vagrant based Kuryr-Kubernetes devstack installation

Deploy kuryr-kubernetes on devstack in VM using Vagrant. Vagrant simplifies life cycle of the local virtual machine and provides automation for repetitive tasks.

Requirements

For comfortable work, here are minimal host requirements:

  1. vagrant installed
  2. 4 CPU cores
  3. At least 8GB of RAM
  4. Around 20GB of free disk space

Vagrant will create VM with 2 cores, 6GB of RAM and dynamically expanded disk image.

Getting started

You'll need vagrant itself, i.e.:

$ apt install vagrant virtualbox

As an option, you can install libvirt instead of VirtualBox, although VirtualBox is as an easiest drop-in.

Next, clone the kuryr-kubernetes repository:

$ git clone https://opendev.org/openstack/kuryr-kubernetes

And run provided vagrant file, by executing:

$ cd kuryr-kubernetes/contrib/vagrant
$ vagrant up

This can take some time, depending on your host performance, and may take 20 minutes and up.

After deploying is complete, you can access VM by ssh:

$ vagrant ssh

At this point you should have experimental kubernetes (etcdv3, k8s-apiserver, k8s-controller-manager, k8s-scheduler, kubelet and kuryr-controller), docker, OpenStack services (neutron, keystone, placement, nova, octavia), kuryr-cni and kuryr-controller all up, running and pointing to each other. Pods and services orchestrated by kubernetes will be backed by kuryr+neutron and Octavia. The architecture of the setup can be seen here.

Vagrant Options available

You can set the following environment variables before running vagrant up to modify the definition of the Virtual Machine spawned:

  • VAGRANT_KURYR_VM_BOX - to change the Vagrant Box used. Should be available in atlas. For example of a rpm-based option:

    $ export VAGRANT_KURYR_VM_BOX=centos/8
  • VAGRANT_KURYR_VM_MEMORY - to modify the RAM of the VM. Defaulted to: 6144. If you plan to create multiple Kubernetes services on the setup and the Octavia driver used is Amphora, you should increase this setting.

  • VAGRANT_KURYR_VM_CPU: to modify number of CPU cores for the VM. Defaulted to: 2.

  • VAGRANT_KURYR_RUN_DEVSTACK - whether vagrant up should run devstack to have an environment ready to use. Set it to 'false' if you want to edit local.conf before stacking devstack in the VM. Defaulted to: true. See below for additional options for editing local.conf.

Additional devstack configuration

To add additional configuration to local.conf before the VM is provisioned, you can create a file called user_local.conf in the contrib/vagrant directory of networking-kuryr. This file will be appended to the "local.conf" created during the Vagrant provisioning.