Module: Covalence::S3
- Defined in:
- lib/covalence/core/state_stores/s3.rb
Defined Under Namespace
Classes: Client
Constant Summary collapse
- 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. ENV['AWS_REGION']
Class Method Summary collapse
-
.get_state_store(params, workspace_enabled = false) ⇒ Object
Return configuration for remote state store.
-
.has_state_store? ⇒ Boolean
end.
-
.lookup(type, params) ⇒ Object
Key lookups.
Class Method Details
.get_state_store(params, workspace_enabled = false) ⇒ Object
Return configuration for remote state store.
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# 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? ⇒ Boolean
end
135 136 137 |
# File 'lib/covalence/core/state_stores/s3.rb', line 135 def self.has_state_store? return true end |
.lookup(type, params) ⇒ Object
Key lookups
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
# 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 |