Uploaded image for project: 'OpenShift Service Mesh'
  1. OpenShift Service Mesh
  2. OSSM-5820

When deploying OSSM with ArgoCD copying route labels from the Gateway causes ArgosCD to mark those created routes as OutofSync

XMLWordPrintable

    • Icon: Ticket Ticket
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • OSSM GA
    • Maistra
    • None
    • False
    • None
    • False

      https://docs.openshift.com/container-platform/4.12/service_mesh/v2x/servicemesh-release-notes.html#copy-route-labels

      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 

            rhn-support-pyadav Prachi Yadav
            rhn-support-cruhm Courtney Ruhm
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: