Skip to main content

Deploy an application

Deploy a container image to your cluster as an AstroPulse application and watch it start. A dry run checks the application before anything is deployed. The example deploys hello-world from the image astropulse/latency:v1.0.0 to the cluster prod-01; a Helm chart, a Git repository or YAML takes the same steps with a different source.

Before you start​

In the console​

Open Workloads › Applications › Deploy application. Each step ends with Continue to …; the next step opens once this one is complete.

  1. Name and cluster. Enter Application name hello-world and pick prod-01 as the Target Cluster.

    Open zoom view

    The Name and cluster step with hello-world on prod-01

    The Name and cluster step with hello-world on prod-01The Name and cluster step with hello-world on prod-01
  2. Profile. The cluster's profile is picked for you under Use Existing. A cluster with no profile yet gets one: Create New fills in prod-01-profile. An application's profile can't be changed after it is deployed; to move it, deploy it again under a new name.

    Open zoom view

    The Profile step of Deploy application, creating a profile for the cluster

    The Profile step of Deploy application, creating a profile for the clusterThe Profile step of Deploy application, creating a profile for the cluster
  3. Image. At the top, pick Container image as the source (Repository, Helm chart and YAML manifests deploy the other sources the same way). In Container Image, enter astropulse/latency and the tag v1.0.0. Leave Container Port empty for 8080. Validate confirms the image and tag can be pulled: Valid · "Image and tag found."

    Open zoom view

    The Source step with Container image astropulse/latency:v1.0.0

    The Source step with Container image astropulse/latency:v1.0.0The Source step with Container image astropulse/latency:v1.0.0
  4. Access. Keep Internal only (default), or pick a verified domain to serve it publicly (Subdomain is optional; left empty, one is generated).

  5. Options. Nothing to change: the platform picks the namespace, and Sync Type stays Automatic. Deleting the application later removes the namespace only if the platform picked it; a namespace you named stays.

  6. Notifications. Optional. Turning a channel on applies to the whole organization at once.

  7. Review. Select Run dry run. It checks this exact manifest and changes nothing. You should see: Dry run passed.

    Open zoom view

    The Review step with the manifest and Dry run passed

    The Review step with the manifest and Dry run passedThe Review step with the manifest and Dry run passed
  8. Deploy. Select Deploy hello-world, then Follow in Events to watch it start.

    Open zoom view

    The hello-world Events tab while it starts

    The hello-world Events tab while it startsThe hello-world Events tab while it starts

When a new profile is created in step 2, Review shows Dry run at deploy: the profile is created first, then the same dry run runs before anything is deployed.

You should see​

The application's page, hello-world, reads Running. Events shows each step of the rollout, and Logs streams the container's output. If it does not start, they say why: Troubleshoot.

Open zoom view

An application's Overview with its running configuration

An application's Overview with its running configurationAn application's Overview with its running configuration

Other ways in​

  • Nova: ask it, for example "deploy hello-world from astropulse/latency:v1.0.0 on prod-01".
  • Python SDK: Python SDK.
  • API: the same operations, in the API reference.

With astroctl​

Review shows the same manifest under Deploy with astroctl, ready to download. To write it yourself:

hello-world.yaml
apiVersion: platform.astropulse.io/v1
kind: Application
metadata:
name: hello-world
spec:
profileName: prod-01-profile
source:
type: Image
image:
repository: astropulse/latency
tag: v1.0.0
Terminal
astroctl app apply -f hello-world.yaml --dry-run
astroctl app apply -f hello-world.yaml
astroctl app status hello-world

astroctl app template prints an annotated starter manifest, and --schema lists every field. Every flag: astroctl app apply.

Next​