Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Wiki Markup
The Jira issue associated with this design spec \[[TBD]\]

Branch

TBD

Introduction

Wiki Markup
This design proposes to expose a virtual NIC as a first class object in the CloudStack API. The pattern follows that of the Amazon Elastic Network Interface \[1\].

Purpose

This design document describes changes which exposes the virtual network interface card (NIC) as a standalone entity in the CloudStack API that may be explicitly created/deleted and attached/detached from a virtual machine.

Wiki Markup
In CloudStack 4.0 release a virtual NIC is implicitly created when a virtual machine is deployed and connected to a network. Subsequent API changes \[2\] are proposed for the 4.1 release to allow a NIC to be added/removed from a virtual machine after creation

References

  1. Amazon Elastic Network Interface
  2. Add/Remove Network to VM
  3.  

Document History

Glossary

Feature Specifications

...

Parameter profiles for the new and modified commands are described below (see Web Service API).

Security Groups become property of NIC

The main functional change arising from this proposal is that security groups, previously associate associated with a virtual machine will now be associated with a NIC.

The legacy semantics of the deployVirtualMachine operation will be preserved; if there are security groups specified as part of a deployVirtualMachine command then they will be associated with each of the NICs that get created as a result of that command. For example consider a system with two security groups (sg1 and sg2) and networks (net1 and net2). A command of the form

Code Block

 command=deployVirtualMachine&networkids=net1,net2&securitygroupsids=sg1,sg2

would result in two NICs being created, each of which would have security groups sg1 and sg2 associated with it. 

Use cases

put the relevant use case/stories to explain how the feature is going to be used/work

Architecture and Design description

...

...

Web Services APIs

createNic

...

Attribute

Description

id

Id of the NIC

*securitygroup()(star)*

List of security groups associated with the NIC

broadcasturi

URI

gateway

string

ipaddress

Primary IP address of the NIC

*secondaryipaddress()(star)*

List of secondary IP addresses for the NIC

isdefault

Indicates if this the default NIC

isolationuri

URI

macaddress

string

netmask

string

networkid

string

traffictype

string

type

string

...

Parameter Name

Description

Required

nicids

Comma separated list of NICs to attach to the virtual machine. The first NIC in the list will be designated as the default NIC. Cannot be used in conjunction with secuirtygroupnames, secutirygroupidsipaddress, iptonetworklist or networkids parameters.

false

listVirtualMachines

This commands request object is unchanged.

Response Parameters

UI flow

...

The syntax of the response object is unchanged, the description is changed.

Parameter

Description

securitygroups

The set of security groups associated with the virtual machine's NICs is returned (i.e. only one instance of a security group is returned even if it is associated with more than one NIC).

 

 

 UI flow

Appendix

Appendix A:

Appendix B: