ci/fleet-argo-cd #301
Closed
johnride
wants to merge 11 commits from
ci/fleet-argo-cd into master
pull from: ci/fleet-argo-cd
merge into: NationTech:master
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-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/deploy_fleet_server_side
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 "ci/fleet-argo-cd"
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?
The k3d smoke-test surfaced that the operator chart baked `fleet-system` into every namespaced manifest (Deployment, ServiceAccount, Secret) and into the ClusterRoleBinding subject. Installing into any other namespace failed with helm release-namespace mismatch. Fixed by making the chart genuinely namespace-neutral: - Removed `namespace` from `ChartOptions` entirely. - `service_account()` and `operator_deployment(opts)` no longer set `metadata.namespace`; helm assigns the release namespace at install time, and the direct-apply path injects the namespace through `K8sResourceScore::single(.., Some(ns))`. - `operator_secret(opts)` likewise drops `metadata.namespace`; the Secret is applied with an explicit namespace by its caller. - `cluster_role_binding(subject_namespace)` keeps a namespace argument because the CRB subject must point at a concrete namespace; the chart path passes the literal helm template `{{ .Release.Namespace }}` so helm substitutes the release namespace at install time. The direct-apply path passes the real namespace string. - `FleetOperatorScore::new()` defaults its own `namespace` field (no longer sourced from `ChartOptions::default()`); the chart itself carries no namespace default at all. Verified on k3d by installing the released chart into a deliberately non-default namespace (`my-fleet`): all resources land in `my-fleet`, ClusterRoleBinding subject resolves to `my-fleet`, operator pod runs. Also adds `ROADMAP/fleet_platform/dashboard_ingress.md` capturing the three-step dependency chain (build with web-frontend feature → implement real FleetService → add Service + Ingress to chart) that the k3d test surfaced when looking for the dashboard. Unnumbered file per project convention; numbered ones are versioned milestones.Add `ingress_class_name: Option<String>` so callers can pin the class (OKD `openshift-default`, vanilla `nginx`/`traefik`) or hand `None` to fall through to the cluster's default IngressClass. Gate the global + redis `securityContext.runAsUser: null` on the `openshift` flag. The null was an OKD restricted-v2 SCC trick; on vanilla k8s the same combination (no UID + the chart's `runAsNonRoot: true`) makes redis CrashLoop with "image will run as root". Off OKD, emit `{}` so the chart's own defaults stay in force. Single pre-existing caller in packaging_deployment.rs preserved on the OKD path.This is about 5x more code than it should be, and 10x more documentation/comments. Do better.
@@ -45,0 +51,4 @@# wants (e.g. `harmony-fleet-operator-v0.1.0` → `v0.1.0`). On# manual workflow_dispatch the operator passes `version`# directly.- name: Resolve versionshould be done in rust, we don't want to depend on bash inlined in yaml it's not only locking-in and not reusable it is brittle.
@@ -45,0 +75,4 @@# `harmony` workspace from scratch in the Dockerfile's builder# stage. cargo-chef + `cache-from: type=gha` would help once# build time becomes the bottleneck.- name: Build and push image + chartit would be better to resolve the version in the bash script here, at least it is not crappy inline yaml in ci config absolutely not reusable anywhere. But ideally it should happen in rust, harmony being an infrastructure tool it is relevant to have git understanding to resolve tags and other stuff.
@@ -0,0 +1,418 @@//! Argo-CD-managed deploy for the fleet stack.This is making a simple thing hard and complicated. We already have an argo module, just use it. Don't rebuilt another one on top. Complete waste of lines of code and time and documentation.
@@ -0,0 +40,4 @@name = "harmony-fleet-release",about = "Build and push a fleet component's image + helm chart for a tagged release")]struct Cli {We will have to make this simpler, we should not have to rebuild a new cli for every component of every app using harmony. This should be a macro call or a simple function call, I don't know yet but definitely not a 270 lines file.
445a24f34dtof4fd5d312aPull request closed