e0da5764fb
feat(types): Added Rfc1123 String type, useful for k8s names
Run Check Script / check (pull_request) Failing after 38s
2025-12-15 12:57:52 -05:00
e9cab92585
feat: Impl TlsRoute for K8sAnywhereTopology
2025-12-14 22:22:09 -05:00
d06bd4dac6
feat: OKD route CRD and OKD specific route score
Run Check Script / check (pull_request) Successful in 1m30s
2025-12-14 17:05:26 -05:00
142300802d
wip: TlsRoute score first version
Run Check Script / check (pull_request) Failing after 1m11s
2025-12-14 06:19:33 -05:00
2254641f3d
fix: Tests, doctests, formatting
Run Check Script / check (pull_request) Successful in 1m38s
2025-12-13 17:56:53 -05:00
b61e4f9a96
wip: Expose postgres publicly. Created tlsroute capability and postgres implementations
Run Check Script / check (pull_request) Failing after 41s
2025-12-13 09:47:59 -05:00
2e367d88d4
feat: PostgreSQL score works, added postgresql example, tested on OKD 4.19, added note about incompatible default namespace settings
Run Check Script / check (pull_request) Failing after 2m37s
2025-12-11 22:54:57 -05:00
9edc42a665
feat: PostgreSQLScore happy path using cnpg operator
Run Check Script / check (pull_request) Failing after 37s
2025-12-11 14:36:39 -05:00
f242aafebb
feat: Subscription for cnpg-operator fixed default values, tested and added to operatorhub example.
Run Check Script / check (pull_request) Successful in 1m31s
2025-12-11 12:18:28 -05:00
3e14ebd62c
feat: cnpg operator score
Run Check Script / check (pull_request) Successful in 1m36s
2025-12-10 22:55:08 -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
d39b1957cd
feat(k8s_app): OperatorhubCatalogSourceScore can now install the operatorhub catalogsource on a cluster that already has operator lifecycle manager installed
2025-12-10 16:58:58 -05:00
bfdb11b217
Merge pull request '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' ( #198 ) from feat/okd-nodes into master
...
Run Check Script / check (push) Successful in 1m57s
Compile and package harmony_composer / package_harmony_composer (push) Failing after 2m59s
Reviewed-on: #198
Reviewed-by: johnride <jg@nationtech.io >
2025-12-10 19:27:51 +00:00
d5fadf4f44
fix: deleted storage node role, fixed erroneous comment, modified score name to be in line with clean code naming conventions, fixed how the OKDNodeInstallationScore is called via OKDSetup03ControlPlaneScore and OKDSetup04WorkersScore
Run Check Script / check (pull_request) Successful in 1m45s
2025-12-10 14:20:24 -05:00
357ca93d90
wip: FailoverTopology implementation for PostgreSQL on the way!
2025-12-10 13:12:53 -05:00
8103932f23
doc: Initial documentation for the MultisitePostgreSQL module
2025-12-10 13:12:53 -05:00
9617e1cfde
Merge pull request 'adr: Higher order topologies' ( #197 ) from adr/015-higher-order-topologies into master
...
Compile and package harmony_composer / package_harmony_composer (push) Failing after 2m54s
Run Check Script / check (push) Successful in 1m47s
Reviewed-on: #197
2025-12-10 18:12:23 +00: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
a953284386
doc: Add note about counter-intuitive behavior of nmstate
Run Check Script / check (push) Successful in 1m33s
Compile and package harmony_composer / package_harmony_composer (push) Failing after 2m28s
2025-12-09 23:04:15 -05:00
bfde5f58ed
adr: Higher order topologies
...
Run Check Script / check (pull_request) Successful in 1m33s
These types of Topologies will orchestrate behavior in regular Topologies.
For example, a FailoverTopology is a Higher Order, it will orchestrate its capabilities between a primary and a replica topology. A great use case for this is a database deployment. The FailoverTopology will deploy both instances, connect them, and the able to execute the appropriate actions to promote de replica to primary and revert back to original state.
Other use cases are ShardedTopology, DecentralizedTopology, etc.
2025-12-09 11:23:30 -05:00
9fbdc72cd0
fix: git ignore
Run Check Script / check (pull_request) Successful in 1m29s
2025-11-18 08:41:09 -05:00
78e595e696
feat: added alert manager routes to openshift cluster monitoring
Run Check Script / check (pull_request) Successful in 1m37s
2025-11-17 15:22:43 -05:00
90b89224d8
fix: added K8sName type for strict naming of Kubernetes resources
2025-11-17 15:20:51 -05:00
43a17811cc
fix formatting
Run Check Script / check (pull_request) Failing after 1m49s
2025-11-14 12:53:43 -05:00
93ac89157a
feat: added score to enable snmp_server on brocade switch and a working example
Run Check Script / check (pull_request) Successful in 2m4s
2025-11-14 12:49:00 -05:00
29c82db70d
fix: added fields missing for haproxy after most recent update
Run Check Script / check (pull_request) Failing after 49s
2025-11-12 13:21:55 -05:00
734c9704ab
feat: provide an unmanaged switch
Run Check Script / check (pull_request) Failing after 40s
2025-11-11 13:30:03 -05:00
8ee3f8a4ad
chore: Update harmony-inventory-agent binary as some fixes were introduced : port is 25000 now and nbd devices wont make the inventory crash
Run Check Script / check (pull_request) Failing after 40s
2025-11-11 11:32:42 -05:00
d3634a6313
fix(types): Switch port location failed on port channel interfaces
2025-11-11 09:53:59 -05:00
83c1cc82b6
fix(host_network): remove extra fields from bond config to prevent clashes ( #186 )
...
Run Check Script / check (push) Successful in 1m36s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 8m16s
Also alias `port` to support both `port` and `ports` as per the nmstate spec.
Reviewed-on: #186
2025-11-11 14:12:56 +00:00
a0a8d5277c
fix: opnsense definitions more accurate for various resources such as ProxyGeneral, System, StaticMap, Job, etc. Also fixed brocade crate export and some warnings
2025-11-11 09:06:36 -05:00
43b04edbae
feat(brocade): Add feature and example to remove port channel and configure switchport
2025-11-10 22:59:37 -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
5953bc58f4
feat: added function to enable snmp-server for brocade switches
2025-11-10 14:57:22 -05:00
51a5afbb6d
fix: added some extra details
Run Check Script / check (pull_request) Successful in 1m4s
2025-11-07 09:04:27 -05:00
66d346a10c
fix(host_network): skip configuration for host with only 1 interface/port ( #185 )
...
Run Check Script / check (push) Successful in 1m11s
Compile and package harmony_composer / package_harmony_composer (push) Successful in 8m11s
Reviewed-on: #185
Reviewed-by: johnride <jg@nationtech.io >
2025-11-06 00:07:20 +00:00
06a004a65d
refactor(host_network): extract NetworkManager as a reusable component ( #183 )
...
Run Check Script / check (push) Successful in 1m12s
Compile and package harmony_composer / package_harmony_composer (push) Has been cancelled
The NetworkManager logic was implemented directly into the `HaClusterTopology`, which wasn't directly its concern and prevented us from being able to reuse that NetworkManaager implementations in the future for a different Topology.
* Extract a `NetworkManager` trait
* Implement a `OpenShiftNmStateNetworkManager` for `NetworkManager`
* Dynamically instantiate the NetworkManager in the Topology to delegate calls to it
Reviewed-on: #183
Reviewed-by: johnride <jg@nationtech.io >
2025-11-06 00:02:52 +00:00
9d4e6acac0
fix(host_network): retrieve proper hostname and next available bond id ( #182 )
...
Run Check Script / check (push) Successful in 1m9s
Compile and package harmony_composer / package_harmony_composer (push) Failing after 2m24s
In order to query the current network state `NodeNetworkState` and to apply a `NodeNetworkConfigurationPolicy` for a given node, we first needed to find its hostname. As all we had was the UUID of a node.
We had different options available (e.g. updating the Harmony Inventory Agent to retrieve it, store it in the OKD installation pipeline on assignation, etc.). But for the sake of simplicity and for better flexibility (e.g. being able to run this score on a cluster that wasn't setup with Harmony), the `hostname` was retrieved directly in the cluster by running the equivalent of `kubectl get nodes -o yaml` and matching the nodes with the system UUID.
### Other changes
* Find the next available bond id for a node
* Apply a network config policy for a node (configuring a bond in our case)
* Adjust the CRDs for NMState
Note: to see a quick demo, watch the recording in #183
Reviewed-on: #182
Reviewed-by: johnride <jg@nationtech.io >
2025-11-05 23:38:24 +00:00
759a9287d3
Merge remote-tracking branch 'origin/master' into feat/cluster_monitoring
Run Check Script / check (pull_request) Failing after 19s
2025-11-05 17:02:10 -05:00
24922321b1
fix: webhook name must be k8s field compliant, add a FIXME note
2025-11-05 16:59:48 -05:00
4ff57062ae
Merge pull request 'feat(kube): Convert kube_openapi Resource to DynamicObject' ( #180 ) from feat/kube_convert_dynamic_resource into master
...
Run Check Script / check (push) Successful in 1m19s
Compile and package harmony_composer / package_harmony_composer (push) Failing after 2m23s
Reviewed-on: #180
Reviewed-by: Ian Letourneau <ian@noma.to >
2025-11-05 21:48:32 +00:00
50ce54ea66
Merge pull request 'fix(opnsense-config): mark Interface::enable as optional' ( #181 ) from fix-opnsense-config into master
...
Run Check Script / check (push) Successful in 1m12s
Compile and package harmony_composer / package_harmony_composer (push) Failing after 2m27s
Reviewed-on: #181
2025-11-05 17:13:29 +00:00
7b542c9865
feat: OPNSense Topology useful to interact with only an opnsense instance.
...
Run Check Script / check (pull_request) Successful in 1m11s
With this work, no need to initialize a full HAClusterTopology to run
opnsense scores.
Also added an example showing how to use it and perform basic
operations.
Made a video out of it, might publish it at some point!
2025-11-05 10:02:45 -05:00
Ian Letourneau
827a49e56b
fix(opnsense-config): mark Interface::enable as optional
Run Check Script / check (pull_request) Successful in 1m11s
2025-11-04 17:25:30 -05:00
cf84f2cce8
wip: cluster_monitoring almost there, a kink to fix in the yaml handling
Run Check Script / check (pull_request) Successful in 1m15s
2025-10-29 23:12:34 -04:00
a12d12aa4f
feat: example OpenshiftClusterAlertScore
Run Check Script / check (pull_request) Successful in 1m17s
2025-10-29 17:29:28 -04:00
cefb65933a
wip: cluster monitoring score coming along, this simply edits OKD builtin alertmanager instance and adds a receiver
2025-10-29 17:26:21 -04:00
95cfc03518
feat(kube): Utility function to convert kube_openapi Resource to DynamicObject. This will allow initializing resources strongly typed and then bundle various types into a list of DynamicObject
Run Check Script / check (pull_request) Successful in 1m18s
2025-10-29 17:24:35 -04:00
c2fa4f1869
fix:cargo fmt
Run Check Script / check (pull_request) Successful in 1m21s
2025-10-29 13:53:58 -04:00
ee278ac817
Merge remote-tracking branch 'origin/master' into feat/install_opnsense_node_exporter
Run Check Script / check (pull_request) Failing after 25s
2025-10-29 13:49:56 -04:00