Heroku plugin to manage Heroku Private Spaces
npm install @heroku-cli/plugin-spacesheroku-spaces CLI plugin 
===========

* heroku spaces
* heroku spaces:create
* heroku spaces:destroy
* heroku spaces:info
* heroku spaces:peering:info
* heroku spaces:peerings
* heroku spaces:peerings:accept
* heroku spaces:peerings:destroy
* heroku spaces:ps
* heroku spaces:rename
* heroku spaces:topology
* heroku spaces:transfer
* heroku spaces:vpn:config
* heroku spaces:vpn:connect
* heroku spaces:vpn:connections
* heroku spaces:vpn:destroy
* heroku spaces:vpn:info
* heroku spaces:vpn:update
* heroku spaces:vpn:wait
* heroku spaces:wait
* heroku trusted-ips
* heroku trusted-ips:add SOURCE
* heroku trusted-ips:remove SOURCE
heroku spaceslist available spaces
``
USAGE
$ heroku spaces [--json] [-t
FLAGS
-t, --team=
--json output in json format
DESCRIPTION
list available spaces
`
create a new space
`
USAGE
$ heroku spaces:create [SPACE] [-s
FLAGS
-s, --space=
-t, --team=
--cidr=
--data-cidr=
--region=
DESCRIPTION
create a new space
Example:
$ heroku spaces:create --space my-space --team my-team --region oregon
Creating space my-space in team my-team... done
=== my-space
ID: e7b99e37-69b3-4475-ad47-a5cc5d75fd9f
Team: my-team
Region: oregon
CIDR: 10.0.0.0/16
Data CIDR: 172.23.0.0/20
State: allocating
Created at: 2016-01-06T03:23:13Z
`
destroy a space
`
USAGE
$ heroku spaces:destroy [SPACE] [-s
FLAGS
-s, --space=
--confirm=
DESCRIPTION
destroy a space
Example:
$ heroku spaces:destroy --space my-space
Destroying my-space... done
`
show info about a space
`
USAGE
$ heroku spaces:info [SPACE] [-s
FLAGS
-s, --space=
--json output in json format
DESCRIPTION
show info about a space
`
display the information necessary to initiate a peering connection
`
USAGE
$ heroku spaces:peering:info [SPACE] [-s
FLAGS
-s, --space=
--json output in json format
DESCRIPTION
display the information necessary to initiate a peering connection
Example:
$ heroku spaces:peering:info example-space
=== example-space Peering Info
AWS Account ID: 012345678910
AWS Region: us-west-2
AWS VPC ID: vpc-baadf00d
AWS VPC CIDR: 10.0.0.0/16
Space CIDRs: 10.0.128.0/20, 10.0.144.0/20
Unavailable CIDRs: 10.1.0.0/16
You will use the information provided by this command to establish a peering connection request from your AWS VPC to
your private space.
To start the peering process, go into your AWS console for the VPC you would like peered with your Private Space,
navigate to the VPC service, choose the "Peering Connections" option and click the "Create peering connection" button.
- The AWS Account ID and VPC ID are necessary for the AWS VPC Peering connection wizard.
- You will also need to configure your VPC route table to route the Dyno CIDRs through the peering connection.
Once you've established the peering connection request, you can use the spaces:peerings:accept command to accept and
configure the peering connection for the space.
`
list peering connections for a space
`
USAGE
$ heroku spaces:peerings [SPACE] [-s
FLAGS
-s, --space=
--json output in json format
DESCRIPTION
list peering connections for a space
`
accepts a pending peering request for a private space
`
USAGE
$ heroku spaces:peerings:accept [PCXID] [-p
FLAGS
-p, --pcxid=
-s, --space=
DESCRIPTION
accepts a pending peering request for a private space
Example:
$ heroku spaces:peerings:accept pcx-4bd27022 --space example-space
Accepting and configuring peering connection pcx-4bd27022
`
destroys an active peering connection in a private space
`
USAGE
$ heroku spaces:peerings:destroy [PCXID] [-p
FLAGS
-p, --pcxid=
-s, --space=
--confirm=
DESCRIPTION
destroys an active peering connection in a private space
Example:
$ heroku spaces:peerings:destroy pcx-4bd27022 --confirm pcx-4bd27022 --space example-space
Tearing down peering connection pcx-4bd27022
`
list dynos for a space
`
USAGE
$ heroku spaces:ps [SPACE] [-s
FLAGS
-s, --space=
--json output in json format
DESCRIPTION
list dynos for a space
`
renames a space
`
USAGE
$ heroku spaces:rename --from
FLAGS
--from=
--to=
DESCRIPTION
renames a space
Example:
$ heroku spaces:rename --from old-space-name --to new-space-name
Renaming space old-space-name to new-space-name... done
`
show space topology
`
USAGE
$ heroku spaces:topology [SPACE] [-s
FLAGS
-s, --space=
--json output in json format
DESCRIPTION
show space topology
`
transfer a space to another team
`
USAGE
$ heroku spaces:transfer --space
FLAGS
--space=
--team=
DESCRIPTION
transfer a space to another team
Example:
$ heroku spaces:transfer --space=space-name --team=team-name
Transferring space-name to team-name... done
`
display the configuration information for VPN
`
USAGE
$ heroku spaces:vpn:config [NAME] [-s
FLAGS
-n, --name=
-s, --space=
--json output in json format
DESCRIPTION
display the configuration information for VPN
Example:
$ heroku spaces:vpn:config --space my-space vpn-connection-name
=== vpn-connection-name VPN Tunnels
VPN Tunnel Customer Gateway VPN Gateway Pre-shared Key Routable Subnets IKE Version
────────── ──────────────── ────────────── ────────────── ──────────────── ───────────
Tunnel 1 104.196.121.200 35.171.237.136 abcdef12345 10.0.0.0/16 1
Tunnel 2 104.196.121.200 52.44.7.216 fedcba54321 10.0.0.0/16 1
You will use the information provided by this command to establish a Private Space VPN Connection.
- You must configure your VPN Gateway to use both Tunnels provided by Heroku
- The VPN Gateway values are the IP addresses of the Private Space Tunnels
- The Customer Gateway value is the Public IP of your VPN Gateway
- The VPN Gateway must use the IKE Version shown and the Pre-shared Keys as the authentication method
`
create VPN
`
USAGE
$ heroku spaces:vpn:connect [NAME] [-n
FLAGS
-c, --cidrs=
-i, --ip=
-n, --name=
-s, --space=
DESCRIPTION
create VPN
Private Spaces can be connected to another private network via an IPSec VPN connection allowing dynos to connect to
hosts on your private networks and vice versa.
The connection is established over the public Internet but all traffic is encrypted using IPSec.
EXAMPLES
$ heroku spaces:vpn:connect --name office --ip 35.161.69.30 --cidrs 172.16.0.0/16,10.0.0.0/24 --space my-space
Creating VPN Connection in space my-space... done
▸ Use spaces:vpn:wait to track allocation.
`
list the VPN Connections for a space
`
USAGE
$ heroku spaces:vpn:connections [SPACE] [-s
FLAGS
-s, --space=
--json output in json format
DESCRIPTION
list the VPN Connections for a space
Example:
$ heroku spaces:vpn:connections --space my-space
=== my-space VPN Connections
Name Status Tunnels
────── ────── ───────
office active UP/UP
`
destroys VPN in a private space
`
USAGE
$ heroku spaces:vpn:destroy [NAME] [-s
FLAGS
-n, --name=
-s, --space=
--confirm=
DESCRIPTION
destroys VPN in a private space
Example:
$ heroku spaces:vpn:destroy --space example-space vpn-connection-name --confirm vpn-connection-name
Tearing down VPN Connection vpn-connection-name in space example-space
`
display the information for VPN
`
USAGE
$ heroku spaces:vpn:info [NAME] [-s
FLAGS
-n, --name=
-s, --space=
--json output in json format
DESCRIPTION
display the information for VPN
Example:
$ heroku spaces:vpn:info --space my-space vpn-connection-name
=== vpn-connection-name VPN Tunnel Info
Name: vpn-connection-name
ID: 123456789012
Public IP: 35.161.69.30
Routable CIDRs: 172.16.0.0/16
Status: failed
Status Message: supplied CIDR block already in use
=== my-space Tunnel Info
VPN Tunnel IP Address Status Status Last Changed Details
────────── ───────────── ────── ──────────────────── ──────────────
Tunnel 1 52.44.146.197 UP 2016-10-25T22:09:05Z status message
Tunnel 2 52.44.146.197 UP 2016-10-25T22:09:05Z status message
`
update VPN
`
USAGE
$ heroku spaces:vpn:update [NAME] [-n
FLAGS
-c, --cidrs=
-n, --name=
-s, --space=
DESCRIPTION
update VPN
Private Spaces can be connected to another private network via an IPSec VPN connection allowing dynos to connect to
hosts on your private networks and vice versa.
The connection is established over the public Internet but all traffic is encrypted using IPSec.
EXAMPLES
$ heroku spaces:vpn:update --name office --cidrs 172.16.0.0/16,10.0.0.0/24 --space my-space
Updating VPN Connection in space my-space... done
`
wait for VPN Connection to be created
`
USAGE
$ heroku spaces:vpn:wait [NAME] [-s
FLAGS
-i, --interval=
-n, --name=
-s, --space=
-t, --timeout=
--json output in json format
DESCRIPTION
wait for VPN Connection to be created
`
wait for a space to be created
`
USAGE
$ heroku spaces:wait [SPACE] [-s
FLAGS
-i, --interval=
-s, --space=
-t, --timeout=
--json output in json format
DESCRIPTION
wait for a space to be created
`
list trusted IP ranges for a space
`
USAGE
$ heroku trusted-ips [SPACE] [-s
FLAGS
-s, --space=
--json output in json format
DESCRIPTION
list trusted IP ranges for a space
Trusted IP ranges are only available on Private Spaces.
The space name is a required parameter. Newly created spaces will have 0.0.0.0/0 set by default
allowing all traffic to applications in the space. More than one CIDR block can be provided at
a time to the commands listed below. For example 1.2.3.4/20 and 5.6.7.8/20 can be added with:
`
Add one range to the list of trusted IP ranges
`
USAGE
$ heroku trusted-ips:add SOURCE [-s
FLAGS
-s, --space=
--confirm=
DESCRIPTION
Add one range to the list of trusted IP ranges
Uses CIDR notation.
Example:
$ heroku trusted-ips:add --space my-space 192.168.2.0/24
Added 192.168.0.1/24 to trusted IP ranges on my-space
`
Remove a range from the list of trusted IP ranges
`
USAGE
$ heroku trusted-ips:remove SOURCE --space
FLAGS
--confirm=
--space=
DESCRIPTION
Remove a range from the list of trusted IP ranges
Uses CIDR notation.
Example:
$ heroku trusted-ips:remove --space my-space 192.168.2.0/24
Removed 192.168.2.0/24 from trusted IP ranges on my-space
``