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

spec.proxy.concurrency in SMCP does not propagate to istio-proxy

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Major Major
    • None
    • OSSM 2.1.0
    • Maistra
    • None
    • False
    • False
    • Compatibility/Configuration, User Experience

      ISSUE
      According the documentation[1], spec.proxy.concurrency parameter in SMCP can be configured.
      However, the global value does not propagate to istio-proxy actually.

      envoy proxy default concurrnecy is 2 [2]

      [1]Table 2. ServiceMeshControlPlane resource spec
       - https://docs.openshift.com/container-platform/4.9/service_mesh/v2x/ossm-reference-smcp.html#ossm-cr-example_ossm-reference
      [2]ProxyConfig - concurrency
       - https://istio.io/latest/docs/reference/config/istio.mesh.v1alpha1/#ProxyConfig

      How to reproduce: 

      • Test Scenario 1: The value of '--concurrency' in injected istio-proxy is not applied as defined in SMCP.
            1. set spec.proxy.concurrency value'3' explicitly in SMCP 
            2. deploy pod with istio-proxy
                  annotations:
                    sidecar.istio.io/inject: "true"
            3. the istio-proxy's concurrency value is still 2
      • Test Scenario 2: set proxy.istio.io/config annotation in deployment
            4.set proxy.istio.io/config annotation in deployment        
               annotations:
                 sidecar.istio.io/inject: "true"
                 proxy.istio.io/config: 'concurrency: 3'
            5. concurrency value is actually changed to 3
      #Test Scenario 1: change proxy concurrency value through the smcp 
      1. set spec.proxy.concurrency value '3' explicitly in SMCP 
      // smcp
      spec:
        addons:
          grafana:
            enabled: true
          jaeger:
            install: {}
          kiali:
            enabled: true
          prometheus:
            enabled: true
        policy:
          type: Istiod
        profiles:
        - default
        proxy:
          concurrency: 3                   //set concurrecy value
          runtime:
            container:
              resources:                   //set istio-proxy container's resources
                limits:
                  cpu: 3000m
                  memory: 1024Mi
      2. deploy service mesh member project (bookinfo sample application)   // container resource values are applied but concurrency value is not applied.
      // application pod
      $oc describe pod/productpage-v1-5ddcb4b84f-t2b66 
      ...
        istio-proxy:
          Container ID:  cri-o://6fc4c27918104cbcbc9d8123c7ea1f20d437e006efa8c2820fa44346b41aa889
          Image:         registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:13f566dca713189e5bdb4c67c1754fafc1ebc3f8b9696ccb2093f927d186737f
          Image ID:      registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:13f566dca713189e5bdb4c67c1754fafc1ebc3f8b9696ccb2093f927d186737f
          Port:          15090/TCP
          Host Port:     0/TCP
          Args:
            proxy
            sidecar
            --domain
            $(POD_NAMESPACE).svc.cluster.local
            --serviceCluster
            details.$(POD_NAMESPACE)
            --proxyLogLevel=warning
            --proxyComponentLogLevel=misc:error
            --log_output_level=default:warn
            --concurrency                      //The concurrency value is still 2(default) and not propagated by SMCP
            2
          State:          Running
            Started:      Tue, 22 Feb 2022 14:41:35 +0900
          Ready:          True
          Restart Count:  0
          Limits:
            cpu:     3                         //resource values are applied by SMCP
            memory:  1Gi
          Requests:
            cpu:      10m
            memory:   128Mi
          Environment:
            JWT_POLICY:                    first-party-jwt
            PILOT_CERT_PROVIDER:           istiod
            CA_ADDR:                       istiod-basic.istio-system.svc:15012
            POD_NAME:                      productpage-v1-5ddcb4b84f-t2b66 (v1:metadata.name)
            POD_NAMESPACE:                 bookinfo (v1:metadata.namespace)
            INSTANCE_IP:                    (v1:status.podIP)
            SERVICE_ACCOUNT:                (v1:spec.serviceAccountName)
            HOST_IP:                        (v1:status.hostIP)
            CANONICAL_SERVICE:              (v1:metadata.labels['service.istio.io/canonical-name'])
            CANONICAL_REVISION:             (v1:metadata.labels['service.istio.io/canonical-revision'])
            PROXY_CONFIG:                  {"discoveryAddress":"istiod-basic.istio-system.svc:15012","tracing":{"zipkin":{"address":"jaeger-collector.istio-system.svc:9411"}},"proxyMetadata":{"ISTIO_META_DNS_AUTO_ALLOCATE":"true","ISTIO_META_DNS_CAPTURE":"true","PROXY_XDS_VIA_AGENT":"true"}}
      
      #test senario2: set annotaion in application deployment
      $oc edit deployment/application
      spec:
        progressDeadlineSeconds: 600
        replicas: 1
        revisionHistoryLimit: 10
        selector:
          matchLabels:
            app: productpage
            version: v1
        strategy:
          rollingUpdate:
            maxSurge: 25%
            maxUnavailable: 25%
          type: RollingUpdate
        template:
          metadata:
            annotations:
              sidecar.istio.io/inject: "true"
              proxy.istio.io/config: 'concurrency: 3'          // set annotation
            creationTimestamp: null
            labels:
              app: productpage
              version: v1
      4. check the pod : concurrency value has been changed
        istio-proxy:
          Container ID:  cri-o://7986ff697cb2243c62bfa0d26c29700b741f3c958f7824a8bb6f5cc441eb6fff
          Image:         registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:13f566dca713189e5bdb4c67c1754fafc1ebc3f8b9696ccb2093f927d186737f
          Image ID:      registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:13f566dca713189e5bdb4c67c1754fafc1ebc3f8b9696ccb2093f927d186737f
          Port:          15090/TCP
          Host Port:     0/TCP
          Args:
            proxy
            sidecar
            --domain
            $(POD_NAMESPACE).svc.cluster.local
            --serviceCluster
            productpage.$(POD_NAMESPACE)
            --proxyLogLevel=warning
            --proxyComponentLogLevel=misc:error
            --log_output_level=default:warn
            --concurrency                                  // concurrency is 3
            3
          State:          Running
            Started:      Tue, 22 Feb 2022 14:49:37 +0900
          Ready:          True
          Restart Count:  0
          Limits:
            cpu:     3
            memory:  1Gi
          Requests:
            cpu:      10m
            memory:   128Mi
          Readiness:  http-get http://:15021/healthz/ready delay=1s timeout=3s period=2s #success=1 #failure=30
          Environment:
            JWT_POLICY:                    first-party-jwt
            PILOT_CERT_PROVIDER:           istiod
            CA_ADDR:                       istiod-basic.istio-system.svc:15012
            POD_NAME:                      productpage-v1-684fbf4694-lrml8 (v1:metadata.name)
            POD_NAMESPACE:                 bookinfo (v1:metadata.namespace)
            INSTANCE_IP:                    (v1:status.podIP)
            SERVICE_ACCOUNT:                (v1:spec.serviceAccountName)
            HOST_IP:                        (v1:status.hostIP)
            CANONICAL_SERVICE:              (v1:metadata.labels['service.istio.io/canonical-name'])
            CANONICAL_REVISION:             (v1:metadata.labels['service.istio.io/canonical-revision'])
            PROXY_CONFIG:                  {"discoveryAddress":"istiod-basic.istio-system.svc:15012","concurrency":3,"tracing":{"zipkin":{"address":"jaeger-collector.istio-system.svc:9411"}},"proxyMetadata":{"ISTIO_META_DNS_AUTO_ALLOCATE":"true","ISTIO_META_DNS_CAPTURE":"true","PROXY_XDS_VIA_AGENT":"true"}} 

       

            dgrimm@redhat.com Daniel Grimm
            rhn-support-hyoskim Sophia Hyosun Kim
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: