7f0b77969c
Merge pull request 'feat: PostgreSQLScore happy path using cnpg operator' ( #200 ) from feat/postgresqlScore into master
...
Run Check Script / check (push) Failing after 4s
Compile and package harmony_composer / package_harmony_composer (push) Failing after 26s
Reviewed-on: #200
Reviewed-by: wjro <wrolleman@nationtech.io >
2026-01-06 23:58:17 +00:00
d5137d5ebc
Merge remote-tracking branch 'origin/master' into feat/cluster_monitoring
Run Check Script / check (pull_request) Failing after 10m33s
2026-01-06 15:43:34 -05:00
ed61ed1d93
Merge remote-tracking branch 'origin/master' into feat/postgresqlScore
Run Check Script / check (pull_request) Successful in 55s
2026-01-06 15:10:48 -05:00
5935d66407
removed serial_test crate to keep tests running un parallel
Run Check Script / check (pull_request) Successful in 58s
2026-01-06 15:02:30 -05:00
fdf1dfaa30
fix: leave implementers to define their Debug, so removed impl Debug for dyn NodeExporter
Run Check Script / check (pull_request) Successful in 55s
2026-01-06 14:17:04 -05:00
028161000e
Merge remote-tracking branch 'origin/master' into feat/postgresqlScore
Run Check Script / check (pull_request) Failing after 1s
2026-01-06 13:44:50 -05:00
457d3d4546
fix tests, cargo fmt, introduced crate serial_test to allow sequential testing env sensitive tests
Run Check Script / check (pull_request) Successful in 56s
2026-01-06 13:06:59 -05:00
0973f76701
Merge pull request 'feat: Introducing FailoverTopology and OperatorHub Catalog Subscription with example' ( #196 ) from feat/multisitePostgreSQL into master
...
Run Check Script / check (push) Has been cancelled
Compile and package harmony_composer / package_harmony_composer (push) Has been cancelled
Reviewed-on: #196
Reviewed-by: wjro <wrolleman@nationtech.io >
2026-01-06 15:41:12 +00:00
07e610c54a
fix git merge conflict
Run Check Script / check (pull_request) Successful in 1m24s
2025-12-17 17:09:32 -05:00
66a9a76a6b
feat(postgres): Failover postgres example maybe working!? Added FailoverTopology implementations for required capabilities, documented a bit, some more tests, and quite a few utility functions
Run Check Script / check (pull_request) Failing after 1m49s
2025-12-17 14:35:10 -05:00
1b19638df4
wip(failover): Started implementation of the FailoverTopology with PostgreSQL capability
...
Run Check Script / check (pull_request) Successful in 1m32s
This is our first Higher Order Topology (see ADR-015)
2025-12-10 21:15:51 -05:00
50bd5c5bba
feat(OKDInstallation): Implemented bootstrap of okd worker node, added features to allow both control plane and worker node to use the same bootstrap_okd_node score
Run Check Script / check (pull_request) Successful in 1m46s
2025-12-10 12:15:07 -05:00
d3634a6313
fix(types): Switch port location failed on port channel interfaces
2025-11-11 09:53:59 -05:00
755a4b7749
feat(inventory-agent): Discover algorithm by scanning a subnet of ips, slower than mdns but more reliable and versatile
2025-11-10 22:15:31 -05:00
24922321b1
fix: webhook name must be k8s field compliant, add a FIXME note
2025-11-05 16:59:48 -05:00
Ian Letourneau
7368184917
fix(ha_cluster): inject switch client for better testability
Run Check Script / check (pull_request) Successful in 1m30s
2025-10-22 15:12:53 -04:00
14d1823d15
fix: remove ceph osd deletes and purges osd from ceph osd tree\ ( #120 )
...
Run Check Script / check (push) Waiting to run
Compile and package harmony_composer / package_harmony_composer (push) Waiting to run
k8s returns None rather than zero when checking deployment for replicas
exec_app requires commands 's' and '-c' to run correctly
Reviewed-on: #120
Co-authored-by: Willem <wrolleman@nationtech.io >
Co-committed-by: Willem <wrolleman@nationtech.io >
2025-10-21 15:54:51 +00:00
ed7f81aa1f
fix(opnsense-config): ensure load balancer service configuration is idempotent ( #129 )
...
Run Check Script / check (push) Waiting to run
Compile and package harmony_composer / package_harmony_composer (push) Waiting to run
The previous implementation blindly added HAProxy components without checking for existing configurations on the same port, which caused duplicate entries and errors when a service was updated.
This commit refactors the logic to a robust "remove-then-add" strategy. The configure_service method now finds and removes any existing frontend and its dependent components (backend, servers, health check) before adding the new, complete service definition.
This change makes the process fully idempotent, preventing configuration drift and ensuring a predictable state.
Co-authored-by: Ian Letourneau <letourneau.ian@gmail.com >
Reviewed-on: #129
2025-10-20 19:18:49 +00:00
ea39d93aa7
feat(host_network): configure bonds on the host and switch port channels
Run Check Script / check (pull_request) Has been cancelled
2025-10-16 14:23:41 -04:00
c0bd8007c7
feat(switch/brocade): Implement client to interact with Brocade Switch
...
Run Check Script / check (pull_request) Successful in 1m5s
* Expose a high-level `brocade::init()` function to connect to a Brocade switch and automatically pick the best implementation based on its OS and version
* Implement a client for Brocade switches running on Network Operating System (NOS)
* Implement a client for older Brocade switches running on FastIron (partial implementation)
The architecture for the library is based on 3 layers:
1. The `BrocadeClient` trait to describe the available capabilities to
interact with a Brocade switch. It is partly opinionated in order to
offer higher level features to group multiple commands into a single
function (e.g. create a port channel). Its implementations are
basically just the commands to run on the switch and the functions to
parse the output.
2. The `BrocadeShell` struct to make it easier to authenticate, send commands, and interact with the switch.
3. The `ssh` module to actually connect to the switch over SSH and execute the commands.
With time, we will add support for more Brocade switches and their various OS/versions. If needed, shared behavior could be extracted into a separate module to make it easier to add new implementations.
2025-10-15 15:28:24 -04:00
f65e16df7b
feat: Remove unused helm command, refactor url to use hurl in some more places
2025-09-30 11:18:08 -04:00
3d088b709f
Merge branch 'master' into faet/okdinstallation
Run Check Script / check (pull_request) Successful in 1m5s
2025-09-08 15:08:58 -04:00
da5a869771
feat(opnsense-config): dnsmasq dhcp static mappings ( #130 )
...
Run Check Script / check (pull_request) Successful in 59s
Co-authored-by: Jean-Gabriel Gill-Couture <jeangabriel.gc@gmail.com >
Co-authored-by: Ian Letourneau <ian@noma.to >
Reviewed-on: #130
Reviewed-by: Ian Letourneau <ian@noma.to >
Co-authored-by: Jean-Gabriel Gill-Couture <jg@nationtech.io >
Co-committed-by: Jean-Gabriel Gill-Couture <jg@nationtech.io >
2025-09-08 19:06:17 +00:00
6ea5630d30
feat: add hurl! and local_folder! macros to make Url easier to create ( #135 )
...
Compile and package harmony_composer / package_harmony_composer (push) Waiting to run
Run Check Script / check (push) Has been cancelled
* it was named `hurl!` instead of just `url!` because it was clashing with the crate `url` so we would have been forced to use it with `harmony_macros::url!` which is less sexy
Reviewed-on: #135
2025-09-08 14:43:41 +00:00
b42815f79c
feat: added a monitoring stack that works with openshift/okd ( #134 )
...
Run Check Script / check (push) Successful in 1m1s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 6m34s
* Okd needs to use the cluster observability operator in order to deploy namespaced prometheuses and alertmanagers
* allow namespaced deployments of alertmanager and prometheuses as well as its associated rules, etc.
Co-authored-by: Ian Letourneau <ian@noma.to >
Reviewed-on: #134
Co-authored-by: Willem <wrolleman@nationtech.io >
Co-committed-by: Willem <wrolleman@nationtech.io >
2025-09-08 14:22:05 +00:00
ad2ae2e4f8
feat(example): added an example of packaging a rust app from github ( #124 )
...
Run Check Script / check (push) Successful in 1m9s
Compile and package harmony_composer / package_harmony_composer (push) Has been cancelled
* better caching when building docker images for app
Reviewed-on: #124
Reviewed-by: johnride <jg@nationtech.io >
Co-authored-by: Willem <wrolleman@nationtech.io >
Co-committed-by: Willem <wrolleman@nationtech.io >
2025-09-08 13:52:25 +00:00
b6be44202e
chore: rebase okd installation with refactoring on core types
Run Check Script / check (pull_request) Successful in 1m16s
2025-09-01 14:14:29 -04:00
55bfe306ad
feat: Secret module works with infisical and local file storage backends
2025-09-01 14:06:36 -04:00
701d8cfab9
feat: automatically discover inventory ( #127 )
...
Run Check Script / check (pull_request) Successful in 1m15s
## 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: #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.
...
Run Check Script / check (pull_request) Successful in 1m15s
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
Run Check Script / check (pull_request) Failing after 34s
2025-08-30 16:48:56 -04:00
1eca2cc1a9
refact: Discovery callback takes a closure and fix git dependency hash
Run Check Script / check (push) Failing after 33s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 6m10s
2025-08-30 16:48:13 -04:00
ec277bc13d
feat: Allow building harmony statically with x86_64-unknown-linux-musl target
Run Check Script / check (pull_request) Successful in 1m15s
2025-08-29 14:49:44 -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
Run Check Script / check (pull_request) Failing after 33s
2025-08-29 09:52:11 -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
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
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
e2a09efdee
Merge remote-tracking branch 'origin/master' into doc/pxe_test_setup
2025-08-21 21:56:09 -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
27c51e0ec5
feat(wip): Support opnsense 25.7 which defaults to dnsmasq instead of isc dhcp
2025-08-20 21:54:46 -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
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
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
2a6a233fb2
feat: WIP add secrets module and macro crate
2025-08-15 14:40:39 -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