https://blueprints.launchpad.net/fuel/+spec/vip-reservation
This document is about additional virtual IP (VIP) reservation during deployment.
Some plugins require additional VIP to proper configuration. For example Zabbix could be configured in way that it expect SNMP traffic on dedicated VIP.
In current version VIPs reservation is done based on information from release field in the database.
So the plugin developer should have a better way to create extra VIPs as puppet resource in pre-deployment or post-deployment plugin stage.
Give user a possibility to reserve additional VIPs during deployment process. This should be possible by providing additional plugin configuration.
Add support of new configuration file to the plugin. Configuration file should be named network_roles.yaml.
Plugin developers will provide new network roles configuration. Network roles description is placed in network_roles.yaml. Network role description includes information on VIPs reservation.
At the deployment stage Nailgun will reserve VIPs and they will be accessible in the Puppet manifests via Hiera.
Deployment flow: None
Migration script flow: None
Provide REST API to reserve VIPs. This allows 3rd party software to reserve additional VIPs.
- Cons:
- Authentication from plugin is difficult
- Requires installation of Fuel client or direct access to the REST API server
- Pros:
- Allows VIP management outside of the plugin
Network roles data format:
Proposed network roles configuration file format:
- id: "name_of_network_role"
default_mapping: "public"
properties:
subnet: true
gateway: false
vip:
- name: "my_vip_a"
shared: false
Nailgun DB tables changes:
Plugin
network_roles_metadata plugin network roles data taken from network_roles.yaml file.
None
None
None
None
None
None
Developer that works on Fuel plugins can use new network_roles.yaml to reserve VIPs for the plugin.
- Implement configuration file data loading to the database.
- Implement VIP reservation from plugin network roles metadata.
Acceptance criteria:
- Configuration data from network_roles.yaml is stored to the database.
- VIPs defined in network_roles.yaml are accessible via Hiera.
We need to update documentation about VIPs in networks. Plugin documentation should be updated as well.