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
Run Check Script / check (pull_request) Failing after 33s
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
Run Check Script / check (pull_request) Failing after 34s
2025-08-29 04:42:25 -04:00
0876f4e4f0
Merge remote-tracking branch 'origin/doc/pxe_test_setup' into doc/pxe_test_setup
Run Check Script / check (pull_request) Failing after 34s
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)
Run Check Script / check (pull_request) Successful in 1m14s
2025-08-28 16:21:18 -04:00
Ian Letourneau
f180cc4c80
wip: rename harmony-secret* by harmony_secret*
Run Check Script / check (pull_request) Successful in 1m14s
2025-08-28 14:29:24 -04:00
8cc7adf196
chore: Cleanup warnings and unused functions
Run Check Script / check (pull_request) Successful in 1m20s
2025-08-23 16:26:29 -04:00
a1ab5d40fb
chore: cargo fix
Run Check Script / check (pull_request) Failing after 36s
2025-08-23 15:52:09 -04:00
6c92dd24f7
chore: cargo fmt
Run Check Script / check (pull_request) Failing after 37s
2025-08-23 15:48:21 -04:00
c805d7e018
fix: Update prebuilt inventory_agent binary
Run Check Script / check (pull_request) Failing after 35s
2025-08-23 15:33:12 -04:00
b33615b969
fix(opnsense-xml): dnsmasq force is now optional
Run Check Script / check (pull_request) Failing after 38s
2025-08-23 15:31:14 -04:00
0f59f29ac4
fix(inventory_agent): Inventory agent now fallsback on error messages when it cant find values
Run Check Script / check (pull_request) Failing after 38s
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
Run Check Script / check (pull_request) Failing after 36s
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
Run Check Script / check (pull_request) Failing after 35s
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
...
Run Check Script / check (push) Failing after 38s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 5m48s
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
Run Check Script / check (pull_request) Failing after 31s
2025-08-21 17:31:43 -04:00
da6610c625
wip: PXE setup for ipxe and okd files in progress
Run Check Script / check (pull_request) Failing after 36s
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
...
Run Check Script / check (push) Failing after 36s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 15m5s
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
Run Check Script / check (pull_request) Failing after 40s
2025-08-20 13:14:00 -04:00
cd3ea6fc10
fix: added check to ensure that rook-ceph-tools is available in the designated namespace
Run Check Script / check (pull_request) Successful in 1m16s
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
...
Run Check Script / check (push) Failing after 27s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 5m34s
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
Run Check Script / check (pull_request) Failing after 29s
2025-08-19 12:56:10 -04:00
bc6f7336d2
feat(inventory_agent): use HARMONY_INVENTORY_AGENT_PORT as environment variable to set port
Run Check Script / check (pull_request) Failing after 25s
2025-08-19 12:55:03 -04:00
01da8631da
chore(inventory_agent): Cargo fmt
Run Check Script / check (pull_request) Failing after 24s
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
...
Run Check Script / check (push) Successful in 1m11s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 5m41s
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/112
2025-08-19 16:24:31 +00:00
1eaf63417b
Merge pull request 'feat/secrets' ( #111 ) from feat/secrets into master
...
Compile and package harmony_composer / package_harmony_composer (push) Waiting to run
Run Check Script / check (push) Has been cancelled
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/111
This pull request introduces a comprehensive and ergonomic secret management system via a new harmony-secret crate.
What's Done
New harmony-secret Crate:
A new crate dedicated to secret management, providing a clean, static API: SecretManager::get::<MySecret>() and SecretManager::set(&my_secret).
A #[derive(Secret)] procedural macro that automatically uses the struct's name as the secret key, simplifying usage.
An async SecretStore trait to support various backend implementations.
Two Secret Store Implementations:
LocalFileSecretStore: A simple file-based store that saves secrets as JSON in the user's data directory. Ideal for local development and testing.
InfisicalSecretStore: A production-ready implementation that integrates with Infisical for centralized, secure secret management.
Configuration via Environment Variables:
The secret store is selected at runtime via the HARMONY_SECRET_STORE environment variable (file or infisical).
Infisical integration is configured through HARMONY_SECRET_INFISICAL_* variables.
What's Not Done (Future Work)
Automated Infisical Setup: The initial configuration for the Infisical backend is currently manual. Developers must create a project and a Universal Auth identity in Infisical and set the corresponding environment variables to run tests or use the backend. The new test_harmony_secret_infisical.sh script serves as a clear example of the required variables.
This new secrets module provides a solid and secure foundation for managing credentials for components like OPNsense, Kubernetes, and other infrastructure services going forward. Even with the manual first-time setup for Infisical, this architecture is robust enough to serve our needs for the foreseeable future.
2025-08-19 16:23:45 +00:00
5e7803d2ba
chore(iobench-dash): Delete older revisions and rename to iobench-dash.py for clarity
Run Check Script / check (pull_request) Successful in 1m3s
2025-08-19 12:21:42 -04:00
9a610661c7
chore: Add description and license fields to Cargo.toml to allow publishing the crate
Run Check Script / check (pull_request) Successful in 1m1s
2025-08-19 12:12:41 -04:00
70a65ed5d0
Merge remote-tracking branch 'origin/master' into feat/secrets
Run Check Script / check (pull_request) Successful in 1m9s
2025-08-19 12:00:19 -04:00
26e8e386b9
feat: Secret module works with infisical and local file storage backends
Run Check Script / check (pull_request) Successful in 1m9s
2025-08-19 11:59:21 -04:00
19cb7f73bc
feat: Harmony inventory agent crate that exposes an endpoint listing the host hardware. Has to be reviewed, generated 99% by GLM-4.5
Run Check Script / check (pull_request) Failing after 29s
2025-08-19 11:24:20 -04:00
84f38974b1
Merge pull request 'fix: bring back the TUI' ( #110 ) from fix-tui into master
...
Run Check Script / check (push) Successful in 1m15s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 5m34s
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/110
2025-08-15 20:01:59 +00:00
7d027bcfc4
Merge pull request 'fix: remove indicatif in harmony_cli to simplify logging and fixing interactions' ( #109 ) from rip-indicatif into master
...
Compile and package harmony_composer / package_harmony_composer (push) Waiting to run
Run Check Script / check (push) Has been cancelled
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/109
2025-08-15 20:01:13 +00:00
d1a274b705
fix: checks deployment status ready replicas rather than pod name since the pod name is not necessarily matching the deployment name and often has a random generated number in it
2025-08-15 15:44:06 -04:00
b43ca7c740
feat: score for preparing rook ceph cluster to remove drive based on rook-ceph-osd deployment name added functions to K8sclient to be able to scale deployment to a desired replicaset number and get pod based on name and namespace
2025-08-15 14:51:16 -04:00
2a6a233fb2
feat: WIP add secrets module and macro crate
2025-08-15 14:40:39 -04:00
Ian Letourneau
610ce84280
fix: bring back to TUI
Run Check Script / check (pull_request) Successful in 1m20s
2025-08-15 12:47:36 -04:00
Ian Letourneau
8bb4a9d3f6
fix: remove indicatif in harmony_cli to simplify logging and fixing interactions
Run Check Script / check (pull_request) Successful in 1m7s
2025-08-15 11:26:54 -04:00
Ian Letourneau
67f3a23071
chore: cleanup unused imports
Run Check Script / check (push) Successful in 1m30s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 5m33s
2025-08-14 16:44:22 -04:00