lib/idlc-sdk-deploy/config.rb in idlc-sdk-deploy-1.0.0.rc8 vs lib/idlc-sdk-deploy/config.rb in idlc-sdk-deploy-1.0.0.rc9
- old
+ new
@@ -31,15 +31,17 @@
rescue Idlc::Utility::MissingCredentials => e
err("ERROR: #{e.message}\n")
exit 1
end
- def configure_state(bucket, sub_bucket)
+ def configure_state(bucket, sub_bucket, working_directory)
validate_environment
- configure_tfstatev8(bucket, sub_bucket) if Terraform::Binary::config.version.to_i <= 0.8
- configure_tfstatev9 if Terraform::Binary::config.version.to_i > 0.8
+ tf_version = Terraform::Binary::config.version.split('.')
+
+ configure_tfstatev8(bucket, sub_bucket, working_directory) if tf_version[0].to_i == 0 && tf_version[1].to_i <= 8
+ configure_tfstatev9(bucket, sub_bucket, working_directory) if tf_version[0].to_i >= 0 && tf_version[1].to_i > 8
end
def parse(config_file)
raise ArgumentError, "#{config_file} does not exist" unless File.exist? config_file
Config.add_deployment_var('inf_config_file', config_file)
@@ -56,23 +58,30 @@
end
end
private
- def configure_tfstatev8(bucket, sub_bucket)
+ def configure_tfstatev8(bucket, sub_bucket, working_directory)
args = []
args << '-backend=s3'
args << '-backend-config="acl=private"'
args << "-backend-config=\"bucket=#{bucket}\""
args << '-backend-config="encrypt=true"'
args << "-backend-config=\"key=#{sub_bucket}/terraform.tfstate\""
args << "-backend-config=\"region=#{@region}\""
Terraform::Binary.remote("config #{args.join(' ')}")
+ Terraform::Binary.get("-update #{working_directory}")
end
- def configure_tfstatev9
- Terraform::Binary.init()
+ def configure_tfstatev9(bucket, sub_bucket, working_directory)
+ args = []
+ args << "-backend-config=\"bucket=#{bucket}\""
+ args << "-backend-config=\"key=#{sub_bucket}/terraform.tfstate\""
+ args << "-backend-config=\"region=#{@region}\""
+ args << "-force-copy"
+
+ Terraform::Binary.init("#{args.join(' ')} #{working_directory}")
end
def validate_environment
%w[
SIZE