Module: Pangea::Kubernetes::NetworkBackends::Base::ClassMethods
- Defined in:
- lib/pangea/kubernetes/network_backends/base.rb
Instance Method Summary collapse
-
#backend_name ⇒ Symbol
Backend identifier (:vpc_cni, :cilium, :calico, :flannel).
-
#compatible_backends ⇒ Array<Symbol>
Compatible compute backends (:aws, :gcp, :azure, :hcloud, etc.).
-
#create_network_iam(_ctx, _name, _config, _tags) ⇒ Hash?
Create cloud-level IAM resources for the CNI (e.g., IRSA for Cilium operator).
-
#helm_values(_config) ⇒ Hash
Return Helm values or configuration to be passed to the GitOps layer.
-
#l7_observable? ⇒ Boolean
Whether this backend provides L7 observability (e.g., Hubble).
-
#mesh_capable? ⇒ Boolean
Whether this backend provides service mesh capabilities.
-
#nixos_profile ⇒ String?
Return the NixOS/blackmatter-kubernetes profile name for this backend.
Instance Method Details
#backend_name ⇒ Symbol
Returns Backend identifier (:vpc_cni, :cilium, :calico, :flannel).
27 28 29 |
# File 'lib/pangea/kubernetes/network_backends/base.rb', line 27 def backend_name raise NotImplementedError, "#{self} must implement .backend_name" end |
#compatible_backends ⇒ Array<Symbol>
Returns Compatible compute backends (:aws, :gcp, :azure, :hcloud, etc.).
32 33 34 |
# File 'lib/pangea/kubernetes/network_backends/base.rb', line 32 def compatible_backends raise NotImplementedError, "#{self} must implement .compatible_backends" end |
#create_network_iam(_ctx, _name, _config, _tags) ⇒ Hash?
Create cloud-level IAM resources for the CNI (e.g., IRSA for Cilium operator). Returns nil if no cloud IAM is needed.
54 55 56 |
# File 'lib/pangea/kubernetes/network_backends/base.rb', line 54 def create_network_iam(_ctx, _name, _config, ) nil # Most network backends don't need cloud IAM end |
#helm_values(_config) ⇒ Hash
Return Helm values or configuration to be passed to the GitOps layer. This is what gets deployed via FluxCD HelmRelease.
71 72 73 |
# File 'lib/pangea/kubernetes/network_backends/base.rb', line 71 def helm_values(_config) {} end |
#l7_observable? ⇒ Boolean
Returns Whether this backend provides L7 observability (e.g., Hubble).
42 43 44 |
# File 'lib/pangea/kubernetes/network_backends/base.rb', line 42 def l7_observable? false end |
#mesh_capable? ⇒ Boolean
Returns Whether this backend provides service mesh capabilities.
37 38 39 |
# File 'lib/pangea/kubernetes/network_backends/base.rb', line 37 def mesh_capable? false end |
#nixos_profile ⇒ String?
Return the NixOS/blackmatter-kubernetes profile name for this backend. Used by NixOS backends in cloud-init to select the correct CNI config.
62 63 64 |
# File 'lib/pangea/kubernetes/network_backends/base.rb', line 62 def nixos_profile nil # Managed backends (EKS/GKE/AKS) don't use NixOS profiles end |