@kici-dev/orchestrator 0.17.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/agent-version.d.ts +12 -21
- package/dist/agent/dispatcher.d.ts +283 -437
- package/dist/agent/host-roster-reaper.d.ts +8 -10
- package/dist/agent/host-roster.d.ts +77 -100
- package/dist/agent/ownership-refusal.d.ts +3 -5
- package/dist/agent/ownership-tracker.d.ts +42 -76
- package/dist/agent/registry.d.ts +137 -230
- package/dist/agent/token-store.d.ts +34 -77
- package/dist/agent-packaging/availability.d.ts +6 -9
- package/dist/agent-packaging/download.d.ts +6 -9
- package/dist/agent-packaging/install-closure.d.ts +9 -12
- package/dist/agent-packaging/node-binary.d.ts +6 -10
- package/dist/agent-packaging/node-runtime-members.d.ts +3 -5
- package/dist/agent-packaging/refresh.d.ts +12 -16
- package/dist/agent-packaging/store.d.ts +5 -6
- package/dist/agent-packaging/upload.d.ts +3 -4
- package/dist/app.d.ts +0 -3
- package/dist/approvals/apply-decision.d.ts +35 -52
- package/dist/approvals/approval-resolver.d.ts +11 -23
- package/dist/approvals/held-run-release-wiring.d.ts +14 -21
- package/dist/approvals/independent-wiring.d.ts +13 -20
- package/dist/approvals/resume-router.d.ts +1 -1
- package/dist/approvals/step-approval-bridge.d.ts +11 -21
- package/dist/approvals/triggerer-subject.d.ts +8 -10
- package/dist/artifacts/artifact-store.d.ts +55 -95
- package/dist/artifacts/failure-messages.d.ts +15 -20
- package/dist/audit/access-log.d.ts +27 -45
- package/dist/audit/sampling-rate-limiter.d.ts +11 -23
- package/dist/cache/agent-job-failed-error.d.ts +2 -3
- package/dist/cache/build-coordinator.d.ts +5 -28
- package/dist/cache/cache-upload-settle.d.ts +11 -11
- package/dist/cache/dep-cache.d.ts +32 -60
- package/dist/cache/dispatch-cache-ref-tracker.d.ts +15 -23
- package/dist/cache/global-eval-round-cache.d.ts +33 -41
- package/dist/cache/pending-builds.d.ts +2 -6
- package/dist/cache/pending-dynamics.d.ts +2 -7
- package/dist/cache/pending-global-evals.d.ts +9 -12
- package/dist/cache/pending-inits.d.ts +11 -22
- package/dist/cache/pending-precursor-db-watcher.d.ts +24 -32
- package/dist/cache/pending-tracker.d.ts +17 -45
- package/dist/cache/precursor-result.d.ts +17 -30
- package/dist/cache/source-cache.d.ts +36 -65
- package/dist/cache/user-cache.d.ts +21 -25
- package/dist/cancel/cancel-held-run.d.ts +13 -16
- package/dist/cancel/cancel-route-answer.d.ts +1 -2
- package/dist/cancel/cancel-run.d.ts +26 -50
- package/dist/cancel/dashboard-cancel-handler.d.ts +2 -2
- package/dist/cancel/peer-job-cancel.d.ts +11 -14
- package/dist/cancel/sweep-stuck-cancelling.d.ts +9 -13
- package/dist/cli/api-client.d.ts +25 -76
- package/dist/cli/commands/access-log.d.ts +4 -24
- package/dist/cli/commands/agent-package.d.ts +7 -15
- package/dist/cli/commands/agent-service/agent-env.d.ts +3 -6
- package/dist/cli/commands/agent-service/index.d.ts +4 -10
- package/dist/cli/commands/agent-service/install.d.ts +4 -11
- package/dist/cli/commands/agent-service/status.d.ts +4 -9
- package/dist/cli/commands/agent-service/upgrade.d.ts +4 -16
- package/dist/cli/commands/agent.d.ts +12 -25
- package/dist/cli/commands/api-key.d.ts +5 -12
- package/dist/cli/commands/attestations-list.d.ts +7 -17
- package/dist/cli/commands/attestations-retry.d.ts +5 -11
- package/dist/cli/commands/attestations-reverify.d.ts +4 -5
- package/dist/cli/commands/attestations.d.ts +3 -8
- package/dist/cli/commands/audit.d.ts +1 -5
- package/dist/cli/commands/backend.d.ts +2 -11
- package/dist/cli/commands/check-run.d.ts +7 -18
- package/dist/cli/commands/cluster-name.d.ts +5 -12
- package/dist/cli/commands/cluster-settings.d.ts +28 -53
- package/dist/cli/commands/cold-store.d.ts +7 -15
- package/dist/cli/commands/config.d.ts +9 -20
- package/dist/cli/commands/context.d.ts +8 -20
- package/dist/cli/commands/dashboard-encryption-key.d.ts +9 -14
- package/dist/cli/commands/db-backup.d.ts +17 -32
- package/dist/cli/commands/db.d.ts +3 -4
- package/dist/cli/commands/debug-bundle.d.ts +3 -10
- package/dist/cli/commands/diagnose.d.ts +3 -14
- package/dist/cli/commands/event-dlq.d.ts +4 -12
- package/dist/cli/commands/event-log.d.ts +2 -20
- package/dist/cli/commands/execution.d.ts +3 -9
- package/dist/cli/commands/firecracker/index.d.ts +3 -6
- package/dist/cli/commands/held-run.d.ts +23 -37
- package/dist/cli/commands/host.d.ts +4 -11
- package/dist/cli/commands/inspect-bundle.d.ts +3 -11
- package/dist/cli/commands/local-hook.d.ts +2 -10
- package/dist/cli/commands/local-trigger.d.ts +2 -2
- package/dist/cli/commands/orchestrator-service/drain.d.ts +3 -6
- package/dist/cli/commands/orchestrator-service/index.d.ts +6 -14
- package/dist/cli/commands/orchestrator-service/install-env.d.ts +25 -49
- package/dist/cli/commands/orchestrator-service/install.d.ts +2 -5
- package/dist/cli/commands/orchestrator-service/status.d.ts +10 -22
- package/dist/cli/commands/orchestrator-service/upgrade.d.ts +6 -15
- package/dist/cli/commands/org-settings.d.ts +5 -11
- package/dist/cli/commands/peer.d.ts +5 -10
- package/dist/cli/commands/queue.d.ts +3 -9
- package/dist/cli/commands/registration.d.ts +4 -8
- package/dist/cli/commands/remote-source.d.ts +6 -12
- package/dist/cli/commands/rotate.d.ts +1 -5
- package/dist/cli/commands/runs.d.ts +1 -30
- package/dist/cli/commands/scaler.d.ts +5 -12
- package/dist/cli/commands/secret.d.ts +1 -9
- package/dist/cli/commands/service-health.d.ts +5 -10
- package/dist/cli/commands/shared/admin-cli-access-log.d.ts +10 -19
- package/dist/cli/commands/shared/bare-metal-binary-check.d.ts +86 -0
- package/dist/cli/commands/shared/cli-action.d.ts +1 -4
- package/dist/cli/commands/shared/confirm.d.ts +5 -10
- package/dist/cli/commands/shared/db.d.ts +1 -12
- package/dist/cli/commands/shared/env-file-mode.d.ts +6 -9
- package/dist/cli/commands/shared/secret-input.d.ts +7 -21
- package/dist/cli/commands/shared/service-verbs.d.ts +6 -12
- package/dist/cli/commands/shared/unbound-context-warning.d.ts +2 -4
- package/dist/cli/commands/shared/upgrade-hooks.d.ts +7 -16
- package/dist/cli/commands/shared/upgrade-safety.d.ts +20 -31
- package/dist/cli/commands/shared/versioned-upgrade.d.ts +83 -161
- package/dist/cli/commands/signing-key.d.ts +4 -9
- package/dist/cli/commands/source-manifest.d.ts +11 -14
- package/dist/cli/commands/source.d.ts +7 -32
- package/dist/cli/commands/token.d.ts +4 -15
- package/dist/cli/commands/trust-policy.d.ts +35 -88
- package/dist/cli/commands/variable.d.ts +3 -5
- package/dist/cli/commands/workflow.d.ts +3 -24
- package/dist/cli/join.d.ts +3 -6
- package/dist/cli/kici-admin.d.ts +11 -29
- package/dist/cli/lazy-deps/cache.d.ts +1 -14
- package/dist/cli/lazy-deps/downloader.d.ts +4 -27
- package/dist/cli/lazy-deps/registry.d.ts +5 -25
- package/dist/cli/local-github-ingress-url.d.ts +5 -7
- package/dist/cli/loopback-callback.d.ts +6 -7
- package/dist/cli/open-browser.d.ts +4 -8
- package/dist/cli/root-option-routing.d.ts +17 -29
- package/dist/cli/service/backup-timer.d.ts +16 -39
- package/dist/cli/service/compose-path.d.ts +3 -7
- package/dist/cli/service/compose.d.ts +12 -30
- package/dist/cli/service/deploy-env.d.ts +6 -18
- package/dist/cli/service/entrypoint.d.ts +14 -25
- package/dist/cli/service/env-assignment.d.ts +6 -17
- package/dist/cli/service/image-digests.d.ts +6 -15
- package/dist/cli/service/index.d.ts +2 -18
- package/dist/cli/service/instance/index-file.d.ts +9 -16
- package/dist/cli/service/instance/manifest.d.ts +60 -60
- package/dist/cli/service/instance/resolve.d.ts +32 -68
- package/dist/cli/service/instance/types.d.ts +12 -29
- package/dist/cli/service/launchd.d.ts +29 -60
- package/dist/cli/service/platform-detect.d.ts +13 -68
- package/dist/cli/service/privilege.d.ts +12 -25
- package/dist/cli/service/shutdown-grace.d.ts +11 -20
- package/dist/cli/service/systemd.d.ts +7 -20
- package/dist/cli/service/types.d.ts +63 -114
- package/dist/cli/service/windows-acl.d.ts +14 -21
- package/dist/cli/service/windows-env-file.d.ts +10 -28
- package/dist/cli/service/windows.d.ts +15 -31
- package/dist/cli/webhook-url-notes.d.ts +4 -6
- package/dist/cli/wizard/agent-wizard.d.ts +3 -14
- package/dist/cli/wizard/orchestrator-wizard.d.ts +12 -37
- package/dist/cli/wizard/prompts.d.ts +6 -16
- package/dist/cli.js +8207 -10128
- package/dist/cluster/cluster-identity.d.ts +20 -32
- package/dist/cluster/cluster-settings-reader.d.ts +50 -77
- package/dist/cluster/coordinator-credential.d.ts +4 -5
- package/dist/cluster/coordinator.d.ts +76 -148
- package/dist/cluster/health-api.d.ts +2 -10
- package/dist/cluster/index.d.ts +1 -6
- package/dist/cluster/instance-heartbeat.d.ts +26 -42
- package/dist/cluster/join-client.d.ts +4 -7
- package/dist/cluster/join-handler.d.ts +3 -7
- package/dist/cluster/join-token.d.ts +13 -27
- package/dist/cluster/leader-gated-scheduler.d.ts +8 -17
- package/dist/cluster/orphan-recovery.d.ts +13 -35
- package/dist/cluster/peer-auth-coordinator.d.ts +2 -8
- package/dist/cluster/peer-client.d.ts +46 -76
- package/dist/cluster/peer-credentials.d.ts +24 -70
- package/dist/cluster/peer-crypto.d.ts +5 -26
- package/dist/cluster/peer-forget.d.ts +3 -3
- package/dist/cluster/peer-handler.d.ts +47 -71
- package/dist/cluster/peer-registry.d.ts +37 -106
- package/dist/cluster/plan-headroom-store.d.ts +4 -6
- package/dist/cluster/raft-state.d.ts +4 -13
- package/dist/cluster/raft.d.ts +18 -53
- package/dist/cluster/reconcile-identity.d.ts +8 -11
- package/dist/cluster/rerouted-job-guard.d.ts +7 -11
- package/dist/cluster/verified-issuer.d.ts +2 -3
- package/dist/cluster/worker-cluster-settings.d.ts +7 -10
- package/dist/cluster/worker-eviction.d.ts +16 -26
- package/dist/cold-store/load-access-log-range.d.ts +15 -31
- package/dist/cold-store/load-event-log-range.d.ts +13 -27
- package/dist/cold-store/load-secret-audit-log-range.d.ts +8 -12
- package/dist/cold-store/orchestrator-cold-store.d.ts +8 -28
- package/dist/cold-store/tables/access-log.d.ts +12 -14
- package/dist/cold-store/tables/event-log.d.ts +4 -8
- package/dist/cold-store/tables/execution-runs.d.ts +6 -11
- package/dist/cold-store/tables/secret-audit-log.d.ts +5 -12
- package/dist/concurrency/dispatch-next-queued.d.ts +13 -25
- package/dist/concurrency/queue-manager.d.ts +22 -54
- package/dist/concurrency/waiters.d.ts +15 -31
- package/dist/config/encryption.d.ts +0 -2
- package/dist/config/loader.d.ts +0 -1
- package/dist/config/reload.d.ts +0 -6
- package/dist/config/resolver.d.ts +0 -4
- package/dist/config/shared-store.d.ts +0 -2
- package/dist/config/types.d.ts +0 -3
- package/dist/content-requirements-cache.d.ts +0 -1
- package/dist/contexts/context-store.d.ts +0 -2
- package/dist/contexts/held-runs.d.ts +0 -2
- package/dist/contexts/variable-store.d.ts +0 -2
- package/dist/dashboard/attestation-filters.d.ts +13 -18
- package/dist/dashboard/handler.d.ts +145 -307
- package/dist/db/client.d.ts +2 -6
- package/dist/db/deferred-index-build.d.ts +8 -10
- package/dist/db/deferred-indexes.d.ts +15 -22
- package/dist/db/migration-provider.d.ts +2 -4
- package/dist/db/migration-test-harness.d.ts +26 -44
- package/dist/db/migrations/001_initial.d.ts +1 -4
- package/dist/db/migrations/002_config_versions_key_version.d.ts +5 -8
- package/dist/db/migrations/003_access_log.d.ts +10 -15
- package/dist/db/migrations/004_rename_bundle_to_source.d.ts +7 -9
- package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +4 -10
- package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +9 -29
- package/dist/db/migrations/007_audit_logs_archived_at.d.ts +11 -30
- package/dist/db/migrations/008_event_log_archived_at.d.ts +14 -29
- package/dist/db/migrations/009_access_log_trigram.d.ts +4 -8
- package/dist/db/migrations/010_cold_store_chunks.d.ts +16 -26
- package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +6 -14
- package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +9 -14
- package/dist/db/migrations/013_execution_log_bytes.d.ts +5 -13
- package/dist/db/migrations/014_kici_events_lease_retry.d.ts +14 -27
- package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +12 -17
- package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +4 -6
- package/dist/db/migrations/019_generic_sources_change_notify.d.ts +13 -17
- package/dist/db/migrations/020_org_settings_dashboard_write_policy.d.ts +5 -8
- package/dist/db/migrations/021_check_run_tracking.d.ts +5 -17
- package/dist/db/migrations/022_scaler_manager_state.d.ts +10 -20
- package/dist/db/migrations/023_dispatch_queue_recovery_deadline.d.ts +7 -18
- package/dist/db/migrations/024_dispatch_queue_provisioning_error.d.ts +5 -11
- package/dist/db/migrations/025_init_failure.d.ts +5 -9
- package/dist/db/migrations/027_workflow_timeout.d.ts +5 -13
- package/dist/db/migrations/029_dispatch_queue_attempts.d.ts +4 -10
- package/dist/db/migrations/030_held_runs_env_set_null.d.ts +5 -6
- package/dist/db/migrations/031_dispatch_queue_ack_deadline.d.ts +6 -12
- package/dist/db/migrations/033_org_settings_approval.d.ts +7 -10
- package/dist/db/migrations/034_held_runs_generalize.d.ts +10 -18
- package/dist/db/migrations/035_pending_workflow_contexts.d.ts +4 -5
- package/dist/db/migrations/037_generic_sources_provider_type_local.d.ts +5 -6
- package/dist/db/migrations/038_remote_sources.d.ts +5 -7
- package/dist/db/migrations/045_host_properties.d.ts +5 -9
- package/dist/db/migrations/046_join_token_consumed_by_instance.d.ts +5 -10
- package/dist/db/migrations/048_host_reboot_pending.d.ts +6 -12
- package/dist/db/migrations/049_held_runs_payload.d.ts +3 -8
- package/dist/db/migrations/050_sources_slug.d.ts +4 -5
- package/dist/db/migrations/051_binding_host_pattern.d.ts +7 -10
- package/dist/db/migrations/052_host_reach_metadata.d.ts +8 -11
- package/dist/db/migrations/053_agent_token_single_use.d.ts +6 -10
- package/dist/db/migrations/054_local_working_tree.d.ts +4 -6
- package/dist/db/migrations/055_agent_token_mandatory_labels.d.ts +6 -11
- package/dist/db/migrations/056_execution_jobs_environments.d.ts +4 -11
- package/dist/db/migrations/064_execution_jobs_skipped_environments.d.ts +6 -9
- package/dist/db/migrations/065_pending_attestations.d.ts +9 -12
- package/dist/db/migrations/066_pending_attestations_rejected.d.ts +4 -7
- package/dist/db/migrations/068_request_idempotency.d.ts +7 -9
- package/dist/db/migrations/069_reroute_tunables.d.ts +6 -14
- package/dist/db/migrations/071_batch_accumulation.d.ts +8 -16
- package/dist/db/migrations/072_dispatch_queue_run_id_index.d.ts +3 -9
- package/dist/db/migrations/074_normalize_zero_concurrency_limit.d.ts +4 -7
- package/dist/db/migrations/076_artifacts.d.ts +7 -8
- package/dist/db/migrations/078_org_settings_backup_staleness.d.ts +3 -6
- package/dist/db/migrations/079_org_settings_scaler_spawn_timeout.d.ts +4 -8
- package/dist/db/migrations/080_cluster_settings.d.ts +6 -10
- package/dist/db/migrations/081_org_settings_queue_timeout.d.ts +7 -11
- package/dist/db/migrations/082_host_s3_reachable.d.ts +5 -10
- package/dist/db/migrations/083_org_settings_artifact_caps.d.ts +6 -8
- package/dist/db/migrations/084_orchestrator_signing_keys.d.ts +8 -13
- package/dist/db/migrations/085_cluster_settings_reroute_flap_grace_ms.d.ts +4 -5
- package/dist/db/migrations/086_cluster_settings_max_fanout_hosts.d.ts +3 -3
- package/dist/db/migrations/087_cluster_settings_event_router_rate_limit.d.ts +5 -3
- package/dist/db/migrations/088_cluster_settings_cache_max_tarball_bytes.d.ts +3 -3
- package/dist/db/migrations/089_cluster_settings_cache_ttl_days.d.ts +3 -5
- package/dist/db/migrations/090_cluster_settings_concurrency_wait_timeout_ms.d.ts +3 -6
- package/dist/db/migrations/091_cluster_settings_agent_token_ttl_ms.d.ts +3 -6
- package/dist/db/migrations/092_cluster_settings_version.d.ts +5 -9
- package/dist/db/migrations/094_dashboard_encryption_keys.d.ts +9 -14
- package/dist/db/migrations/095_dashboard_write_policy_tristate.d.ts +2 -6
- package/dist/db/migrations/099_cluster_settings_dashboard_verified_issuer.d.ts +8 -11
- package/dist/db/migrations/101_contexts_hold_expiry_drop_default.d.ts +9 -15
- package/dist/db/migrations/102_dispatch_queue_agent_id.d.ts +6 -11
- package/dist/db/migrations/103_cluster_settings_ownership_db_check_timeout_ms.d.ts +6 -12
- package/dist/db/migrations/104_check_run_terminal_sent.d.ts +8 -14
- package/dist/db/migrations/105_org_trust_policy.d.ts +5 -7
- package/dist/db/migrations/106_cluster_settings_check_run_tracking_ttl_days.d.ts +4 -12
- package/dist/db/migrations/107_check_run_tracking_updated_at_index.d.ts +8 -14
- package/dist/db/migrations/113_execution_runs_workflow_repo_index.d.ts +10 -19
- package/dist/db/migrations/115_global_workflows_cluster_switch.d.ts +2 -3
- package/dist/db/migrations/121_org_settings_allow_untrusted_dockerfile_builds.d.ts +7 -8
- package/dist/db/migrations/122_host_roster_scaler_managed.d.ts +9 -16
- package/dist/db/migrations/123_workflow_registrations_default_branch.d.ts +8 -16
- package/dist/db/migrations/125_org_trust_directory.d.ts +13 -21
- package/dist/db/migrations/126_held_runs_posted_pending_check.d.ts +10 -16
- package/dist/db/migrations/127_org_trust_policy_approval_expiry_seconds.d.ts +8 -16
- package/dist/db/migrations/128_execution_runs_global_eval_round.d.ts +6 -11
- package/dist/db/migrations/129_execution_runs_dispatch_routing_key.d.ts +8 -11
- package/dist/db/migrations/130_scaler_provision_outcomes.d.ts +13 -20
- package/dist/db/migrations/131_execution_jobs_git_credentials.d.ts +12 -22
- package/dist/db/migrations/132_execution_runs_trigger_event.d.ts +6 -16
- package/dist/db/migrations/133_dispatch_queue_source_tar_digest.d.ts +6 -9
- package/dist/db/migrations/140_dispatch_queue_canonical_labels.d.ts +22 -40
- package/dist/db/migrations/143_execution_jobs_precursor_result.d.ts +9 -18
- package/dist/db/migrations/144_execution_runs_registration_window.d.ts +12 -20
- package/dist/db/migrations/147_sealed_job_secrets.d.ts +5 -9
- package/dist/db/migrations/148_cluster_settings_sealed_secrets_retry_backoff_ms.d.ts +7 -13
- package/dist/db/migrations/150_execution_runs_status_epoch.d.ts +6 -11
- package/dist/db/migrations/152_org_settings_cache_upload_settle_timeout.d.ts +5 -8
- package/dist/db/migrations/157_host_roster_identity_source.d.ts +9 -13
- package/dist/db/migrations/159_org_id_widen_to_source_width.d.ts +5 -0
- package/dist/db/migrator.d.ts +17 -25
- package/dist/db/notify-listener.d.ts +8 -11
- package/dist/db/repos/dashboard-encryption-keys-repo.d.ts +9 -10
- package/dist/db/synthetic-job-ids.d.ts +6 -8
- package/dist/db/types.d.ts +531 -1058
- package/dist/deployment/deployment-identity.d.ts +42 -60
- package/dist/diagnostics/bundle-reader.d.ts +3 -15
- package/dist/diagnostics/bundle-writer.d.ts +5 -12
- package/dist/diagnostics/checks/agents.d.ts +1 -7
- package/dist/diagnostics/checks/backup.d.ts +7 -10
- package/dist/diagnostics/checks/certs.d.ts +1 -6
- package/dist/diagnostics/checks/config.d.ts +2 -5
- package/dist/diagnostics/checks/db.d.ts +1 -1
- package/dist/diagnostics/checks/disk.d.ts +1 -6
- package/dist/diagnostics/checks/firecracker-network.d.ts +3 -3
- package/dist/diagnostics/checks/index.d.ts +0 -6
- package/dist/diagnostics/checks/retention.d.ts +3 -6
- package/dist/diagnostics/checks/scaler.d.ts +3 -7
- package/dist/diagnostics/checks/ws.d.ts +1 -6
- package/dist/diagnostics/fleet-collector.d.ts +11 -14
- package/dist/diagnostics/fleet-constants.d.ts +1 -3
- package/dist/diagnostics/fleet-selection.d.ts +3 -7
- package/dist/diagnostics/fleet-topology.d.ts +2 -6
- package/dist/diagnostics/fleet-wiring.d.ts +6 -12
- package/dist/diagnostics/index.d.ts +0 -5
- package/dist/diagnostics/runner.d.ts +4 -8
- package/dist/diagnostics/types.d.ts +10 -21
- package/dist/drain/drain-controller.d.ts +16 -22
- package/dist/entry-helpers.d.ts +0 -2
- package/dist/events/circuit-breaker.d.ts +0 -3
- package/dist/events/event-router.d.ts +1 -2
- package/dist/events/event-store.d.ts +0 -9
- package/dist/events/trust-store.d.ts +0 -3
- package/dist/events/types.d.ts +0 -9
- package/dist/firecracker/host-network.d.ts +24 -30
- package/dist/firecracker/net-interfaces.d.ts +4 -7
- package/dist/helpers/rate-limiter.d.ts +0 -1
- package/dist/index.js +240 -482
- package/dist/metrics/agent-metrics-aggregator.d.ts +24 -67
- package/dist/metrics/metrics-reporter.d.ts +4 -13
- package/dist/metrics/prometheus.d.ts +47 -81
- package/dist/orchestrator-core.d.ts +3 -7
- package/dist/pipeline/content-filter.d.ts +20 -30
- package/dist/pipeline/cross-source-tally.d.ts +7 -8
- package/dist/pipeline/decorating-secret-resolver.d.ts +4 -8
- package/dist/pipeline/degraded-reason.d.ts +3 -4
- package/dist/pipeline/direct-ingress-deps.d.ts +15 -24
- package/dist/pipeline/dispatch-matched-workflow.d.ts +290 -526
- package/dist/pipeline/flatten-lock-steps.d.ts +4 -6
- package/dist/pipeline/global-dispatch-identity.d.ts +5 -10
- package/dist/pipeline/global-eval-round.d.ts +62 -156
- package/dist/pipeline/global-round-hold.d.ts +5 -7
- package/dist/pipeline/held-context-data.d.ts +5 -8
- package/dist/pipeline/held-round-registrations.d.ts +8 -11
- package/dist/pipeline/install-gate.d.ts +15 -25
- package/dist/pipeline/install-secrets-resolver.d.ts +24 -34
- package/dist/pipeline/internal-event-pipeline.d.ts +45 -62
- package/dist/pipeline/invoke-gate.d.ts +27 -40
- package/dist/pipeline/job-contexts.d.ts +19 -36
- package/dist/pipeline/manual-schedule.d.ts +7 -13
- package/dist/pipeline/needs-scheduler.d.ts +29 -46
- package/dist/pipeline/pending-workflow-context.d.ts +14 -28
- package/dist/pipeline/process-webhook.d.ts +88 -123
- package/dist/pipeline/processor.d.ts +209 -355
- package/dist/pipeline/remote-source-store.d.ts +5 -8
- package/dist/pipeline/request-idempotency.d.ts +10 -13
- package/dist/pipeline/rerun-global.d.ts +6 -7
- package/dist/pipeline/rerun-inputs.d.ts +23 -37
- package/dist/pipeline/rerun.d.ts +34 -57
- package/dist/pipeline/resolve-sandbox-grant.d.ts +5 -10
- package/dist/pipeline/resume-workflow.d.ts +28 -34
- package/dist/pipeline/route-or-dispatch-jobs.d.ts +19 -30
- package/dist/pipeline/run-event-context.d.ts +16 -21
- package/dist/pipeline/sandbox-allowlist-reader.d.ts +7 -11
- package/dist/pipeline/security-hold-check.d.ts +56 -80
- package/dist/pipeline/test-pipeline.d.ts +20 -46
- package/dist/pipeline/unbound-job-context.d.ts +6 -9
- package/dist/pipeline/undispatched-hold-checks.d.ts +4 -6
- package/dist/pipeline/wave-scheduler.d.ts +15 -22
- package/dist/pipeline/webhook-payload-store.d.ts +3 -10
- package/dist/pipeline/workflow-lock-at-sha.d.ts +14 -20
- package/dist/policy/dashboard-write-policy.d.ts +1 -1
- package/dist/provider-registry.d.ts +0 -19
- package/dist/providers/generic/index.d.ts +0 -2
- package/dist/providers/generic/normalizer.d.ts +0 -1
- package/dist/providers/generic/verification.d.ts +0 -8
- package/dist/providers/github/auth.d.ts +0 -1
- package/dist/providers/github/changed-files.d.ts +2 -1
- package/dist/providers/github/file-contents.d.ts +0 -4
- package/dist/providers/github/lock-file.d.ts +0 -4
- package/dist/providers/github/normalizer.d.ts +1 -9
- package/dist/providers/local/index.d.ts +1 -2
- package/dist/providers/local/lock-file-fetcher.d.ts +0 -4
- package/dist/providers/local/normalizer.d.ts +0 -10
- package/dist/providers/local/repo-url-builder.d.ts +0 -2
- package/dist/providers/universal-git/clone-token.d.ts +0 -2
- package/dist/providers/universal-git/lock-file.d.ts +0 -2
- package/dist/providers/universal-git/normalizer.d.ts +0 -2
- package/dist/queue/bootstrap.d.ts +3 -15
- package/dist/queue/cleanup.d.ts +29 -50
- package/dist/queue/depth-refresher.d.ts +21 -39
- package/dist/queue/job-queue.d.ts +112 -163
- package/dist/queue/retention.d.ts +23 -36
- package/dist/queue/scheduled-job.d.ts +17 -39
- package/dist/queue/terminalize-unroutable.d.ts +16 -18
- package/dist/queue/unroutable-probe.d.ts +15 -22
- package/dist/registration/extractor.d.ts +0 -6
- package/dist/registration/registration-index.d.ts +0 -6
- package/dist/registration/registration-store.d.ts +0 -9
- package/dist/reporting/agent-failure-category.d.ts +3 -5
- package/dist/reporting/check-run-reporter.d.ts +142 -316
- package/dist/reporting/check-run-summary.d.ts +16 -35
- package/dist/reporting/check-run-tracking-store.d.ts +54 -107
- package/dist/reporting/execution-tracker.d.ts +356 -526
- package/dist/reporting/fs-log-storage.d.ts +31 -33
- package/dist/reporting/job-check-run-completion.d.ts +14 -22
- package/dist/reporting/log-chunk-sink.d.ts +11 -16
- package/dist/reporting/log-pull-handler.d.ts +4 -13
- package/dist/reporting/log-retention.d.ts +3 -4
- package/dist/reporting/log-storage.d.ts +24 -52
- package/dist/reporting/log-writer.d.ts +28 -56
- package/dist/reporting/peer-log-normalize.d.ts +4 -8
- package/dist/reporting/run-aggregator.d.ts +6 -11
- package/dist/reporting/run-summary-fields.d.ts +5 -8
- package/dist/reporting/s3-log-storage.d.ts +31 -50
- package/dist/reporting/step-display-order.d.ts +11 -21
- package/dist/reporting/step-log-buffer.d.ts +7 -28
- package/dist/reporting/step-log-reader.d.ts +11 -19
- package/dist/routes/admin-access-log.d.ts +4 -6
- package/dist/routes/admin-auth.d.ts +17 -38
- package/dist/routes/admin-backends.d.ts +3 -14
- package/dist/routes/admin-cluster-name.d.ts +13 -21
- package/dist/routes/admin-cluster-settings.d.ts +6 -9
- package/dist/routes/admin-config.d.ts +7 -19
- package/dist/routes/admin-contexts.d.ts +6 -13
- package/dist/routes/admin-db.d.ts +5 -10
- package/dist/routes/admin-event-dlq.d.ts +3 -5
- package/dist/routes/admin-event-inspect.d.ts +3 -4
- package/dist/routes/admin-event-log.d.ts +3 -7
- package/dist/routes/admin-events.d.ts +16 -30
- package/dist/routes/admin-held-runs.d.ts +52 -76
- package/dist/routes/admin-maintenance.d.ts +3 -6
- package/dist/routes/admin-orchestrator-drain.d.ts +0 -2
- package/dist/routes/admin-org-settings.d.ts +8 -14
- package/dist/routes/admin-peer-forget.d.ts +0 -1
- package/dist/routes/admin-queue-execution.d.ts +3 -3
- package/dist/routes/admin-registrations.d.ts +3 -12
- package/dist/routes/admin-runs.d.ts +16 -29
- package/dist/routes/admin-scaler-orphans.d.ts +4 -4
- package/dist/routes/admin-scaler-reload.d.ts +5 -8
- package/dist/routes/admin-scheduled-jobs.d.ts +3 -4
- package/dist/routes/admin-sources.d.ts +20 -29
- package/dist/routes/admin-trust-policy.d.ts +31 -48
- package/dist/routes/admin.d.ts +67 -94
- package/dist/routes/caller-identity.d.ts +5 -12
- package/dist/routes/capabilities.d.ts +8 -13
- package/dist/routes/diagnostics.d.ts +2 -10
- package/dist/routes/fleet.d.ts +1 -2
- package/dist/routes/github-webhook.d.ts +2 -5
- package/dist/routes/health.d.ts +6 -19
- package/dist/routes/provenance-oidc.d.ts +3 -3
- package/dist/routes/uploads.d.ts +5 -11
- package/dist/routes/webhooks.d.ts +2 -24
- package/dist/scaler/agent-binary-location.d.ts +77 -0
- package/dist/scaler/agent-fit.d.ts +2 -2
- package/dist/scaler/backend-factory.d.ts +10 -18
- package/dist/scaler/bare-metal-backend.d.ts +30 -46
- package/dist/scaler/claim-store.d.ts +20 -43
- package/dist/scaler/config.d.ts +10 -37
- package/dist/scaler/container-backend.d.ts +22 -35
- package/dist/scaler/container-hostconfig.d.ts +19 -16
- package/dist/scaler/container-routing.d.ts +10 -13
- package/dist/scaler/disk-guard.d.ts +2 -3
- package/dist/scaler/event-backend.d.ts +33 -58
- package/dist/scaler/event-provision-reaper.d.ts +61 -84
- package/dist/scaler/failure-tracker.d.ts +6 -13
- package/dist/scaler/file-tail.d.ts +6 -19
- package/dist/scaler/firecracker-api.d.ts +19 -63
- package/dist/scaler/firecracker-backend.d.ts +142 -258
- package/dist/scaler/host-access.d.ts +7 -10
- package/dist/scaler/index.d.ts +3 -6
- package/dist/scaler/ip-allocator.d.ts +30 -82
- package/dist/scaler/label-matcher.d.ts +14 -35
- package/dist/scaler/log-forwarder.d.ts +6 -25
- package/dist/scaler/machine-ledger.d.ts +39 -86
- package/dist/scaler/manager.d.ts +517 -787
- package/dist/scaler/pending-scale-sweeper.d.ts +8 -11
- package/dist/scaler/reap-orphans.d.ts +8 -12
- package/dist/scaler/resolve-container-auth.d.ts +12 -21
- package/dist/scaler/scaler-events.d.ts +2 -5
- package/dist/scaler/scaler-state-store.d.ts +127 -189
- package/dist/scaler/spawn-errors.d.ts +1 -4
- package/dist/scaler/startup-orphan-sweep.d.ts +3 -4
- package/dist/scaler/startup-tools-check.d.ts +21 -0
- package/dist/scaler/types.d.ts +142 -255
- package/dist/scaler/vm-job-bindings.d.ts +5 -9
- package/dist/scaler/warm-pool.d.ts +49 -93
- package/dist/secrets/audit-logger.d.ts +0 -3
- package/dist/secrets/backend-health.d.ts +0 -9
- package/dist/secrets/backend-registry.d.ts +0 -9
- package/dist/secrets/cleanup.d.ts +0 -1
- package/dist/secrets/config.d.ts +0 -3
- package/dist/secrets/ephemeral-keys.d.ts +0 -3
- package/dist/secrets/pg-secret-store.d.ts +0 -3
- package/dist/secrets/rbac.d.ts +0 -6
- package/dist/secrets/secret-output-store.d.ts +0 -6
- package/dist/secrets/secret-resolver.d.ts +2 -6
- package/dist/secrets/token-manager.d.ts +0 -4
- package/dist/secrets/vault-secret-store.d.ts +0 -13
- package/dist/security/comment-handler.d.ts +0 -2
- package/dist/security/workflow-diff.d.ts +1 -1
- package/dist/server.js +8628 -13569
- package/dist/sources/source-manager.d.ts +0 -3
- package/dist/sources/source-store.d.ts +0 -9
- package/dist/sources/source-validator.d.ts +0 -3
- package/dist/stale-detector/all-terminal-runs.d.ts +8 -11
- package/dist/stale-detector/gate-deadline-detector.d.ts +14 -19
- package/dist/stale-detector/reboot-deadline-sweep.d.ts +7 -11
- package/dist/stale-detector/stale-dispatch-candidates.d.ts +13 -20
- package/dist/stale-detector/stale-run-detector.d.ts +74 -121
- package/dist/stale-detector/workflow-deadline-detector.d.ts +15 -43
- package/dist/standalone.js +7670 -12402
- package/dist/storage/blob-routes.d.ts +10 -19
- package/dist/storage/filesystem.d.ts +19 -29
- package/dist/storage/index.d.ts +2 -10
- package/dist/storage/key-discriminator.d.ts +8 -10
- package/dist/storage/loopback-guard.d.ts +27 -45
- package/dist/storage/s3.d.ts +25 -52
- package/dist/storage/sign-url.d.ts +7 -22
- package/dist/storage/types.d.ts +44 -70
- package/dist/webhook/event-log.d.ts +0 -2
- package/dist/webhook/generic-sources.d.ts +0 -21
- package/dist/webhook/ingest-admission.d.ts +0 -1
- package/dist/webhook/relay-buffer.d.ts +2 -2
- package/dist/webhook/verify-inbound.d.ts +0 -1
- package/dist/worker/in-memory-execution-tracker.d.ts +9 -31
- package/dist/worker/in-memory-job-queue.d.ts +32 -72
- package/dist/worker/peer-outbox.d.ts +5 -8
- package/dist/worker/reroute-dispatch.d.ts +4 -6
- package/dist/worker/static-agent-token-store.d.ts +6 -27
- package/dist/worker/worker-outbox-relay.d.ts +2 -2
- package/dist/worker/worker-status.d.ts +3 -20
- package/dist/ws/agent-api-registry.d.ts +8 -27
- package/dist/ws/agent-handler.d.ts +63 -110
- package/dist/ws/agent-heartbeat.d.ts +5 -12
- package/dist/ws/bringup-api.d.ts +31 -38
- package/dist/ws/dashboard-backends-handler.d.ts +12 -22
- package/dist/ws/dashboard-context-handler.d.ts +37 -80
- package/dist/ws/dashboard-diagnostics-handler.d.ts +8 -25
- package/dist/ws/dashboard-dispatch-guard.d.ts +3 -4
- package/dist/ws/dashboard-fleet-handler.d.ts +9 -13
- package/dist/ws/dashboard-fleet-write-handler.d.ts +7 -21
- package/dist/ws/dashboard-global-workflows-handler.d.ts +22 -44
- package/dist/ws/dashboard-registrations-handler.d.ts +10 -27
- package/dist/ws/dashboard-run-state-handler.d.ts +10 -13
- package/dist/ws/event-buffer.d.ts +3 -6
- package/dist/ws/execution-status-frame.d.ts +9 -11
- package/dist/ws/failure-messages.d.ts +9 -14
- package/dist/ws/fleet-agent-collector.d.ts +6 -12
- package/dist/ws/fleet-runs-on-all.d.ts +1 -6
- package/dist/ws/git-credential-relay.d.ts +12 -20
- package/dist/ws/inventory-api.d.ts +4 -5
- package/dist/ws/job-status-forward-frame.d.ts +30 -0
- package/dist/ws/observer-registry.d.ts +14 -59
- package/dist/ws/outbound-frame-guard.d.ts +4 -0
- package/dist/ws/ownership-gate.d.ts +1 -1
- package/dist/ws/platform-client.d.ts +32 -31
- package/dist/ws/replay-chunker.d.ts +7 -10
- package/dist/ws/server-options.d.ts +5 -9
- package/dist/ws/test-relay-handlers.d.ts +45 -59
- package/dist/ws/test-run-log-cursor.d.ts +18 -0
- package/installer-image-digests.json +3 -3
- package/package.json +6 -5
- package/sbom.spdx.json +53 -53
- package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
- package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
- package/dist/__test-helpers__/mock-db.d.ts +0 -134
- package/dist/__test-helpers__/mock-ws.d.ts +0 -13
- package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
- package/dist/__test-helpers__/scratch-db.d.ts +0 -16
- package/dist/__test-helpers__/test-db.d.ts +0 -34
- package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* An agent container or Firecracker VM sends its packets to one of the host's
|
|
5
5
|
* addresses — a bridge gateway, the host's LAN address — and those are
|
|
6
|
-
* delivered on the netfilter input hook
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* writes in `scalers.yaml`.
|
|
6
|
+
* delivered on the netfilter input hook, which the backends' `forward` rules
|
|
7
|
+
* never see: without an `input` chain a sandbox reaches every port on the host.
|
|
8
|
+
* These helpers resolve the narrow set it needs, in the `hostAccess`
|
|
9
|
+
* vocabulary an operator writes in `scalers.yaml`.
|
|
11
10
|
*/
|
|
12
11
|
import type { NetworkPolicy } from '@kici-dev/shared/net';
|
|
13
12
|
import type { AppConfig } from '../config.js';
|
|
@@ -20,13 +19,11 @@ import type { AppConfig } from '../config.js';
|
|
|
20
19
|
* orchestrator-port-only default would cut off every deployment running its own
|
|
21
20
|
* object store beside the orchestrator.
|
|
22
21
|
*
|
|
23
|
-
*
|
|
22
|
+
* Only two shapes are recognised:
|
|
24
23
|
*
|
|
25
|
-
* - **An IP literal.** The entry is scoped to that exact address and port
|
|
26
|
-
* narrowest rule that can work.
|
|
24
|
+
* - **An IP literal.** The entry is scoped to that exact address and port.
|
|
27
25
|
* - **A name with an explicit port.** No address rule can be built for a name
|
|
28
|
-
* that may move, so the entry names the port on any host address.
|
|
29
|
-
* still one port rather than the whole host.
|
|
26
|
+
* that may move, so the entry names the port on any host address.
|
|
30
27
|
*
|
|
31
28
|
* A name with no port is a public endpoint (`https://…`), which the agent
|
|
32
29
|
* reaches through the host over the `forward` hook and which no input rule
|
package/dist/scaler/index.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Agent auto-scaler
|
|
3
|
-
*
|
|
4
|
-
* Provides pluggable backend-agnostic agent provisioning for the orchestrator.
|
|
5
|
-
* Supports Docker, bare-metal, and Firecracker backends with YAML configuration,
|
|
6
|
-
* label-set matching, and warm pool management.
|
|
2
|
+
* Agent auto-scaler: pluggable Docker, bare-metal and Firecracker backends with
|
|
3
|
+
* YAML configuration, label-set matching and warm pool management.
|
|
7
4
|
*/
|
|
8
5
|
export type { ResourceLimits, LabelSetConfig, ManagedAgent, ScaleResult, ValidationResult, ScalerBackend, ScalerConfig, ScalerEntry, ScalerEvent, ScalerRedispatchTrigger, WarmPoolConfig, FirecrackerNetworkConfig, } from './types.js';
|
|
9
6
|
export { loadScalerConfig, scalerFileSchema, firecrackerNetworkSchema, parseMemoryString, } from './config.js';
|
|
@@ -14,7 +11,7 @@ export { BareMetalScalerBackend } from './bare-metal-backend.js';
|
|
|
14
11
|
export type { BareMetalScalerBackendOptions } from './bare-metal-backend.js';
|
|
15
12
|
export { FirecrackerScalerBackend } from './firecracker-backend.js';
|
|
16
13
|
export type { FirecrackerScalerBackendOptions, FirecrackerManagedAgent, } from './firecracker-backend.js';
|
|
17
|
-
export { createScalerBackend
|
|
14
|
+
export { createScalerBackend } from './backend-factory.js';
|
|
18
15
|
export type { BackendFactoryContext, IpAllocatorParams } from './backend-factory.js';
|
|
19
16
|
export { resolveAgentHostAccess, storageHostAccessEntries } from './host-access.js';
|
|
20
17
|
export { EventScalerBackend } from './event-backend.js';
|
|
@@ -1,96 +1,63 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CIDR IP allocator for Firecracker VM networking.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* - `DbIpAllocator` persists to PostgreSQL (coordinators), so a long-lived VM
|
|
5
|
+
* keeps its IP across coordinator restarts.
|
|
6
|
+
* - `InMemoryIpAllocator` has no persistence (worker peers, no cluster DB). A
|
|
7
|
+
* worker restart starts it empty, and the backend's `cleanupOrphans()`
|
|
8
|
+
* Pass-2/Pass-3 walk of jailer chroots and host TAPs (on every spawn and in
|
|
9
|
+
* the leak sweep) reaps the leftovers, so the allocator holds no recovery state.
|
|
5
10
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* coord bounces.
|
|
10
|
-
*
|
|
11
|
-
* - `InMemoryIpAllocator` — Map-backed, no persistence. Used by worker
|
|
12
|
-
* peers where the cluster DB is not reachable. The firecracker backend's
|
|
13
|
-
* existing `cleanupOrphans()` Pass-2/Pass-3 walks the jailer chroot
|
|
14
|
-
* tree + host TAP devices on every spawn and during the leak sweep, so
|
|
15
|
-
* any worker-orch restart starts the allocator empty and the next
|
|
16
|
-
* cleanup pass reaps the leftover chroots and TAPs naturally — no
|
|
17
|
-
* recovery state needs to live in the allocator itself.
|
|
18
|
-
*
|
|
19
|
-
* Each orch has its own bridge with its own subnet (coord A: `kici`,
|
|
20
|
-
* coord B: `kici_b`, Pi worker: `kici-br0`), so allocator state is
|
|
21
|
-
* per-orch by design. No two orchs share an IP space.
|
|
11
|
+
* Each orch has its own bridge and subnet (coord A: `kici`, coord B: `kici_b`,
|
|
12
|
+
* Pi worker: `kici-br0`), so allocator state is per-orch; no two orchs share
|
|
13
|
+
* an IP space.
|
|
22
14
|
*/
|
|
23
15
|
import type { Kysely } from 'kysely';
|
|
24
16
|
import type { Database } from '../db/types.js';
|
|
25
|
-
/**
|
|
26
|
-
* Result of a successful IP allocation.
|
|
27
|
-
*/
|
|
28
17
|
export interface IpAllocationResult {
|
|
29
|
-
/** Allocated IP address */
|
|
30
18
|
ip: string;
|
|
31
|
-
/** Gateway IP for guest networking */
|
|
32
19
|
gateway: string;
|
|
33
|
-
/** Subnet mask for guest networking */
|
|
34
20
|
netmask: string;
|
|
35
|
-
/** Deterministic
|
|
21
|
+
/** Deterministic, derived from the IP. */
|
|
36
22
|
mac: string;
|
|
37
|
-
/** TAP device name on the host */
|
|
23
|
+
/** TAP device name on the host. */
|
|
38
24
|
tapDevice: string;
|
|
39
25
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Parsed CIDR range.
|
|
42
|
-
*/
|
|
26
|
+
/** IPv4 addresses are 32-bit unsigned numbers. */
|
|
43
27
|
export interface CidrRange {
|
|
44
|
-
/** Network address as a 32-bit number */
|
|
45
28
|
networkAddress: number;
|
|
46
|
-
/** Prefix length (e.g. 24 for /24) */
|
|
47
29
|
prefixLength: number;
|
|
48
|
-
/** First usable IP (network address + 1)
|
|
30
|
+
/** First usable IP (network address + 1). */
|
|
49
31
|
startIp: number;
|
|
50
|
-
/** Last usable IP (broadcast - 1)
|
|
32
|
+
/** Last usable IP (broadcast - 1). */
|
|
51
33
|
endIp: number;
|
|
52
34
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Parse an IPv4 address string to a 32-bit unsigned integer.
|
|
55
|
-
*/
|
|
35
|
+
/** Parse an IPv4 address string to a 32-bit unsigned integer. */
|
|
56
36
|
export declare function ipToNumber(ip: string): number;
|
|
57
|
-
/**
|
|
58
|
-
* Convert a 32-bit unsigned integer back to an IPv4 address string.
|
|
59
|
-
*/
|
|
60
37
|
export declare function numberToIp(n: number): string;
|
|
61
38
|
/**
|
|
62
|
-
* Parse a CIDR notation string into a CidrRange.
|
|
63
|
-
*
|
|
64
39
|
* @example parseCidr('10.0.0.0/24')
|
|
65
40
|
* // => { networkAddress: 167772160, prefixLength: 24, startIp: 167772161, endIp: 167772414 }
|
|
66
41
|
*/
|
|
67
42
|
export declare function parseCidr(cidr: string): CidrRange;
|
|
68
43
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* Uses the locally-administered unicast prefix 06:00:AC followed by
|
|
72
|
-
* the last 3 octets of the IP address encoded as hex.
|
|
44
|
+
* Deterministic MAC: the locally-administered unicast prefix 06:00:AC, then the
|
|
45
|
+
* last 3 octets of the IP as hex.
|
|
73
46
|
*
|
|
74
47
|
* @example generateMac('10.0.0.5') // => '06:00:AC:00:00:05'
|
|
75
48
|
* @example generateMac('10.0.1.42') // => '06:00:AC:00:01:2A'
|
|
76
49
|
*/
|
|
77
50
|
export declare function generateMac(ip: string): string;
|
|
78
51
|
/**
|
|
79
|
-
*
|
|
80
|
-
* Linux interface names are limited to 15 characters (IFNAMSIZ).
|
|
81
|
-
* Format: kici-XXXXXXXX (5 + 8 = 13 chars, well within limit).
|
|
52
|
+
* `kici-XXXXXXXX` (13 chars): Linux interface names are limited to 15 (IFNAMSIZ).
|
|
82
53
|
*
|
|
83
|
-
* Uses the LAST 8
|
|
84
|
-
*
|
|
85
|
-
* random suffix is at the end. Using slice(0, 8) would always produce
|
|
86
|
-
* "scaler-f" for all Firecracker VMs.
|
|
54
|
+
* Uses the LAST 8 chars of the vmId: VM IDs are "scaler-firecracker-XXXXXXXX"
|
|
55
|
+
* with the random suffix at the end, so slice(0, 8) would always be "scaler-f".
|
|
87
56
|
*/
|
|
88
57
|
export declare function generateTapName(vmId: string): string;
|
|
89
58
|
/**
|
|
90
|
-
*
|
|
91
|
-
* `
|
|
92
|
-
* the firecracker-backend's `cleanupOrphans()` can read both impls
|
|
93
|
-
* uniformly.
|
|
59
|
+
* Matches the `ip_allocations` table columns so the firecracker-backend's
|
|
60
|
+
* `cleanupOrphans()` reads both impls uniformly.
|
|
94
61
|
*/
|
|
95
62
|
export interface IpAllocationRecord {
|
|
96
63
|
ip: string;
|
|
@@ -100,12 +67,8 @@ export interface IpAllocationRecord {
|
|
|
100
67
|
mac_address: string;
|
|
101
68
|
}
|
|
102
69
|
/**
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* Two implementations: `DbIpAllocator` (Postgres, coordinator) and
|
|
106
|
-
* `InMemoryIpAllocator` (Map-backed, worker). The firecracker-backend
|
|
107
|
-
* depends only on this interface — never on the concrete class — so a
|
|
108
|
-
* single backend implementation works in both deploy modes.
|
|
70
|
+
* The firecracker-backend depends only on this interface, never on a concrete
|
|
71
|
+
* class, so one backend implementation works in both deploy modes.
|
|
109
72
|
*/
|
|
110
73
|
export interface IpAllocator {
|
|
111
74
|
allocate(vmId: string, scalerName: string): Promise<IpAllocationResult>;
|
|
@@ -114,14 +77,7 @@ export interface IpAllocator {
|
|
|
114
77
|
getAllocations(): Promise<IpAllocationRecord[]>;
|
|
115
78
|
getAllocationForVm(vmId: string): Promise<IpAllocationRecord | null>;
|
|
116
79
|
}
|
|
117
|
-
/**
|
|
118
|
-
* DB-backed CIDR IP allocator.
|
|
119
|
-
*
|
|
120
|
-
* Allocates IPs from a configurable range, skipping the gateway.
|
|
121
|
-
* All allocations are persisted in PostgreSQL — used by coordinators
|
|
122
|
-
* where the cluster DB is reachable. Allocations survive orch restarts
|
|
123
|
-
* so a long-lived VM keeps its IP across coord bounces.
|
|
124
|
-
*/
|
|
80
|
+
/** Coordinator allocator; allocations persist in PostgreSQL across restarts. */
|
|
125
81
|
export declare class DbIpAllocator implements IpAllocator {
|
|
126
82
|
private readonly db;
|
|
127
83
|
private readonly range;
|
|
@@ -141,20 +97,12 @@ export declare class DbIpAllocator implements IpAllocator {
|
|
|
141
97
|
getAllocationForVm(vmId: string): Promise<IpAllocationRecord | null>;
|
|
142
98
|
}
|
|
143
99
|
/**
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* lives in a `Map<vmId, IpAllocationRecord>` for the lifetime of the
|
|
148
|
-
* orch process; on restart the allocator starts empty and the
|
|
149
|
-
* firecracker-backend's existing `cleanupOrphans()` Pass-2/Pass-3 walks
|
|
150
|
-
* the jailer chroot tree + host TAP devices (matching `VM_TAP_PATTERN`)
|
|
151
|
-
* to reap any leftover state. No persistence and no chroot recovery
|
|
152
|
-
* inside the allocator — the filesystem is the source of truth, and the
|
|
153
|
-
* cleanup pass already consults it.
|
|
100
|
+
* Worker allocator, process-lifetime state only. After a restart,
|
|
101
|
+
* `cleanupOrphans()` reaps leftover chroots and TAPs (matching
|
|
102
|
+
* `VM_TAP_PATTERN`): the filesystem is the source of truth.
|
|
154
103
|
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
* the in-memory Map and only awaits to satisfy the async interface.
|
|
104
|
+
* No locking needed: every method is synchronous on the Map and only awaits
|
|
105
|
+
* to satisfy the async interface.
|
|
158
106
|
*/
|
|
159
107
|
export declare class InMemoryIpAllocator implements IpAllocator {
|
|
160
108
|
private readonly range;
|
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* deterministic comparison.
|
|
6
|
-
*
|
|
7
|
-
* findBackendForLabels uses subset matching: a job requiring ['macos']
|
|
8
|
-
* matches a scaler with ['macos', 'darwin', 'bare-metal']. This is
|
|
9
|
-
* consistent with peer routing (findPeersWithCapacity) and allows
|
|
10
|
-
* workflows to target broad labels like 'macos' without listing every
|
|
11
|
-
* label the scaler defines.
|
|
2
|
+
* Scaler label-set matching and overlap detection. Subset matching lets a
|
|
3
|
+
* workflow target a broad label like 'macos' without listing every label the
|
|
4
|
+
* scaler defines.
|
|
12
5
|
*/
|
|
13
6
|
/**
|
|
14
|
-
*
|
|
15
|
-
* Sorts alphabetically, deduplicates, and lowercases all labels.
|
|
16
|
-
* Produces a deterministic string key for comparison.
|
|
7
|
+
* A label set as a deterministic comparison key: lowercased, deduplicated, sorted.
|
|
17
8
|
*
|
|
18
9
|
* @example
|
|
19
10
|
* normalizeLabelSet(['Docker', 'linux', 'linux']) // => "docker,linux"
|
|
@@ -21,18 +12,13 @@
|
|
|
21
12
|
*/
|
|
22
13
|
export declare function normalizeLabelSet(labels: string[]): string;
|
|
23
14
|
/**
|
|
24
|
-
*
|
|
25
|
-
* Subsets do NOT match -- ["linux"] does not match ["linux", "docker"].
|
|
15
|
+
* Exact equality after normalization; a subset does NOT match.
|
|
26
16
|
*/
|
|
27
17
|
export declare function labelSetsMatch(a: string[], b: string[]): boolean;
|
|
28
18
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* Intra-scaler duplicates are allowed (same scaler, duplicate label sets).
|
|
33
|
-
* Only cross-scaler overlaps are flagged.
|
|
34
|
-
*
|
|
35
|
-
* Used at startup to reject configs with ambiguous routing.
|
|
19
|
+
* Every pair of scalers sharing a normalized label set. A duplicate within one
|
|
20
|
+
* scaler is allowed. Startup rejects a config with an overlap: its routing is
|
|
21
|
+
* ambiguous.
|
|
36
22
|
*/
|
|
37
23
|
export declare function detectLabelSetOverlaps(scalers: Array<{
|
|
38
24
|
name: string;
|
|
@@ -45,20 +31,13 @@ export declare function detectLabelSetOverlaps(scalers: Array<{
|
|
|
45
31
|
scaler2: string;
|
|
46
32
|
}>;
|
|
47
33
|
/**
|
|
48
|
-
*
|
|
49
|
-
* Returns the scaler name and label-set index, or null if no match.
|
|
50
|
-
*
|
|
51
|
-
* Uses subset matching: job labels must be a subset of the scaler's label set.
|
|
52
|
-
* ['macos'] matches ['macos', 'darwin', 'bare-metal']. This is consistent
|
|
53
|
-
* with peer routing (findPeersWithCapacity) which uses the same semantics.
|
|
54
|
-
*
|
|
55
|
-
* In addition, every label in the gate for the matched label set must be
|
|
56
|
-
* present in the job's `runsOn`. This is the Kubernetes-taint-style opt-in
|
|
57
|
-
* gate: a label set gated on `['gpu']` only accepts jobs that explicitly
|
|
58
|
-
* include `gpu` in `runsOn`.
|
|
34
|
+
* The scaler and label-set index that handle a job's labels, or null.
|
|
59
35
|
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
36
|
+
* Subset matching: ['macos'] matches ['macos', 'darwin', 'bare-metal'], the same
|
|
37
|
+
* semantics as peer routing (findPeersWithCapacity). Every label in the
|
|
38
|
+
* matched set's gate must also be in `runsOn` (a Kubernetes-taint-style
|
|
39
|
+
* opt-in: a set gated on `['gpu']` accepts only jobs naming `gpu`). Among
|
|
40
|
+
* several matches the smallest label set wins.
|
|
62
41
|
*/
|
|
63
42
|
export declare function findBackendForLabels(labels: string[], scalers: Array<{
|
|
64
43
|
name: string;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Agent log forwarding: enriches agent log lines with metadata and writes
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Handles both JSON and non-JSON log lines:
|
|
6
|
-
* - JSON lines are parsed, enriched with agent/context metadata, and re-serialized.
|
|
7
|
-
* - Non-JSON lines are wrapped as info-level JSON objects.
|
|
2
|
+
* Agent log forwarding: enriches agent log lines with metadata and writes them
|
|
3
|
+
* to a stream (typically orchestrator stdout for ELK ingestion). A non-JSON
|
|
4
|
+
* line, or JSON that is not an object, is wrapped as an info-level object.
|
|
8
5
|
*
|
|
9
6
|
* The `service` field identifies the originating tier for forwarded logs that flow
|
|
10
7
|
* through orchestrator stdout (where `kici.service` from container name would say
|
|
@@ -12,27 +9,18 @@
|
|
|
12
9
|
* purpose of identifying forwarded log origin for scaler-managed agents only.
|
|
13
10
|
*/
|
|
14
11
|
import type { LogCapture } from './types.js';
|
|
15
|
-
/** Context fields merged into each forwarded log line. */
|
|
16
12
|
interface ForwardContext {
|
|
17
13
|
runId?: string;
|
|
18
14
|
requestId?: string;
|
|
19
15
|
jobId?: string;
|
|
20
16
|
}
|
|
21
17
|
/**
|
|
22
|
-
* Enrich and forward
|
|
23
|
-
*
|
|
24
|
-
* Standalone function for use in the WS agent.log path (agent-handler).
|
|
18
|
+
* Enrich and forward one log line; also used by the WS agent.log path (agent-handler).
|
|
25
19
|
*
|
|
26
|
-
* @param
|
|
27
|
-
* @param agentId - The agent that produced the line
|
|
28
|
-
* @param output - Writable stream to write enriched JSON to
|
|
29
|
-
* @param context - Optional trace context fields
|
|
30
|
-
* @param logsSource - Optional log source identifier (e.g. 'docker', 'podman', 'bare-metal', 'firecracker-serial')
|
|
20
|
+
* @param logsSource - e.g. 'docker', 'podman', 'bare-metal', 'firecracker-serial'
|
|
31
21
|
*/
|
|
32
22
|
export declare function forwardLine(line: string, agentId: string, output: NodeJS.WritableStream, context?: ForwardContext, logsSource?: string): void;
|
|
33
23
|
/**
|
|
34
|
-
* Consumes a LogCapture stream and forwards enriched log lines to an output stream.
|
|
35
|
-
*
|
|
36
24
|
* Used by scaler backends (container, bare-metal, Firecracker) to forward
|
|
37
25
|
* agent stdout/stderr to orchestrator stdout for ELK ingestion.
|
|
38
26
|
*/
|
|
@@ -40,14 +28,7 @@ export declare class AgentLogForwarder {
|
|
|
40
28
|
private readonly agentId;
|
|
41
29
|
private readonly output;
|
|
42
30
|
constructor(agentId: string, output?: NodeJS.WritableStream);
|
|
43
|
-
/**
|
|
44
|
-
* Forward all lines from a LogCapture to the output stream.
|
|
45
|
-
* Resolves when the capture's async iterable ends.
|
|
46
|
-
*
|
|
47
|
-
* @param capture - LogCapture to consume
|
|
48
|
-
* @param context - Optional trace context fields
|
|
49
|
-
* @param logsSource - Optional log source identifier (e.g. 'docker', 'podman', 'bare-metal')
|
|
50
|
-
*/
|
|
31
|
+
/** Resolves when the capture's async iterable ends. */
|
|
51
32
|
forward(capture: LogCapture, context?: ForwardContext, logsSource?: string): Promise<void>;
|
|
52
33
|
}
|
|
53
34
|
export {};
|
|
@@ -1,35 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* File-backed, cross-process resource ledger for named machine pools.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Orchestrators on one host that name the same `machinePool` share a JSON file
|
|
5
|
+
* under `KICI_MACHINE_LEDGER_DIR ?? /var/lib/kici/scaler-ledger`. A reservation
|
|
6
|
+
* appends a row, a release deletes it, and a periodic reaper prunes rows whose
|
|
7
|
+
* `(pid, bootId)` no longer exists.
|
|
8
8
|
*
|
|
9
9
|
* ## Concurrency
|
|
10
10
|
*
|
|
11
|
-
* Every read-modify-write
|
|
12
|
-
*
|
|
13
|
-
* `
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* Neither `proper-lockfile` nor `fs-ext` is a dependency, so this uses the
|
|
17
|
-
* `mkdir` lock instead. This avoids adding a native binding for the sake of
|
|
18
|
-
* a single locking primitive.
|
|
11
|
+
* Every read-modify-write runs under `withLock`: an atomic POSIX `mkdir` on a
|
|
12
|
+
* sibling lockdir succeeds for exactly one caller, a portable `flock`
|
|
13
|
+
* substitute. `proper-lockfile` / `fs-ext` are rejected to avoid a native
|
|
14
|
+
* binding for one primitive.
|
|
19
15
|
*
|
|
20
16
|
* ## Crash safety
|
|
21
17
|
*
|
|
22
|
-
*
|
|
23
|
-
* `
|
|
24
|
-
* `/proc/sys/kernel/random/boot_id`; combined with `pid`, it lets the reaper
|
|
25
|
-
* detect "this PID is dead AND was on a previous boot" reliably:
|
|
18
|
+
* `bootId` is read once at startup from `/proc/sys/kernel/random/boot_id`; with
|
|
19
|
+
* `pid` it lets the reaper tell a dead process:
|
|
26
20
|
*
|
|
27
21
|
* - Same boot: `process.kill(pid, 0)` answers liveness.
|
|
28
22
|
* - Different boot: any pre-reboot row is unconditionally stale.
|
|
29
23
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* no leak window beyond the next spawn attempt.
|
|
24
|
+
* Each reservation reaps first, so a crashed orchestrator's rows leak no longer
|
|
25
|
+
* than the next spawn attempt.
|
|
33
26
|
*/
|
|
34
27
|
import type { ResourceCap } from './types.js';
|
|
35
28
|
/** Wire format for the per-pool ledger JSON file. */
|
|
@@ -38,103 +31,70 @@ export interface LedgerFile {
|
|
|
38
31
|
cap: ResourceCap;
|
|
39
32
|
reservations: ReservationRow[];
|
|
40
33
|
}
|
|
41
|
-
/** A single reservation row in the ledger. */
|
|
42
34
|
export interface ReservationRow {
|
|
43
|
-
/**
|
|
35
|
+
/** From `KICI_CLUSTER_INSTANCE_ID`, or generated. */
|
|
44
36
|
instanceId: string;
|
|
45
|
-
/** Process id that owns this reservation. */
|
|
46
37
|
pid: number;
|
|
47
|
-
/** Linux boot id
|
|
38
|
+
/** Linux boot id when the row was created. */
|
|
48
39
|
bootId: string;
|
|
49
|
-
/** Agent id this reservation is associated with. */
|
|
50
40
|
agentId: string;
|
|
51
|
-
/**
|
|
41
|
+
/** Cores. */
|
|
52
42
|
cpus: number;
|
|
53
|
-
/** Reserved memory in bytes. */
|
|
54
43
|
memBytes: number;
|
|
55
|
-
/**
|
|
44
|
+
/** Epoch ms. */
|
|
56
45
|
reservedAt: number;
|
|
57
46
|
}
|
|
58
47
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* (the pool name is passed per-call). The ledger does not cache the JSON:
|
|
63
|
-
* every operation goes through the lock, reads the file, applies the
|
|
64
|
-
* mutation, and writes it back — keeping the wire format the only source
|
|
65
|
-
* of truth across processes.
|
|
48
|
+
* One instance serves every pool (named per call). It never caches the JSON:
|
|
49
|
+
* every operation locks, reads, mutates and writes back, so the file is the
|
|
50
|
+
* only source of truth across processes.
|
|
66
51
|
*/
|
|
67
52
|
export declare class MachineLedger {
|
|
68
53
|
private readonly bootId;
|
|
69
54
|
private dirPath;
|
|
70
55
|
private readonly explicitDir;
|
|
71
56
|
private readonly instanceId;
|
|
72
|
-
/**
|
|
57
|
+
/** The on-disk file's `cap` must match. */
|
|
73
58
|
private readonly expectedCaps;
|
|
74
|
-
/** Reaper interval handle. */
|
|
75
59
|
private reaperTimer;
|
|
76
60
|
constructor(opts: {
|
|
77
61
|
explicitDir?: string;
|
|
78
62
|
instanceId: string;
|
|
79
63
|
});
|
|
80
|
-
/**
|
|
81
|
-
* Lazy directory resolution so construction stays synchronous. Called from
|
|
82
|
-
* every operation; resolves once and caches.
|
|
83
|
-
*/
|
|
64
|
+
/** Lazy, so construction stays synchronous; resolves once. */
|
|
84
65
|
private ensureDir;
|
|
85
66
|
/** Register the expected cap for a pool. The on-disk file's cap must match. */
|
|
86
67
|
registerPool(name: string, cap: ResourceCap): void;
|
|
87
|
-
/**
|
|
88
|
-
* Path to the JSON file for `poolName`. Sibling lockdir is `<file>.lock`.
|
|
89
|
-
*/
|
|
68
|
+
/** The pool's JSON file and its sibling lockdir. */
|
|
90
69
|
private pathFor;
|
|
91
|
-
/**
|
|
92
|
-
* Atomic mkdir-based lock. Held for the duration of `fn`.
|
|
93
|
-
*/
|
|
94
70
|
private withLock;
|
|
95
71
|
/**
|
|
96
|
-
*
|
|
97
|
-
* holder
|
|
98
|
-
* SIGKILL'd while holding the lock would leave it stuck forever.
|
|
72
|
+
* A lockdir older than 30 seconds is presumed dead and released; otherwise a
|
|
73
|
+
* holder SIGKILL'd mid-lock wedges the pool forever.
|
|
99
74
|
*/
|
|
100
75
|
private maybeReleaseStaleLock;
|
|
101
|
-
/**
|
|
102
|
-
* Read the ledger file (or initialize an empty one when missing).
|
|
103
|
-
*/
|
|
76
|
+
/** A missing file reads as an empty ledger. */
|
|
104
77
|
private readLedger;
|
|
105
78
|
/** Atomic write via temp-file + rename. */
|
|
106
79
|
private writeLedger;
|
|
107
80
|
/**
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* Reaps stale rows from dead processes before checking the cap so an
|
|
112
|
-
* orphaned reservation doesn't permanently squat capacity.
|
|
81
|
+
* Persist a reservation and return true, or false when any cap would be
|
|
82
|
+
* exceeded. Dead rows are reaped first, so an orphan never squats capacity.
|
|
113
83
|
*/
|
|
114
84
|
tryReserve(poolName: string, agentId: string, cpus: number, memBytes: number): Promise<boolean>;
|
|
115
|
-
/**
|
|
116
|
-
* Release the reservation for `agentId`. Idempotent.
|
|
117
|
-
*/
|
|
85
|
+
/** Idempotent. */
|
|
118
86
|
release(poolName: string, agentId: string): Promise<void>;
|
|
119
|
-
/**
|
|
120
|
-
* Reap stale (dead-process) rows for the given pool. Called periodically.
|
|
121
|
-
*/
|
|
87
|
+
/** Reap dead-process rows; called periodically. */
|
|
122
88
|
reapStale(poolName: string): Promise<void>;
|
|
123
89
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* -
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
* (e.g. one runs natively and the other in a container), `kill` returns
|
|
133
|
-
* ESRCH for any peer pid and the reservation would be falsely reaped,
|
|
134
|
-
* silently breaking the cross-process cap. Peer cleanup happens via
|
|
135
|
-
* `releaseAllForInstance()` on graceful shutdown; SIGKILL'd peers leave
|
|
136
|
-
* their rows in place until the host reboots (which the bootId check
|
|
137
|
-
* then reaps unconditionally).
|
|
90
|
+
* Drop, in place, rows that point at dead processes:
|
|
91
|
+
* - Different bootId: dead (host rebooted since).
|
|
92
|
+
* - Same bootId, OWN instance: probe with `process.kill(pid, 0)`, which works
|
|
93
|
+
* inside this PID namespace.
|
|
94
|
+
* - Same bootId, OTHER instance: keep. A peer in another PID namespace (native
|
|
95
|
+
* vs container) gets ESRCH for every pid, so probing would falsely reap and
|
|
96
|
+
* silently break the cap. Peers release on graceful shutdown; a SIGKILL'd
|
|
97
|
+
* peer's rows stay until the next reboot.
|
|
138
98
|
*/
|
|
139
99
|
private dropDeadReservations;
|
|
140
100
|
/** Return current usage (sum of `requests` across all live rows). */
|
|
@@ -142,18 +102,11 @@ export declare class MachineLedger {
|
|
|
142
102
|
cpus: number;
|
|
143
103
|
memBytes: number;
|
|
144
104
|
}>;
|
|
145
|
-
/**
|
|
146
|
-
* Start the periodic reaper. Idempotent. The reaper iterates every
|
|
147
|
-
* registered pool every 30s.
|
|
148
|
-
*/
|
|
105
|
+
/** Start the periodic reaper over every registered pool. Idempotent. */
|
|
149
106
|
start(intervalMs?: number): void;
|
|
150
|
-
/** Stop the periodic reaper. */
|
|
151
107
|
stop(): void;
|
|
152
108
|
private reapAllPools;
|
|
153
|
-
/**
|
|
154
|
-
* Best-effort: release every reservation owned by this instance across all
|
|
155
|
-
* registered pools. Called on graceful shutdown.
|
|
156
|
-
*/
|
|
109
|
+
/** Best-effort release of this instance's rows in every pool, on graceful shutdown. */
|
|
157
110
|
releaseAllForInstance(): Promise<void>;
|
|
158
111
|
}
|
|
159
112
|
//# sourceMappingURL=machine-ledger.d.ts.map
|