class Algo::Dsl::Network::Context

Attributes

context[R]

Public Class Methods

new(name, cluster) click to toggle source
# File lib/algo/dsl/network.rb, line 29
def initialize name, cluster
  @cluster = cluster
  @context = {
    'Name' => "#{cluster_prefix}#{name}",
    'Driver' => 'overlay',
    'CheckDuplicate' => true,
    'EnableIPv6' => false,
    'IPAM' => {
      'Config' => [],
      'Driver' => 'default',
      'Options' => {}
    },
    'Internal' => false,
    'Labels' => cluster['labels'],
    'Options' => {}
  }
end

Public Instance Methods

internal() click to toggle source
# File lib/algo/dsl/network.rb, line 47
def internal
  @context['Internal'] = true
end
ipam(&block) click to toggle source
# File lib/algo/dsl/network.rb, line 59
def ipam &block
  ctx = Network::IPAMContext.new.tap do |ctx|
    ctx.instance_eval(&block) if block_given?
  end
  @context['IPAM']['Config'] << ctx.context
end
ipv6() click to toggle source
# File lib/algo/dsl/network.rb, line 55
def ipv6
  @context['EnableIPv6'] = true
end
label(key, val) click to toggle source
# File lib/algo/dsl/network.rb, line 51
def label key, val
  @context['Labels'][key] = val
end

Private Instance Methods

cluster_prefix() click to toggle source
# File lib/algo/dsl/network.rb, line 68
def cluster_prefix
  "#{@cluster['prefix']}-" if @cluster['prefix']
end