Overview
TheRoute class represents an OpenShift Route object, which exposes a service at a host name so that external clients can reach it by name. Routes are OpenShift-specific resources that provide advanced features like TLS termination, load balancing, and custom routing.
Source: ocp_resources/route.py:5
Class Definition
Constructor
Parameters
Name of the Route resource. If not provided, it must be specified in the YAML file.
Namespace where the Route will be created. Required for namespaced resources.
Kubernetes dynamic client for API communication. If not provided, the default client will be used.
Name of the Service to expose through this Route. This creates a route targeting the specified service.
CA certificate for TLS re-encrypt termination. When provided, the route will be configured with re-encrypt TLS termination.
If True, the resource will be automatically deleted when used as a context manager.
Path to a YAML file containing the Route definition. If provided, the Route will be created from this file.
Timeout in seconds for delete operations. Defaults to 4 minutes.
Additional keyword arguments passed to the parent
NamespacedResource class. Common options include label and annotations.Properties
exposed_service
ocp_resources/route.py:48
Returns: Service name as a string
host
ocp_resources/route.py:55
Returns: Host name as a string
ca_cert
ocp_resources/route.py:62
Returns: CA certificate as a string
termination
ocp_resources/route.py:69
Returns: Termination type as a string
Usage Examples
Basic Route Creation
Create a simple route that exposes a service:Secure Route with TLS Re-encryption
Create a route with re-encrypt TLS termination:Using Context Manager
Automatically clean up the route after use:Creating from YAML
Create a route from a YAML file:Accessing Route Properties
Query route properties after creation:OpenShift-Specific Features
Route Types
- Unsecured Routes: Basic HTTP routes without TLS
- Edge Termination: TLS terminates at the router, traffic to backend is HTTP
- Passthrough Termination: Encrypted traffic passes through to the backend
- Re-encrypt Termination: TLS terminates at router, re-encrypts to backend
Wildcard Routes
Routes support wildcard subdomains for multi-tenant applications:Route Annotations
Common annotations for route behavior:haproxy.router.openshift.io/timeout: Set custom timeouthaproxy.router.openshift.io/rate-limit-connections: Rate limitinghaproxy.router.openshift.io/balance: Load balancing algorithm
Related Resources
- Service - Backend service exposed by the route
- Ingress - Kubernetes standard ingress resource
- OpenShift Routes Documentation