module Covalence::S3
Constants
- REGION
AWS ennvironment variables #####
AWS_ACCESS_KEY_ID – AWS access key. AWS_SECRET_ACCESS_KEY – AWS secret key. Access and secret key variables override
credentials stored in credential and config files.
AWS_REGION – AWS region. This variable overrides the default region of the in-use
profile, if set.
Public Class Methods
get_state_store(params, workspace_enabled=false)
click to toggle source
Return configuration for remote state store.
# File lib/covalence/core/state_stores/s3.rb, line 77 def self.get_state_store(params, workspace_enabled=false) raise "State store parameters must be a Hash" unless params.is_a?(Hash) required_params = [ 'bucket', 'name' ] required_params.each do |param| raise "Missing '#{param}' store parameter" unless params.has_key?(param) end config = <<-CONF terraform { backend "s3" { CONF if !params.has_key?('key') Covalence::LOGGER.debug "'key' parameter not specified. Inferring value from 'name' parameter." if workspace_enabled config += " key = \"terraform.tfstate\"\n" else config += " key = \"#{params['name']}/terraform.tfstate\"\n" end end if !params.has_key?('workspace_key_prefix') if workspace_enabled Covalence::LOGGER.debug "'workspace_key_prefix' parameter not specified. Inferring value from 'name' parameter." config += " workspace_key_prefix = \"#{params['name']}\"\n" end end params.each do |k,v| next if k == 'name' v = Covalence::Helpers::ShellInterpolation.parse_shell(v) if v.to_s.include?("$(") config += " #{k} = \"#{v}\"\n" end config += " }\n}\n" return config end
has_state_store?()
click to toggle source
def self.has_state_read? return true end
# File lib/covalence/core/state_stores/s3.rb, line 135 def self.has_state_store? return true end
lookup(type, params)
click to toggle source
Key lookups
# File lib/covalence/core/state_stores/s3.rb, line 140 def self.lookup(type, params) raise "Lookup parameters must be a Hash" unless params.is_a?(Hash) case when type == 'key' || type == 'state' required_params = [ 'bucket', 'document', 'key' ] required_params.each do |param| raise "Missing '#{param}' lookup parameter" unless params.has_key?(param) end raise "Missing 'key' lookup parameter" unless params.has_key? 'key' client = S3::Client.new(region: REGION) client.get_key(params['bucket'],params['document'],params['key']) end end