Skip to main content

vkdr whoami

Use these commands to install and manage a sample whoami application to test cluster ingress behavior.

The whoami service is a simple HTTP server that returns information about the request and the container it's running in. It's useful for testing ingress configuration, load balancing, and debugging network issues.

vkdr whoami install

Install the whoami test service in your cluster.

vkdr whoami install [-s] [-d=<domain>] [--gateway=<class>] [--label=<String=String>]...

Flags

FlagShorthandDescriptionDefault
--domain-dDomain name for the generated ingress/routelocalhost
--secure-sEnable HTTPSfalse
--gatewayUse Gateway API instead of Ingress. Specify the GatewayClass name.(none)
--labelCustom labels for whoami resources (repeatable)(none)

Routing: Ingress vs Gateway API

By default, whoami uses Ingress for HTTP routing. You can optionally use the Gateway API by specifying a gateway class:

  • Ingress (default): Works with ingress controllers like nginx-ingress or traefik
  • Gateway API: Works with Gateway API implementations like NGINX Gateway Fabric

Examples

Basic Installation (with Ingress)

vkdr infra up
vkdr nginx install --default-ic
vkdr whoami install
curl http://whoami.localhost:8000

Using Gateway API

vkdr infra up
vkdr nginx-gw install
vkdr whoami install --gateway nginx
curl http://whoami.localhost:8000

With Custom Domain

vkdr whoami install -d myapp.local
curl http://myapp.local:8000

With HTTPS

vkdr whoami install -s
curl -k https://whoami.localhost:8001

With Custom Labels

Add labels for service mesh integration or monitoring:

vkdr whoami install --label app=test --label version=v1

vkdr whoami remove

Remove the whoami service from your cluster.

vkdr whoami remove

Example

vkdr whoami remove

vkdr whoami explain

Explain whoami service setup and configuration options.

vkdr whoami explain

Complete Examples

Testing Ingress Controllers

Test different ingress controllers with whoami:

# Start cluster
vkdr infra up

# Test with NGINX Ingress Controller
vkdr nginx install --default-ic
vkdr whoami install
curl http://whoami.localhost:8000
vkdr whoami remove
vkdr nginx remove

# Test with Traefik
vkdr traefik install --default-ic
vkdr whoami install
curl http://whoami.localhost:8000
vkdr whoami remove
vkdr traefik remove

Testing with Gateway API

# Start cluster
vkdr infra up

# Install NGINX Gateway Fabric
vkdr nginx-gw install

# Install whoami using Gateway API
vkdr whoami install --gateway nginx
curl http://whoami.localhost:8000

# Clean up
vkdr whoami remove
vkdr nginx-gw remove

Testing Load Balancing

Scale the whoami deployment to test load balancing:

vkdr infra up
vkdr nginx install --default-ic
vkdr whoami install

# Scale to multiple replicas
kubectl scale deployment whoami -n vkdr --replicas=3

# Make multiple requests to see different pod responses
for i in {1..10}; do curl -s http://whoami.localhost:8000 | grep Hostname; done

# Clean up
vkdr whoami remove

Response Format

The whoami service returns useful debugging information:

Hostname: whoami-6d5b9b9c9f-abc12
IP: 10.42.0.15
RemoteAddr: 10.42.0.1:54321
GET / HTTP/1.1
Host: whoami.localhost:8000
User-Agent: curl/7.79.1
Accept: */*
X-Forwarded-For: 10.42.0.1
X-Forwarded-Host: whoami.localhost:8000
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Real-Ip: 10.42.0.1

This information helps verify:

  • Which pod is handling the request (Hostname)
  • Request headers are being passed correctly
  • Ingress/Gateway proxy headers are set properly

Resources Created

  • Namespace: vkdr
  • Deployment: whoami (1 replica)
  • Service: whoami (ClusterIP, port 80)
  • Ingress: whoami (when using Ingress mode)
  • HTTPRoute: whoami (when using Gateway API mode)

Helm Chart

Uses the cowboysysop/whoami Helm chart (version 6.0.0).