Deploy Your First App
In this tutorial you'll deploy a sample web app into your CloudSpace, check on it, change its configuration, scale it, and roll back a bad change. These are the operations you'll use every day.
Time: about 15 minutes · You'll need: a tenant account with a Ready CloudSpace (see Customer onboarding).
We'll use podinfo, a tiny web app built for Kubernetes demos.
Step 1: Open the Deploy Application wizard
- In the sidebar, open Resources → Workloads.
- Make sure your CloudSpace is selected in the top bar.
- Select Deploy Application.
Step 2: Describe the app
Fill in the wizard:
| Field | Value |
|---|---|
| Name | hello |
| Source | Container image: ghcr.io/stefanprodan/podinfo:6.7.0 |
| Port | 9898 |
| Resources | CPU 100m / 250m, memory 64Mi / 128Mi |
| Autoscaling | Off (we'll scale by hand later) |
| TLS | On |
Select Deploy.
Choose GitHub repository as the source, pick your repository, and set the Dockerfile path. Tantilium Cloud Runner (TCR) builds the image and creates a pipeline you can follow. Everything else in this tutorial works the same way.
Step 3: Watch it go live
The wizard shows four stages:
- Creating: your app's configuration is saved and manifests are generated and committed to Git.
- Syncing: Flux in your vCluster applies them.
- Starting: the pods start and become ready.
- Verifying: TCR checks your app actually answers over HTTPS.
When it's done, select View live app. Your app is at https://hello-<your-cloudspace>.apps.kubeopera.io, with a valid certificate. (The first deploy takes a few minutes, mostly for the certificate.)
Step 4: Check on it
Open Workloads → hello. You'll see:
- Status: replicas ready, from the live state of your vCluster.
- Pods: each pod, its status and restarts.
- Logs: live logs from your pods. Try refreshing your app's page and watch requests appear.
- Events: what Kubernetes has done with your app.
- Metrics and cost: resource use and what the app costs.
Step 5: Change the configuration
Let's give the app a custom message.
- Select Edit.
- Add an environment variable
PODINFO_UI_MESSAGE=Hello from TCR. - Select Save and deploy.
The change goes through Git like the first deploy, creating a new revision. Reload your app and it shows your message.
Step 6: Scale it
Select Scale and set replicas to 3. Scaling, restarting and stopping apply immediately, and you'll see the new pods in a few seconds.
Step 7: Roll back a bad change
Let's make a mistake on purpose.
- Edit the app and change the port to
8080(podinfo doesn't listen there). Save and deploy. - Watch the app become unhealthy on the Workloads page, and notice the AI Advisor flag it.
- Open Deployment History. Every revision is listed with what changed.
- Select the previous revision and choose Roll back.
TCR restores the previous configuration through Git. Your app is healthy again in seconds.
Step 8: Clean up (optional)
Select Delete on the app and confirm. TCR removes its manifests from Git, and Flux removes every resource it created.
What you learned
- Every app lives in your own vCluster and is delivered through Git.
- Configuration changes create revisions you can roll back to.
- Scale, restart and stop take effect immediately.
- Logs, events, metrics and cost are all in one place.
Next steps
- Your first AI investigation: let an agent explain a problem.
- App Creation Flow: what happens behind each step.
- kubeopera-api: do all of this through the API.