Bug 1987539

Summary: OpenShift Service Mesh 2.x on ppc64le: Envoy’s Lua filter not working
Product: OpenShift Container Platform Reporter: sebastian.lehrig1 <sebastian.lehrig1>
Component: UnknownAssignee: Sudha Ponnaganti <sponnaga>
Status: CLOSED DEFERRED QA Contact: Jianwei Hou <jhou>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.8CC: aos-bugs, eparis, jokerman, yselkowi
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64le   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-07-30 01:40:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description sebastian.lehrig1@ibm.com 2021-07-29 15:10:53 UTC
Description of problem:
In a service mesh, Envoy’s Lua filter is a commonly used filter to modify http headers (see 
https://istio.io/latest/docs/reference/config/networking/envoy-filter/ and https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter). However, on ppc64le architecture, http lua filters seem to be missing in the proxyv2-rhel8 image.

Version-Release number of selected component (if applicable):
This image includes the problem: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:dbb1f724333f6892d53f13c9619dcf3eff572b06c944c28fe6ad12fa18a7dc7b

How reproducible:
Run the image and check the list of available filters - the lua filter is missing. Consequently, no lua-based Envoy Filter resource will work (as in "apiVersion: networking.istio.io/v1alpha3" and "kind: EnvoyFilter").

Steps to Reproduce:
1. podman run --entrypoint=bash -it registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:dbb1f724333f6892d53f13c9619dcf3eff572b06c944c28fe6ad12fa18a7dc7b
2. envoy

Actual results:
In the output (see "Additional info" below), the http lua filter won't appear.

Expected results:
"envoy.lua" and "envoy.filters.http.lua" should appear in the output.

Additional info:
Example actual results:
###############
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:258] initializing epoch 0 (hot restart version=11.104)
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:260] statically linked extensions:
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.wasm.foreign_functions: compress, declare_property, expr_create, expr_delete, expr_evaluate, uncompress
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.thrift_proxy.filters: envoy.filters.thrift.rate_limit, envoy.filters.thrift.router
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.tap, envoy.transport_sockets.tls, raw_buffer, tls
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.retry_priorities: envoy.retry_priorities.previous_priorities
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.tracers: envoy.dynamic.ot, envoy.lightstep, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.lightstep, envoy.tracers.opencensus, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.dubbo_proxy.protocols: dubbo
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.resolvers: envoy.ip
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.wasm.null_vms: envoy.wasm.access_log_policy, envoy.wasm.attributegen, envoy.wasm.metadata_exchange, envoy.wasm.null.stackdriver, envoy.wasm.stats
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.tap, envoy.transport_sockets.tls, raw_buffer, tls
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.filters.http: envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cors, envoy.filters.http.csrf, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.dynamo, envoy.filters.http.ext_authz, envoy.filters.http.fault, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.gzip, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.jwt_authn, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.squash, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.gzip, envoy.health_check, envoy.http_dynamo_filter, envoy.ip_tagging, envoy.rate_limit, envoy.router, envoy.squash, istio.alpn, istio_authn, jwt-auth, mixer
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.stats_sinks: envoy.dog_statsd, envoy.metrics_service, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.statsd, envoy.statsd
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.http_grpc, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.http_grpc_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.dubbo_proxy.serializers: dubbo.hessian2
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.health_checkers: envoy.health_checkers.redis
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.udp_listeners: raw_udp_listener
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   http_cache_factory: envoy.extensions.http.cache.simple
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.dubbo_proxy.route_matchers: default
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   wasm_vm: envoy.wasm
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.filters.network: envoy.client_ssl_auth, envoy.echo, envoy.ext_authz, envoy.filters.network.client_ssl_auth, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.kafka_broker, envoy.filters.network.local_ratelimit, envoy.filters.network.metadata_exchange, envoy.filters.network.mongo_proxy, envoy.filters.network.mysql_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.sni_cluster, envoy.filters.network.tcp_cluster_rewrite, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy, forward_downstream_sni, mixer, sni_verifier
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.dubbo_proxy.filters: envoy.filters.dubbo.router
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.thrift_proxy.transports: auto, framed, header, unframed
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:262]   envoy.filters.upstream_network: envoy.filters.network.upstream.metadata_exchange
[2021-07-29 15:06:03.429][13][critical][main] [external/envoy/source/server/server.cc:98] error initializing configuration '': At least one of --config-path or --config-yaml or Options::configProto() should be non-empty
[2021-07-29 15:06:03.429][13][info][main] [external/envoy/source/server/server.cc:640] exiting
At least one of --config-path or --config-yaml or Options::configProto() should be non-empty
###############

Comment 1 Yaakov Selkowitz 2021-07-30 01:40:26 UTC
AFAIK, Service Mesh does not use bugzilla.  Please file a ticket in the OSSM project on issues.redhat.com, and feel free to add a link here for me and others to follow.

Comment 2 sebastian.lehrig1@ibm.com 2021-07-30 07:16:44 UTC
Thanks & done: https://issues.redhat.com/browse/OSSM-553