module Terrafying::Components::CA
Public Instance Methods
<=>(other)
click to toggle source
# File lib/terrafying/components/ca.rb, line 94 def <=>(other) @name <=> other.name end
ca?(name)
click to toggle source
# File lib/terrafying/components/ca.rb, line 10 def ca?(name) name == @name end
create_keypair(name, options = {})
click to toggle source
# File lib/terrafying/components/ca.rb, line 6 def create_keypair(name, options = {}) create_keypair_in(self, name, options) end
find_keypair(name)
click to toggle source
# File lib/terrafying/components/ca.rb, line 44 def find_keypair(name) reference_keypair( nil, name, key_version: aws.s3_object(@bucket, object_key(name, :key, 'latest')[1..-1]), cert_version: aws.s3_object(@bucket, object_key(name, :cert, 'latest')[1..-1]), ) end
object_arn(name, type, version = '*')
click to toggle source
# File lib/terrafying/components/ca.rb, line 32 def object_arn(name, type, version = '*') key = object_key(name, type, version) "arn:aws:s3:::#{@bucket}#{key}" end
object_ident(name)
click to toggle source
# File lib/terrafying/components/ca.rb, line 14 def object_ident(name) (ca? name) ? @name : "#{@name}-#{tf_safe(name)}" end
object_key(name, type, version = '')
click to toggle source
# File lib/terrafying/components/ca.rb, line 22 def object_key(name, type, version = '') if ca? name File.join('', @prefix, @name, "ca.#{type}") else raise 'A non-ca object must have a version' if version.empty? File.join('', @prefix, @name, name, version, type.to_s) end end
object_name(name, type)
click to toggle source
# File lib/terrafying/components/ca.rb, line 18 def object_name(name, type) "#{object_ident(name)}-#{type}" end
object_url(name, type, version: '')
click to toggle source
# File lib/terrafying/components/ca.rb, line 38 def object_url(name, type, version: '') key = object_key(name, type, version) File.join('s3://', "#{@bucket}#{key}") end
reference_keypair(ctx, name, key_version:, cert_version:)
click to toggle source
# File lib/terrafying/components/ca.rb, line 52 def reference_keypair(ctx, name, key_version:, cert_version:) resources = [] if ctx != nil resources += [ "aws_s3_bucket_object.#{object_name(name, :key)}", "aws_s3_bucket_object.#{object_name(name, :cert)}" ] if ctx == self resources << "aws_s3_bucket_object.#{object_name(@name, :cert)}" end end ref = { name: name, ca: self, path: { cert: File.join('/etc/ssl', @name, name, 'cert'), key: File.join('/etc/ssl', @name, name, 'key') }, source: { cert: object_url(name, :cert, version: cert_version), key: object_url(name, :key, version: key_version) }, resources: resources, iam_statement: { Effect: 'Allow', Action: [ 's3:GetObjectAcl', 's3:GetObject' ], Resource: [ object_arn(@name, :cert), object_arn(name, :cert), object_arn(name, :key) ] } } ref end