module HubClustersCreator::Providers::Azure::Helpers

Helpers providers a collection of useful methods

Private Instance Methods

deployment(group, name) click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 72
def deployment(group, name)
  deployments(group).select { |x| x.name == name }.first
end
deployment?(name, group) click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 76
def deployment?(name, group)
  deployments(group).map(&:name).include?(name)
end
deployments(group) click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 80
def deployments(group)
  @client.deployments.list_by_resource_group(group)
end
dns(src, dest, zone, ttl: 120) click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 49
def dns(src, dest, zone, ttl: 120)
  raise ArgumentError, "the domain: #{zone} does not exist" unless domain?(zone)

  zone = domain(zone)
  resource_group = zone.id.split('/')[4]
  address = Azure::Dns::Mgmt::V2017_10_01::Models::ARecord.new
  address.ipv4address = dest
  record = Azure::Dns::Mgmt::V2017_10_01::Models::RecordSet.new
  record.name = src
  record.ttl = ttl
  record.arecords = [address]

  @dns.record_sets.create_or_update(resource_group, zone, src, 'A', record)
end
domain?(name) click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 64
def domain?(name)
  domains.map(&:name).include?(name)
end
domains() click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 68
def domains
  @dns.zones.list
end
hostname(fqdn) click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 45
def hostname(fqdn)
  fqdn.split('.').first
end
managed_cluster?(name) click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 84
def managed_cluster?(name)
  managed_clusters.map(&:name).include?(name)
end
managed_clusters() click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 88
def managed_clusters
  @containers.managed_clusters.list
end
resource_group?(name) click to toggle source

resource_group? check is the resource group exists

# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 93
def resource_group?(name)
  resource_groups.map(&:name).include?(name)
end
resource_groups() click to toggle source

resource_groups returns a list of resource groups

# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 98
def resource_groups
  @client.resource_groups.list
end
wait(interval: 20, timeout: 900, max_retries: 10) { || ... } click to toggle source
# File lib/hub-clusters-creator/providers/aks/helpers.rb, line 28
def wait(interval: 20, timeout: 900, max_retries: 10)
  max_attempts = timeout / interval
  retries = attempts = 0

  while attempts < max_attempts
    begin
      return if yield
    rescue StandardError => e
      raise Exception, "failed waiting for resource, retry: #{retries}, error: #{e}" if retries > max_retries

      retries += 1
    end
    sleep(interval)
    attempts += 1
  end
end