Sha256: 7faf6be606d7ddeec889dd24bfe361e26437421b4852d80c58c81a7330893ffb
Contents?: true
Size: 1.29 KB
Versions: 23
Compression:
Stored size: 1.29 KB
Contents
module Terraspace::Terraform::Tfc 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.tfc.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
23 entries across 23 versions & 1 rubygems