Sha256: d3a4ecfb5c68a18d1809f9a7f291a876a7d0ad5717839b30c96dcefc3641ee0a
Contents?: true
Size: 1.3 KB
Versions: 25
Compression:
Stored size: 1.3 KB
Contents
module Terraspace::Terraform::Cloud class Sync < Terraspace::CLI::Base extend Memoist include Terraspace::Terraform::Api::Client # Note about why workspace.create is called: # # CLI::Init#run # init => runs `terraform init` # build_remote_dependencies # sync_cloud => leads to create_workspace # # The `terraform init` will auto-create the TFC workspace # If there is a .terraform folder the config.init.mode == "auto" though, # then the workspace won't be created. # So we check and create the workspace if necessary. def run # Note: workspace still gets created by `terraform init` However, variables wont be sync if returns early return unless Terraspace.config.cloud.auto_sync || @options[:override_auto_sync] return unless workspaces_backend? logger.info "Syncing to Terraform Cloud: #{@mod.name} => #{workspace_name}" @api = Terraspace::Terraform::Api.new(@mod, remote) workspace.create_or_update workspace.set_working_dir workspace.set_env_vars end def workspace @api.workspace end def workspaces_backend? remote && remote['workspaces'] end # already memoized in Api::Client def backend Terraspace::Compiler::Backend::Parser.new(@mod).result end end end
Version data entries
25 entries across 25 versions & 1 rubygems