Module: Pangea::Kubernetes::Backends::Base::ClassMethods

Defined in:
lib/pangea/kubernetes/backends/base.rb

Instance Method Summary collapse

Instance Method Details

#backend_nameObject

Raises:

  • (NotImplementedError)


43
44
45
# File 'lib/pangea/kubernetes/backends/base.rb', line 43

def backend_name
  raise NotImplementedError, "#{self} must implement .backend_name"
end

#create_cluster(_ctx, _name, _config, _result, _tags) ⇒ Object

Create the cluster control plane (EKS cluster, ASG+NLB, GKE cluster, etc.). Return type is backend-specific (ControlPlaneRef, resource ref, etc.).

Parameters:

  • ctx (Object)

    Synthesizer context

  • name (Symbol)

    Cluster name

  • config (Types::ClusterConfig)

    Cluster configuration

  • result (Pangea::Contracts::ArchitectureResult)

    Accumulated result with network/iam

  • tags (Hash)

    Resource tags

Returns:

  • (Object)

    Control plane reference (wrapped in ClusterResult by Architecture)

Raises:

  • (NotImplementedError)


97
98
99
# File 'lib/pangea/kubernetes/backends/base.rb', line 97

def create_cluster(_ctx, _name, _config, _result, _tags)
  raise NotImplementedError, "#{self} must implement .create_cluster"
end

#create_iam(_ctx, _name, _config, _tags) ⇒ Pangea::Contracts::IamResult

Create IAM resources (roles, policies, service accounts). Must return a Pangea::Contracts::IamResult (or subclass).

Parameters:

  • ctx (Object)

    Synthesizer context

  • name (Symbol)

    Cluster name

  • config (Types::ClusterConfig)

    Cluster configuration

  • tags (Hash)

    Resource tags

Returns:

  • (Pangea::Contracts::IamResult)

Raises:

  • (NotImplementedError)


84
85
86
# File 'lib/pangea/kubernetes/backends/base.rb', line 84

def create_iam(_ctx, _name, _config, _tags)
  raise NotImplementedError, "#{self} must implement .create_iam"
end

#create_network(_ctx, _name, _config, _tags) ⇒ Pangea::Contracts::NetworkResult

Create networking resources (VPC, subnets, security groups, etc.). Must return a Pangea::Contracts::NetworkResult (or subclass).

Parameters:

  • ctx (Object)

    Synthesizer context (provides resource methods)

  • name (Symbol)

    Cluster name

  • config (Types::ClusterConfig)

    Cluster configuration

  • tags (Hash)

    Resource tags

Returns:

  • (Pangea::Contracts::NetworkResult)

Raises:

  • (NotImplementedError)


72
73
74
# File 'lib/pangea/kubernetes/backends/base.rb', line 72

def create_network(_ctx, _name, _config, _tags)
  raise NotImplementedError, "#{self} must implement .create_network"
end

#create_node_pool(_ctx, _name, _cluster_ref, _pool_config, _tags) ⇒ Object

Create a worker node pool for the cluster.

Parameters:

  • ctx (Object)

    Synthesizer context

  • name (Symbol)

    Cluster name

  • cluster_ref (Object)

    Reference to the control plane

  • pool_config (Types::NodePoolConfig)

    Node pool configuration

  • tags (Hash)

    Resource tags

Returns:

  • (Object)

    Node pool resource reference

Raises:

  • (NotImplementedError)


109
110
111
# File 'lib/pangea/kubernetes/backends/base.rb', line 109

def create_node_pool(_ctx, _name, _cluster_ref, _pool_config, _tags)
  raise NotImplementedError, "#{self} must implement .create_node_pool"
end

#load_provider!Object



55
56
57
58
59
60
61
62
# File 'lib/pangea/kubernetes/backends/base.rb', line 55

def load_provider!
  require required_gem
rescue LoadError => e
  raise LoadError,
        "Backend #{backend_name} requires gem '#{required_gem}'. " \
        "Add it to your Gemfile: gem '#{required_gem}'\n" \
        "Original error: #{e.message}"
end

#managed_kubernetes?Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


47
48
49
# File 'lib/pangea/kubernetes/backends/base.rb', line 47

def managed_kubernetes?
  raise NotImplementedError, "#{self} must implement .managed_kubernetes?"
end

#required_gemObject

Raises:

  • (NotImplementedError)


51
52
53
# File 'lib/pangea/kubernetes/backends/base.rb', line 51

def required_gem
  raise NotImplementedError, "#{self} must implement .required_gem"
end