client.system_deployments
client.system_deployments — the systemDeployments operations.
On AsyncKindgi every method is the same, awaited.
client.system_deployments.list()
Section titled “client.system_deployments.list()”list( *, endpoint: Literal['missing', 'retire'], cursor: str | None = None, limit: int | None = None, timeout: float | None = None,) -> SystemDeploymentPageList deployments that need a pack service, or should lose theirs. GET /v1/system/deployments
Across tenants, oldest activatedAt first. endpoint=missing: deployments that need a pack service. Each is routed (the newest deployment with routes for some tool version or pack check), has no endpoint or a cleared one, and nothing about it is closing or suspended. endpoint=retire: deployments with an endpoint whose pack service should go, each with its reason. Name each service packServiceName(tenantId, deploymentId) (@kindgi/api). Takes system:deployments. Each entry carries the tenant's id and nothing else of it.
client.system_deployments.set_endpoint()
Section titled “client.system_deployments.set_endpoint()”set_endpoint( tenant_id: str | UUID, deployment_id: str | UUID, body: SetPackEndpointBody | Mapping[str, Any] | None = None, /, *, idempotency_key: str | None = None, timeout: float | None = None, **fields: Any,) -> DeploymentEndpointRecord where a deployment's pack service runs. PUT /v1/system/tenants/{tenantId}/deployments/{deploymentId}/endpoint
Records the endpoint, once every check passes: the URL is https://<host> (endpoint-url-invalid); its host is on the operator's allowlist (endpoint-host-not-allowed); its host names the deployment's own service, packServiceName(tenantId, deploymentId) then - or . (endpoint-name-mismatch); the image is in the tenant's repository (image-not-allowed); the pack service answers /v1/info, with the kindgi-tenant-id header, as this deployment (endpoint-unreachable, endpoint-info-mismatch, with the names of the fields that differed). A refusal is also recorded as the endpoint's problem, which the tenant sees as a code. The deployment's endpoint is then ready. Refused for a closing or suspended tenant, project or pack, so a sweep can't recreate a service another one retired. Takes system:deployments. The same body twice records it once.
client.system_deployments.clear_endpoint()
Section titled “client.system_deployments.clear_endpoint()”clear_endpoint( tenant_id: str | UUID, deployment_id: str | UUID, /, *, idempotency_key: str | None = None, timeout: float | None = None,) -> DeploymentEndpointClear a deployment's endpoint. DELETE /v1/system/tenants/{tenantId}/deployments/{deploymentId}/endpoint
Clears the endpoint before its pack service is deleted: the deployment's endpoint is cleared, and calls to its tools fail closed (pack-endpoint-cleared), never going to another deployment. Works for a closing or suspended tenant too: that's how its services are retired. Clearing twice keeps the first time. Takes system:deployments.
client.system_deployments.record_problem()
Section titled “client.system_deployments.record_problem()”record_problem( tenant_id: str | UUID, deployment_id: str | UUID, body: RecordDeploymentProblemBody | Mapping[str, Any] | None = None, /, *, idempotency_key: str | None = None, timeout: float | None = None, **fields: Any,) -> DeploymentEndpointRecord why a deployment has no pack service yet. PUT /v1/system/tenants/{tenantId}/deployments/{deploymentId}/endpoint/problem
For whatever creates the pack services: records why a pending deployment has none yet, as one of the fixed codes (tenant-not-provisioned, capacity-unavailable, service-start-failed, image-not-allowed, and the endpoint checks'). The tenant sees the code and when, so a deploy waiting for ready can say why at once. Takes system:deployments.
client.system_deployments.set_suspended()
Section titled “client.system_deployments.set_suspended()”set_suspended( tenant_id: str | UUID, deployment_id: str | UUID, body: SetPackSuspendedBody | Mapping[str, Any] | None = None, /, *, idempotency_key: str | None = None, timeout: float | None = None, **fields: Any,) -> PackSuspensionSuspend a deployment's pack, or restore it. PUT /v1/system/tenants/{tenantId}/deployments/{deploymentId}/suspended
Suspended, the pack's calls fail closed (pack-suspended), never going to an older deployment of the same tool version; its endpoint can't be set again; and it lists to retire as pack-suspended. Restored, it serves again from the endpoint recorded for it; if that endpoint is pending or was cleared meanwhile, it lists as needing a pack service. Nothing is deleted. Refused for a closing tenant; a suspended tenant's pack can still be suspended or restored. Takes system:suspend, which the orchestrator's key doesn't hold; system:deployments is refused.