Runtime Fabric enables you to configure Red Hat OpenShift Routes to create ingress endpoints for your Mule applications.
Configuration of routes in Runtime Fabric follows closely to ingress resource configuration. Before you create routes, review the following:
The following example illustrates how to modify a Kubernetes ingress spec to create a Runtime Fabric ingress resource template for the networking.k8s.io/v1 API.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-rtf-ingress
namespace: rtf #(1)
labels:
spec:
ingressClassName: rtf-openshift #(2)
tls: #(3)
- hosts:
- app-name.example.com
secretName: example-tls
rules:
- host: app-name.example.com #(4)
http:
paths: #(5)
- pathType: Prefix
path: / #(6)
backend: #(7)
service:
name: service-name
port:
name: service-port
Note the following about this example:
-
The template must be placed in the
rtf
namespace. -
ingressClassName
must be prefixed withrtf
-, and must be set tortf-openshift
.Runtime Fabric uses the
rtf-
prefix to recognize the object as a template. Templates withrtf-
prefix in thespec.ingressClassName
field or in thekubernetes.io/ingress.class
annotation are consumed by the Runtime Fabric agent only and not by the actual ingress controller. Ingress controllers discover only those resources with aspec.ingressClassName
value that use the vendor-specific name, for example,openshift
. -
TLS is optional. If specified in the template, Runtime Fabric creates a route with edge termination by default unless you set the
route.openshift.io/termination:
annotation. -
Runtime Fabric replaces the
app-name
placeholder parameter with the actual app name when you deploy the application. This helps to ensure that each endpoint name is unique if there is not a wildcard in the subdomain. -
A template can include multiple paths for a host, but Runtime Manager displays only the first path rule for the host.
-
Runtime Fabric replaces the
path
parameter value with the value you add in the Path field when you configure ingress for a Mule application. Note thatpath
is not a placeholder. -
These placeholder values are required for Kubernetes validation, but the actual values are not used by Runtime Fabric.
For a list of optional placeholder values, see Template Placeholders.
To configure a route, complete the following tasks:
-
Create an ingress resource template and apply it in the cluster.
-
Configure ingress for a Mule application.
Use the example template to create an ingress resource for a route.
After you deploy the application, Runtime Manager creates a route to serve traffic to the application as per the template specified.
You can configure the ingress resource template to include passthrough TLS termination.
For more information on configuring routes with passthrough TLS termination, refer to the Red Hat OpenShift documentation.
Follow these steps to create an ingress resource template: . In the template, add the following annotation:
+
route.openshift.io/termination: passthrough
-
In the template, set the following parameter values:
-
Set
path: ''
(an empty string) -
Set
pathType: ImplementationSpecific
-
-
In Runtime Manager, when configuring ingress for a Mule application, in the Path field include a
/
.
The application endpoint will show HTTPS for passthrough TLS termination.