Skip to content
Merged
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
2bdfe28
changes
chahatsagarmain Aug 18, 2025
95e1763
changes
chahatsagarmain Aug 18, 2025
8c57e22
changes
chahatsagarmain Aug 18, 2025
7c0c256
changes
chahatsagarmain Aug 18, 2025
63c3ef8
changes
chahatsagarmain Aug 18, 2025
2f3e4aa
changes
chahatsagarmain Aug 18, 2025
223c4f5
changes
chahatsagarmain Aug 18, 2025
98fd199
changes
chahatsagarmain Aug 22, 2025
6132012
use local
chahatsagarmain Aug 22, 2025
219bb40
changes
chahatsagarmain Aug 22, 2025
8378ca8
use localhost
chahatsagarmain Aug 22, 2025
ea579a7
changes
chahatsagarmain Aug 22, 2025
b2ee5cd
test
chahatsagarmain Aug 22, 2025
8e5ca4c
test
chahatsagarmain Aug 22, 2025
c5e13cb
test
chahatsagarmain Aug 22, 2025
b045b54
test
chahatsagarmain Aug 22, 2025
174100b
test
chahatsagarmain Aug 22, 2025
f047d11
test
chahatsagarmain Aug 22, 2025
c0935d8
test
chahatsagarmain Aug 22, 2025
04d9dff
test
chahatsagarmain Aug 22, 2025
8bb31c7
test
chahatsagarmain Aug 22, 2025
a8b0a3f
test
chahatsagarmain Aug 23, 2025
da6a60a
test
chahatsagarmain Aug 23, 2025
a332851
test
chahatsagarmain Aug 23, 2025
bb792b1
test
chahatsagarmain Aug 23, 2025
6c5c6c6
test
chahatsagarmain Aug 23, 2025
5d966bf
test
chahatsagarmain Aug 23, 2025
f118fae
test
chahatsagarmain Aug 23, 2025
b4df1e1
test
chahatsagarmain Aug 23, 2025
a1632b2
test
chahatsagarmain Aug 23, 2025
fb28659
test
chahatsagarmain Aug 23, 2025
bd92135
test
chahatsagarmain Aug 23, 2025
44c7cfc
test
chahatsagarmain Aug 23, 2025
3784daa
test
chahatsagarmain Aug 23, 2025
04cd926
test
chahatsagarmain Aug 23, 2025
c721951
test
chahatsagarmain Aug 23, 2025
bfe5989
test
chahatsagarmain Aug 23, 2025
02754d8
test
chahatsagarmain Aug 23, 2025
996c6ba
test
chahatsagarmain Aug 23, 2025
d2bdc77
test
chahatsagarmain Aug 23, 2025
ecc7edc
test
chahatsagarmain Aug 23, 2025
a132218
test
chahatsagarmain Aug 23, 2025
692c330
test
chahatsagarmain Aug 23, 2025
9d48bc9
test
chahatsagarmain Aug 23, 2025
c2e53c3
test
chahatsagarmain Aug 23, 2025
88e7cc5
test
chahatsagarmain Aug 23, 2025
fdff655
test
chahatsagarmain Aug 23, 2025
ef37e17
test
chahatsagarmain Aug 23, 2025
59061d8
test
chahatsagarmain Aug 23, 2025
1f5315e
test
chahatsagarmain Aug 23, 2025
70d2926
test
chahatsagarmain Aug 23, 2025
8d15815
test
chahatsagarmain Aug 23, 2025
0b6c08e
test
chahatsagarmain Aug 23, 2025
a029072
Merge branch 'main' into kind-ci
chahatsagarmain Aug 23, 2025
b8c047f
clean up
chahatsagarmain Aug 23, 2025
5bcd4f6
changes
chahatsagarmain Aug 23, 2025
1e5d02d
remove example
chahatsagarmain Aug 23, 2025
7c952d2
remove example
chahatsagarmain Aug 23, 2025
c3cd827
add mode validation
chahatsagarmain Aug 24, 2025
3dd24e3
change base path
chahatsagarmain Aug 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .github/workflows/ci-deploy-demo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,10 @@ jobs:

- name: Deploy using appropriate script
run: |
cd ./examples/oci
if [ "${{ github.event_name }}" = "schedule" ]; then
echo "🕒 Scheduled run - using deploy-all.sh (upgrade mode)"
bash ./deploy-all.sh
bash ./examples/oci/deploy-all.sh
else
echo "🔄 Manual run - using deploy-all.sh with clean mode (uninstall/install)"
bash ./deploy-all.sh clean
bash ./examples/oci/deploy-all.sh clean
fi
7 changes: 3 additions & 4 deletions .github/workflows/ci-docker-hotrod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ jobs:
matrix:
runtime: [docker, k8s]
jaeger-version: [v1, v2]
exclude:
- runtime: k8s
jaeger-version: v1

steps:
- uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
Expand Down Expand Up @@ -64,10 +67,6 @@ jobs:
with:
version: 'latest'

- name: Install Kustomize
if: matrix.runtime == 'k8s'
uses: imranismail/setup-kustomize@2ba527d4d055ab63514ba50a99456fc35684947f # v2

- name: Create k8s Kind Cluster
if: matrix.runtime == 'k8s'
uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1
Expand Down
68 changes: 60 additions & 8 deletions examples/hotrod/kubernetes/README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,69 @@
# Hot R.O.D. - Rides on Demand on Kubernetes

Example k8s manifests for deploying the [hotrod app](..) to your k8s environment of choice. e.g. minikube, k3s, EKS, GKE
Example deployment for the [hotrod app](..) using Helm charts in your Kubernetes environment (Kind, minikube, k3s, EKS, GKE).

## Prerequisites

- Kubernetes cluster
- Helm 3.x installed
- kubectl configured

## Usage

### Deploy with Default Configuration

```bash
kustomize build . | kubectl apply -f -
kubectl port-forward -n example-hotrod service/example-hotrod 8080:frontend
# In another terminal
kubectl port-forward -n example-hotrod service/jaeger 16686:frontend
cd examples/oci
./deploy-all.sh clean
```

### Deploy with Local Images (for development)

# To cleanup
kustomize build . | kubectl delete -f -
```bash
# For Jaeger v2 with local images
cd examples/oci
./deploy-all.sh local <image-tag>
```

Access Jaeger UI at <http://localhost:16686> and HotROD app at <http://localhost:8080>
### Deploy Modes

- **`upgrade`** (default): Upgrade existing deployment or install if not present
- **`local`**: Deploy using local registry images (localhost:5000)
- **`clean`**: Clean install (removes existing deployment first)

### Access Applications

After deployment completes, use port-forwarding:

```bash
# Jaeger UI
kubectl port-forward svc/jaeger-query 16686:16686

# HotROD application
kubectl port-forward svc/jaeger-hotrod 8080:80

# Prometheus (optional)
kubectl port-forward svc/prometheus 9090:9090

# Grafana (optional)
kubectl port-forward svc/prometheus-grafana 9091:80
```

Then access:
- 🔍 **Jaeger UI**: http://localhost:16686/jaeger
- 🚕 **HotROD App**: http://localhost:8080
- 📈 **Prometheus**: http://localhost:9090
- 📊 **Grafana**: http://localhost:9091

## Configuration

The deployment uses:
- **Helm charts** from [jaeger-helm-charts](https://github.com/jaegertracing/helm-charts)
- **Prometheus** for metrics collection
- **Load generator** for creating sample traces

Configuration files:
- `jaeger-values.yaml` - Jaeger Helm chart values
- `config.yaml` - Jaeger configuration
- `ui-config.json` - Jaeger UI configuration
- `monitoring-values.yaml` - Prometheus configuration
40 changes: 0 additions & 40 deletions examples/hotrod/kubernetes/base/hotrod/deployment.yaml

This file was deleted.

6 changes: 0 additions & 6 deletions examples/hotrod/kubernetes/base/hotrod/kustomization.yaml

This file was deleted.

12 changes: 0 additions & 12 deletions examples/hotrod/kubernetes/base/hotrod/service.yaml

This file was deleted.

This file was deleted.

16 changes: 0 additions & 16 deletions examples/hotrod/kubernetes/base/jaeger-all-in-one/service.yaml

This file was deleted.

13 changes: 0 additions & 13 deletions examples/hotrod/kubernetes/kustomization.yaml

This file was deleted.

4 changes: 0 additions & 4 deletions examples/hotrod/kubernetes/namespace.yaml

This file was deleted.

7 changes: 6 additions & 1 deletion examples/oci/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,12 @@ service:
service.name: jaeger
metrics:
level: detailed
address: 0.0.0.0:8888
readers:
- pull:
exporter:
prometheus:
host: 0.0.0.0
port: 8888
logs:
level: DEBUG

Expand Down
58 changes: 38 additions & 20 deletions examples/oci/deploy-all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
set -euo pipefail

MODE="${1:-upgrade}"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add comments explaining valid values

IMAGE_TAG="${2:-latest}"

if [[ "$MODE" == "upgrade" ]]; then
HELM_JAEGER_CMD="upgrade --install --force"
Expand All @@ -23,11 +24,15 @@ else
HELM_PROM_CMD="install"
fi

# Clone Jaeger Helm Charts (v2 branch) if not already present
# Navigate to the script's directory (examples/oci)
cd $(dirname $0)

# Clone Jaeger Helm Charts if not already present
if [ ! -d "helm-charts" ]; then
echo "📥 Cloning Jaeger Helm Charts..."
git clone https://github.com/jaegertracing/helm-charts.git
cd helm-charts
echo "Using v2 branch for Jaeger v2..."
git checkout v2
echo "Adding required Helm repositories..."
helm repo add bitnami https://charts.bitnami.com/bitnami
Expand All @@ -40,25 +45,34 @@ else
echo "📁 Jaeger Helm Charts already exist. Skipping clone."
fi

# Navigate into examples/oci if not already in it
if [[ "$(basename $PWD)" != "oci" ]]; then
if [ -d "./examples/oci" ]; then
echo "📂 Changing to ./examples/oci directory..."
cd ./examples/oci
else
echo "❌ Cannot find ./examples/oci directory. Exiting."
exit 1
fi
fi
# Set image repositories and deploy based on mode
if [[ "$MODE" == "local" ]]; then

echo "🟣 Deploying Jaeger..."
helm $HELM_JAEGER_CMD jaeger ./helm-charts/charts/jaeger \
--set provisionDataStore.cassandra=false \
--set allInOne.enabled=true \
--set storage.type=memory \
--set-file userconfig="./config.yaml" \
--set-file uiconfig="./ui-config.json" \
-f ./jaeger-values.yaml
echo "🟣 Deploying Jaeger with local registry images..."
helm $HELM_JAEGER_CMD jaeger ./helm-charts/charts/jaeger \
--set provisionDataStore.cassandra=false \
--set allInOne.enabled=true \
--set storage.type=memory \
--set hotrod.enabled=true \
--set allInOne.image.repository="localhost:5000/jaegertracing/jaeger" \
--set allInOne.image.tag="${IMAGE_TAG}" \
--set allInOne.image.pullPolicy="Never" \
--set hotrod.image.repository="localhost:5000/jaegertracing/example-hotrod" \
--set hotrod.image.tag="${IMAGE_TAG}" \
--set hotrod.image.pullPolicy="Never" \
--set-file userconfig="./config.yaml" \
--set-file uiconfig="./ui-config.json" \
-f ./jaeger-values.yaml
else
echo "🟣 Deploying Jaeger..."
helm $HELM_JAEGER_CMD jaeger ./helm-charts/charts/jaeger \
--set provisionDataStore.cassandra=false \
--set allInOne.enabled=true \
--set storage.type=memory \
--set-file userconfig="./config.yaml" \
--set-file uiconfig="./ui-config.json" \
-f ./jaeger-values.yaml
fi

echo "🟢 Deploying Prometheus..."
kubectl apply -f prometheus-svc.yaml
Expand Down Expand Up @@ -90,4 +104,8 @@ echo "Then open:"
echo "🔍 Jaeger: http://localhost:16686/jaeger"
echo "📈 Prometheus: http://localhost:9090"
echo "📊 Grafana: http://localhost:9091"
echo "🚕 HotROD: http://localhost:8080"
echo "🚕 HotROD: http://localhost:8080"
echo ""
echo "📝 Note: If you made changes to Jaeger configuration files (e.g., config.yaml, ui-config.json), you may need to run this script in clean mode:"
echo " ./deploy-all.sh clean"
echo "Or manually restart the CI workflow to ensure your changes are applied."
Loading
Loading