feat/deploy_fleet_server_side #282
Closed
johnride
wants to merge 0 commits from
feat/deploy_fleet_server_side into feat/iot-walking-skeleton
pull from: feat/deploy_fleet_server_side
merge into: NationTech:feat/iot-walking-skeleton
NationTech:master
NationTech:feat/fleet-ch2-operator-recovery
NationTech:feat/fleet-device-exec-logs
NationTech:feat/zitadel-web-pkce-and-human-user
NationTech:feat/jwt-bearer-openbao-auth
NationTech:feat/fleet-ch5-graceful-deploy-upgrade
NationTech:feat/fleet-ch4-agent-upgrade
NationTech:feat/fleet-ch3-log-streaming
NationTech:feat/add-claims-for-openbao
NationTech:refactor/move-zitadel-jwt-to-module
NationTech:feat/fleet-operator-real-data
NationTech:docs/fleet-secrets-device-access
NationTech:chore/fleet-operator-prune-mock-dtos
NationTech:chore/rename-release-to-publish
NationTech:refactor/config-namespace-env-var
NationTech:feat/fleet-staging-openbao
NationTech:feat/auth-add-next-url-redirect
NationTech:pr/harmony-sso-example
NationTech:feat/unified-config-and-secrets
NationTech:ci/fleet-argo-cd
NationTech:ci/fleet-operator-release-pipeline
NationTech:feat/on-device-key-gen
NationTech:feat/install-gitea
NationTech:feat/v0-3-logs-companion
NationTech:refactor/smoke-companion-minimal
NationTech:feat/smoke-test-contract
NationTech:feat/iobench-redpanda-profile
NationTech:feat/v0-3-dashboard-role-enforcement
NationTech:feat/v0-3-init-containers
NationTech:feat/v0-3-operator-restart-baseline
NationTech:feat/fleet-e2e-x86
NationTech:feat/ceph-score
NationTech:feat/opnsense-bootstrap-score
NationTech:feat/fleet-e2e
NationTech:feat/fleet-e2e-harness-and-ping
NationTech:feat/dashboard-auth
NationTech:feat/fleet-operator-web-frontend
NationTech:feat/openwebui
NationTech:feat/iot-aggregation-scale
NationTech:feat/iot-operator-helm-chart
NationTech:feat/removesideeffect
NationTech:feat/test-alert-receivers-sttest
NationTech:feat/brocade-client-add-vlans
NationTech:feat/agent-desired-state
NationTech:feat/opnsense-dns-implementation
NationTech:feat/named-config-instances
NationTech:worktree-bridge-cse_012j1jB37XfjXvDGHUjHrKSj
NationTech:chore/leftover-adr
NationTech:feat/config_e2e_zitadel_openbao
NationTech:example/vllm
NationTech:feat/config_sqlite
NationTech:chore/roadmap
NationTech:feature/kvm-module
NationTech:feat/rustfs
NationTech:feat/harmony_assets
NationTech:feat/brocade_assisted_setup
NationTech:feat/cluster_alerting_score
NationTech:e2e-tests-multicluster
NationTech:fix/refactor_alert_receivers
NationTech:feat/change-node-readiness-strategy
NationTech:feat/zitadel
NationTech:feat/improve-inventory-discovery
NationTech:fix/monitoring_abstractions_openshift
NationTech:feat/nats-jetstream
NationTech:adr-nats-creds
NationTech:feat/st_test
NationTech:feat/dockerAutoinstall
NationTech:chore/cleanup_hacluster
NationTech:doc/cert-management
NationTech:feat/certificate_management
NationTech:adr/017-staleness-failover
NationTech:fix/nats_non_root
NationTech:feat/rebuild_inventory
NationTech:fix/opnsense_update
NationTech:feat/unshedulable_control_planes
NationTech:feat/worker_okd_install
NationTech:doc-and-braindump
NationTech:fix/pxe_install
NationTech:switch-client
NationTech:okd_enable_user_workload_monitoring
NationTech:configure-switch
NationTech:fix/clippy
NationTech:feat/gen-ca-cert
NationTech:feat/okd_default_ingress_class
NationTech:fix/add_routes_to_domain
NationTech:secrets-prompt-editor
NationTech:feat/multisiteApplication
NationTech:feat/ceph-install-score
NationTech:feat/ceph-osd-score
NationTech:feat/ceph_validate_health
NationTech:better-indicatif-progress-grouped
NationTech:feat/crd-alertmanager-configs
NationTech:better-cli
NationTech:opnsense_upgrade
NationTech:feat/monitoring-application-feature
NationTech:dev/postgres
NationTech:feat/cd/localdeploymentdemo
NationTech:feat/webhook_receiver
NationTech:feat/kube-prometheus
NationTech:feat/init_k8s_tenant
NationTech:feat/discord-webhook-receiver
NationTech:feat/kube-prometheus-monitor
NationTech:feat/tenantScore
NationTech:feat/teams-integration
NationTech:feat/slack-notifs
NationTech:monitoring
NationTech:runtime-profiles
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "feat/deploy_fleet_server_side"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Collapses the load-test harness's chart-gen + helm-install dance into first-class Harmony Scores. Customer-facing path: let score = FleetServerScore::new(nats, operator); score.create_interpret().execute(&Inventory::empty(), &topology).await?; FleetOperatorScore renders the operator chart (CRDs + RBAC + ServiceAccount + Deployment) into a tempdir and delegates to HelmChartScore. FleetServerScore composes it with NatsBasicScore via fail-fast `?` chaining; Zitadel + Argo hang off the same chain when their Scores land. Structural change: CRD type definitions and chart-builder moved from fleet/harmony-fleet-operator/src/{crd,chart}.rs into harmony/src/modules/fleet/operator/. Harmony can't depend on the operator crate (cycle), so the score-side code lives in harmony and the operator binary imports the types right back via `harmony::modules::fleet::operator::*`. Considered keeping CRDs in the operator crate with the score either there or in a sibling crate, but putting customer-facing scores in harmony/src/modules/fleet/ matches the existing convention (FleetDeviceSetupScore, ProvisionVmScore) and keeps the CRDs reachable from future harmony scores (e.g. an inventory aggregator reading Device CRs) without dragging in the operator binary. The operator's `chart` subcommand stays as a developer convenience (routes through harmony::modules::fleet::operator::build_chart) so `cargo run -p harmony-fleet-operator -- chart` still produces an identical chart on disk for inspection. Existing examples (fleet_load_test, harmony_apply_deployment) updated to import CRD types from harmony directly. load-test.sh phase 3c collapses to a single `cargo run -p example_fleet_server_install` invocation; phase 2b's NATS install still runs separately so the host-side NATS reachability probe sits where it always did. Idempotency: re-running short-circuits via HelmChartScore::find_installed_release on both inner installs. Verified: cargo fmt --check, cargo clippy, cargo test all pass; the 4 fleet operator unit tests (2 migrated from operator crate, 2 new on FleetOperatorScore defaults/builders) pass under `cargo test -p harmony`; operator chart subcommand produces an identical chart structure post-refactor. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>run_server_install.sh now unconditionally sources examples/fleet_server_install/env.sh after computing REPO_ROOT, so the example's env knobs (KUBECONFIG, RUST_LOG, NO_ZITADEL, ZITADEL_HOST, …) are picked up without the user having to source manually before invoking the script. The script's `${VAR:-default}` block only fills in values env.sh leaves unset. env.sh keeps a (commented-out) KUBECONFIG hint and the new optional Zitadel knobs documented post-source. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>@@ -0,0 +16,4 @@//! operator Deployment into a helm chart the cluster runs itself.use std::collections::BTreeMap;use std::path::{Path, PathBuf};This is wrong, the CRD is a core data structure of the operator, it is not harmony's responsibility to manage data structures internal to the oprator.
Which brings to light a refactoring that was becoming clear now : all the modules we have should be in external crates. We could have a harmony-modules crate of officially supported modules. But in the case of the operator, the CRD would not even belong there, it belongs inside the operator crate itself. Then it can be easily passed to harmony as a k8sresourcescore or similar.
Pull request closed