Module: Captive::LogUtils::ProcessLabel

Defined in:
lib/captive/log_utils/process_label.rb

Constant Summary collapse

POD_SUFFIX_RE =
/-[a-z0-9]{5,10}-[a-z0-9]{5}\z/
GROUPS =

Familles de pods dont plusieurs variantes de nommage doivent être regroupées sous un même label (ex. les pods de données redis-N et les pods sentinel redis-sentinel-sentinel-N appartiennent tous les deux au groupe "redis"). Ajouter une famille ici plutôt que de complexifier .for quand un nouveau cas apparaît.

{
  "redis" => [ /\Aredis-\d+\z/, /\Aredis-sentinel-sentinel-\d+\z/ ],
}.freeze

Class Method Summary collapse

Class Method Details

.for(pod:, namespace:, container: nil) ⇒ Object

Dérive un label court depuis le nom du pod.

container: quand fourni et différent de namespace, retourné tel quel (ex. "migrate", "release") — couvre le cas kubectl --prefix où le container name est explicite dans le préfixe [pod//].



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/captive/log_utils/process_label.rb', line 22

def self.for(pod:, namespace:, container: nil)
  return nil if pod.nil?
  return container if container && container != namespace

  return "db" if pod.match?(/\Apostgres-#{Regexp.escape(namespace)}-\d+\z/)

  base = pod.sub(POD_SUFFIX_RE, "")
  return "web" if base == namespace

  label = base.delete_prefix("#{namespace}-")
  group_for(label) || label
end