Build & Deploy Application

Deploy App to K8s

10 minutes

In this step, you’ll deploy the Splunk Distribution of the OpenTelemetry Collector to your application cluster using Helm.

Deploy Application to Cluster

run:

bash
cd ~/workshop/context-propagation
make deploy

This script:

  1. Applies all Kubernetes manifests from deploy/k8s/
  2. Creates a splunk-otel secret from your env credentials
  3. Points deployments at the registry images
  4. Waits for all rollouts to complete

Validation Checklist - Deploy

1. Confirm all pods are running

bash
kubectl -n cosmic-shop get pods

2. Confirm Services and NodePort

bash
kubectl -n cosmic-shop get svc

3. Confirm Backend Health Endpoints

bash
kubectl -n cosmic-shop exec deploy/frontend-api -- wget -qO- http://localhost:3007/health
kubectl -n cosmic-shop exec deploy/catalog-api -- wget -qO- http://localhost:3002/health
kubectl -n cosmic-shop exec deploy/order-api -- wget -qO- http://localhost:3001/health

4. Confirm Shop UI Responds

bash
curl -s -o /dev/null -w "HTTP %{http_code}\n" http://localhost:30080/
curl -s http://localhost:30080/ | head -5

5. Confirm API Catalog Endpoint via Gateway

bash
curl -s http://localhost:30080/api/catalog | python3 -m json.tool | head -20

6. Confirm RabbitMQ Management UI

The RabbitMQ Service uses NodePort 15672 so k3d can expose the management UI through the loadbalancer.

Verify k3d loadbalancer is mapped port 15672

bash
docker ps --filter name=k3d-$INSTANCE-cluster-serverlb --format '{{.Ports}}'

Confirm HTTP Responds

bash
curl -s -o /dev/null -w "HTTP %{http_code}\n" http://localhost:15672/
Last Modified ·