-
Feature
-
Resolution: Obsolete
-
Normal
-
None
-
None
-
None
-
False
-
False
-
Undefined
Description of problem: In OCP 4.5, the LogForwading API that will configure OCP fluentd to send logs to an aggregator that runs on the same node. The OCP fluentd does not use the hostNetwork so as a workaround, endpoint: '"#{ENV[''NODE_IPV4'']}":8989' works. This NODE_IPV4 contains the IP of the node fluentd is running on and the LogForwading API is able to configure fluentd correctly using this format.
However things have changed for 4.6, LogForwarding is now ClusterLogForwarder and “endpoint” has been replaced with “url” and have been unable to get the above format to work with “url”. It seems to go through a special validator and not behaving the same way.
The goal is to create an entry in new ClusterLogForwarder to send logs to something listening on a port on the node where the ECP fluentd is running.
Version-Release number of selected component (if applicable):
4.6.8
How reproducible:
Using environment variable NODE_IPV4 in logforwarding,
in 4.5 logforwarding, output part
- endpoint: '"#{ENV[''NODE_IPV4'']}":8989'
insecure: true
name: localaggr
type: forward
this translate to fluentd config as
host "#{ENV['NODE_IPV4']}"
port 8989
Steps to Reproduce:
1. Configure cluster logging in 4.6
2. Object kind changed from "logfowarding" to "ClusterLogForwarder"
3. Output is looking for "url" and fails to accept env var stated above:
Actual results:
the output part changed to
- name: localaggr
type: fluentdForward
url: 'tcp://#{ENV[''NODE_IPV4'']}:8989'
as there is a URL validation step in ClusterLogForwarder, this leads to a output error in ClusterLogForwarder instance status.
Expected results:
output should be:
host "#{ENV['NODE_IPV4']}"
port 8989