Class: KeyValue::Kubernetes::Configmap::Client

Inherits:
Object
  • Object
show all
Includes:
KubernetesClientFactory
Defined in:
lib/keyvalue/kubernetes/configmap.rb

Instance Method Summary collapse

Methods included from KubernetesClientFactory

#create_client

Constructor Details

#initialize(kubernetes_client = nil) ⇒ Client



13
14
15
# File 'lib/keyvalue/kubernetes/configmap.rb', line 13

def initialize(kubernetes_client = nil)
  @k8s_client = kubernetes_client || create_client
end

Instance Method Details

#read_key(key_name) ⇒ Object



17
18
19
20
21
22
# File 'lib/keyvalue/kubernetes/configmap.rb', line 17

def read_key(key_name)
  configmap = @k8s_client.get_config_map(key_name, 'default')
  JSON.parse(configmap.data.value)
rescue Kubeclient::ResourceNotFoundError
  raise KeyNotFoundError, "Key '#{key_name}' not found"
end

#update_key(key_name, value) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/keyvalue/kubernetes/configmap.rb', line 24

def update_key(key_name, value)
  @k8s_client.patch_config_map(
    key_name,
    { data: { value: value.to_json } },
    'default'
  )
rescue Kubeclient::ResourceNotFoundError
  raise KeyNotFoundError, "Key '#{key_name}' not found"
end