@kici-dev/orchestrator 0.16.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 +39 -45
- 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 +33 -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 +7 -7
- 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 +4553 -6556
- 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 +251 -486
- 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 +21 -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 +21 -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 +19 -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 +45 -0
- 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/test-direct.d.ts +46 -0
- package/dist/routes/uploads.d.ts +14 -19
- 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 +5 -7
- package/dist/secrets/routing-key-scope.d.ts +1 -0
- 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 +1 -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 +49004 -53782
- 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 +9342 -13077
- 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 +26 -53
- package/dist/storage/sign-url.d.ts +7 -22
- package/dist/storage/types.d.ts +46 -72
- 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 +46 -63
- 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/container-spawn.d.ts +0 -28
package/dist/scaler/config.d.ts
CHANGED
|
@@ -1,33 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Handles:
|
|
5
|
-
* - Main YAML config file parsing
|
|
6
|
-
* - scalers.d/ directory merging (alphabetically sorted)
|
|
7
|
-
* - Zod schema validation with type-specific refinements
|
|
8
|
-
* - Memory string parsing (e.g., "2g" -> bytes)
|
|
2
|
+
* Scaler config loading: the main YAML file plus `scalers.d/` (merged in
|
|
3
|
+
* alphabetical order), validated by Zod with type-specific refinements.
|
|
9
4
|
*/
|
|
10
5
|
import { z } from 'zod';
|
|
11
6
|
import type { ScalerConfig } from './types.js';
|
|
12
7
|
/**
|
|
13
|
-
* Default
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* container socket / registry.
|
|
8
|
+
* Default per-backend `maxConcurrentSpawns`. Bounds the provisioning rate (image
|
|
9
|
+
* pull + create + start) so a burst of queued jobs cannot storm the container
|
|
10
|
+
* socket / registry.
|
|
17
11
|
*/
|
|
18
12
|
export declare const DEFAULT_MAX_CONCURRENT_SPAWNS = 8;
|
|
19
13
|
/**
|
|
20
|
-
*
|
|
21
|
-
* Controls RFC1918 and internet access for spawned agents.
|
|
14
|
+
* A label set's RFC1918 and internet access for spawned agents.
|
|
22
15
|
*/
|
|
23
16
|
export declare const networkPolicySchema: z.ZodOptional<z.ZodObject<{
|
|
24
17
|
allowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
25
18
|
denyAll: z.ZodDefault<z.ZodBoolean>;
|
|
26
19
|
hostAccess: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
20
|
}, z.core.$strip>>;
|
|
28
|
-
/**
|
|
29
|
-
* Zod schema for a label-set configuration entry.
|
|
30
|
-
*/
|
|
31
21
|
export declare const labelSetConfigSchema: z.ZodObject<{
|
|
32
22
|
labels: z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<import("@kici-dev/engine").CanonicalLabel[], string[]>>;
|
|
33
23
|
image: z.ZodOptional<z.ZodString>;
|
|
@@ -66,7 +56,6 @@ export declare const labelSetConfigSchema: z.ZodObject<{
|
|
|
66
56
|
overlayDriveSizeMib: z.ZodOptional<z.ZodNumber>;
|
|
67
57
|
}, z.core.$strict>;
|
|
68
58
|
/**
|
|
69
|
-
* Zod schema for Firecracker network configuration.
|
|
70
59
|
* Global across all Firecracker scalers on the orchestrator.
|
|
71
60
|
*/
|
|
72
61
|
export declare const firecrackerNetworkSchema: z.ZodObject<{
|
|
@@ -77,10 +66,6 @@ export declare const firecrackerNetworkSchema: z.ZodObject<{
|
|
|
77
66
|
table: z.ZodDefault<z.ZodString>;
|
|
78
67
|
autoProvisionHost: z.ZodDefault<z.ZodBoolean>;
|
|
79
68
|
}, z.core.$strip>;
|
|
80
|
-
/**
|
|
81
|
-
* Zod schema for the complete scaler configuration file.
|
|
82
|
-
* Validates version, global limits, defaults, and scaler entries.
|
|
83
|
-
*/
|
|
84
69
|
export declare const scalerFileSchema: z.ZodObject<{
|
|
85
70
|
version: z.ZodLiteral<1>;
|
|
86
71
|
globalMaxAgents: z.ZodDefault<z.ZodNumber>;
|
|
@@ -233,28 +218,16 @@ export declare const scalerFileSchema: z.ZodObject<{
|
|
|
233
218
|
}, z.core.$strip>>;
|
|
234
219
|
}, z.core.$strip>;
|
|
235
220
|
/**
|
|
236
|
-
* Parse a memory string with
|
|
237
|
-
*
|
|
238
|
-
* Supported formats:
|
|
239
|
-
* - "512m" or "512M" -> 536870912 (512 * 1024^2)
|
|
240
|
-
* - "2g" or "2G" -> 2147483648 (2 * 1024^3)
|
|
241
|
-
* - "1024k" or "1024K" -> 1048576 (1024 * 1024)
|
|
221
|
+
* Parse a memory string to bytes, with binary units: "512m" -> 512 * 1024^2,
|
|
222
|
+
* "2G" -> 2 * 1024^3, "1024k" -> 1024 * 1024 (suffix case-insensitive).
|
|
242
223
|
*
|
|
243
224
|
* @throws Error if the format is invalid
|
|
244
225
|
*/
|
|
245
226
|
export declare function parseMemoryString(memory: string): number;
|
|
246
227
|
/**
|
|
247
|
-
* Load
|
|
248
|
-
*
|
|
249
|
-
* 1. Reads the main config file
|
|
250
|
-
* 2. If scalersDirPath provided, reads all *.yaml and *.yml files
|
|
251
|
-
* from the directory (sorted alphabetically) and merges their
|
|
252
|
-
* scalers arrays into the main config
|
|
253
|
-
* 3. Validates the merged config through Zod schema
|
|
228
|
+
* Load the main YAML config, append the `scalers` arrays of every `*.yaml` /
|
|
229
|
+
* `*.yml` in `scalersDirPath` (alphabetical order), and validate the result.
|
|
254
230
|
*
|
|
255
|
-
* @param configPath - Path to the main scaler YAML config file
|
|
256
|
-
* @param scalersDirPath - Optional path to scalers.d/ directory for additional scaler definitions
|
|
257
|
-
* @returns Validated ScalerConfig
|
|
258
231
|
* @throws ZodError if validation fails
|
|
259
232
|
*/
|
|
260
233
|
export declare function loadScalerConfig(configPath: string, scalersDirPath?: string): Promise<ScalerConfig>;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Container scaler backend
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Supports auto-detection of container runtime socket.
|
|
6
|
-
* Handles full container lifecycle: pull, create, start, stop, remove.
|
|
7
|
-
* Supports container socket sharing, resource limits, and orphan cleanup.
|
|
2
|
+
* Container scaler backend: ephemeral agent containers on Docker or Podman via
|
|
3
|
+
* dockerode, with runtime-socket auto-detection, socket sharing, resource
|
|
4
|
+
* limits and orphan cleanup.
|
|
8
5
|
*/
|
|
9
6
|
import Docker from 'dockerode';
|
|
10
7
|
import { type ToolRequirement } from '@kici-dev/shared';
|
|
@@ -14,9 +11,6 @@ import type { ScalerBackend, ScalerDestroyContext, ManagedAgent, LabelSetConfig,
|
|
|
14
11
|
export declare const ISOLATED_NETWORK_NAME = "kici-agent-net";
|
|
15
12
|
/** Gateway IP for the isolated agent network (host-side). */
|
|
16
13
|
export declare const ISOLATED_NETWORK_GATEWAY = "172.30.0.1";
|
|
17
|
-
/**
|
|
18
|
-
* Result of runtime detection.
|
|
19
|
-
*/
|
|
20
14
|
export interface DetectedRuntime {
|
|
21
15
|
socketPath: string;
|
|
22
16
|
runtime: 'docker' | 'podman';
|
|
@@ -41,9 +35,12 @@ export interface ContainerScalerBackendOptions {
|
|
|
41
35
|
runtime?: 'docker' | 'podman' | 'auto';
|
|
42
36
|
/** Default resource limits applied when label set has none */
|
|
43
37
|
defaultResources?: ResourceRequest;
|
|
44
|
-
/** Extra host:IP mappings
|
|
38
|
+
/** Extra host:IP mappings for spawned containers (e.g. ["registry.local:host-gateway"]). */
|
|
45
39
|
extraHosts?: string[];
|
|
46
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Enables nftables-based network isolation (default: true). Set to false when nft is
|
|
42
|
+
* unavailable (e.g. rootless containers without NET_ADMIN).
|
|
43
|
+
*/
|
|
47
44
|
networkIsolation?: boolean;
|
|
48
45
|
/**
|
|
49
46
|
* Extra `hostAccess` entries the orchestrator itself directed agents at —
|
|
@@ -51,7 +48,7 @@ export interface ContainerScalerBackendOptions {
|
|
|
51
48
|
* narrowing does not cut off a host-local object store.
|
|
52
49
|
*/
|
|
53
50
|
hostServices?: string[];
|
|
54
|
-
/** Token store for
|
|
51
|
+
/** Token store for ephemeral agent auth tokens; when undefined, no token is injected. */
|
|
55
52
|
tokenStore?: AgentTokenStore;
|
|
56
53
|
/** TTL for ephemeral agent tokens in ms. Default: 1 hour. */
|
|
57
54
|
tokenTtlMs?: number;
|
|
@@ -138,13 +135,10 @@ export declare class ContainerScalerBackend implements ScalerBackend {
|
|
|
138
135
|
/**
|
|
139
136
|
* Declare required tools for a container scaler entry.
|
|
140
137
|
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* instead of the first job hanging. When a socketPath or remote host is
|
|
146
|
-
* configured the binary need not be on PATH (the runtime may be remote), so
|
|
147
|
-
* reachability is validated later in create().
|
|
138
|
+
* Auto-detect (no socketPath / remote host) needs docker OR podman on PATH;
|
|
139
|
+
* declaring it lets the startup tool-validation gate fail fast instead of the
|
|
140
|
+
* first job hanging. With a socketPath or remote host the runtime may be
|
|
141
|
+
* remote, so create() validates reachability instead.
|
|
148
142
|
*/
|
|
149
143
|
static getRequiredTools(entry: ScalerEntry): ToolRequirement[];
|
|
150
144
|
/**
|
|
@@ -179,9 +173,7 @@ export declare class ContainerScalerBackend implements ScalerBackend {
|
|
|
179
173
|
spawn(labelSet: string[], agentId: string, orchestratorUrl: string, onEvent?: ScalerEventCallback, effectiveLimits?: EffectiveLimits, spawnContext?: SpawnContext, signal?: AbortSignal): Promise<ManagedAgent>;
|
|
180
174
|
getScalerContext(agentId: string): Record<string, unknown> | undefined;
|
|
181
175
|
destroy(managedId: string, _context?: ScalerDestroyContext): Promise<void>;
|
|
182
|
-
/**
|
|
183
|
-
* Get the LogCapture for a managed agent (used by ScalerManager for log forwarding).
|
|
184
|
-
*/
|
|
176
|
+
/** Used by ScalerManager for log forwarding. */
|
|
185
177
|
getLogCapture(managedId: string): LogCapture | undefined;
|
|
186
178
|
shutdownAll(): Promise<void>;
|
|
187
179
|
reload(labelSets: LabelSetConfig[], opts?: {
|
|
@@ -191,14 +183,11 @@ export declare class ContainerScalerBackend implements ScalerBackend {
|
|
|
191
183
|
/**
|
|
192
184
|
* Clean up this scaler's orphaned containers and stale isolation rules.
|
|
193
185
|
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
* every boot, and adding a second container scaler removed the first one's
|
|
200
|
-
* agents mid-job — every in-flight job failing as "agent disconnected" on a
|
|
201
|
-
* healthy system.
|
|
186
|
+
* Runs at orchestrator boot, at worker-peer start, on a live config reload
|
|
187
|
+
* that adds a scaler, and from `kici-admin scaler reap-orphans`. Without the
|
|
188
|
+
* filters below, two orchestrators sharing one docker host kill each other's
|
|
189
|
+
* running agents on every boot, and adding a second container scaler removes
|
|
190
|
+
* the first one's agents mid-job ("agent disconnected" on a healthy system).
|
|
202
191
|
*
|
|
203
192
|
* A container is removed only when all of these hold:
|
|
204
193
|
* - it carries this scaler's own `kici-scaler-name`, so a backend can only
|
|
@@ -216,11 +205,9 @@ export declare class ContainerScalerBackend implements ScalerBackend {
|
|
|
216
205
|
/**
|
|
217
206
|
* Remove containers this backend spawned for one agent id.
|
|
218
207
|
*
|
|
219
|
-
* Implements the optional `ScalerBackend.reapUnowned` hook
|
|
220
|
-
*
|
|
221
|
-
*
|
|
222
|
-
* container on the host, which is exactly the breadth that killed other
|
|
223
|
-
* orchestrators' live agents.
|
|
208
|
+
* Implements the optional `ScalerBackend.reapUnowned` hook: it reclaims a
|
|
209
|
+
* container whose registration the orchestrator refused, so `cleanupOrphans`
|
|
210
|
+
* need not reap host-wide and kill other orchestrators' live agents.
|
|
224
211
|
*
|
|
225
212
|
* @returns true when a container was found and removed
|
|
226
213
|
*/
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The `HostConfig` every KiCI agent container is created with.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* bare-metal backend's container mode —
|
|
6
|
-
* postures
|
|
7
|
-
* applied none and dropped the limits the operator configured on the floor.
|
|
8
|
-
* One builder is what keeps them from diverging again the next time either is
|
|
9
|
-
* touched.
|
|
4
|
+
* Shared by both agent-container spawners — `ContainerScalerBackend` and the
|
|
5
|
+
* bare-metal backend's container mode — so they cannot diverge into two
|
|
6
|
+
* postures (one silently dropping the operator's resource limits).
|
|
10
7
|
*/
|
|
11
8
|
import type Docker from 'dockerode';
|
|
12
9
|
import type { EffectiveLimits } from './types.js';
|
|
@@ -25,18 +22,15 @@ export declare const AGENT_CONTAINER_PIDS_LIMIT = 4096;
|
|
|
25
22
|
* Both spawn paths set `KICI_EXECUTION_MODE=bare-metal`, and bare-metal
|
|
26
23
|
* container mode also sets `KICI_JOB_IMAGE_AGENT=1` — so unless the job
|
|
27
24
|
* declares its own image, the workflow's steps run as host processes INSIDE
|
|
28
|
-
* this container.
|
|
29
|
-
* `CapDrop: ['ALL']` here would therefore land on customer build steps:
|
|
25
|
+
* this container. `CapDrop: ['ALL']` here would land on customer build steps:
|
|
30
26
|
* `apt-get` and `dpkg` need CHOWN, DAC_OVERRIDE, FOWNER, SETUID and SETGID,
|
|
31
|
-
* and `no-new-privileges` breaks `sudo` and every setuid binary.
|
|
32
|
-
* opt-out,
|
|
33
|
-
* scalers.
|
|
27
|
+
* and `no-new-privileges` breaks `sudo` and every setuid binary. With no
|
|
28
|
+
* opt-out, the break would be silent and total for `type: container` scalers.
|
|
34
29
|
*
|
|
35
|
-
* The hardening
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* boundary that confines customer code; this one hosts it.
|
|
30
|
+
* The promised hardening lives one boundary in: the agent applies
|
|
31
|
+
* `CapDrop: ['ALL']`, `no-new-privileges` and a tighter `PidsLimit` to each
|
|
32
|
+
* nested JOB container (`packages/agent/src/execution/sandbox/container-hardening.ts`).
|
|
33
|
+
* That boundary confines customer code; this one hosts it.
|
|
40
34
|
*
|
|
41
35
|
* `PidsLimit` is the exception and stays: a fork-bomb ceiling costs a build
|
|
42
36
|
* nothing at 4096.
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Label for hosts that can run containers.
|
|
3
3
|
*
|
|
4
|
-
* The agent reports it
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* container jobs that had been running fine, because the probe and the job ran
|
|
10
|
-
* in different places.
|
|
4
|
+
* The agent reports it at registration when it finds a Docker socket (and
|
|
5
|
+
* `kici:runtime:podman` for a Podman one): a container runtime is the agent
|
|
6
|
+
* machine's fact. Probing the orchestrator's own filesystem was tried and
|
|
7
|
+
* stranded working container jobs, because the probe and the job ran in
|
|
8
|
+
* different places.
|
|
11
9
|
*
|
|
12
|
-
* Routing
|
|
13
|
-
*
|
|
14
|
-
* `kici:runtime:
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* run fails on it with a message that names the missing runtime.
|
|
10
|
+
* Routing (`canAgentRunJob`): a `container:` job reaches an agent only when that
|
|
11
|
+
* agent was started for it, or reports `kici:runtime:docker` or
|
|
12
|
+
* `kici:runtime:podman`. An older agent reports no runtime labels, so its
|
|
13
|
+
* silence proves nothing; a job it cannot run fails with a message that names
|
|
14
|
+
* the missing runtime.
|
|
18
15
|
*
|
|
19
16
|
* An operator may still put the label on a pool's label sets and on a container
|
|
20
17
|
* job's `runsOn` to steer container work at hosts with a runtime.
|
|
@@ -18,9 +18,8 @@ interface DiskGuardOpts {
|
|
|
18
18
|
reapFn?: (cfg: ScalerConfig) => Promise<ReapCounts>;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* is no FC scaler or free space is already above threshold.
|
|
21
|
+
* The caller decides whether to proceed or exit with backoff. No-ops
|
|
22
|
+
* (recovered=true) when there is no FC scaler or free space is above threshold.
|
|
24
23
|
*/
|
|
25
24
|
export declare function runDiskGuard(opts: DiskGuardOpts): Promise<DiskGuardResult>;
|
|
26
25
|
export {};
|
|
@@ -1,33 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Event scaler backend — workflow-driven autoscaling.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* and
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* instance's agent registers back with the scaler-chosen `agentId` and the
|
|
10
|
-
* existing bound-job dispatch runs the pending job — reusing the whole scaling
|
|
11
|
-
* engine (demand detection, caps, reservations, spawn timeout, teardown).
|
|
4
|
+
* No local compute: `spawn()` emits `kici.scaler.scale-up` and `destroy()` emits
|
|
5
|
+
* `kici.scaler.scale-down`, which a customer workflow (via `kiciEvent()`) consumes
|
|
6
|
+
* to boot and tear down an ephemeral cloud instance. Its agent registers with the
|
|
7
|
+
* scaler-chosen `agentId` and bound-job dispatch runs the pending job, so the
|
|
8
|
+
* whole scaling engine (caps, reservations, spawn timeout, teardown) applies.
|
|
12
9
|
*/
|
|
13
10
|
import type { EffectiveLimits, LabelSetConfig, ManagedAgent, ScalerBackend, ScalerDestroyContext, ScalerEntry, ScalerEventCallback, SpawnContext, ValidationResult } from './types.js';
|
|
14
11
|
import type { ClaimStore } from './claim-store.js';
|
|
15
12
|
import type { ScalerScaleUpPayload, ScalerScaleDownPayload } from './scaler-events.js';
|
|
16
|
-
/**
|
|
17
|
-
* Subset of `EventEmitter` the backend needs. Injected so the backend is unit
|
|
18
|
-
* testable without a real event router.
|
|
19
|
-
*/
|
|
13
|
+
/** Subset of `EventEmitter` the backend needs; injected for unit tests. */
|
|
20
14
|
export interface ScalerEventEmitterLike {
|
|
21
15
|
emitScalerScaleUp(payload: ScalerScaleUpPayload, targets: string[]): Promise<string>;
|
|
22
16
|
emitScalerScaleDown(payload: ScalerScaleDownPayload, targets: string[]): Promise<string>;
|
|
23
17
|
}
|
|
24
18
|
export interface EventScalerBackendOptions {
|
|
25
|
-
/**
|
|
19
|
+
/** `type: 'event'`. */
|
|
26
20
|
entry: ScalerEntry;
|
|
27
|
-
/** Emits the reserved scale-up / scale-down events. */
|
|
28
21
|
emitter: ScalerEventEmitterLike;
|
|
29
|
-
/**
|
|
30
|
-
* the provisioned agent self-bootstrapping, or by a provisioning workflow. */
|
|
22
|
+
/** Redeemed by the self-bootstrapping agent, or by a provisioning workflow. */
|
|
31
23
|
claimStore: ClaimStore;
|
|
32
24
|
/** Correlation-id generator for scale-up / scale-down requests. */
|
|
33
25
|
requestId: () => string;
|
|
@@ -48,40 +40,29 @@ export declare class EventScalerBackend implements ScalerBackend {
|
|
|
48
40
|
/** The entry this backend is serving; the reload rollback restores it. */
|
|
49
41
|
get currentEntry(): ScalerEntry;
|
|
50
42
|
getActiveCount(): number;
|
|
51
|
-
/**
|
|
52
|
-
* Register a pending claim, emit a scale-up event to the provisioning targets,
|
|
53
|
-
* and track the agent as provisioning. Performs no local compute.
|
|
54
|
-
*/
|
|
55
43
|
spawn(labelSet: string[], agentId: string, orchestratorUrl: string, _onEvent?: ScalerEventCallback, effectiveLimits?: EffectiveLimits, spawnContext?: SpawnContext, signal?: AbortSignal): Promise<ManagedAgent>;
|
|
56
44
|
/**
|
|
57
|
-
* Drop the tracked agent, emit a scale-down
|
|
58
|
-
*
|
|
59
|
-
* an already-torn-down agent is a no-op (no duplicate scale-down).
|
|
45
|
+
* Drop the tracked agent, emit a scale-down with the reason, then invalidate
|
|
46
|
+
* the pending claim. Idempotent: a repeat destroy emits nothing.
|
|
60
47
|
*
|
|
61
|
-
* The
|
|
62
|
-
*
|
|
63
|
-
* second scale-down.
|
|
48
|
+
* The entry is dropped before the first `await`, so a concurrent destroy
|
|
49
|
+
* returns at the guard and cannot emit a second scale-down.
|
|
64
50
|
*
|
|
65
|
-
* The claim invalidation is last and fails open.
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* returns at the guard. A claim left behind instead is inert — the row is
|
|
70
|
-
* single-use and TTL-bounded, so it can mint at most one token for an agent
|
|
71
|
-
* id that is being torn down.
|
|
51
|
+
* The claim invalidation is last and fails open. The scale-down is the only
|
|
52
|
+
* teardown of the customer's instance, so a DB error before it would suppress
|
|
53
|
+
* the teardown for good (a retried destroy returns at the guard). A leftover
|
|
54
|
+
* claim is single-use and TTL-bounded: at most one token for a dying agent id.
|
|
72
55
|
*/
|
|
73
56
|
destroy(managedId: string, context?: ScalerDestroyContext): Promise<void>;
|
|
74
57
|
/**
|
|
75
58
|
* Drop the tracked agent without emitting anything.
|
|
76
59
|
*
|
|
77
|
-
* The
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* nothing about whether the customer's instance is still running; the adopter
|
|
84
|
-
* emits the teardown, and the leader-gated reaper is the backstop.
|
|
60
|
+
* The spawning side of a cross-instance `adopt()`. The spawner is never told
|
|
61
|
+
* a peer adopted its provision, so its entry would otherwise inflate
|
|
62
|
+
* `getActiveCount()` against the global cap until exit, and hand
|
|
63
|
+
* `shutdownAll()` a peer's live agent. It says nothing about whether the
|
|
64
|
+
* instance runs: the adopter emits the teardown, the leader-gated reaper is
|
|
65
|
+
* the backstop.
|
|
85
66
|
*/
|
|
86
67
|
forget(agentId: string): void;
|
|
87
68
|
/**
|
|
@@ -92,29 +73,23 @@ export declare class EventScalerBackend implements ScalerBackend {
|
|
|
92
73
|
adopt(agentId: string, labelSet: string[]): void;
|
|
93
74
|
/** Mark a provisioned agent active once its instance registers over WS. */
|
|
94
75
|
markActive(agentId: string): void;
|
|
95
|
-
/** Delegate a credential claim to the backend's claim store. */
|
|
96
76
|
claim(code: string): Promise<import("./claim-store.js").ClaimedCredentials>;
|
|
97
77
|
/**
|
|
98
|
-
* Emits nothing.
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
* told — so emitting here would make a routine restart tear down a peer's
|
|
104
|
-
* running agents.
|
|
78
|
+
* Emits nothing. A provision's lifetime spans the cluster, not this process:
|
|
79
|
+
* the coordinator holding the agent emits teardown on WS close, and the
|
|
80
|
+
* leader-gated reaper is the backstop. The map may hold provisions a peer
|
|
81
|
+
* adopted, so emitting here would make a routine restart tear down a peer's
|
|
82
|
+
* agents.
|
|
105
83
|
*
|
|
106
|
-
* The map is
|
|
107
|
-
*
|
|
84
|
+
* The map is left intact so a WS close during the remaining shutdown steps
|
|
85
|
+
* still emits its own teardown.
|
|
108
86
|
*/
|
|
109
87
|
shutdownAll(): Promise<void>;
|
|
110
88
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
* provisioning workflow, or changes the scaler's roles, would keep emitting
|
|
116
|
-
* scale-up events to the old workflow refs and minting agent labels from the
|
|
117
|
-
* old roles, while the manager's own routing gate used the new ones.
|
|
89
|
+
* Replace the entry: each spawn reads `roles`, `agentTokenTtlSeconds`,
|
|
90
|
+
* `provisioningTargets` (and, without a context, `mandatoryLabels`) from it.
|
|
91
|
+
* Otherwise a reload would keep emitting to the old workflow refs and minting
|
|
92
|
+
* labels from the old roles while the manager's routing gate uses the new ones.
|
|
118
93
|
*/
|
|
119
94
|
reload(labelSets: LabelSetConfig[], opts?: {
|
|
120
95
|
maxAgents?: number;
|