@@ -11,13 +11,26 @@ Kubernetes clusters, as well as for targeting heterogeneous accelerators in Edge
1111
1212## Usage
1313
14- The node labeller is further expected to be run node-local, and will need to be invoked on each individual node
14+ The node labeller is expected to be run node-local, and will need to be invoked on each individual node
1515requiring its own specific devicetree parsing and labelling.
1616
17+ ```
18+ $ k8s-dt-node-labeller --help
19+ devicetree Node Labeller for Kubernetes
20+ Usage: k8s-dt-node-labeller [flags] [-n devicetree nodes...]
21+
22+ -d Display detected devicetree nodes
23+ -kubeconfig string
24+ Paths to a kubeconfig. Only required if out-of-cluster.
25+ -n string
26+ Additional devicetree node names
27+
28+ ```
29+
1730By default, ` compatible ` strings from the top-level ` / ` node are discovered and converted to node labels.
1831
1932```
20- $ k8s-dt-node-labeller
33+ $ k8s-dt-node-labeller -d
2134Discovered the following devicetree properties:
2235
2336beta.devicetree.org/nvidia-jetson-nano: 1
@@ -27,7 +40,7 @@ beta.devicetree.org/nvidia-tegra210: 1
2740additional node specifications are possible via the ` -n ` flag, as below:
2841
2942```
30- $ k8s-dt-node-labeller -n gpu pwm-fan
43+ $ k8s-dt-node-labeller -d - n gpu pwm-fan
3144Discovered the following devicetree properties:
3245
3346beta.devicetree.org/nvidia-jetson-nano: 1
@@ -37,6 +50,43 @@ beta.devicetree.org/nvidia-gm20b: 1
3750beta.devicetree.org/pwm-fan: 1
3851```
3952
53+ In order to submit the labels to the cluster, ensure a valid kubeconfig can be found (e.g. by setting the ` KUBECONFIG `
54+ environment variable, or through specifying the location with the ` -kubeconfig ` parameter) and execute the node
55+ labeller as-is:
56+
57+ ```
58+ $ k8s-dt-node-labeller
59+ {"level":"info","ts":1585701002.694782,"logger":"k8s-dt-node-labeller.entrypoint","msg":"setting up manager"}
60+ {"level":"info","ts":1585701003.1179338,"logger":"controller-runtime.metrics","msg":"metrics server is starting to listen","addr":":8080"}
61+ {"level":"info","ts":1585701003.118381,"logger":"k8s-dt-node-labeller.entrypoint","msg":"Setting up controller"}
62+ {"level":"info","ts":1585701003.1185818,"logger":"k8s-dt-node-labeller.entrypoint","msg":"starting manager"}
63+ {"level":"info","ts":1585701003.1190712,"logger":"controller-runtime.manager","msg":"starting metrics server","path":"/metrics"}
64+ {"level":"info","ts":1585701003.1193638,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"k8s-dt-node-labeller","source":"kind source: /, Kind="}
65+ {"level":"info","ts":1585701003.2218263,"logger":"controller-runtime.controller","msg":"Starting Controller","controller":"k8s-dt-node-labeller"}
66+ {"level":"info","ts":1585701003.222448,"logger":"controller-runtime.controller","msg":"Starting workers","controller":"k8s-dt-node-labeller","worker count":1}
67+ ...
68+ ```
69+
70+ After which the node labels can be viewed from ` kubectl ` :
71+
72+ ```
73+ $ kubectl describe node jetson-nano
74+ Name: jetson-nano
75+ Roles: <none>
76+ Labels: beta.devicetree.org/nvidia-jetson-nano=1
77+ beta.devicetree.org/nvidia-tegra210=1
78+ beta.kubernetes.io/arch=arm64
79+ beta.kubernetes.io/instance-type=k3s
80+ beta.kubernetes.io/os=linux
81+ k3s.io/hostname=jetson-nano
82+ k3s.io/internal-ip=192.168.xxx.xxx
83+ kubernetes.io/arch=arm64
84+ kubernetes.io/hostname=jetson-nano
85+ kubernetes.io/os=linux
86+ node.kubernetes.io/instance-type=k3s
87+ ...
88+ ```
89+
4090## Acknowledgements
4191
4292This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant
0 commit comments