@kici-dev/orchestrator 0.17.0 → 0.18.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 +121 -233
- 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 +33 -59
- 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 +4568 -6571
- 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 +143 -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 +289 -525
- 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 +65 -151
- 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 +28 -45
- 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 +10 -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 +46 -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 +7500 -12629
- 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 +7141 -11957
- 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 +7 -10
- 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/observer-registry.d.ts +14 -59
- package/dist/ws/ownership-gate.d.ts +1 -1
- package/dist/ws/platform-client.d.ts +21 -30
- 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 +36 -60
- 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
package/dist/scaler/types.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core type definitions for the agent auto-scaler module.
|
|
3
|
-
*
|
|
4
|
-
* Provides the foundational types that all scaler backends, the ScalerManager,
|
|
5
|
-
* and the configuration layer depend on.
|
|
6
|
-
*/
|
|
1
|
+
/** Core types shared by the scaler backends, `ScalerManager` and the config layer. */
|
|
7
2
|
import { ImagePullPolicy } from '@kici-dev/shared/container-runtime';
|
|
8
3
|
import { z } from 'zod';
|
|
9
4
|
import { ScalerEventType } from '@kici-dev/engine';
|
|
@@ -12,60 +7,43 @@ import type { ResourceRequest, ResourceSpec, ScalerBackendType, ScalerPlatform }
|
|
|
12
7
|
export type { ResourceRequest, ResourceSpec } from '@kici-dev/engine';
|
|
13
8
|
export { ScalerEventType } from '@kici-dev/engine';
|
|
14
9
|
/**
|
|
15
|
-
* Resource limits for spawned agents
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* the (cpus, memory) pair used by both scaler config and per-job resource
|
|
19
|
-
* declarations. Memory uses container-style suffixes (e.g., "2g", "512m").
|
|
20
|
-
* CPUs use fractional cores (e.g., 1.5 = 1.5 cores).
|
|
10
|
+
* Resource limits for spawned agents: the `(cpus, memory)` pair shared by scaler
|
|
11
|
+
* config and per-job declarations. Memory uses container-style suffixes ("2g",
|
|
12
|
+
* "512m"); CPUs are fractional cores (1.5 = 1.5 cores).
|
|
21
13
|
*/
|
|
22
14
|
export type ResourceLimits = ResourceSpec;
|
|
23
15
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* config-load so the scaler doesn't re-parse on every spawn check.
|
|
16
|
+
* Cap on summed `requests` for a group of agents (scaler, orchestrator or
|
|
17
|
+
* machine pool). Memory is parsed to bytes at config load, not per spawn check.
|
|
27
18
|
*/
|
|
28
19
|
export interface ResourceCap {
|
|
29
|
-
/**
|
|
20
|
+
/** Sum of `requests.cpus` across the group's active agents. */
|
|
30
21
|
maxCpu?: number;
|
|
31
|
-
/**
|
|
22
|
+
/** Sum of `requests.memory`, in bytes, across the group's active agents. */
|
|
32
23
|
maxMemoryBytes?: number;
|
|
33
24
|
}
|
|
34
25
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* (`machine-ledger.ts`) coordinates reservation accounting across processes.
|
|
26
|
+
* A named machine pool. Orchestrators on one host share it by name; the
|
|
27
|
+
* file-backed ledger (`machine-ledger.ts`) accounts reservations across processes.
|
|
38
28
|
*/
|
|
39
29
|
export interface MachinePoolConfig {
|
|
40
30
|
name: string;
|
|
41
31
|
cap: ResourceCap;
|
|
42
32
|
}
|
|
43
33
|
/**
|
|
44
|
-
* Pre-resolved kernel-side limits passed to `ScalerBackend.spawn()
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* memory-string parser on every spawn. Either field may be zero or omitted
|
|
48
|
-
* to mean "no limit on this dimension"; the backend falls back to its
|
|
49
|
-
* label-set or default limits when both are zero.
|
|
34
|
+
* Pre-resolved kernel-side limits passed to `ScalerBackend.spawn()`, memory in
|
|
35
|
+
* bytes. Zero or omitted means no limit on that dimension; when both are zero
|
|
36
|
+
* the backend falls back to its label-set or default limits.
|
|
50
37
|
*/
|
|
51
38
|
export interface EffectiveLimits {
|
|
52
39
|
cpus?: number;
|
|
53
40
|
memBytes?: number;
|
|
54
41
|
}
|
|
55
42
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* select the exact container a trigger produced instead of guessing among
|
|
61
|
-
* concurrent kici-managed containers. Absent for unbound spawns (warm pool).
|
|
62
|
-
*/
|
|
63
|
-
/**
|
|
64
|
-
* A job's container spec with its registry credentials already resolved.
|
|
65
|
-
*
|
|
66
|
-
* The lock carries credential REFERENCES; this is what a runtime can actually
|
|
67
|
-
* pull with. Produced by `resolveContainerSpawn`, consumed by the container
|
|
68
|
-
* sandbox and by both spawning backends.
|
|
43
|
+
* A job's container spec with its registry credentials resolved: the lock
|
|
44
|
+
* carries credential REFERENCES, this is what a runtime pulls with. Produced by
|
|
45
|
+
* `resolveContainerSpawn`, consumed by the container sandbox and by both
|
|
46
|
+
* spawning backends.
|
|
69
47
|
*/
|
|
70
48
|
export interface ResolvedContainerSpawn {
|
|
71
49
|
image: string;
|
|
@@ -76,42 +54,40 @@ export interface ResolvedContainerSpawn {
|
|
|
76
54
|
};
|
|
77
55
|
env?: Record<string, string>;
|
|
78
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Identity of the work a spawn serves, passed to `ScalerBackend.spawn()`.
|
|
59
|
+
* Backends surface it on the provisioned resource (container labels) so an
|
|
60
|
+
* operator (`podman ps`) sees which job/run each agent serves and a test selects
|
|
61
|
+
* the exact container a trigger produced. Absent for unbound (warm pool) spawns.
|
|
62
|
+
*/
|
|
79
63
|
export interface SpawnContext {
|
|
80
|
-
/** Execution job id the spawn is bound to. */
|
|
81
64
|
boundJobId?: string;
|
|
82
|
-
/** Execution run id the bound job belongs to. */
|
|
83
65
|
runId?: string;
|
|
84
66
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* injected" rather than the pool's fixed agent image.
|
|
67
|
+
* Present when the job declared a container: spawn THIS image with the KiCI
|
|
68
|
+
* runtime injected, not the pool's fixed agent image.
|
|
88
69
|
*/
|
|
89
70
|
container?: ResolvedContainerSpawn;
|
|
90
71
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* dispatched to. A backend must never derive them itself: the manager is the
|
|
97
|
-
* single source, and computing them twice is the defect this field closes.
|
|
72
|
+
* Platform-taint tokens (`windows`, `macos`, `arm64`) for this spawn's pool,
|
|
73
|
+
* derived by `ScalerManager` from the platform its taint gate uses. A backend
|
|
74
|
+
* forwards them to `scalerAgentLabels()`; without them a tainted pool spawns
|
|
75
|
+
* agents no job can be dispatched to. Never derived by a backend: the manager
|
|
76
|
+
* is the single source.
|
|
98
77
|
*/
|
|
99
78
|
platformTaints?: readonly string[];
|
|
100
79
|
/**
|
|
101
|
-
* The full taint gate the
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* agent will actually be held to. A backend must never derive it itself: the
|
|
107
|
-
* manager is the single source, exactly as for `platformTaints`.
|
|
80
|
+
* The full taint gate the agent registers under: configured `mandatoryLabels`
|
|
81
|
+
* plus every derived platform taint, as the durable spawn row carries it. A
|
|
82
|
+
* backend publishes it (the event scaler's scale-up payload) so a provisioning
|
|
83
|
+
* workflow sees the real gate. Never derived by a backend: the manager is the
|
|
84
|
+
* single source.
|
|
108
85
|
*/
|
|
109
86
|
mandatoryLabels?: readonly string[];
|
|
110
87
|
}
|
|
111
88
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* that consumes it, and re-exported here so scaler call sites are unchanged.
|
|
89
|
+
* RFC1918 and internet access policy for a label set's agents. Defined in
|
|
90
|
+
* `@kici-dev/shared/net` beside the nftables rule builder that consumes it.
|
|
115
91
|
*/
|
|
116
92
|
import type { NetworkPolicy } from '@kici-dev/shared/net';
|
|
117
93
|
export type { NetworkPolicy };
|
|
@@ -125,21 +101,17 @@ export type { NetworkPolicy };
|
|
|
125
101
|
* moving tag (e.g. `:latest`) or otherwise needs a fresh image each spawn.
|
|
126
102
|
* - `Never`: never pull; fail if the image is absent.
|
|
127
103
|
*
|
|
128
|
-
* Defined
|
|
129
|
-
*
|
|
130
|
-
* config schema and every operator-facing value stay exactly where they were.
|
|
104
|
+
* Defined beside `pullImageIfMissing` in `@kici-dev/shared`, which the agent
|
|
105
|
+
* also uses to pull job images.
|
|
131
106
|
*/
|
|
132
107
|
export { ImagePullPolicy };
|
|
133
|
-
/**
|
|
134
|
-
* Configuration for a single label-set mapping within a scaler backend.
|
|
135
|
-
* Maps an exact set of labels to the agent provisioning details.
|
|
136
|
-
*/
|
|
108
|
+
/** Maps an exact label set to a scaler backend's agent provisioning details. */
|
|
137
109
|
export interface LabelSetConfig {
|
|
138
110
|
/** Exact label set (sorted for deterministic comparison) */
|
|
139
111
|
labels: string[];
|
|
140
112
|
/** Container image (Docker backend) */
|
|
141
113
|
image?: string;
|
|
142
|
-
/**
|
|
114
|
+
/** Default: IfNotPresent. */
|
|
143
115
|
imagePullPolicy?: ImagePullPolicy;
|
|
144
116
|
/** Path to agent binary (bare-metal backend) */
|
|
145
117
|
binaryPath?: string;
|
|
@@ -155,14 +127,11 @@ export interface LabelSetConfig {
|
|
|
155
127
|
* @default false
|
|
156
128
|
*/
|
|
157
129
|
containerSocket?: boolean;
|
|
158
|
-
/**
|
|
130
|
+
/** Extra bind mounts for spawned containers (e.g. ["/host/path:/container/path:ro"]). */
|
|
159
131
|
volumes?: string[];
|
|
160
|
-
/** Additional environment variables passed to spawned agents */
|
|
161
132
|
env?: Record<string, string>;
|
|
162
|
-
/** Network isolation policy for agents in this label set */
|
|
163
133
|
networkPolicy?: NetworkPolicy;
|
|
164
|
-
/**
|
|
165
|
-
* When set, injected as KICI_BACKPRESSURE_MODE into spawned agent environment. */
|
|
134
|
+
/** Agent log streaming backpressure, default 'pause'; injected as KICI_BACKPRESSURE_MODE. */
|
|
166
135
|
backpressureMode?: 'pause' | 'drop';
|
|
167
136
|
/** Path to ext4 rootfs image (Firecracker backend, required per label-set) */
|
|
168
137
|
rootfsPath?: string;
|
|
@@ -176,27 +145,22 @@ export interface LabelSetConfig {
|
|
|
176
145
|
overlayDriveSizeMib?: number;
|
|
177
146
|
}
|
|
178
147
|
/**
|
|
179
|
-
*
|
|
180
|
-
*
|
|
148
|
+
* A spawned agent tracked by the scaler; the AgentRegistry knows only
|
|
149
|
+
* registered (WS-connected) agents.
|
|
181
150
|
*/
|
|
182
151
|
export interface ManagedAgent {
|
|
183
|
-
/**
|
|
152
|
+
/** Scaler-internal tracking id. */
|
|
184
153
|
id: string;
|
|
185
|
-
/** The label set this agent was spawned for */
|
|
186
154
|
labelSet: string[];
|
|
187
|
-
/**
|
|
155
|
+
/** Container ID or PID. */
|
|
188
156
|
backendRef: string;
|
|
189
|
-
/**
|
|
157
|
+
/** Epoch ms. */
|
|
190
158
|
spawnedAt: number;
|
|
191
|
-
/** Current lifecycle state */
|
|
192
159
|
state: 'spawning' | 'running' | 'destroying';
|
|
193
|
-
/**
|
|
160
|
+
/** Set once the agent registers over WS. */
|
|
194
161
|
registeredAgentId?: string;
|
|
195
162
|
}
|
|
196
|
-
/**
|
|
197
|
-
* Result of a scaling decision.
|
|
198
|
-
* Discriminated union on 'action' for exhaustive pattern matching.
|
|
199
|
-
*/
|
|
163
|
+
/** Result of a scaling decision, discriminated on `action`. */
|
|
200
164
|
export type ScaleResult =
|
|
201
165
|
/** A spawn started; `agentId` is the scaler-managed id the new agent will register with. */
|
|
202
166
|
{
|
|
@@ -233,9 +197,6 @@ export declare const ScalerRedispatchTrigger: z.ZodEnum<{
|
|
|
233
197
|
sweep: "sweep";
|
|
234
198
|
}>;
|
|
235
199
|
export type ScalerRedispatchTrigger = z.infer<typeof ScalerRedispatchTrigger>;
|
|
236
|
-
/**
|
|
237
|
-
* Result of a configuration validation or reload operation.
|
|
238
|
-
*/
|
|
239
200
|
export type ValidationResult = {
|
|
240
201
|
valid: true;
|
|
241
202
|
} | {
|
|
@@ -250,42 +211,32 @@ export interface ScalerDestroyContext {
|
|
|
250
211
|
/** Why the teardown was requested (idle, job-complete, drain, …). */
|
|
251
212
|
reason?: ScaleDownReason;
|
|
252
213
|
/**
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
* local backends, which deliver nothing.
|
|
214
|
+
* Overrides an event backend's live delivery targets. Set from the spawn
|
|
215
|
+
* record for an agent adopted from another coordinator, so the teardown
|
|
216
|
+
* reaches the targets the provision was spawned with even after
|
|
217
|
+
* `provisioningTargets` changed. Local backends ignore it.
|
|
258
218
|
*/
|
|
259
219
|
targets?: string[];
|
|
260
220
|
}
|
|
261
221
|
/**
|
|
262
|
-
* Common interface for all scaler backends
|
|
263
|
-
*
|
|
264
|
-
* Designed to be pluggable -- Docker, bare-metal, and future K8s/VM backends
|
|
265
|
-
* all implement this interface.
|
|
222
|
+
* Common interface for all scaler backends; each manages a pool of agents for
|
|
223
|
+
* specific label sets.
|
|
266
224
|
*/
|
|
267
225
|
export interface ScalerBackend {
|
|
268
|
-
/** Backend type identifier */
|
|
269
226
|
readonly type: ScalerBackendType;
|
|
270
|
-
/**
|
|
227
|
+
/** The ELK `app.logsSource` field. */
|
|
271
228
|
readonly logsSource?: string;
|
|
272
|
-
/** Label sets this backend can provision */
|
|
273
229
|
readonly labelSets: LabelSetConfig[];
|
|
274
|
-
/**
|
|
275
|
-
* Per-backend maximum agents. Updated by `reload` so a config change to
|
|
276
|
-
* `maxAgents` applies without an orchestrator restart.
|
|
277
|
-
*/
|
|
230
|
+
/** Updated by `reload`, so a `maxAgents` change needs no orchestrator restart. */
|
|
278
231
|
maxAgents: number;
|
|
279
232
|
/**
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
* container
|
|
283
|
-
*
|
|
284
|
-
* Drives the static spawning-host display on the dashboard Infrastructure
|
|
285
|
-
* page.
|
|
233
|
+
* True when agents run on the orchestrator's own host: bare-metal,
|
|
234
|
+
* Firecracker, and container backends on a local runtime socket. False for a
|
|
235
|
+
* remote container runtime or cloud backend. Drives the dashboard
|
|
236
|
+
* Infrastructure page's spawning-host display.
|
|
286
237
|
*/
|
|
287
238
|
readonly spawnsOnLocalHost: boolean;
|
|
288
|
-
/**
|
|
239
|
+
/** Includes agents still spawning. */
|
|
289
240
|
getActiveCount(): number;
|
|
290
241
|
/**
|
|
291
242
|
* Spawn an agent for the given label set.
|
|
@@ -293,13 +244,11 @@ export interface ScalerBackend {
|
|
|
293
244
|
* @param agentId - Pre-generated agent ID for WS registration correlation
|
|
294
245
|
* @param orchestratorUrl - URL for the agent to connect back to
|
|
295
246
|
* @param onEvent - Lifecycle event callback
|
|
296
|
-
* @param effectiveLimits -
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
* (omitted for unbound spawns, e.g. warm pool). Backends surface it on
|
|
302
|
-
* the provisioned resource for operator inspection.
|
|
247
|
+
* @param effectiveLimits - Kernel-side limits `ScalerManager` resolved from the
|
|
248
|
+
* job / label-set / scaler default chain. When omitted (or both fields
|
|
249
|
+
* zero), the backend falls back to its label-set / default limits.
|
|
250
|
+
* @param spawnContext - The bound job/run (omitted for unbound spawns, e.g.
|
|
251
|
+
* warm pool), surfaced on the provisioned resource for operators.
|
|
303
252
|
* @returns The managed agent tracking object
|
|
304
253
|
* @throws If the label set is not supported by this backend
|
|
305
254
|
* @throws DeterministicSpawnError, after emitting `scaler.failed`, when the
|
|
@@ -308,111 +257,87 @@ export interface ScalerBackend {
|
|
|
308
257
|
*/
|
|
309
258
|
spawn(labelSet: string[], agentId: string, orchestratorUrl: string, onEvent?: ScalerEventCallback, effectiveLimits?: EffectiveLimits, spawnContext?: SpawnContext,
|
|
310
259
|
/**
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
* instead of pinning the per-backend spawn-semaphore slot.
|
|
260
|
+
* From the ScalerManager spawn-timeout wrapper. Backends thread it into
|
|
261
|
+
* long-running provisioning I/O (container-runtime requests, HTTP calls) so
|
|
262
|
+
* a hung provision cancels instead of pinning the spawn-semaphore slot.
|
|
315
263
|
*/
|
|
316
264
|
signal?: AbortSignal): Promise<ManagedAgent>;
|
|
317
265
|
/**
|
|
318
|
-
* Destroy a specific managed agent.
|
|
319
266
|
* Docker: docker rm -f; Bare-metal: SIGTERM -> SIGKILL.
|
|
320
267
|
*
|
|
321
|
-
* @param context -
|
|
322
|
-
* `
|
|
323
|
-
*
|
|
324
|
-
*
|
|
268
|
+
* @param context - The event backend carries `reason` onto its
|
|
269
|
+
* `kici.scaler.scale-down` event, so a teardown workflow (and the timeline)
|
|
270
|
+
* tells an idle reap from a job-complete teardown or a spawn timeout. Local
|
|
271
|
+
* backends ignore it.
|
|
325
272
|
*/
|
|
326
273
|
destroy(managedId: string, context?: ScalerDestroyContext): Promise<void>;
|
|
327
274
|
/**
|
|
328
|
-
*
|
|
329
|
-
*
|
|
330
|
-
*
|
|
331
|
-
*
|
|
332
|
-
* stops after (an agent whose disconnect triggers `destroy`).
|
|
275
|
+
* Called by ScalerManager when a spawn it started registers locally. A backend
|
|
276
|
+
* implements it when it must tell a compute that stops before registering (a
|
|
277
|
+
* failed spawn it tears down itself) from one that stops after (an agent whose
|
|
278
|
+
* disconnect triggers `destroy`).
|
|
333
279
|
*/
|
|
334
280
|
markRegistered?(managedId: string): void;
|
|
335
281
|
/**
|
|
336
282
|
* Reclaim the HOST-LOCAL compute of a managed agent this backend no longer
|
|
337
283
|
* tracks in memory, from whatever durable host state survived the loss.
|
|
338
284
|
*
|
|
339
|
-
* `destroy`
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
* artifacts for `managedId` and reclaims them.
|
|
285
|
+
* `destroy` reads the in-memory agent map, so after a restart it silently
|
|
286
|
+
* no-ops while the VM or host process keeps running. This hook reads the
|
|
287
|
+
* backend's own on-host artifacts for `managedId` instead.
|
|
343
288
|
*
|
|
344
|
-
*
|
|
289
|
+
* Every implementation MUST hold:
|
|
345
290
|
*
|
|
346
291
|
* - **Host-local evidence only.** Reclaim nothing unless an artifact for
|
|
347
|
-
* exactly this `managedId` exists on THIS host
|
|
348
|
-
*
|
|
349
|
-
* and reap a peer's compute.
|
|
292
|
+
* exactly this `managedId` exists on THIS host, the proof this backend
|
|
293
|
+
* spawned it. A coordinator must never reap a peer's compute.
|
|
350
294
|
* - **Caller supplies the orphan verdict.** The hook force-reclaims a *live*
|
|
351
|
-
* instance, which
|
|
352
|
-
*
|
|
353
|
-
* unowned.
|
|
295
|
+
* instance, which the liveness-driven orphan sweeps refuse to do. Call it
|
|
296
|
+
* only where the agent is known to be unowned.
|
|
354
297
|
*
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
361
|
-
* a restart loses it and the hook reports nothing to reclaim.
|
|
298
|
+
* A backend whose compute is not host-local (the event backend's cloud
|
|
299
|
+
* instance) cannot implement it. An implementation may cover only the part
|
|
300
|
+
* of its backend that keeps durable state: on bare metal a container-mode
|
|
301
|
+
* agent carries `kici-agent-id` / `kici-scaler-name` host labels and is
|
|
302
|
+
* reclaimed, while a plain-process agent's PID lives only in memory, so the
|
|
303
|
+
* hook reports nothing to reclaim.
|
|
362
304
|
*
|
|
363
305
|
* @returns `true` when host-local state for `managedId` was found and
|
|
364
306
|
* reclaimed, `false` when there was nothing here to reclaim.
|
|
365
307
|
*/
|
|
366
308
|
reapUnowned?(managedId: string): Promise<boolean>;
|
|
367
309
|
/**
|
|
368
|
-
*
|
|
369
|
-
*
|
|
370
|
-
* (serial console + VMM logs) and does not return a LogCapture here).
|
|
310
|
+
* Container and bare-metal backends capture stdout. Firecracker forwards logs
|
|
311
|
+
* itself by tailing files (serial console + VMM logs) and returns none.
|
|
371
312
|
*/
|
|
372
313
|
getLogCapture?(managedId: string): LogCapture | undefined;
|
|
373
|
-
/**
|
|
314
|
+
/** Called during graceful shutdown. */
|
|
374
315
|
shutdownAll(): Promise<void>;
|
|
375
|
-
/**
|
|
376
|
-
* Return scaler-specific configuration metadata for a managed agent.
|
|
377
|
-
* Used by the orchestrator to enrich job.context before forwarding to Platform.
|
|
378
|
-
*/
|
|
316
|
+
/** Scaler metadata the orchestrator adds to job.context before forwarding to Platform. */
|
|
379
317
|
getScalerContext?(agentId: string): Record<string, unknown> | undefined;
|
|
380
318
|
/**
|
|
381
|
-
* Provision or heal
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
* omit it. May throw; the manager catches per-backend and degrades that
|
|
385
|
-
* scaler rather than aborting orchestrator startup.
|
|
319
|
+
* Provision or heal host prerequisites (Firecracker's bridge), once at
|
|
320
|
+
* startup. May throw: the manager then degrades that scaler rather than
|
|
321
|
+
* aborting orchestrator startup.
|
|
386
322
|
*/
|
|
387
323
|
ensureHostReady?(): Promise<void>;
|
|
388
324
|
/**
|
|
389
|
-
*
|
|
390
|
-
*
|
|
391
|
-
*
|
|
392
|
-
* is the whole new config entry, for a backend that reads more than its
|
|
393
|
-
* label sets off it. On an invalid result NOTHING is applied.
|
|
325
|
+
* Called on config reload / SIGHUP. `opts.maxAgents` replaces the population
|
|
326
|
+
* cap; `opts.entry` is the whole new entry, for a backend that reads more than
|
|
327
|
+
* its label sets. On an invalid result NOTHING is applied.
|
|
394
328
|
*/
|
|
395
329
|
reload(labelSets: LabelSetConfig[], opts?: {
|
|
396
330
|
maxAgents?: number;
|
|
397
331
|
entry?: ScalerEntry;
|
|
398
332
|
}): ValidationResult;
|
|
399
333
|
/**
|
|
400
|
-
* The
|
|
401
|
-
*
|
|
402
|
-
*
|
|
403
|
-
* entry (container, bare-metal, Firecracker all read only their label sets).
|
|
334
|
+
* The entry the reload rollback restores with `labelSets` and `maxAgents`.
|
|
335
|
+
* Undefined for backends that read only their label sets (container,
|
|
336
|
+
* bare-metal, Firecracker).
|
|
404
337
|
*/
|
|
405
338
|
readonly currentEntry?: ScalerEntry;
|
|
406
339
|
}
|
|
407
|
-
/**
|
|
408
|
-
* Parsed and validated scaler configuration from YAML.
|
|
409
|
-
* Loaded at startup and reloaded on SIGHUP.
|
|
410
|
-
*/
|
|
411
|
-
/**
|
|
412
|
-
* Firecracker network configuration.
|
|
413
|
-
* Defines the CIDR pool, bridge name, and gateway for VM networking.
|
|
414
|
-
* Global across all Firecracker scalers on the orchestrator.
|
|
415
|
-
*/
|
|
340
|
+
/** VM networking (CIDR pool, bridge, gateway), shared by every Firecracker scaler. */
|
|
416
341
|
export interface FirecrackerNetworkConfig {
|
|
417
342
|
/** CIDR range for VM IP allocation @default '10.0.0.0/24' */
|
|
418
343
|
cidr?: string;
|
|
@@ -436,57 +361,45 @@ export interface FirecrackerNetworkConfig {
|
|
|
436
361
|
* Loaded at startup and reloaded on SIGHUP.
|
|
437
362
|
*/
|
|
438
363
|
export interface ScalerConfig {
|
|
439
|
-
/**
|
|
364
|
+
/** Currently always 1. */
|
|
440
365
|
version: 1;
|
|
441
|
-
/**
|
|
366
|
+
/** Across all backends. */
|
|
442
367
|
globalMaxAgents: number;
|
|
443
|
-
/** Global defaults applied to all label sets */
|
|
444
368
|
defaults?: {
|
|
445
369
|
/**
|
|
446
|
-
*
|
|
447
|
-
*
|
|
370
|
+
* Applied when neither the job nor the label set declares resources. The
|
|
371
|
+
* internal representation is always nested.
|
|
448
372
|
*/
|
|
449
373
|
resources?: ResourceRequest;
|
|
450
374
|
};
|
|
451
|
-
/**
|
|
452
|
-
* Cap on the total summed `requests` across every agent this orchestrator
|
|
453
|
-
* has active (across all scalers). Counterpart to `globalMaxAgents` for
|
|
454
|
-
* resource-based pressure.
|
|
455
|
-
*/
|
|
375
|
+
/** The resource counterpart of `globalMaxAgents`, across every scaler. */
|
|
456
376
|
globalResourceCap?: ResourceCap;
|
|
457
377
|
/**
|
|
458
|
-
*
|
|
459
|
-
*
|
|
460
|
-
*
|
|
378
|
+
* Named pools shared by scaler entries on one host. The file-backed ledger
|
|
379
|
+
* enforces each cap, so orchestrators on one machine cannot jointly
|
|
380
|
+
* oversubscribe it.
|
|
461
381
|
*/
|
|
462
382
|
machinePools?: MachinePoolConfig[];
|
|
463
|
-
/** Individual scaler backend configurations */
|
|
464
383
|
scalers: ScalerEntry[];
|
|
465
|
-
/**
|
|
384
|
+
/** Shared across all Firecracker scalers. */
|
|
466
385
|
firecracker?: FirecrackerNetworkConfig;
|
|
467
386
|
}
|
|
468
|
-
/**
|
|
469
|
-
* Configuration for a single scaler backend entry.
|
|
470
|
-
*/
|
|
471
387
|
export interface ScalerEntry {
|
|
472
|
-
/** Human-readable name for this scaler */
|
|
473
388
|
name: string;
|
|
474
|
-
/** Backend type */
|
|
475
389
|
type: Exclude<ScalerBackendType, 'kubernetes'>;
|
|
476
|
-
/**
|
|
390
|
+
/** Population cap. */
|
|
477
391
|
maxAgents: number;
|
|
478
392
|
/**
|
|
479
|
-
*
|
|
480
|
-
*
|
|
481
|
-
*
|
|
482
|
-
* Defaults to `DEFAULT_MAX_CONCURRENT_SPAWNS` at config-load.
|
|
393
|
+
* Provisioning-rate throttle on concurrent `backend.spawn` calls, orthogonal
|
|
394
|
+
* to `maxAgents`: excess in-cap spawns queue instead of storming the socket.
|
|
395
|
+
* Defaults to `DEFAULT_MAX_CONCURRENT_SPAWNS` at config load.
|
|
483
396
|
*/
|
|
484
397
|
maxConcurrentSpawns: number;
|
|
485
398
|
/** Label-set to image/binary mappings */
|
|
486
399
|
labelSets: LabelSetConfig[];
|
|
487
400
|
/** Container runtime host (e.g. 'tcp://192.168.1.10:2376'). Works for both Docker and Podman remote. */
|
|
488
401
|
host?: string;
|
|
489
|
-
/**
|
|
402
|
+
/** Overrides socket auto-detection, for non-standard socket locations. */
|
|
490
403
|
socketPath?: string;
|
|
491
404
|
/** Container runtime type. 'auto' probes known socket paths. Default: 'auto' */
|
|
492
405
|
runtime?: 'docker' | 'podman' | 'auto';
|
|
@@ -498,29 +411,26 @@ export interface ScalerEntry {
|
|
|
498
411
|
* each Firecracker guest's /etc/hosts.
|
|
499
412
|
*/
|
|
500
413
|
extraHosts?: string[];
|
|
501
|
-
/**
|
|
414
|
+
/** Enables nftables-based network isolation for the container backend (default: true). Set to false when nft is unavailable. */
|
|
502
415
|
networkIsolation?: boolean;
|
|
503
416
|
/** Warm pool configuration */
|
|
504
417
|
warmPool?: WarmPoolConfig;
|
|
505
418
|
/**
|
|
506
|
-
* Labels a job MUST declare in `runsOn` to
|
|
507
|
-
*
|
|
508
|
-
*
|
|
509
|
-
* even when its other labels are a subset of one of the scaler's
|
|
510
|
-
* `labelSets`. Default: `[]` (no gating).
|
|
419
|
+
* Labels a job MUST declare in `runsOn` to run on this scaler, like
|
|
420
|
+
* Kubernetes taints: a job missing any of them is blocked even when its other
|
|
421
|
+
* labels are a subset of a `labelSets` entry. Default: `[]` (no gating).
|
|
511
422
|
*/
|
|
512
423
|
mandatoryLabels?: string[];
|
|
513
424
|
/**
|
|
514
|
-
*
|
|
515
|
-
* `kici:
|
|
516
|
-
*
|
|
517
|
-
* derive the platform from the host OS/arch, and container / firecracker
|
|
425
|
+
* The pool's platform. When set, the auto-injected `kici:os:*` /
|
|
426
|
+
* `kici:arch:*` labels AND the mandatory platform taint derive from it. When
|
|
427
|
+
* omitted, bare-metal pools use the host OS/arch and container / firecracker
|
|
518
428
|
* pools default to linux.
|
|
519
429
|
*/
|
|
520
430
|
readonly platform?: ScalerPlatform;
|
|
521
431
|
/**
|
|
522
|
-
* Agent roles this scaler handles
|
|
523
|
-
* - undefined
|
|
432
|
+
* Agent roles this scaler handles, per entry, not per label set.
|
|
433
|
+
* - undefined: all job types, including build and init (backward compatible)
|
|
524
434
|
* - []: execution jobs only, no build/init
|
|
525
435
|
* - ['builder']: handles build jobs + execution
|
|
526
436
|
* - ['init-runner']: handles init jobs + execution
|
|
@@ -528,16 +438,9 @@ export interface ScalerEntry {
|
|
|
528
438
|
* - ['all']: same as undefined
|
|
529
439
|
*/
|
|
530
440
|
roles?: string[];
|
|
531
|
-
/**
|
|
532
|
-
* Cap on summed `requests` (cpus + memory) across active agents in this
|
|
533
|
-
* scaler. Stacks with `maxAgents`; both must allow the spawn.
|
|
534
|
-
*/
|
|
441
|
+
/** Cap on summed `requests` across this scaler's agents; stacks with `maxAgents`. */
|
|
535
442
|
resourceCap?: ResourceCap;
|
|
536
|
-
/**
|
|
537
|
-
* Reference to a named machine pool defined at top level. Scalers that
|
|
538
|
-
* reference the same pool name on the same host share a file-backed ledger
|
|
539
|
-
* so multiple orchestrators can't collectively exceed the pool cap.
|
|
540
|
-
*/
|
|
443
|
+
/** Name of a top-level machine pool; see `ScalerConfig.machinePools`. */
|
|
541
444
|
machinePool?: string;
|
|
542
445
|
/**
|
|
543
446
|
* Bare-metal opt-in: when true, wrap the spawned binary in a transient
|
|
@@ -570,13 +473,12 @@ export interface ScalerEntry {
|
|
|
570
473
|
*/
|
|
571
474
|
requireSudo?: boolean;
|
|
572
475
|
/**
|
|
573
|
-
* Workflow refs (e.g. `org/infra`) the
|
|
574
|
-
*
|
|
575
|
-
* subscribe with `kiciEvent()`. Required for a `type: event` scaler.
|
|
476
|
+
* Workflow refs (e.g. `org/infra`) that receive the scale-up / scale-down
|
|
477
|
+
* events, subscribed with `kiciEvent()`. Required for a `type: event` scaler.
|
|
576
478
|
*/
|
|
577
479
|
provisioningTargets?: string[];
|
|
578
480
|
/**
|
|
579
|
-
* Seconds a pending provisioning claim code stays valid
|
|
481
|
+
* Seconds a pending provisioning claim code stays valid.
|
|
580
482
|
* @default 300
|
|
581
483
|
*/
|
|
582
484
|
claimTtlSeconds?: number;
|
|
@@ -586,23 +488,17 @@ export interface ScalerEntry {
|
|
|
586
488
|
*/
|
|
587
489
|
agentTokenTtlSeconds?: number;
|
|
588
490
|
}
|
|
589
|
-
/**
|
|
590
|
-
* Warm pool configuration for pre-provisioned idle agents.
|
|
591
|
-
*/
|
|
491
|
+
/** Pre-provisioned idle agents. */
|
|
592
492
|
export interface WarmPoolConfig {
|
|
593
|
-
/** Whether the warm pool is enabled */
|
|
594
493
|
enabled: boolean;
|
|
595
|
-
/**
|
|
494
|
+
/** Idle agents to maintain. */
|
|
596
495
|
size: number;
|
|
597
496
|
/** Seconds before an idle warm-pool agent is destroyed
|
|
598
497
|
* @default 300
|
|
599
498
|
*/
|
|
600
499
|
idleTimeoutSeconds: number;
|
|
601
500
|
}
|
|
602
|
-
/**
|
|
603
|
-
* A single scaler lifecycle event.
|
|
604
|
-
* Each backend emits these at key provisioning milestones.
|
|
605
|
-
*/
|
|
501
|
+
/** Emitted by each backend at key provisioning milestones. */
|
|
606
502
|
export interface ScalerEvent {
|
|
607
503
|
agentId: string;
|
|
608
504
|
eventType: z.infer<typeof ScalerEventType>;
|
|
@@ -610,23 +506,14 @@ export interface ScalerEvent {
|
|
|
610
506
|
detail: string;
|
|
611
507
|
timestampMs: number;
|
|
612
508
|
}
|
|
613
|
-
/**
|
|
614
|
-
* Callback type for scaler event emission.
|
|
615
|
-
* Passed from ScalerManager to each backend during spawn().
|
|
616
|
-
*/
|
|
509
|
+
/** Passed from ScalerManager to each backend's `spawn()`. */
|
|
617
510
|
export type ScalerEventCallback = (event: ScalerEvent) => void;
|
|
618
|
-
/**
|
|
619
|
-
* Interface for capturing agent log output from scaler backends.
|
|
620
|
-
* Each backend implements this to expose the spawned agent's stdout/stderr
|
|
621
|
-
* as an async iterable of individual log lines.
|
|
622
|
-
*/
|
|
511
|
+
/** A spawned agent's stdout/stderr, as individual log lines. */
|
|
623
512
|
export interface LogCapture {
|
|
624
|
-
/** Async iterable yielding individual log lines from the agent process. */
|
|
625
513
|
lines(): AsyncIterable<string>;
|
|
626
514
|
/**
|
|
627
|
-
*
|
|
628
|
-
*
|
|
629
|
-
* spawn dies before WS registration. Empty string when nothing captured.
|
|
515
|
+
* The bounded ring buffer of recent lines, oldest→newest, or an empty string.
|
|
516
|
+
* Enriches a `scaler.failed` event when a spawn dies before WS registration.
|
|
630
517
|
*/
|
|
631
518
|
tail(): string;
|
|
632
519
|
/** Stop capturing and destroy underlying streams. Safe to call multiple times. */
|