Skip to content
Back to skills

Openshift:Routes

ASecurity

Manage OpenShift routes for external access to services

  • 299 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 20, 2026
devopsbashapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add rossoctl/rossoctl --skill openshift:routes --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Openshift:Routes?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Openshift:Routes
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rossoctl-openshift-routes/badge)](https://www.skillsdirectory.com/skills/rossoctl-openshift-routes)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: openshift:routes
description: Manage OpenShift routes for external access to services
---

# OpenShift Routes Skill

Manage OpenShift routes for exposing services externally.

## When to Use

- Exposing services externally
- Configuring TLS/SSL
- Troubleshooting route access
- Setting up custom domains

## Quick Commands

### View Routes

```bash
# All routes
oc get routes -A

# Routes in namespace
oc get routes -n <namespace>

# Route details
oc describe route <route-name> -n <namespace>
```

### Create Routes

```bash
# Simple route (edge TLS)
oc expose svc/<service-name> -n <namespace>

# With custom hostname
oc expose svc/<service-name> -n <namespace> --hostname=myapp.example.com

# Edge TLS (terminate at router)
oc create route edge <route-name> --service=<service-name> -n <namespace>

# Passthrough TLS (end-to-end)
oc create route passthrough <route-name> --service=<service-name> -n <namespace>

# Reencrypt TLS
oc create route reencrypt <route-name> --service=<service-name> \
  --dest-ca-cert=ca.crt -n <namespace>
```

### Get Route URL

```bash
# Get host
oc get route <route-name> -n <namespace> -o jsonpath='{.spec.host}'

# Full URL
echo "https://$(oc get route <route-name> -n <namespace> -o jsonpath='{.spec.host}')"

# Test access
curl -k "https://$(oc get route <route-name> -n <namespace> -o jsonpath='{.spec.host}')"
```

### Modify Routes

```bash
# Add TLS
oc patch route <route-name> -n <namespace> -p '{"spec":{"tls":{"termination":"edge"}}}'

# Change target port
oc patch route <route-name> -n <namespace> -p '{"spec":{"port":{"targetPort":"8080-tcp"}}}'

# Set path
oc patch route <route-name> -n <namespace> -p '{"spec":{"path":"/api"}}'
```

## TLS Termination Types

| Type | Description | Use Case |
|------|-------------|----------|
| `edge` | TLS terminates at router | Most common, router handles certs |
| `passthrough` | TLS passes to pod | Pod handles TLS, end-to-end encryption |
| `reencrypt` | TLS at router, re-encrypts to pod | High security, pod has different cert |

## Troubleshooting

### Route Not Accessible

```bash
# Check route status
oc describe route <route-name> -n <namespace>

# Check service exists
oc get svc <service-name> -n <namespace>

# Check service has endpoints
oc get endpoints <service-name> -n <namespace>

# Check pod is running
oc get pods -n <namespace> -l <selector>

# Check router logs
oc logs -n openshift-ingress deployment/router-default | grep <route-host>
```

### Certificate Issues

```bash
# Check route TLS config
oc get route <route-name> -n <namespace> -o jsonpath='{.spec.tls}'

# Check certificate expiry
echo | openssl s_client -connect <route-host>:443 2>/dev/null | openssl x509 -noout -dates

# View certificate
echo | openssl s_client -connect <route-host>:443 2>/dev/null | openssl x509 -noout -text
```

### DNS Issues

```bash
# Check DNS resolution
nslookup <route-host>
dig <route-host>

# Check wildcard DNS
oc get ingresscontroller default -n openshift-ingress-operator -o jsonpath='{.status.domain}'
```

## Common Patterns

### Expose Rossoctl UI

```bash
# Create route for UI
oc expose svc/rossoctl-ui -n rossoctl-system

# Get URL
echo "https://$(oc get route rossoctl-ui -n rossoctl-system -o jsonpath='{.spec.host}')"
```

### Expose Agent Service

```bash
# Create edge route with TLS
oc create route edge weather-service \
  --service=weather-service \
  -n team1

# Get agent URL
export AGENT_URL="https://$(oc get route weather-service -n team1 -o jsonpath='{.spec.host}')"
```

## Related Skills

- **openshift:debug**: Debug OpenShift issues
- **k8s:health**: Check platform health

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.