From ad7341aa61f4cf29976148775f68815d317ff5b8 Mon Sep 17 00:00:00 2001
From: Sean Carolan <scarolan@gmail.com>
Date: Tue, 23 Dec 2014 11:07:18 -0600
Subject: [PATCH] Added private_ip_address support.

---
 README.md                 | 6 ++++++
 lib/kitchen/driver/ec2.rb | 4 ++++
 2 files changed, 10 insertions(+)

diff --git a/README.md b/README.md
index b61d5cf6..3e94d359 100644
--- a/README.md
+++ b/README.md
@@ -203,6 +203,12 @@ The EC2 [subnet][subnet_docs] to use.
 
 The default is unset, or `nil`.
 
+### <a name="config-private-ip-address"></a> private\_ip\_address
+
+The primary private IP address of your instance. 
+
+If you don't set this it will default to whatever DHCP address EC2 hands out.
+
 ### <a name="config-tags"></a> tags
 
 The Hash of EC tag name/value pairs which will be applied to the instance.
diff --git a/lib/kitchen/driver/ec2.rb b/lib/kitchen/driver/ec2.rb
index 98d2a49c..c8707308 100644
--- a/lib/kitchen/driver/ec2.rb
+++ b/lib/kitchen/driver/ec2.rb
@@ -37,6 +37,7 @@ class Ec2 < Kitchen::Driver::SSHBase
       default_config :security_group_ids, ['default']
       default_config :tags,               { 'created-by' => 'test-kitchen' }
       default_config :user_data,          nil
+      default_config :private_ip_address, nil
       default_config :iam_profile_name,   nil
       default_config :price,   nil
       default_config :aws_access_key_id do |driver|
@@ -155,6 +156,7 @@ def create_server
           :flavor_id                 => config[:flavor_id],
           :ebs_optimized             => config[:ebs_optimized],
           :image_id                  => config[:image_id],
+          :private_ip_address        => config[:private_ip_address],
           :key_name                  => config[:aws_ssh_key_id],
           :subnet_id                 => config[:subnet_id],
           :iam_instance_profile_name => config[:iam_profile_name],
@@ -182,6 +184,7 @@ def request_spot
           :flavor_id                 => config[:flavor_id],
           :ebs_optimized             => config[:ebs_optimized],
           :image_id                  => config[:image_id],
+          :private_ip_address        => config[:private_ip_address],
           :key_name                  => config[:aws_ssh_key_id],
           :subnet_id                 => config[:subnet_id],
           :iam_instance_profile_name => config[:iam_profile_name],
@@ -201,6 +204,7 @@ def debug_server_config
         debug("ec2:flavor_id '#{config[:flavor_id]}'")
         debug("ec2:ebs_optimized '#{config[:ebs_optimized]}'")
         debug("ec2:image_id '#{config[:image_id]}'")
+        debug("ec2:private_ip_address '#{config[:private_ip_address]}'")
         debug("ec2:security_group_ids '#{config[:security_group_ids]}'")
         debug("ec2:tags '#{config[:tags]}'")
         debug("ec2:key_name '#{config[:aws_ssh_key_id]}'")