RETIRED, AWS EC2 and VPC API support in standalone service for OpenStack.
Go to file
Doug Hellmann f3adc74c90 add lower-constraints job
Create a tox environment for running the unit tests against the lower
bounds of the dependencies.

Create a lower-constraints.txt to be used to enforce the lower bounds
in those tests.

Add openstack-tox-lower-constraints job to the zuul configuration.

See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html
for more details.

Change-Id: I092758f7553860040990790a31651cd35affbc67
Depends-On: https://review.openstack.org/555034
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-03-22 12:26:50 -04:00
api-ref/source Fix html_last_updated_fmt for Python3 2017-06-04 12:27:00 +07:00
devstack fix DB migration for MySQL 2018-01-10 05:25:43 +00:00
doc/source Fix the incorrect reference links 2018-02-26 16:02:15 +08:00
ec2api Remove intree ec2-api tempest tests 2018-03-18 03:27:03 +00:00
etc/ec2api Remove code that used nova-cert 2017-07-07 11:35:22 +03:00
playbooks/legacy Switch ec2 neutron-full job to use ec2api tempest plugin 2018-02-06 07:33:38 +00:00
rally-scenarios Remove intree ec2-api tempest tests 2018-03-18 03:27:03 +00:00
tools rework tox.ini 2017-10-20 12:16:30 +03:00
.gitignore Add test_cert.pem to .gitignore 2017-09-13 16:07:05 -05:00
.gitreview Update .gitreview for new namespace 2015-10-17 22:08:54 +00:00
.testr.conf Add more tests 2015-02-10 16:24:43 +03:00
.zuul.yaml add lower-constraints job 2018-03-22 12:26:50 -04:00
babel.cfg Initial EC2-API service commit. 2014-07-18 19:33:55 -07:00
CONTRIBUTING.rst add CONTRIBUTING.rst 2016-12-20 14:53:42 +08:00
HACKING.rst Delete log translation functions and add hacking rule 2017-07-03 04:14:44 -04:00
install.sh Merge "Remove SCREEN_LOGDIR from devstack" 2017-10-06 07:46:18 +00:00
LICENSE Initial EC2-API service commit. 2014-07-18 19:33:55 -07:00
lower-constraints.txt add lower-constraints job 2018-03-22 12:26:50 -04:00
README.rst Update links in README 2018-02-28 01:55:36 +08:00
requirements.txt Updated from global requirements 2018-03-17 08:26:53 +00:00
setup.cfg Remove intree ec2-api tempest tests 2018-03-18 03:27:03 +00:00
setup.py Updated from global requirements 2017-03-02 11:43:57 +00:00
test-requirements.txt Updated from global requirements 2018-03-17 08:26:53 +00:00
tox.ini add lower-constraints job 2018-03-22 12:26:50 -04:00

Team and repository tags

image

OpenStack EC2 API README

Support of EC2 API for OpenStack. This project provides a standalone EC2 API service which pursues two goals:

  1. Implement VPC API
  2. Create a standalone service for EC2 API support.

Installation

Run install.sh

The EC2 API service gets installed on port 8788 by default. It can be changed before the installation in install.sh script.

The services afterwards can be started as binaries:

/usr/local/bin/ec2-api
/usr/local/bin/ec2-api-metadata
/usr/local/bin/ec2-api-s3

or set up as Linux services.

Installation in devstack:

In order to install ec2-api with devstack the following should be added to the local.conf or localrc the following line:

enable_plugin ec2-api https://git.openstack.org/openstack/ec2-api

To configure OpenStack for EC2 API metadata service:

for Nova-network

add:

[DEFAULT]
metadata_port = 8789
[neutron]
service_metadata_proxy = True

to /etc/nova.conf

then restart nova-metadata (can be run as part of nova-api service) and nova-network services.

for Neutron

add:

[DEFAULT]
nova_metadata_port = 8789

to /etc/neutron/metadata_agent.ini

then restart neutron-metadata service.

S3 server is intended only to support EC2 operations which require S3 server (e.g. CreateImage) in OpenStack deployments without regular object storage. It must not be used as a substitution for all-purposes object storage server. Do not start it if the deployment has its own object storage or uses a public one (e.g. AWS S3).

Usage

Download aws cli from Amazon. Create configuration file for aws cli in your home directory ~/.aws/config:

[default]
aws_access_key_id = 1b013f18d5ed47ae8ed0fbb8debc036b
aws_secret_access_key = 9bbc6f270ffd4dfdbe0e896947f41df3
region = us-east-1

Change the aws_access_key_id and aws_secret_acces_key above to the values appropriate for your cloud (can be obtained by "openstack ec2 credentials list" command).

Run aws cli commands using new EC2 API endpoint URL (can be obtained from openstack cli with the new port 8788) like this:

aws --endpoint-url http://10.0.2.15:8788 ec2 describe-instances

Supported Features and Limitations

General:
  • DryRun option is not supported.
  • Some exceptions are not exactly the same as reported by AWS.
AWS Component Command Functionality group Limitations
bold - supported, normal - supported with limitations, italic -not supported
VPC AcceptVpcPeeringConnection cross-VPC connectivity not supported
EC2, VPC AllocateAddress addresses
AllocateHosts dedicated hosts not supported
AssignIpv6Addresses network interfaces not supported
VPC AssignPrivateIpAddresses network interfaces allowReassignment parameter
EC2, VPC AssociateAddress addresses
VPC AssociateDhcpOptions DHCP options
VPC AssociateRouteTable routes
AssociateSubnetCidrBlock subnets not supported
AssociateVpcCidrBlock VPC not supported
VPC AttachClassicLinkVpc cross-VPC connectivity not supported
VPC AttachInternetGateway internet gateways
VPC AttachNetworkInterface network interfaces
EC2, EBS AttachVolume volumes
VPC AttachVpnGateway VPN
EC2, VPC AuthorizeSecurityGroupEgress security groups EC2 classic way to pass cidr, protocol, sourceGroup, ports parameters
EC2, VPC AuthorizeSecurityGroupIngress security groups EC2 classic way to pass cidr, protocol, sourceGroup, ports parameters
BundleInstance tasks,s3 not supported
CancelBundleTask tasks,s3 not supported
CancelConversionTask tasks,s3 not supported
CancelExportTask tasks,s3 not supported
CancelImportTask tasks,s3 not supported
CancelReservedInstancesListing market not supported
CancelSpotFleetRequests market not supported
CancelSpotInstanceRequests market not supported
ConfirmProductInstance product codes not supported
EBS CopyImage image provisioning not supported
EBS CopySnapshot snapshots,s3 not supported
VPC CreateCustomerGateway VPC gateways BGPdynamicrouting
VPC CreateDhcpOptions DHCP options
CreateEgressOnlyInternetGateway VPC gateways not supported
CreateFlowLogs infrastructural not supported
EBS CreateImage images blockDeviceMapping parameter
CreateInstanceExportTask tasks,s3 not supported
VPC CreateInternetGateway VPC gateways
EC2 CreateKeyPair key pairs
CreateNatGateway NAT gateways not supported
VPC CreateNetworkAcl ACL not supported
VPC CreateNetworkAclEntry ACL not supported
VPC CreateNetworkInterface network interfaces
CreatePlacementGroup clusters not supported
CreateReservedInstancesListing market not supported
VPC CreateRoute routes vpcPeeringConnection parameter
VPC CreateRouteTable routes
EC2, VPC CreateSecurityGroup security groups
EBS CreateSnapshot snapshots
CreateSpotDatafeedSubscription market not supported
VPC CreateSubnet subnets availabilityZone parameter
EC2 CreateTags tags
EBS CreateVolume volumes iops, encrypted, kmsKeyId parameters
VPC CreateVpc VPC
VPC CreateVpcEndpoint cross-VPC connectivity not supported
VPC CreateVpcPeeringConnection cross-VPC connectivity not supported
VPC CreateVpnConnection VPN BGP dynamic routing
VPC CreateVpnConnectionRoute VPN
VPC CreateVpnGateway VPN BGP dynamic routing
VPC DeleteCustomerGateway VPC gateways
VPC DeleteDhcpOptions DHCP options
DeleteEgressOnlyInternetGateway VPC gateways not supported
DeleteFlowLogs infrastructural not supported
VPC DeleteInternetGateway VPC gateways
EC2 DeleteKeyPair key pairs
DeleteNatGateway NAT gateways not supported
VPC DeleteNetworkAcl ACL not supported
VPC DeleteNetworkAclEntry ACL not supported
VPC DeleteNetworkInterface network interfaces
EC2 DeletePlacementGroup clusters not supported
VPC DeleteRoute routes
VPC DeleteRouteTable routes
EC2, VPC DeleteSecurityGroup security groups
EBS DeleteSnapshot snapshots
DeleteSpotDatafeedSubscription market not supported
VPC DeleteSubnet subnets
EC2 DeleteTags tags
EBS DeleteVolume volumes
VPC DeleteVpc VPC
VPC DeleteVpcEndpoints cross-VPC connectivity not supported
VPC DeleteVpcPeeringConnection cross-VPC connectivity not supported
VPC DeleteVpnConnection VPN
VPC DeleteVpnConnectionRoute VPN
VPC DeleteVpnGateway VPN
EBS DeregisterImage images
EC2 DescribeAccountAttributes infrastructural vpc-max-security-groups-per-interface, max-elastic-ips, vpc-max-elastic-ips attributes
EC2, VPC DescribeAddresses addresses
EC2 DescribeAvailabilityZones availability zones
DescribeBundleTasks tasks,s3 not supported
VPC DescribeClassicLinkInstances cross-VPC connectivity not supported
DescribeConversionTasks tasks,s3 not supported
VPC DescribeCustomerGateways gateways
VPC DescribeDhcpOptions DHCP options
DescribeEgressOnlyInternetGateways VPC gateways not supported
DescribeExportTasks tasks,s3 not supported
DescribeFlowLogs infrastructural not supported
DescribeHosts dedicated hosts not supported
DescribeIdentityIdFormat resource IDs not supported
DescribeIdFormat resource IDs not supported
EBS DescribeImageAttribute images productCodes, sriovNetSupport attributes
EBS DescribeImages images
DescribeImportImageTasks tasks,s3 not supported
DescribeImportSnapshotTasks tasks,s3 not supported
EC2 DescribeInstanceAttribute instances same limitations as for ModifyInstanceAttribute
EC2, EBS, VPC DescribeInstances instances
DescribeInstanceStatus monitoring not supported
VPC DescribeInternetGateways gateways
EC2 DescribeKeyPairs key pairs
VPC DescribeMovingAddresses infrastructural not supported
DescribeNatGateways NAT gateways not supported
VPC DescribeNetworkAcls ACL not supported
VPC DescribeNetworkInterfaceAttribute network interfaces
VPC DescribeNetworkInterfaces network interfaces
EC2 DescribePlacementGroups clusters not supported
VPC DescribePrefixLists cross-VPC connectivity not supported
EC2 DescribeRegions availability zones RegionNameparameter
DescribeReservedInstances market not supported
DescribeReservedInstancesListings market not supported
DescribeReservedInstancesModifications market not supported
DescribeReservedInstancesOfferings market not supported
VPC DescribeRouteTables routes
DescribeScheduledInstanceAvailability scheduled instances not supported
DescribeScheduledInstances scheduled instances not supported
DescribeSecurityGroupReferences security groups not supported
EC2, VPC DescribeSecurityGroups security groups cidr, protocol, port, sourceGroup parameters
EBS DescribeSnapshotAttribute snapshots not supported
EBS DescribeSnapshots snapshots
DescribeSpotDatafeedSubscription market not supported
DescribeSpotFleetInstances market not supported
DescribeSpotFleetRequestHistory market not supported
DescribeSpotFleetRequests market not supported
DescribeSpotInstanceRequests market not supported
DescribeSpotPriceHistory market not supported
DescribeStaleSecurityGroups security groups not supported
VPC DescribeSubnets subnets
EC2 DescribeTags tags
EBS DescribeVolumeAttribute volumes not supported
EBS DescribeVolumes volumes
DescribeVolumeStatus monitoring not supported
VPC DescribeVpcAttribute VPC not supported
VPC DescribeVpcClassicLink cross-VPC connectivity not supported
DescribeVpcClassicLinkDnsSupport cross-VPC connectivity not supported
VPC DescribeVpcEndpoints cross-VPC connectivity not supported
VPC DescribeVpcEndpointServices cross-VPC connectivity not supported
VPC DescribeVpcPeeringConnections cross-VPC connectivity not supported
VPC DescribeVpcs VPC
VPC DescribeVpnConnections VPN
VPC DescribeVpnGateways VPN
VPC DetachClassicLinkVpc cross-VPC connectivity not supported
VPC DetachInternetGateway VPC
VPC DetachNetworkInterface network interfaces
EC2, EBS DetachVolume volumes instance_id, device, force parameters
VPC DetachVpnGateway VPN
VPC DisableVgwRoutePropagation VPN
VPC DisableVpcClassicLink cross-VPC connectivity not supported
DisableVpcClassicLinkDnsSupport cross-VPC connectivity not supported
EC2, VPC DisassociateAddress addresses
VPC DisassociateRouteTable DisassociateSubnetCidrBlock routes subnets not supported
DisassociateVpcCidrBlock VPC not supported
VPC EnableVgwRoutePropagation VPN
EBS EnableVolumeIO monitoring not supported
VPC EnableVpcClassicLink cross-VPC connectivity not supported
EnableVpcClassicLinkDnsSupport cross-VPC connectivity not supported
EC2 GetConsoleOutput instances
GetConsoleScreenshot instances not supported
EC2 GetPasswordData instances
ImportImage tasks,s3 not supported
ImportInstance tasks,s3 not supported
EC2 ImportKeyPair keypairs
ImportSnapshot tasks,s3 not supported
ImportVolume tasks,s3 not supported
ModifyHosts dedicated hosts not supported
ModifyIdentityIdFormat resource IDs not supported
ModifyIdFormat resource IDs not supported
EBS ModifyImageAttribute images productCodes attribute
EC2 ModifyInstanceAttribute instances only disableApiTermination, sourceDestCheck,instanceType supported
ModifyInstancePlacement dedicated hosts not supported
VPC ModifyNetworkInterfaceAttribute network interfaces
ModifyReservedInstances market not supported
EBS ModifySnapshotAttribute snapshots not supported
ModifySpotFleetRequest market not supported
VPC ModifySubnetAttribute subnets not supported
EBS ModifyVolumeAttribute volumes not supported
VPC ModifyVpcAttribute VPC not supported
VPC ModifyVpcEndpoint cross-VPC connectivity not supported
ModifyVpcPeeringConnectionOptions cross-VPC connectivity not supported
MonitorInstances monitoring not supported
VPC MoveAddressToVpc infrastructural not supported
PurchaseReservedInstancesOffering market not supported
PurchaseScheduledInstances scheduled instances not supported
EC2 RebootInstances instances
EBS RegisterImage images virtualizationType, sriovNetSupport parameters
VPC RejectVpcPeeringConnection cross-VPC connectivity not supported
EC2, VPC ReleaseAddress addresses
ReleaseHosts dedicated hosts not supported
VPC ReplaceNetworkAclAssociation ACL not supported
VPC ReplaceNetworkAclEntry ACL not supported
VPC ReplaceRoute routes
VPC ReplaceRouteTableAssociation routes
ReportInstanceStatus monitoring not supported
RequestSpotFleet market not supported
RequestSpotInstances market not supported
EBS ResetImageAttribute images
EC2 ResetInstanceAttribute instances same limitations as for ModifyInstanceAttribute
VPC ResetNetworkInterfaceAttribute network interfaces
EBS ResetSnapshotAttribute snapshots not supported
VPC RestoreAddressToClassic infrastructural not supported
EC2, VPC RevokeSecurityGroupEgress security groups EC2 classic way to pass cidr, protocol, sourceGroup, ports parameters
EC2, VPC RevokeSecurityGroupIngress security groups EC2 classic way to pass cidr, protocol, sourceGroup, ports parameters
EC2, VPC, EBS RunInstances instances placement, block_device_mapping partial support, monitoring, iamInstanceProfile, ebsOptimized, shutdownInitiatedInstanceBehavior parameters
RunScheduledInstances scheduled instances not supported
EC2 StartInstances instances
EC2 StopInstances instances
EC2 TerminateInstances instances
UnassignIpv6Addresses network interfaces not supported
VPC UnassignPrivateIpAddresses network interfaces
UnmonitorInstances monitoring not supported

References

Blueprint: https://blueprints.launchpad.net/nova/+spec/ec2-api

Spec: https://review.openstack.org/#/c/147882/