Class: Nvoi::Cli::Deploy::Steps::ConfigureTunnel

Inherits:
Object
  • Object
show all
Defined in:
lib/nvoi/cli/deploy/steps/configure_tunnel.rb

Overview

ConfigureTunnel handles Cloudflare tunnel setup for services

Instance Method Summary collapse

Constructor Details

#initialize(config, log) ⇒ ConfigureTunnel

Returns a new instance of ConfigureTunnel.



9
10
11
12
13
14
15
# File 'lib/nvoi/cli/deploy/steps/configure_tunnel.rb', line 9

def initialize(config, log)
  @config = config
  @log = log

  cf = config.cloudflare
  @cf_client = External::Dns::Cloudflare.new(cf.api_token, cf.)
end

Instance Method Details

#runObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/nvoi/cli/deploy/steps/configure_tunnel.rb', line 17

def run
  @log.info "Configuring Cloudflare tunnels"

  tunnels = []

  @config.deploy.application.app.each do |service_name, service_config|
    next unless service_config.domain && !service_config.domain.empty?
    next unless service_config.port && service_config.port.positive?

    tunnel_info = configure_service_tunnel(service_name, service_config)
    tunnels << tunnel_info
  end

  @log.success "All tunnels configured (%d)", tunnels.size
  tunnels
end