Skip to content

Deploy a built agent image

client.Deploy.New(ctx, body) (*AgentexCloudDeploy, error)
POST/v5/agentex/deployments

Deploy a successfully built agent image to Kubernetes as a Helm release.

Takes a completed build (referenced by build_id, or by image_name + image_tag) together with the agent manifest and environment config, then starts an asynchronous Temporal workflow that provisions the agent as a Helm release. The call returns immediately with the deployment record in PENDING status — it does not wait for the release to become healthy; poll GET /v5/agentex/deployments/{deployment_id} for status and Kubernetes events and GET /v5/agentex/deployments/{deployment_id}/logs for progress. This is the deploy counterpart to POST /v5/agentex/builds: a build produces the container image, a deployment runs that image. The referenced build must have finished successfully, and the manifest’s agent name must match the build’s agent.

Set preview=True for an ephemeral deployment: it gets a globally unique Helm release name (so concurrent redeploys never collide), an optional preview_label for grouping, and an expiry (expires_at, defaulting to 8 hours from now); preview_label and expires_at are rejected on non-preview deploys. A non-preview (production) deploy instead supersedes any prior active deployment that shares its Helm release name. Fails with a client error if the build is missing or not in a successful state, if the manifest or environment YAML is invalid or their agent names disagree, or if a secret referenced by the manifest does not exist.

ParametersExpand Collapse
body DeployNewParams
EnvironmentConfig param.Field[string]

YAML content of environment configuration from the environment config file.

ManifestFile param.Field[string]

YAML content of manifest configuration.

BuildID param.Field[string]Optional

The build_id of the cloud build. Required if image_name and image_tag are not provided.

ExpiresAt param.Field[Time]Optional

ISO 8601 expiry timestamp. Only valid for preview deployments. If omitted on a preview deployment, defaults to 8 hours from now. Previews are always ephemeral and always have an expires_at.

formatdate-time
ImageName param.Field[string]Optional

Name of the image to deploy. Required if build_id is not provided.

ImageTag param.Field[string]Optional

Tag of the image to deploy. Required if build_id is not provided.

Preview param.Field[bool]Optional

When True, creates a preview deployment with a unique deployment-id suffix appended to the helm release name.

PreviewLabel param.Field[string]Optional

Non-unique grouping label for the preview (e.g. branch name, PR number). Persisted on the deployment record so callers can list all deploys for a given label via GET /v5/agentex/deployments?preview_label=X&limit=1 (get the latest). Sanitized to lowercase alphanumeric + hyphens for K8s DNS-label compatibility (max 30 characters after sanitization). Each deploy still gets a unique helm release name regardless of label, so concurrent redeploys never share K8s resources. Only valid when preview=True.

ReturnsExpand Collapse
type AgentexCloudDeploy struct{…}
ID string

The unique identifier of the deployment.

AccountID string

The ID of the account that owns the given entity.

CreatedAt Time

The date and time when the entity was created in ISO format.

formatdate-time
CreatedBy Identity

The identity that created the entity.

ID string
Type IdentityType
One of the following:
const IdentityTypeUser IdentityType = "user"
const IdentityTypeServiceAccount IdentityType = "service_account"
Object IdentityObjectOptional
EnvironmentConfig string

YAML content of environment configuration from the environment config file.

ManifestFile string

YAML content of manifest configuration.

Namespace string

Kubernetes namespace where the deployment is deployed.

Status string

Deployment status: pending, running, completed, failed, or cancelled.

BuildID stringOptional

The build_id of the cloud build that produced the deployed image.

DeployEvents []AgentexCloudDeployEventOptional

Kubernetes events for this deployment.

Message stringOptional

Full event message.

Reason stringOptional

Short reason, e.g. ‘Pulling’, ‘Scheduled’.

Timestamp TimeOptional

When the event was observed.

formatdate-time
Type stringOptional

Event type, e.g. ‘Normal’ or ‘Warning’.

ExpiresAt TimeOptional

When this deployment will be cleaned up. Always set on preview deployments (defaults to 8 hours from creation if the request omits it). Null on non-preview deployments — they have no TTL.

formatdate-time
HelmReleaseName stringOptional

Helm release name after successful deployment.

Object AgentexCloudDeployObjectOptional
PreviewLabel stringOptional

Non-unique grouping label for preview deployments. Filter ?preview_label=X&limit=1 returns the latest deploy for the label. Sanitized (lowercase alphanumeric + hyphens) and capped at 30 characters.

Deploy a built agent image

package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  agentexCloudDeploy, err := client.Deploy.New(context.TODO(), sgpdev.DeployNewParams{
    EnvironmentConfig: "environment_config",
    ManifestFile: "manifest_file",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", agentexCloudDeploy.ID)
}
{
  "id": "id",
  "account_id": "account_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "environment_config": "environment_config",
  "manifest_file": "manifest_file",
  "namespace": "namespace",
  "status": "status",
  "build_id": "build_id",
  "deploy_events": [
    {
      "message": "message",
      "reason": "reason",
      "timestamp": "2019-12-27T18:11:19.117Z",
      "type": "type"
    }
  ],
  "expires_at": "2019-12-27T18:11:19.117Z",
  "helm_release_name": "helm_release_name",
  "object": "agentex_cloud_deploy",
  "preview_label": "preview_label"
}
Returns Examples
{
  "id": "id",
  "account_id": "account_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "environment_config": "environment_config",
  "manifest_file": "manifest_file",
  "namespace": "namespace",
  "status": "status",
  "build_id": "build_id",
  "deploy_events": [
    {
      "message": "message",
      "reason": "reason",
      "timestamp": "2019-12-27T18:11:19.117Z",
      "type": "type"
    }
  ],
  "expires_at": "2019-12-27T18:11:19.117Z",
  "helm_release_name": "helm_release_name",
  "object": "agentex_cloud_deploy",
  "preview_label": "preview_label"
}