Skip to content

Latest commit

 

History

History
96 lines (72 loc) · 4.67 KB

configure-openshift-routes.adoc

File metadata and controls

96 lines (72 loc) · 4.67 KB

Configuring Red Hat OpenShift Routes in Runtime Fabric

Runtime Fabric enables you to configure Red Hat OpenShift Routes to create ingress endpoints for your Mule applications.

Before You Begin

Configuration of routes in Runtime Fabric follows closely to ingress resource configuration. Before you create routes, review the following:

Example Ingress Resource Template for A Red Hat OpenShift Route

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:

  1. The template must be placed in the rtf namespace.

  2. ingressClassName must be prefixed with rtf-, and must be set to rtf-openshift.

    Runtime Fabric uses the rtf- prefix to recognize the object as a template. Templates with rtf- prefix in the spec.ingressClassName field or in the kubernetes.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 a spec.ingressClassName value that use the vendor-specific name, for example,openshift.

  3. 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.

  4. 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.

  5. A template can include multiple paths for a host, but Runtime Manager displays only the first path rule for the host.

  6. 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 that path is not a placeholder.

  7. 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.

Configure A Route in Runtime Fabric

To configure a route, complete the following tasks:

  1. Create an ingress resource template and apply it in the cluster.

  2. Configure ingress for a Mule application.

Create an Ingress Resource Template and Apply it in the Cluster

Use the example template to create an ingress resource for a route.

Configure Ingress for a Mule Application

After you deploy the application, Runtime Manager creates a route to serve traffic to the application as per the template specified.

Configure Passthrough TLS Termination

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
  1. In the template, set the following parameter values:

    • Set path: '' (an empty string)

    • Set pathType: ImplementationSpecific

  2. 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.