701d8cfab9
feat: automatically discover inventory ( #127 )
...
## Fully automated inventory gathering now works!
Boot up harmony_inventory_agent with `cargo run -p harmony_inventory_agent`
Launch the DiscoverInventoryAgentScore , currently available this way :
`RUST_LOG=info cargo run -p example-cli -- -f Discover -y`
And you will have automatically all hosts saved to the database. Run `cargo sqlx setup` if you have not done it yet.
Co-authored-by: Ian Letourneau <ian@noma.to>
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/127
Co-authored-by: Jean-Gabriel Gill-Couture <jg@nationtech.io>
Co-committed-by: Jean-Gabriel Gill-Couture <jg@nationtech.io>
2025-08-31 22:45:07 +00:00
f9906cb419
refact: Move basic types to harmony_types crate to avoid external dependencies.
...
This includes Id, IpAddress, Url and some other heavily used types
2025-08-30 18:01:14 -04:00
cb4382fbb5
feat: Inventory PhysicalHost persistence with sqlx and local sqlite db
2025-08-30 16:48:56 -04:00
1eca2cc1a9
refact: Discovery callback takes a closure and fix git dependency hash
2025-08-30 16:48:13 -04:00
269f13ae9b
Merge pull request 'doc/pxe_test_setup' ( #117 ) from doc/pxe_test_setup into master
...
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/117
2025-08-30 14:33:36 +00:00
ec277bc13d
feat: Allow building harmony statically with x86_64-unknown-linux-musl target
2025-08-29 14:49:44 -04:00
a9f8cd16ea
Merge remote-tracking branch 'origin/master' into doc/pxe_test_setup
2025-08-29 12:21:56 -04:00
c542a935e3
feat: Update harmony_inventory_agent binary in pxe http files
2025-08-29 11:27:19 -04:00
0395d11e98
fix(doctest): Import harmony instrumentation properly in doc tests
2025-08-29 11:23:11 -04:00
05e7b8075c
feat(inventory agent): Local presence advertisement and discovery now works! Must be within the same LAN to share the multicast address though
2025-08-29 11:22:44 -04:00
b857412151
extract related logic into an OkdIpxeScore
2025-08-29 09:52:11 -04:00
7bb3602ab8
make instrumentation sync instead of async to avoid concurrency issues
2025-08-29 06:03:59 -04:00
78b80c2169
fix typo in service type
2025-08-29 04:42:25 -04:00
0876f4e4f0
Merge remote-tracking branch 'origin/doc/pxe_test_setup' into doc/pxe_test_setup
2025-08-29 01:15:00 -04:00
6ac0e095a3
wip(inventory-agent): local presence advertisement and discovery using mdns almost working
2025-08-29 01:10:43 -04:00
ff2efc0a66
wip: mark DhcpRange fields as optional (to better support OPNSense possible configs)
2025-08-28 16:21:18 -04:00
Ian Letourneau
f180cc4c80
wip: rename harmony-secret* by harmony_secret*
2025-08-28 14:29:24 -04:00
3ca31179d0
Merge pull request 'feat/ceph_validate_health' ( #121 ) from feat/ceph_validate_health into master
...
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/121
Reviewed-by: johnride <jg@nationtech.io>
2025-08-25 19:32:42 +00:00
a9fe4ab267
fix: cargo fmt
2025-08-25 13:33:36 -04:00
65cc9befeb
mod.rs
2025-08-25 13:31:39 -04:00
d456a1f9ee
feat: score to validate whether the ceph cluster is healthy
2025-08-25 13:30:32 -04:00
5895f867cf
feat: Bump harmony_composer rust version to 1.89
2025-08-23 16:27:04 -04:00
8cc7adf196
chore: Cleanup warnings and unused functions
2025-08-23 16:26:29 -04:00
a1ab5d40fb
chore: cargo fix
2025-08-23 15:52:09 -04:00
6c92dd24f7
chore: cargo fmt
2025-08-23 15:48:21 -04:00
c805d7e018
fix: Update prebuilt inventory_agent binary
2025-08-23 15:33:12 -04:00
b33615b969
fix(opnsense-xml): dnsmasq force is now optional
2025-08-23 15:31:14 -04:00
0f59f29ac4
fix(inventory_agent): Inventory agent now fallsback on error messages when it cant find values
2025-08-22 11:52:51 -04:00
361f240762
feat: PXE setup now fully functional for inventory agent
...
The process will setup DHCP dnsmasq on opnsense to boot the correct ipxe file depending on the architecture
Then ipxe will chainload to either a mac-specific ipxe boot file or the fallback inventory boot file
Then a kickstart pre script will setup the cluster ssh key to allow ssh connections to the machine and also setup and start harmony_inventory_agent to allow being scraped
Note: there is a bug with the inventory agent currently, it cannot find lsmod on centos stream 9, will fix this soon
2025-08-22 10:48:43 -04:00
57c3b01e66
chore: refactor pxe templates to jinja templates rendered by askama
2025-08-22 09:05:18 -04:00
94ddf027dd
feat(pxe): chainloading works, kickstart for inventory still wip
2025-08-22 07:22:12 -04:00
06a2be4496
doc: Add README explaining how to build harmony_inventory_agent statically with musl target
2025-08-21 21:58:35 -04:00
e2a09efdee
Merge remote-tracking branch 'origin/master' into doc/pxe_test_setup
2025-08-21 21:56:09 -04:00
d36c574590
Merge pull request 'feat/inventory_agent' ( #119 ) from feat/inventory_agent into master
...
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/119
2025-08-22 01:55:52 +00:00
2618441de3
fix: Make sure directory exists before uploading file in opnsense http
2025-08-21 17:31:43 -04:00
da6610c625
wip: PXE setup for ipxe and okd files in progress
2025-08-21 17:28:17 -04:00
e956772593
feat: Add pxe example and new data files structure
2025-08-20 22:00:56 -04:00
27c51e0ec5
feat(wip): Support opnsense 25.7 which defaults to dnsmasq instead of isc dhcp
2025-08-20 21:54:46 -04:00
bfca9cf163
Merge pull request 'feat/ceph-osd-score' ( #116 ) from feat/ceph-osd-score into master
...
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/116
Reviewed-by: johnride <jg@nationtech.io>
2025-08-20 18:19:42 +00:00
597dcbc848
doc: PXE test setup script and README file to explain what it does and how to use it
2025-08-20 13:14:00 -04:00
cd3ea6fc10
fix: added check to ensure that rook-ceph-tools is available in the designated namespace
2025-08-20 12:54:19 -04:00
a53e8552e9
wip: pxe test setup still has a few kinks with serial console
2025-08-20 12:14:17 -04:00
89eb88d10e
feat: socre to remove an osd from the ceph osd tree using K8sClient to interact with rook-ceph-toolbox pod
2025-08-20 12:09:55 -04:00
72fb05b5cc
fix(inventory_agent) : Agent now retreives correct dmidecode fields, fixed uuid generation which is unacceptable, fixed storage drive parsing, much better error handling, much more strict behavior which also leads to more complete output as missing fields will raise errors unless explicitely optional
2025-08-19 17:56:06 -04:00
6685b05cc5
wip(inventory_agent): Refactoring for better error handling in progress
2025-08-19 17:05:23 -04:00
07116eb8a6
Merge pull request 'feat: Harmony inventory agent crate that exposes an endpoint listing the host hardware. Has to be reviewed, generated 99% by GLM-4.5' ( #115 ) from feat/inventory_agent into master
...
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/115
2025-08-19 16:58:00 +00:00
3f34f868eb
Merge remote-tracking branch 'origin/master' into feat/inventory_agent
2025-08-19 12:56:10 -04:00
bc6f7336d2
feat(inventory_agent): use HARMONY_INVENTORY_AGENT_PORT as environment variable to set port
2025-08-19 12:55:03 -04:00
01da8631da
chore(inventory_agent): Cargo fmt
2025-08-19 12:44:49 -04:00
67b5c2df07
Merge pull request 'feat: Add iobench project and python dashboard' ( #112 ) from feat/iobench into master
...
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/112
2025-08-19 16:24:31 +00:00