---
title: "Your first deploy"
canonical: "https://admiral.io/docs/get-started/first-deploy"
description: "Deploy your first workload with Admiral: define a component in dev, stage it in a changeset, apply it through your Kubernetes agent, and watch it go live."
---
# Your first deploy
{/*
OUTLINE / DRAFT. Step 3 = AHA 0: a real deployment happened through Admiral and it
is live. Keep this step as short as possible to the live result. Concepts: Component
(workload kind), Changeset, Change, Run (plan+apply), Revision.
*/}
This is the payoff: you define a workload component in `dev`, stage it in a changeset, apply it, and see it running in your cluster. This deploys through your Kubernetes agent from [step 1](https://admiral.io/docs/get-started/connect-a-cluster.md).
## 1. Add a workload component [#1-add-a-workload-component]
A [Component](https://admiral.io/docs/concepts/applications-and-components.md) of kind `workload` deploys via the Kubernetes agent. You add it as a [Change](https://admiral.io/docs/concepts/changesets-and-runs.md) inside a changeset; you never edit an environment directly.
### Open a changeset [#open-a-changeset]
### CLI
```bash
admiral changeset create --env demo/dev --name add-podinfo
```
### Web
In the `dev` environment, choose **New changeset** and name it `add-podinfo`.
### Stage a change that creates the component [#stage-a-change-that-creates-the-component]
### CLI
```bash
# TODO: confirm flags - source/engine/path + target agent + values.
admiral changeset add-change \
--name web \
--kind workload \
--source podinfo \
--engine helm \
--target admiral-demo
```
### Web
1. Add a change to the changeset.
2. Choose the `podinfo` source, engine **helm**, kind **workload**.
3. Bind it to the `admiral-demo` Kubernetes agent.
## 2. Plan, review, apply [#2-plan-review-apply]
A [Run](https://admiral.io/docs/concepts/changesets-and-runs.md) has two phases. Plan first, review what will happen, then apply at the single approval gate.
### CLI
```bash
admiral changeset plan
admiral changeset apply
```
### Web
Click **Plan**, review the planned change, then **Apply**.
## 3. See it live [#3-see-it-live]
### CLI
```bash
kubectl get pods --context kind-admiral-demo
# TODO: admiral-side view of the resulting Revision / run status
admiral run get
```
### Web
The environment shows the component as deployed, with its [Revision](https://admiral.io/docs/concepts/changesets-and-runs.md#revision) and run logs.
{/* TODO: if podinfo exposes a UI/port, show a port-forward so the user SEES a live
result (stronger aha than "pod is Running"). */}
> **Note:** You just ran a real deployment through Admiral. The next step shows the part competitors do badly: wiring one component's output into another.
## Next [#next]
- [4. Wire infrastructure](https://admiral.io/docs/get-started/wire-infrastructure.md): Add an infra component and feed its output to this workload