-
Ticket
-
Resolution: Done
-
Normal
-
None
-
OSSM GA
-
None
-
False
-
None
-
False
-
-
When you deploy OSSM (or at least the gateways) with ArgosCD in OSSM 2.2 or above. Due to the copy route labels feature. The IOR created routes will copy the ArgosCD specific label:
app.kubernetes.io/instance: <app-name>
Since these routes are not created by ArgoCD it marks these routes as OutofSync. If automatic pruning and self healing are enabled on the application then the routes will be automatically deleted and IOR will not recreate them as it doesn't seem them as deleted. This caused a customers environments application to go down.
Currently there are workarounds to this:
- Create routes manually through ArgosCD rather then IOR
- Disable pruning and self healing for specific applications
But this did take a customer by surprise because they went from OSSM 2.1 to OSSM 2.4. In OSSM 2.1 this issue does not occur because the route does not copy the labels from the gateway so ArgoCD does not see the route as out of sync. I can reproduce this every time in my own environment.
✦8 ❯ oc get smcp
NAME READY STATUS PROFILES VERSION AGE
basic 10/10 ComponentsReady ["default"] 2.1.6 5m31s
✦8 ❯ oc get route bookinfo-bookinfo-gateway-525eca1d5089dbdc -o yaml
apiVersion: route.openshift.io/v1
kind: Route
metadata:
annotations:
maistra.io/original-host: '*'
openshift.io/host.generated: "true"
creationTimestamp: "2024-01-11T17:43:20Z"
labels:
maistra.io/gateway-name: bookinfo-gateway
maistra.io/gateway-namespace: bookinfo
maistra.io/gateway-resourceVersion: "598459"
maistra.io/generated-by: ior
name: bookinfo-bookinfo-gateway-525eca1d5089dbdc
namespace: istio-system
resourceVersion: "598485"
uid: c0bf40ed-049c-43eb-b605-724645ffc8fe
✦8 ❯ oc get smcp
NAME READY STATUS PROFILES VERSION AGE
basic 9/9 ComponentsReady ["default"] 2.4.5 63m
✦8 ❯ oc get route bookinfo-bookinfo-gateway-684888c0ebb17f37 -o yaml
apiVersion: route.openshift.io/v1
kind: Route
metadata:
annotations:
maistra.io/original-host: '*'
openshift.io/host.generated: "true"
creationTimestamp: "2024-01-10T23:49:45Z"
labels:
app.kubernetes.io/instance: book <---- There's the label
maistra.io/gateway-name: bookinfo-gateway
maistra.io/gateway-namespace: bookinfo
maistra.io/gateway-resourceVersion: "162583"
maistra.io/generated-by: ior
name: bookinfo-bookinfo-gateway-684888c0ebb17f37
namespace: istio-system
resourceVersion: "162593"
uid: cd86ce7d-a248-4860-a603-0bee2f6a3d07
spec:
This seems like a niche unintended interaction between OSSM and ArgoCD but I think it would be worth looking into giving the customer the ability to disable copying lables from the gateway to the route. Much like how it's possible to disable IOR