module ClusterTools

Defined in:

modules/cluster_tools/cluster_tools.cr

Class Method Summary

Class Method Detail

def self.all_containers_by_resource?(resource, namespace, only_container_pids : Bool = false, &) #

each_container_by_resource(resource, namespace) do | container_id, container_pid_on_node, node, container_proctree_statuses, container_status|


[View source]
def self.change_namespace(name) #

[View source]
def self.cluster_tools_pod_by_node(node_name) #

[View source]
def self.ensure_namespace_exists! #

[View source]
def self.exec(cli : String) : KubectlClient::CMDResult #

[View source]
def self.exec_by_node(cli : String, node_name : String) : KubectlClient::CMDResult | Nil #

[View source]
def self.exec_by_node(cli : String, node : JSON::Any) : KubectlClient::CMDResult #

[View source]
def self.exec_by_node_bg(cli : String, node : JSON::Any) : KubectlClient::BackgroundCMDResult #

[View source]
def self.install(host_namespace = true) #

[View source]
def self.local_match_by_image_name(image_names : Array(String), nodes = (KubectlClient::Get.resource("nodes"))["items"].as_a) #

[View source]
def self.local_match_by_image_name(image_name, nodes : Array(JSON::Any)) #

TODO (rafal-lal): add spec for it


[View source]
def self.local_match_by_image_name(image_name, nodes = (KubectlClient::Get.resource("nodes"))["items"].as_a) #

[View source]
def self.namespace #

[View source]
def self.namespace! #

[View source]
def self.node_pid_by_container_id(container_id, node) : String | Nil #

[View source]
def self.official_content_digest_by_image_name(image_name) #

https://windsock.io/explaining-docker-image-ids/ works on dockerhub and quay! ex. kubectl exec cluster-tools-ww9lg -- skopeo inspect docker://jaegertracing/jaeger-agent:1.28.0 Accepts org/image:tag or repo/org/image:tag A content digest is an uncompressed digest, which is what Kubernetes tracks


[View source]
def self.parse_container_id(container_id : String) #

todo make compatible with other runtimes


[View source]
def self.pod_by_node(node) #

[View source]
def self.pod_name #

[View source]
def self.uninstall(host_namespace = true) #

[View source]
def self.wait_for_cluster_tools #

[View source]