Skip to content
Open
Show file tree
Hide file tree
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
27 changes: 27 additions & 0 deletions modules/nw-ingress-label-propagation-about.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Module included in the following assemblies:
//
// * networking/routes/creating-basic-routes.adoc

:_mod-docs-content-type: CONCEPT
[id="networking-ingress-label-propagation-about_{context}"]
= About label propagation from Ingress to Route resources

By default, the managed `Route` object described in the previous section does not inherit labels from the `Ingress` resource.

You can opt-in to a feature that enables the Ingress Operator to automatically propagate labels. When enabled, the operator actively reconciles the labels on the generated `Route` resource to match the labels on the parent `Ingress` resource. This is useful for adding metadata that helps you track or manage resources, or to control specific behaviors that depend on labels.

[NOTE]
====
When label propagation is enabled, the Ingress Operator replaces all labels on the managed `Route` resource with the exact set of labels from the parent `Ingress` resource. Any labels that were manually added to the `Route` resource are removed.
====

.Understanding the label reconciliation lifecycle
The propagation behavior is controlled by the `route.openshift.io/reconcile-labels` annotation on the `Ingress` resource. The operator's behavior changes depending on the state of this annotation:

* Annotation not present (default): The operator does not sync labels from the `Ingress` resource to the `Route` resource. Any existing labels on the `Route` are preserved.

* Annotation enabled (`route.openshift.io/reconcile-labels: "true"`): The operator enables label propagation. On the next reconciliation (triggered by the `Ingress` create or update event), the operator replaces all labels on the generated `Route` resource with the labels from the `Ingress` resource.

* Annotation disabled (removed or value set to non-"true"): The operator disables label propagation. The labels that currently exist on the `Route` resource are kept as-is, but the operator no longer syncs them with the `Ingress` resource.

* Annotation re-enabled: The operator resumes propagation. It will again replace all labels on the `Route` resource with the current labels from the `Ingress` resource.
81 changes: 81 additions & 0 deletions modules/nw-ingress-label-propagation-enabling.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
// Module included in the following assemblies:
//
// * networking/routes/creating-basic-routes.adoc

:_mod-docs-content-type: PROCEDURE
[id="networking-ingress-label-propagation-enabling_{context}"]
= Enabling label propagation from Ingress to Route resources

You can enable the Ingress Operator to automatically propagate labels from an `Ingress` resource to the `Route` resource it manages.

.Prerequisites
* You have access to an OpenShift Container Platform cluster.
* You have the `cluster-admin` role or permissions to create and edit `Ingress` resources in a project.
.Procedure
To enable label propagation, you must add the `route.openshift.io/reconcile-labels: "true"` annotation to your `Ingress` resource.. Create or edit an `Ingress` resource manifest.. In the `metadata.annotations` section, add `route.openshift.io/reconcile-labels: "true"`.. In the `metadata.labels` section, add the labels you want to propagate.
+
.Example `Ingress` resource with label propagation enabled
[source,yaml]
----
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
route.openshift.io/reconcile-labels: "true" <1>
labels:
app: my-app
owner: dev-team <2>
spec:
rules:

host: example.com

http:
paths:

path: /

pathType: Prefix
backend:
service:
name: example-service
port:
number: 8080
----
<1> The annotation that enables label propagation.
<2> These labels (`app: my-app` and `owner: dev-team`) will be propagated to the generated `Route` resource.. Apply the manifest to your cluster:
+
[source,terminal]
----
$ oc apply -f <your-ingress-manifest.yaml>
----.Verification. Confirm that the labels exist on your `Ingress` resource:
+
[source,terminal]
----
$ oc get ingress example-ingress --show-labels
----
+
.Example output
[source,text]
----
NAME CLASS HOSTS ADDRESS PORTS AGE LABELS
example-ingress <none> example.com 80 1m app=my-app,owner=dev-team
----. Find the name of the `Route` resource generated by the Ingress Operator:
+
[source,terminal]
----
$ oc get route
----. Confirm that the same labels have been propagated to the `Route` resource:
+
[source,terminal]
----
$ oc get route <generated-route-name> --show-labels
----
+
.Example output
[source,text]
----
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD LABELS
<generated-route-name> example.com / example-service 8080 None app=my-app,owner=dev-team
----
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,10 @@ include::modules/nw-ingress-sharding-route-configuration.adoc[leveloffset=+1]
// Creating a route via an Ingress
include::modules/nw-ingress-creating-a-route-via-an-ingress.adoc[leveloffset=+1]

endif::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]
endif::openshift-rosa,openshift-rosa-hcp,openshift-dedicated[]

//About label propogation
include::modules/nw-ingress-label-propagation-about.adoc[leveloffset=+1]

//Enabling label propogation
include::modules/nw-ingress-label-propagation-enabling.adoc[leveloffset=+1]
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,6 @@ The External DNS Operator is only supported on the `x86_64` architecture.

These release notes track the development of the External DNS Operator in {product-title}.

[id="external-dns-operator-release-notes-1.3.2"]
== External DNS Operator 1.3.2

The following advisory is available for the External DNS Operator version 1.3.2:

* link:https://access.redhat.com/errata/RHEA-2025:22454[RHEA-2025:22454 Product Enhancement Advisory]

[id="external-dns-operator-release-notes-1.3.1"]
== External DNS Operator 1.3.1

Expand Down