terrafying-components 1.14.4 → 1.14.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/terrafying/components/letsencrypt.rb +41 -14
- data/lib/terrafying/components/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8fca07c0816615cc1f57e19b641aec5ab42e3d9663c69a357ff4f3a5793fad34
|
4
|
+
data.tar.gz: 1a654cca318f984dd39dfd6a30fa9c6198cca31b020e172ad21c760c92dc24d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a0c2161f62f20fb914f02c6a1b074cd12d3010bf3f45475ff147133736418ba7b9dfb705faadc15585270f5f4d8e1a7c592290c6ba6f467a573bc0af65f0555
|
7
|
+
data.tar.gz: 0214fa43da5f25b99531bdd5433095b66a4ba4a3e444c7248f44f1f51b8cc8ae6ea81014820ec8621f6ce089c1d6fb35b0ab7f65baa7c9067ebcc76d3edf10b4
|
@@ -16,8 +16,8 @@ module Terrafying
|
|
16
16
|
def self.find(name, bucket, options = {})
|
17
17
|
LetsEncrypt.new.find name, bucket, options
|
18
18
|
end
|
19
|
-
def self.renew(name, bucket, options = {})
|
20
|
-
|
19
|
+
def self.renew(name, bucket, domains, options = {})
|
20
|
+
LetsEncrypt.new.renew name, bucket, domains, options
|
21
21
|
end
|
22
22
|
|
23
23
|
def initialize
|
@@ -176,6 +176,18 @@ module Terrafying
|
|
176
176
|
certificate_request_pem: output_of(:tls_cert_request, key_ident, :cert_request_pem)
|
177
177
|
}.merge(cert_options)
|
178
178
|
|
179
|
+
csr_version = "${sha256(tls_cert_request.#{key_ident}.cert_request_pem)}"
|
180
|
+
|
181
|
+
ctx.resource :aws_s3_bucket_object, "#{key_ident}-csr",
|
182
|
+
bucket: @bucket,
|
183
|
+
key: object_key(name, :csr, csr_version),
|
184
|
+
content: output_of(:tls_cert_request, key_ident, :cert_request_pem)
|
185
|
+
|
186
|
+
ctx.resource :aws_s3_bucket_object, "#{key_ident}-csr-latest",
|
187
|
+
bucket: @bucket,
|
188
|
+
key: object_key(name, :csr, 'latest'),
|
189
|
+
content: csr_version
|
190
|
+
|
179
191
|
key_version = "${sha256(tls_private_key.#{key_ident}.private_key_pem)}"
|
180
192
|
|
181
193
|
ctx.resource :aws_s3_bucket_object, "#{key_ident}-key",
|
@@ -188,23 +200,23 @@ module Terrafying
|
|
188
200
|
key: object_key(name, :key, 'latest'),
|
189
201
|
content: key_version
|
190
202
|
|
191
|
-
|
203
|
+
cert_version = "${sha256(acme_certificate.#{key_ident}.certificate_pem)}"
|
192
204
|
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
205
|
+
ctx.resource :aws_s3_bucket_object, "#{key_ident}-cert",
|
206
|
+
bucket: @bucket,
|
207
|
+
key: object_key(name, :cert, cert_version),
|
208
|
+
content: output_of(:acme_certificate, key_ident, :certificate_pem).to_s + @ca_cert,
|
209
|
+
lifecycle: { ignore_changes: [ "content" ] } # the lambda will be updating it
|
198
210
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
211
|
+
ctx.resource :aws_s3_bucket_object, "#{key_ident}-cert-latest",
|
212
|
+
bucket: @bucket,
|
213
|
+
key: object_key(name, :cert, 'latest'),
|
214
|
+
content: cert_version
|
203
215
|
|
204
|
-
|
216
|
+
reference_keypair(ctx, name, key_version: key_version, cert_version: cert_version)
|
205
217
|
end
|
206
218
|
|
207
|
-
def renew(name, bucket, options={})
|
219
|
+
def renew(name, bucket, domains, options={})
|
208
220
|
options = {
|
209
221
|
prefix: "",
|
210
222
|
provider: :staging,
|
@@ -212,6 +224,7 @@ module Terrafying
|
|
212
224
|
|
213
225
|
@name = name
|
214
226
|
@bucket = bucket
|
227
|
+
@domains = domains
|
215
228
|
@prefix = options[:prefix]
|
216
229
|
|
217
230
|
resource :aws_lambda_function, "#{@name}_lambda", {
|
@@ -275,6 +288,20 @@ module Terrafying
|
|
275
288
|
"arn:aws:s3:::#{@bucket}"
|
276
289
|
],
|
277
290
|
Effect: "Allow"
|
291
|
+
},
|
292
|
+
{
|
293
|
+
Action: [
|
294
|
+
"route53:ListHostedZones",
|
295
|
+
"route53:GetChange",
|
296
|
+
"route53:ChangeResourceRecordSets",
|
297
|
+
],
|
298
|
+
Resource: [
|
299
|
+
domains.map { | domain |
|
300
|
+
"arn:aws:route53:::hostedzone/#{domain.zone.id}"
|
301
|
+
},
|
302
|
+
"arn:aws:route53:::change/*",
|
303
|
+
],
|
304
|
+
Effect: "Allow"
|
278
305
|
}
|
279
306
|
]
|
280
307
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terrafying-components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.14.
|
4
|
+
version: 1.14.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- uSwitch Limited
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|