README.md in gogetit-0.2.1 vs README.md in gogetit-0.3.0
- old
+ new
@@ -7,10 +7,16 @@
- Provides an API and a CLI tool for dealing with Libvirt(KVM) and LXD.
- Aware of MAAS and works with [maas-client](https://github.com/itisnotdone/maas-client) to manage IP and FQDN allocation.
- Aware of Chef knife and its sub commands such as Vault to automate routine tasks.
- Being used by [kitchen-gogetkitchen](https://github.com/itisnotdone/kitchen-gogetkitchen) as a driver for Chef Test Kitchen.
+## Limitations
+- Network resource awareness is only provided by MAAS.
+- Only LXD and Libvirt(KVM) are available as provider.
+- Only IPv4 is available for IP assignment.
+- It is tested only on Ubuntu 16.04 with OVS as virtual switch.
+
## Installation
### dependent packages
```bash
sudo apt install -y build-essential lxd-client libvirt-dev libvirt-bin
@@ -29,29 +35,54 @@
$ gem install gogetit --no-ri --no-rdoc
```
## Usage
```bash
gogetit list
-gogetit create lxd lxd01
-gogetit create libvirt kvm01
+gogetit create lxd01
+gogetit create lxd01 --provider lxd
+# For advanced network configuration
+gogetit create lxd01 -p lxd -i 192.168.0.10
+
+# When specifying multiple IPs, the first one will be chosen as gateway.
+# And the IP which belongs to the gateway interface will be the IP of the FQDN
+# of the container which is set by MAAS.
+# The IPs should belong to networks defined and recognized by MAAS.
+gogetit create lxd01 -p lxd -i 192.168.10.10 10.0.0.2
+
+# When specifying multiple VLANs, the first one will be chosen as gateway.
+# gogetit create lxd01 -p lxd -v 0 10 12
+# gogetit create lxd01 -p lxd -v 10 11
+
+gogetit create kvm01 -p libvirt
+gogetit create kvm01 -p libvirt -i 192.168.10.10 10.0.0.2
+
+# to provision with a bare metal machine
+# gogetit create kvm01 -p bare
+
gogetit destroy lxd01
gogetit rebuild kvm01
# to create a container bootstrapping as a chef node
-gogetit create --chef chef01
+gogetit create chef01 --chef
+or
+
+CHEF=true gogetit create chef01
+
+
# to destroy a container deleting corresponding chef node and client
-gogetit destroy --chef chef01
+gogetit destroy chef01 --chef
```
```ruby
require 'gogetit'
```
## TODO
-- Network subnets and space aware via MAAS
-- Static IP allocation
+- Provisioning LXD with useful cloud-init user-data.
+- Deploying bare metal machine from machine pool.
+- Static IP auto-assignment with VLAN info.
## Development and Contributing
Clone and then execute followings:
$ cd gogetit