kube-resource-report
kube-resource-report copied to clipboard
OpenShift compatible version
What is the problem with OpenShift?
Tested and working on OpenShift 3.11, with 1 resolvable error.
$ oc version
oc v3.10.0+dd10d17
kubernetes v1.10.0+b81c8f8
features: Basic-Auth
Server https://foocorp.com:8443
openshift v3.11.0+8de5c34-71
kubernetes v1.11.0+d4cacc0
$ python3 -m kube_resource_report output/ # uses clusters defined in ~/.kube/config
INFO:kube_resource_report.report:Querying cluster default/foocorp-foocorp-com:8443/tpa (https://foocorp.foocorp.com:8443)..
INFO:kube_resource_report.report:Waiting for ingress status..
INFO:kube_resource_report.report:Writing namespaces.tsv..
INFO:kube_resource_report.report:Writing clusters.tsv..
INFO:kube_resource_report.report:Writing ingresses.tsv..
INFO:kube_resource_report.report:Writing pods.tsv..
INFO:kube_resource_report.report:Generating index.html..
INFO:kube_resource_report.report:Generating clusters.html..
INFO:kube_resource_report.report:Generating ingresses.html..
INFO:kube_resource_report.report:Generating teams.html..
INFO:kube_resource_report.report:Generating applications.html..
INFO:kube_resource_report.report:Generating namespaces.html..
INFO:kube_resource_report.report:Generating pods.html..
INFO:kube_resource_report.report:Generating cluster-default/foocorp-foocorp-com:8443/tpa.html..
Traceback (most recent call last):
File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/tom/repos/foo/kube-resource-report/kube_resource_report/__main__.py", line 3, in <module>
main()
File "/Users/tom/.local/share/virtualenvs/kube-resource-report-7t8YIuTm/lib/python3.7/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/Users/tom/.local/share/virtualenvs/kube-resource-report-7t8YIuTm/lib/python3.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/Users/tom/.local/share/virtualenvs/kube-resource-report-7t8YIuTm/lib/python3.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/tom/.local/share/virtualenvs/kube-resource-report-7t8YIuTm/lib/python3.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/Users/tom/repos/foo/kube-resource-report/kube_resource_report/main.py", line 134, in main
node_label,
File "/Users/tom/repos/foo/kube-resource-report/kube_resource_report/report.py", line 638, in generate_report
write_report(output_path, start, notifications, cluster_summaries, namespace_usage, applications, teams, node_label)
File "/Users/tom/repos/foo/kube-resource-report/kube_resource_report/report.py", line 832, in write_report
template.stream(**context).dump(str(output_path / file_name))
File "/Users/tom/.local/share/virtualenvs/kube-resource-report-7t8YIuTm/lib/python3.7/site-packages/jinja2/environment.py", line 1219, in dump
fp = open(fp, 'wb')
FileNotFoundError: [Errno 2] No such file or directory: 'output/cluster-default/foocorp-foocorp-com:8443/tpa.html'
Resolve error:
$ mkdir -p output/cluster-default/foocorp-foocorp-com:8443/
$ touch output/cluster-default/foocorp-foocorp-com:8443/tpa.html
With openshift 3.9 (openshift v3.9.0+ba7faec-1, kubernetes v1.9.1+a0ce1bc657) , usage information is 0. I guess this is related:
ERROR:kube_resource_report.report:Failed to get node usage metrics
Traceback (most recent call last):
File "/kube_resource_report/report.py", line 156, in get_node_usage
for node_metrics in NodeMetrics.objects(cluster.client):
File "/usr/local/lib/python3.7/site-packages/pykube/query.py", line 182, in __iter__
return iter(self.query_cache["objects"])
File "/usr/local/lib/python3.7/site-packages/pykube/query.py", line 172, in query_cache
cache["response"] = self.execute().json()
File "/usr/local/lib/python3.7/site-packages/pykube/query.py", line 149, in execute
r.raise_for_status()
File "/usr/local/lib/python3.7/site-packages/requests/models.py", line 940, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://localhost:8001/apis/metrics.k8s.io/v1beta1/nodes
ERROR:kube_resource_report.report:Failed to get pod usage metrics
Traceback (most recent call last):
File "/kube_resource_report/report.py", line 176, in get_pod_usage
for pod_metrics in PodMetrics.objects(cluster.client, namespace=pykube.all):
File "/usr/local/lib/python3.7/site-packages/pykube/query.py", line 182, in __iter__
return iter(self.query_cache["objects"])
File "/usr/local/lib/python3.7/site-packages/pykube/query.py", line 172, in query_cache
cache["response"] = self.execute().json()
File "/usr/local/lib/python3.7/site-packages/pykube/query.py", line 149, in execute
r.raise_for_status()
File "/usr/local/lib/python3.7/site-packages/requests/models.py", line 940, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://localhost:8001/apis/metrics.k8s.io/v1beta1/pods