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

Included in:
AwsEks, AwsNixos, AzureAks, AzureNixos, GcpGke, GcpNixos, HcloudK3s
Defined in:
lib/pangea/kubernetes/backends/base.rb

Overview

Contract interface for Kubernetes backends. Each backend module must implement these class methods (via class << self):

Identity methods:

backend_name        → Symbol (:aws, :gcp, :azure, :hcloud, etc.)
managed_kubernetes? → true for EKS/GKE/AKS, false for NixOS/k3s
required_gem        → String gem name to require
load_provider!      → Require the provider gem (or raise LoadError)

Infrastructure pipeline methods (all class-level):

create_network(ctx, name, config, tags) → Pangea::Contracts::NetworkResult
create_iam(ctx, name, config, tags)     → Pangea::Contracts::IamResult
create_cluster(ctx, name, config, result, tags) → control plane ref
create_node_pool(ctx, name, cluster_ref, pool_config, tags) → ResourceReference

Backends implement all pipeline methods in ‘class << self` so they are called as e.g. AwsNixos.create_network(ctx, …).

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



38
39
40
# File 'lib/pangea/kubernetes/backends/base.rb', line 38

def self.included(base)
  base.extend(ClassMethods)
end