From d0d7ce5d0c0c118fb41e7e2953650ecd627e3509 Mon Sep 17 00:00:00 2001 From: Ziv Nevo Date: Wed, 11 Dec 2024 11:24:26 +0200 Subject: [PATCH] Include collector in network-config-analyzer package Signed-off-by: Ziv Nevo --- collector/__init__.py | 0 collector/collect.py | 40 ++++++++++++++++++++++++---------------- setup.cfg | 5 ++++- 3 files changed, 28 insertions(+), 17 deletions(-) create mode 100644 collector/__init__.py diff --git a/collector/__init__.py b/collector/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/collector/collect.py b/collector/collect.py index 7b03dace..14a78311 100644 --- a/collector/collect.py +++ b/collector/collect.py @@ -1,21 +1,29 @@ import subprocess -get_ctx = 'kubectl config current-context' -print(get_ctx) -cmdline_process = subprocess.Popen(get_ctx.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE) -ctx, err = cmdline_process.communicate() -ctx_cluster = ctx.decode("utf-8").replace('/', '-').strip() -print(ctx_cluster) +def collect(): + """ + A small utility to collect all the network-related resources in the current cluster context + """ + get_ctx = 'kubectl config current-context' + print(get_ctx) + cmdline_process = subprocess.Popen(get_ctx.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + ctx, err = cmdline_process.communicate() + ctx_cluster = ctx.decode("utf-8").replace('/', '-').strip() + print(ctx_cluster) -resources = ['pods', 'namespaces', 'services', 'networkpolicies', 'ingresses', 'ingressclasses', 'authorizationpolicies', 'destinationrules','gateways', 'serviceentries','sidecars','virtualservices' ] + resources = ['pods', 'namespaces', 'services', 'networkpolicies', 'ingresses', 'ingressclasses', + 'authorizationpolicies', 'destinationrules','gateways', 'serviceentries','sidecars','virtualservices' ] -for resource in resources: - cmd = 'kubectl get ' + resource + ' -A -o yaml' - cmdline_list = cmd.split(' ') - print(cmd) - log = open(ctx_cluster + '_' + resource + '.yaml', 'a') - cmdline_process = subprocess.Popen(cmdline_list, stdout=log, stderr=subprocess.PIPE) - out, err = cmdline_process.communicate() - if len(err) > 0: - print(err) + for resource in resources: + cmd = 'kubectl get ' + resource + ' -A -o yaml' + cmdline_list = cmd.split(' ') + print(cmd) + log = open(ctx_cluster + '_' + resource + '.yaml', 'a') + cmdline_process = subprocess.Popen(cmdline_list, stdout=log, stderr=subprocess.PIPE) + out, err = cmdline_process.communicate() + if len(err) > 0: + print(err) + +if __name__ == "__main__": + collect() diff --git a/setup.cfg b/setup.cfg index be8c4df5..d0d4d109 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,7 +29,9 @@ install_requires = python_requires = >=3.9 [options.packages.find] -include = nca* +include = + nca* + collector* [options.package_data] * = VERSION.txt @@ -37,3 +39,4 @@ include = nca* [options.entry_points] console_scripts = nca = nca.nca_cli:nca_main + nca_collect = collector.collect:collect