Comments (3)
In advanced networking, some pre-reserved ips can be pre allocated on an external network, and mapped with SNAT to the vm analogous to openstack floating ip mapping to an instance)
Supporting these snat ip mapping might imply to open tcp port mapping with cloudstack firewall api
from bosh-cloudstack-cpi-release.
jclouds seem to provide necessery apis, eg :
ListPublicIPAddressesOptions listPublicIpOptions=ListPublicIPAddressesOptions.Builder.IPAddress(directorNetwork.ip);
//check vip exists
String IPAddressId=api.getAddressApi().listPublicIPAddresses(listPublicIpOptions).iterator().next().getId(); //TODO: find public ip id ?.
//check vip is avail? (or force)
//assign vip to vm
logger.info("enable static nat for vip {} to vm {}",directorNetwork.ip,vmName);
String virtualMachineId="XXXXX"; //FIXME: must be retrieved from previously created vm
api.getNATApi().enableStaticNATForVirtualMachine(virtualMachineId, IPAddressId);
//create nat forwarding rules
logger.info("adding nat forwarding rules for vip {} to vm {}",directorNetwork.ip,vmName);
int startPort=1;
CreateIPForwardingRuleOptions natOptions=CreateIPForwardingRuleOptions.Builder.endPort(65535);//check
AsyncCreateResponse resp;
resp=api.getNATApi().createIPForwardingRule(IPAddressId, "TCP", startPort, natOptions);
jobComplete.apply(resp.getJobId());
resp=api.getNATApi().createIPForwardingRule(IPAddressId, "UDP", startPort, natOptions);
jobComplete.apply(resp.getJobId());
from bosh-cloudstack-cpi-release.
2 ways of implementing the vip
- a: apply static NAT from public address to the vm
- b : declare forwarding rule, specifying protocol (tcp/udp) and related ports interval
The 2 options are exclusive from cloudstack point of view
option a has been easily implemented, as it requires no specific cloud-properties (the network type 'vip' is enough to set up the static nat.
option b would require to be able to specify the protocol / interval set. Probably with vm level cloud_properties.
from bosh-cloudstack-cpi-release.
Related Issues (20)
- hvm: PV drivers were not detected. HOT 1
- Annoting disk methods with HystrixCommand for dashboarding HOT 1
- Support cloudstack security group affectation
- create vm env properties not propagated by CPI
- Create assert rule to validate cpi.registry.user and cpi.core.user values HOT 1
- Registry content limit is too low HOT 1
- Persist registry in bosh pg db to benefit from bosh backups
- Leverage jclouds 2.0
- bosh-init should be easier HOT 3
- Enhancement: Create VM with more than 1 NIC HOT 1
- Test and document bosh cli v2 create-env (replaces bosh-init deploy CLI command)
- Add info endpoint for bosh 262 HOT 3
- Need to update findZoneId() in CacheableCloudstackConnector to deal with multiplte zones HOT 4
- registry mismatch when using vip networking
- add support for disk resize. bosh >=263
- optional s3 backend for cloustack template registration
- Add metadata when calling RegisterTemplate to upload stemcell
- liquibase locks prevent cpi-core startup
- Unability to use bosh create-env with cpi
- CPI does not support bosh cpi v2 and will break when the registry is removed HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bosh-cloudstack-cpi-release.