Sha256: 704e71f5f750957dfc96f81c8aa1eb7ffefd3713e085451eeac6d64a27c2ce90
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
class Jets::Cfn::Stack class Template extend Memoist include Jets::AwsServices delegate :s3_bucket, to: "Jets.project" attr_reader :path, :stack_name def initialize(options = {}) @options = options @path = Jets::Names.parent_template_path @stack_name = Jets::Names.parent_stack_name end def template_option if upload_to_s3? {template_url: url} else {template_body: body} end end # uploads to s3 lazily on first call def url s3_key = "jets/cfn/#{File.basename(path)}" object = s3_resource.bucket(s3_bucket).object(s3_key) object.upload_file(path) "https://s3.amazonaws.com/#{s3_bucket}/#{s3_key}" end memoize :url # Only use filesystem on initial bootstrap def body IO.read(path) end memoize :body private # Should not upload template to s3 and always use local template for bootstrap deploy. # This is because for finale deletion stack, uploading the parent.yml to s3 # prevents a clean deletion of the s3 bucket resource since it's not empty. def upload_to_s3? !@options[:bootstrap] end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
jets-6.0.5 | lib/jets/cfn/stack/template.rb |
jets-6.0.4 | lib/jets/cfn/stack/template.rb |
jets-6.0.3 | lib/jets/cfn/stack/template.rb |
jets-6.0.2 | lib/jets/cfn/stack/template.rb |