Skip to content

Commit 285fa7d

Browse files
Iheanacho-aismira
authored andcommitted
docs: add the deploy application docs
add documentation to allow users get started with their first cluster. Signed-off-by: Amarachi Iheanacho <amarachi.iheanacho@siderolabs.com> Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
1 parent 527791f commit 285fa7d

File tree

3 files changed

+201
-0
lines changed

3 files changed

+201
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
title: Deploy Your First Workload to a Talos Cluster
3+
weight: 40
4+
description: "Deploy a sample workload to your Talos cluster to get started."
5+
---
6+
7+
Deploying your first workload validates that your cluster is working properly and that you can schedule, expose, and access applications successfully.
8+
9+
If you don’t have a cluster running yet, check out the [Getting Started]({{< relref "getting-started" >}}) or [Production Notes]({{< relref "prodnotes" >}}) guides to learn how to create one.
10+
11+
To deploy a sample application to your cluster:
12+
13+
1. Run this command to deploy the application and expose it via a NodePort:
14+
15+
```bash
16+
kubectl apply -f https://raw.githubusercontent.com/siderolabs/example-workload/refs/heads/main/deploy/example-svc-nodeport.yaml
17+
```
18+
19+
1. Verify that your pods and services are running:
20+
21+
```bash
22+
kubectl get pods,services # Lists the deployed pods and services
23+
```
24+
25+
1. Create a NODE_IP variable by retrieving an IP address of any one of your nodes:
26+
27+
```bash
28+
NODE_IP=$(kubectl get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}'; echo)
29+
```
30+
31+
1. Retrieve the NodePort assigned to your Service using:
32+
33+
```bash
34+
NODE_PORT=$(kubectl get svc example-workload -o jsonpath='{.spec.ports[0].nodePort}')
35+
```
36+
37+
1. Verify your application is running:
38+
39+
```bash
40+
curl http://$NODE_IP:$NODE_PORT
41+
```
42+
43+
And here is your application:
44+
45+
<pre>
46+
47+
🎉 CONGRATULATIONS! 🎉
48+
========================================
49+
50+
You successfully deployed the example workload!
51+
52+
Resources:
53+
----------
54+
🔗 Talos Linux: https://talos.dev
55+
🔗 Omni: https://omni.siderolabs.com
56+
🔗 Sidero Labs: https://siderolabs.com
57+
58+
========================================
59+
60+
</pre>
61+
62+
## What’s Next?
63+
64+
* [Pod Security]({{< relref "../kubernetes-guides/configuration/pod-security" >}})
65+
* [Set up persistent storage]({{< relref "../kubernetes-guides/configuration/storage" >}})
66+
* [Deploy a Metrics Server]({{< relref "../kubernetes-guides/configuration/deploy-metrics-server" >}})
67+
* [Explore the talosctl CLI reference]({{< relref "../reference/cli" >}})
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
title: Deploy Your First Workload to a Talos Cluster
3+
weight: 40
4+
description: "Deploy a sample workload to your Talos cluster to get started."
5+
---
6+
7+
Deploying your first workload validates that your cluster is working properly and that you can schedule, expose, and access applications successfully.
8+
9+
If you don’t have a cluster running yet, check out the [Getting Started]({{< relref "getting-started" >}}) or [Production Notes]({{< relref "prodnotes" >}}) guides to learn how to create one.
10+
11+
To deploy a sample application to your cluster:
12+
13+
1. Run this command to deploy the application and expose it via a NodePort:
14+
15+
```bash
16+
kubectl apply -f https://raw.githubusercontent.com/siderolabs/example-workload/refs/heads/main/deploy/example-svc-nodeport.yaml
17+
```
18+
19+
1. Verify that your pods and services are running:
20+
21+
```bash
22+
kubectl get pods,services # Lists the deployed pods and services
23+
```
24+
25+
1. Create a NODE_IP variable by retrieving an IP address of any one of your nodes:
26+
27+
```bash
28+
NODE_IP=$(kubectl get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}'; echo)
29+
```
30+
31+
1. Retrieve the NodePort assigned to your Service using:
32+
33+
```bash
34+
NODE_PORT=$(kubectl get svc example-workload -o jsonpath='{.spec.ports[0].nodePort}')
35+
```
36+
37+
1. Verify your application is running:
38+
39+
```bash
40+
curl http://$NODE_IP:$NODE_PORT
41+
```
42+
43+
And here is your application:
44+
45+
<pre>
46+
47+
🎉 CONGRATULATIONS! 🎉
48+
========================================
49+
50+
You successfully deployed the example workload!
51+
52+
Resources:
53+
----------
54+
🔗 Talos Linux: https://talos.dev
55+
🔗 Omni: https://omni.siderolabs.com
56+
🔗 Sidero Labs: https://siderolabs.com
57+
58+
========================================
59+
60+
</pre>
61+
62+
## What’s Next?
63+
64+
* [Pod Security]({{< relref "../kubernetes-guides/configuration/pod-security" >}})
65+
* [Set up persistent storage]({{< relref "../kubernetes-guides/configuration/storage" >}})
66+
* [Deploy a Metrics Server]({{< relref "../kubernetes-guides/configuration/deploy-metrics-server" >}})
67+
* [Explore the talosctl CLI reference]({{< relref "../reference/cli" >}})
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
title: Deploy Your First Workload to a Talos Cluster
3+
weight: 40
4+
description: "Deploy a sample workload to your Talos cluster to get started."
5+
---
6+
7+
Deploying your first workload validates that your cluster is working properly and that you can schedule, expose, and access applications successfully.
8+
9+
If you don’t have a cluster running yet, check out the [Getting Started]({{< relref "getting-started" >}}) or [Production Notes]({{< relref "prodnotes" >}}) guides to learn how to create one.
10+
11+
To deploy a sample application to your cluster:
12+
13+
1. Run this command to deploy the application and expose it via a NodePort:
14+
15+
```bash
16+
kubectl apply -f https://raw.githubusercontent.com/siderolabs/example-workload/refs/heads/main/deploy/example-svc-nodeport.yaml
17+
```
18+
19+
1. Verify that your pods and services are running:
20+
21+
```bash
22+
kubectl get pods,services # Lists the deployed pods and services
23+
```
24+
25+
1. Create a NODE_IP variable by retrieving an IP address of any one of your nodes:
26+
27+
```bash
28+
NODE_IP=$(kubectl get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}'; echo)
29+
```
30+
31+
1. Retrieve the NodePort assigned to your Service using:
32+
33+
```bash
34+
NODE_PORT=$(kubectl get svc example-workload -o jsonpath='{.spec.ports[0].nodePort}')
35+
```
36+
37+
1. Verify your application is running:
38+
39+
```bash
40+
curl http://$NODE_IP:$NODE_PORT
41+
```
42+
43+
And here is your application:
44+
45+
<pre>
46+
47+
🎉 CONGRATULATIONS! 🎉
48+
========================================
49+
50+
You successfully deployed the example workload!
51+
52+
Resources:
53+
----------
54+
🔗 Talos Linux: https://talos.dev
55+
🔗 Omni: https://omni.siderolabs.com
56+
🔗 Sidero Labs: https://siderolabs.com
57+
58+
========================================
59+
60+
</pre>
61+
62+
## What’s Next?
63+
64+
* [Pod Security]({{< relref "../kubernetes-guides/configuration/pod-security" >}})
65+
* [Set up persistent storage]({{< relref "../kubernetes-guides/configuration/storage" >}})
66+
* [Deploy a Metrics Server]({{< relref "../kubernetes-guides/configuration/deploy-metrics-server" >}})
67+
* [Explore the talosctl CLI reference]({{< relref "../reference/cli" >}})

0 commit comments

Comments
 (0)