Skip to content

Docs explaining the new ingress-to-route controller #8596

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions architecture/networking/routes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -833,3 +833,59 @@ $ oc expose service/<name> --hostname="m.api.openshift.org"
$ oc expose service/<name> --hostname="kates.net"
$ oc expose service/<name> --hostname="api.kates.net"
----


== Support for Kubernetes ingress objects in OpenShift

In an effort to support the Kubernetes method of managing external access to services
in a cluster an ingress to route controller has been created. This controller watches
ingress objects and attempts to create one or more routes to satisfy the conditions of
the ingress object. For example

----
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: test
spec:
rules:
- host: test.com
http:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is extra spaces before http:

paths:
- path: /test
backend:
serviceName: test-1
servicePort: 80
----

would generate

----
kind: Route
apiVersion: route.openshift.io/v1
metadata:
name: test-a34th
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a callout to say that the name is automatically generated, with the ingress's name as a prefix.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in the description

ownerReferences:
- apiVersion: extensions/v1beta1
kind: Ingress
name: test
controller: true
spec:
host: test.com
path: /test
to:
name: test-1
port:
targetPort: 80
----

The ingress to route controller is responsible for keeping the ingress object and the generated
route objects in sync, including giving generated routes permissions on the secrets associated with
the ingress object. Hostname claims are made by the generated route objects.

[NOTE]
====
In order for a route to be created an ingress object needs to have a host, service, and path.
The resulting route objects created have an autogenerated name with the name of the ingress object
as a prefix.
====