apiVersion: v1
data:
  fluent-bit.conf: |
    [FILTER]
       Name modify
       Match *
       Set  fb_configMap_version 0.2.11
       #Set clusterID NOT_SET
       # initialized to N to force level standardization
       Set  __temp_level_fixed   N
    [FILTER]
       # NOTE: This kubernetes filter _only_ applies to the **METALOGGING** messages
       #       A separate instance of this filter exists for the **LOGGING** messages
       #
       Name                kubernetes
       Match               opsK.*
       Kube_Tag_Prefix     kube.var.log.containers.
       Kube_URL            https://kubernetes.default.svc:443
       Kube_CA_File        /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
       Kube_Token_File     /var/run/secrets/kubernetes.io/serviceaccount/token
       Merge_Log           On
       Merge_Log_Key       json_log
       K8S-Logging.Parser  On
       K8S-Logging.Exclude On
    [FILTER]
       Name                kubernetes
       Match               kube.*
       Kube_Tag_Prefix     kube.var.log.containers.
       Kube_URL            https://kubernetes.default.svc:443
       Kube_CA_File        /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
       Kube_Token_File     /var/run/secrets/kubernetes.io/serviceaccount/token
       Buffer_Size         128KB
       Merge_Log           On
       Merge_Log_Key       json_log
       K8S-Logging.Parser  On
       K8S-Logging.Exclude On
    [FILTER]
       Name modify
       Match *
       Condition  Key_exists     json_log
       Set        DB__structlog  true
    [FILTER]
       Name           nest
       Match          *
       Operation      lift
       Nested_under   kubernetes
       Add_prefix     k8s_
    [FILTER]
       # Move/Copy any Kubernetes top-level items here
       Name           modify
       Match          *
       Copy           k8s_namespace_name temp_namespace
       # Schema V. 2 changes
       Rename         k8s_namespace_name k8s_namespace
       Rename         k8s_pod_name       k8s_pod
       Copy           k8s_container_name logsource
       Rename         k8s_container_name k8s_container
    [FILTER]
       Name           nest
       Match          *
       Operation      lift
       Nested_under   k8s_annotations
       Add_prefix     annotations_
    [FILTER]
       #
       # Remove any annotations here
       #
       Name           modify
       Match          *
       Remove_regex   annotations_prometheus\.io.+
    [FILTER]
       Name           nest
       Match          *
       Operation      nest
       Wildcard       annotations_*
       Nest_under     k8s_annotations
       Remove_prefix  annotations_
    [FILTER]
       Name           nest
       Match          *
       Operation      lift
       Nested_under   k8s_labels
       Add_prefix     labels_
    [FILTER]
       #
       # Make kubernetes label adjustments here
       #
       Alias          set_appname
       Name           modify
       Match          *
       Copy           labels_app  appname
       # following used for ETCD message processing
       Copy           labels_component temp_component
       # following used for Crunchy Data message processing
       Copy           labels_vendor  temp_vendor
       Copy           labels_role    temp_role
       Copy           labels_pgo-pg-database temp_pgo-pg-database
    [FILTER]
       #
       # Use kubernetes.labels.k8s-app for appname
       # if kubernetes.labels.app does not exist
       #
       Alias          set_appname2
       Name           modify
       Match          *
       Condition      Key_does_not_exist labels_app
       Copy           labels_k8s-app  appname
    [FILTER]
       Name           nest
       Match          *
       Operation      nest
       Wildcard       labels_*
       Nest_under     k8s_labels
       Remove_prefix  labels_
    [FILTER]
       Alias           Move_some_props
       Name            modify
       Match           *
       Rename          appname     PROPS__appname
       Rename          stream      PROPS__stream
    [FILTER]
       Alias           lift_2_JL__
       Name            nest
       Match           *
       Operation       lift
       Nested_under    json_log
       Add_prefix      JL__
    [FILTER]
       Alias           lift_JL_properties
       Name            nest
       Match           *
       Operation       lift
       Nested_under    JL__properties
       Add_prefix      PROPS__
    [FILTER]
       #
       # Move HTTP Request/Response under properties
       #
       Alias          rename_HTTP_response
       Name           modify
       Match          *
       Condition      Key_value_equals  JL__type    response
       #Condition      Key_value_equals  PROPS__appname   kibana
       Rename         JL__res     PROPS__http_response_details
       Rename         JL__req     PROPS__http_request_details
       Remove         JL__type
       Remove         JL__method
       Remove         JL__statusCode
    [FILTER]
       Name           modify
       Match          *
       # structured logging uses "source" for "logsource"
       Hard_rename    JL__source    logsource
    [FILTER]
       Name           modify
       Match          opsK.*
       Remove         JL__@timestamp
       Rename         JL__message message
    #
    # Kubernetes Events Handling - Start
    #
    [FILTER]
       Alias events_lift_event
       Name         nest
       Match        kube.*
       Operation    lift
       Nested_under JL__event
       Add_prefix   EVENT__
    [FILTER]
       Alias events_lift_meta
       Name         nest
       Match        kube.*
       Operation    lift
       Nested_under EVENT__metadata
       Add_prefix   EV_META__
    [FILTER]
       Alias events_lift_source
       Name         nest
       Match        kube.*
       Operation    lift
       Nested_under EVENT__source
       Add_prefix   EV_SOURCE__
    [FILTER]
       Alias events_lift_object
       Name         nest
       Match        kube.*
       Operation    lift
       Nested_under EVENT__involvedObject
       Add_prefix   EV_OBJ__
    [FILTER]
       Alias events_renames
       Name  modify
       Match kube.*
       Condition Key_value_equals  PROPS__appname eventrouter
       set    logsource            KUBE_EVENT
       # Replace eventrouter k8s metadata w/metadata from source object
       Remove_wildcard k8s_
       copy   EVENT__type          level
       rename JL__verb             PROPS__verb
       rename EVENT__lastTimestamp timeStamp
       rename EVENT__type          PROPS__type
       rename EVENT__message       message
       rename EVENT__reason        PROPS__reason
       rename EV_META__name        PROPS__name
       rename EV_OBJ__kind         PROPS__object_type
       rename EV_OBJ__name         PROPS__object
       Hard_rename EV_OBJ__namespace    k8s_namespace
       Hard_rename EV_SOURCE__host      k8s_host
    [FILTER]
       Alias events_set_kube_fields
       Name  modify
       Match kube.*
       Condition Key_value_equals  logsource  KUBE_EVENT
       Condition Key_value_equals  PROPS__object_type  Pod
       Hard_copy PROPS__object     k8s_pod
    # Re-construct EVENT structures (just in case)
    [FILTER]
       Alias events_nest_object
       Name         nest
       Match        kube.*
       Operation    nest
       Wildcard     EV_OBJ__*
       Nest_under   EVENT__involvedObject
    [FILTER]
       Alias events_nest_meta
       Name         nest
       Match        kube.*
       Operation    nest
       Wildcard     EV_META__*
       Nest_under   EVENT__metadata
    [FILTER]
       Alias events_nest_source
       Name         nest
       Match        kube.*
       Operation    nest
       Wildcard     EV_SOURCE__*
       Nest_under   EVENT__source
    [FILTER]
       Alias events_nest_event
       Name         nest
       Match        kube.*
       Operation    nest
       Wildcard     EVENT__*
       Nest_under   JL__event
    #
    # Kubernetes Events Handling - End
    #
    [FILTER]
       Alias           lift_JL__
       Name            nest
       Match           *
       Operation       nest
       Wildcard        JL__*
       Nest_under      TOP
       Remove_prefix   JL__
    [FILTER]
       #
       # Lift "top"-level items
       #
       Alias           lift_TOP
       Name            nest
       Match           *
       Operation       lift
       Nested_under    TOP
    [FILTER]
       Alias           rename_log2message
       Match           *
       Name            modify
       Condition       Key_does_not_exist   message
       Condition       Key_exists           log
       Rename          log message
    [FILTER]
       Alias           rename_atTimestamp
       Name            modify
       Match           kube.*
       Condition       Key_exists   @timestamp
       Rename          @timestamp orig_timestamp
    [FILTER]
       Alias           flag_consul_msgs
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource sas-consul-server
       Copy            message   consul_message
       Rename          message   unparsed_message
       Add             flagged4parsing consul
    [FILTER]
       Alias           parse_consul_msgs
       Name            parser
       Match           kube.*
       Key_name        consul_message
       Parser          consul
       Parser          consul_telemetry
       Parser          misc8
       Reserve_Data    On
    [FILTER]
       #
       # CRUNCHY DATA HANDLING -- start
       #
       Alias           flag_operator_stderr
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   temp_vendor  crunchydata
       Condition       Key_value_matches  logsource operator|scheduler
       Condition       Key_value_equals   PROPS__stream  stderr
       Copy            message   misc_message
       Rename          message   unparsed_message
       Add             flagged4parsing operatorstderr
    [FILTER]
       Alias           parse_operator_stderr
       Name            parser
       Match           kube.*
       Key_name        misc_message
       Parser          misc-stderr2
       Parser          crunchy_stderr3
       Reserve_Data    On
    [FILTER]
       Alias           post_operator_stderr
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   flagged4parsing operatorstderr
       Rename          caller   PROPS__caller
    [FILTER]
       Alias           flag_collectapi_msgs
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   temp_vendor  crunchydata
       Condition       Key_value_matches  logsource apiserver|collect|backrest|operator|scheduler|exporter
       Condition       Key_does_not_exist flagged4parsing
       Copy            message   collectapi_message
       Rename          message   unparsed_message
       Add             flagged4parsing collectapi
    [FILTER]
       Alias           parse_collectapi_msgs
       Name            parser
       Match           kube.*
       Key_name        collectapi_message
       Parser          collectapi
       Parser          collectapiT
       Parser          crunchy_green
       Parser          misc5
       Reserve_Data    On
    [FILTER]
       Alias           post_collectapi
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   flagged4parsing collectapi
       Condition       Key_exists message2
       Copy            message2 PROPS__oth_info
       # This rename will ONLY happen if message field does NOT exist
       Rename          message2 message
    [FILTER]
       Alias           flag_cdevent_msgs
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   temp_vendor  crunchydata
       Condition       Key_value_equals   logsource event
       Condition       Key_does_not_exist flagged4parsing
       Copy            message   cdevent_message
       Rename          message   unparsed_message
       Add             flagged4parsing crunchy_event
    [FILTER]
       Alias           parse_cdevent_msgs
       Name            parser
       Match           kube.*
       Key_name        cdevent_message
       Parser          crunchy_event
       Reserve_Data    On
    [FILTER]
       Alias           post_cdevent
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   flagged4parsing crunchy_event
       Rename          caller   PROPS__caller
    [FILTER]
       # MUST come last to ensure "special" cases are handled first
       Alias           flag_crunchy_msgs
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   temp_vendor    crunchydata
       Condition       Key_value_equals   temp_pgo-pg-database  true
       #Condition       Key_value_matches  temp_role      master|replica
       #Condition       Key_value_equals   logsource      database
       #Condition       Key_value_equals   PROPS__stream  stdout
       Copy            message   crunchy_message
       Rename          message   unparsed_message
       Add             flagged4parsing crunchy
    [FILTER]
       Alias           parse_crunchy_msgs
       Name            parser
       Match           kube.*
       Key_name        crunchy_message
       Parser          crunchy_database
       Parser          crunchy_green
       Parser          crunchy_stderr2
       Parser          consul
       Reserve_Data    On
       #
       # CRUNCHY DATA HANDLING -- end
       #
    [FILTER]
       #
       # etcd
       #
       Alias           flag_etcd_msgs
       Name            modify
       Match           kube.*
       Condition       Key_value_matches                    temp_namespace kube-system|openshift-etcd
       Condition       Matching_keys_have_matching_values   appname|temp_component (?i:etcd)
       Copy            message   etcd_message
       Rename          message   unparsed_message
       Add             flagged4parsing etcd
    [FILTER]
       Alias           parse_etcd_msgs
       Name            parser
       Match           kube.*
       Key_name        etcd_message
       Parser          etcd
       Parser          etcd2
       Parser          misc-stderr2
       Reserve_Data    On
    [FILTER]
       #
       # prometheus node-exporter
       #
       Alias           flag_promex_msgs
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource node-exporter
       Copy            message   promex_message
       Rename          message   unparsed_message
       Add             flagged4parsing node_exp
    [FILTER]
       Alias           parse_promex_msgs
       Name            parser
       Match           kube.*
       Key_name        promex_message
       Parser          logfmt
       Reserve_Data    On
    [FILTER]
       Alias           post_node_exporter
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource node-exporter
       Rename          message unparsed_message
       Rename          msg     message
       Rename          err     PROPS__err
       Rename          name    PROPS__name
       Rename          caller  PROPS__caller
       Rename          ts      timestamp
    [FILTER]
       #
       # grafana
       # message format is JSON but not being handled like other JSON
       # this section handles post-parsing logic
       #
       Alias           post_grafana
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource grafana
       Condition       Key_exists lvl
       Add             flagged4parsing grafana
       Rename          message unparsed_message
       Rename          t       timeStamp
       Rename          msg     message
       Rename          lvl     level
       Rename          arg     PROPS__arg
       Rename          branch  PROPS__branch
       Rename          commit  PROPS__commit
       Rename          compiled PROPS__compiled
       Rename          dbtype  PROPS__dbtype
       Rename          error   PROPS__error
       Rename          errors  PROPS__errors
       Rename          file    PROPS__file
       Rename          logger  PROPS__logger
       Rename          pluginPath  PROPS__pluginPath
       Rename          reason  PROPS__reason
       Rename          caller  PROPS__caller
       Rename          type    PROPS__type
       Rename          var     PROPS__var
       Rename          version PROPS__version
       # The following other sub-components of the captured "message" have been seen during testing
       # We may want to keep one or more of these under PROPERTIES
       #Remove          address
       #Remove          method
       #Remove          orgId
       #Remove          path
       #Remove          protocol
       #Remove          referer
       #Remove          remote_addr
       #Remove          retry
       #Remove          size
       #Remove          socket
       #Remove          status
       #Remove          subUrl
       #Remove          time_ms
       #Remove          uname
       #Remove          userId
    [FILTER]
       Alias           flag_rabbit
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource sas-rabbitmq-server
       Condition       Key_value_equals   PROPS__stream  stdout
       # pod label "app=sas-rabbitmq-server"
       # appname eq "sas-rabbitmq-server"
       Copy            message   rabbit_message
       Rename          message   unparsed_message
       Add             flagged4parsing rabbit
    [FILTER]
       Alias           parse_rabbit_msgs
       Name            parser
       Match           kube.*
       Key_name        rabbit_message
       Parser          sas-rabbitmq
       Reserve_Data    On
    [FILTER]
       Alias           flag_rabbitstderr
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource sas-rabbitmq-server
       Condition       Key_value_equals   PROPS__stream  stderr
       # pod label "app=sas-rabbitmq-server"
       # appname eq "sas-rabbitmq-server"
       Copy            message   rbstderr_message
       Rename          message   unparsed_message
       Add             flagged4parsing rabbitstderr
    [FILTER]
       Alias           parse_rabbitstderr
       Name            parser
       Match           kube.*
       Key_name        rbstderr_message
       Parser          sas-rabbitmq-stderr
       Reserve_Data    On
    [FILTER]
       Alias           flag_discovery
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource discovery
       # appname eq pilot?
       Copy            message   discovery_message
       Rename          message   unparsed_message
       Add             flagged4parsing discovery
    [FILTER]
       Alias           parse_discovery_msgs
       Name            parser
       Match           kube.*
       Key_name        discovery_message
       Parser          istioPilot
       Reserve_Data    On
    [FILTER]
       Alias           flag_mixer
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource mixer
       # If we need/want to handle each sub-type separately...
       # Condition       Key_value_equals   appname policy
       # Condition       Key_value_equals   appname telemetry
       Copy            message   mixer_message
       Rename          message   unparsed_message
       Add             flagged4parsing mixer
    #[FILTER]
    #   Alias           parse_mixer_msgs2
    #   Name            parser
    #   Match           XXXX*XXXX
    #   Key_name        mixer_message
    #   Parser          mixer
    #   Reserve_Data    On
    [FILTER]
       Alias           flag_k8sdash
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource dashboard-metrics-scraper
       Condition       Key_value_equals   PROPS__stream  stdout
       Copy            message   k8dash_message
       Rename          message   unparsed_message
       Add             flagged4parsing k8sdash
    [FILTER]
       Alias           parse_k8sdash_msgs
       Name            parser
       Match           kube.*
       Key_name        k8dash_message
       Parser          k8sdash
       Reserve_Data    On
    [FILTER]
       Alias           post_k8sdash
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource dashboard-metrics-scraper
       Rename          ip_address   PROPS__ip_address
       Add             flagged4parsing post_k8sdash
    [FILTER]
       Alias           k8sdash_stderr
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource dashboard-metrics-scraper
       Condition       Key_value_equals   PROPS__stream  stderr
       Hard_rename     msg message
    [FILTER]
       #
       # ingress-nginx -TO DO
       # somethings appears to have changed w/o our noticing
       # Disabling FLAG/PARSE steps since those are new...retaining the annotation.
       #
       Alias           flag_nginx_msgs
       Name            modify
       Match           XXXkube.*
       Condition       Key_value_matches  temp_app_kubernetes_name .*nginx.*
       Copy            message   nginx_message
       Rename          message   unparsed_message
       Add             flagged4parsing nginx
    [FILTER]
       Alias           parse_nginx_msgs
       Name            parser
       Match           XXXkube.*
       Key_name        nginx_message
       Parser          nginx-ingress
       Reserve_Data    On
    [FILTER]
       Alias           post_nginx
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource nginx-ingress-controller
       Condition       Key_value_equals   PROPS__stream  stdout
       Add             level DEBUG
       # Currently removing the following sub-components of the captured "message"
       # We may want to restructure these items into  HTTP_RESPONSE and HTTP_REQUEST maps under PROPERTIES
       Remove          remote_host
       Remove          request
       Remove          status
       Remove          url
       Remove          user
       Remove          method
    [FILTER]
       # NGINX STDERR messages are
       # NOT parsed via annotated parser
       # must be handled separately
       Alias           flag_nginx_stderr
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   logsource      nginx-ingress-controller
       Condition       Key_value_equals   PROPS__stream  stderr
       Copy            message   nginx_stderr_message
       Rename          message   unparsed_message
       Add             flagged4parsing    nginx_stderr
    [FILTER]
       Alias           parse_nginx_stderr_msgs
       Name            parser
       Match           kube.*
       Key_name        nginx_stderr_message
       Parser          nginx-ingress-stderr1
       Parser          misc-stderr2
       Reserve_Data    On
    [FILTER]
       #
       # Try some misc. parsers for unparsed messages (stderr)
       #
       Alias           flag_misc
       Name            modify
       Match           kube.*
       Condition       Key_does_not_exist log
       Condition       Key_does_not_exist flagged4parsing
       Copy            message   misc2_message
       Rename          message   unparsed_message
       Add             flagged4parsing misc
    [FILTER]
       Alias           flag_misc99
       Name            modify
       Match           XXXkube.*
       Condition       Key_does_not_exist log
       Condition       Key_does_not_exist message
       Copy            flagged4parsing  DB__orig_parser
       Copy            unparsed_message misc2_message
       Add             flagged4parsing misc99
    [FILTER]
       Alias           parse_misc
       Name            parser
       Match           kube.*
       Key_name        misc2_message
       Parser          misc-stderr2
       Parser          misc2brackets
       Parser          misc2colon
       Parser          misc3
       Parser          misc5
       Parser          misc6
       Parser          misc7
       Parser          misc8
       Parser          collectapiT
       Parser          collectapi
       Parser          haproxy_default
       Parser          openvswitch
       Parser          keepalived
       Parser          prom_op
       Parser          sas_log
       Parser          level_only_brackets
       Parser          level_only_colon
       Parser          timestamp_only
       Parser          truncatedjson
       Parser          gopanic
       Reserve_Data    On
    [FILTER]
       Alias           post_misc
       Name            modify
       Match           kube.*
       Condition       Key_value_equals   flagged4parsing misc
       Rename          caller   PROPS__caller
       Hard_rename     source logsource
    [FILTER]
       #
       # Use unparsed_msg if need be
       #
       Alias          use_unparsed
       Name           modify
       Match          kube.*
       Condition      Key_does_not_exist   message
       Rename         unparsed_message     message
       Set            unparsable           true
       Remove_regex   .+_message
    [FILTER]
       #
       # Create 'kube' map
       # ...any k8s_ objects are included
       #
       Name           nest
       Match          *
       Operation      nest
       Wildcard       k8s_*
       Nest_under     kube
       Remove_prefix  k8s_
    [FILTER]
       #
       # Create 'properties' map
       # ..any PROPS_ objects are included
       #
       Alias           nest_PROPS_under_properties
       Name            nest
       Match           *
       Operation       nest
       Wildcard        PROPS__*
       Nest_under      properties
       Remove_prefix   PROPS__
    [FILTER]
       # "Standardize" Level: DEBUG (includes 'HINT', 'FINE','DBG')
       Alias          fix_level_debug
       Name           modify
       Match          *
       Condition      Key_value_matches level (?i:DEBUG)|(?:\AD\z)|(?i:hint)|(?i:fine)|(?i:DBG)
       Set            level DEBUG
       Set            __temp_level_fixed   Y
    [FILTER]
       # "Standardize" Level: ERROR (includes "ERR*","EROR")
       Alias          fix_level_err
       Name           modify
       Match          *
       Condition      Key_value_does_not_equal __temp_level_fixed Y
       Condition      Key_value_matches level (?i:err\w*)|(?:\AE\z)|(?:eror)
       Set            level ERROR
       Set            __temp_level_fixed   Y
    [FILTER]
       # "Standardize" Level: FATAL (includes "C"=critical)
       Alias          fix_level_fatal
       Name           modify
       Match          *
       Condition      Key_value_does_not_equal __temp_level_fixed Y
       Condition      Key_value_matches level (?i:fatal\w*)|(?i:crit\w*)|(?:\AC\z)
       Set            level FATAL
       Set            __temp_level_fixed   Y
    [FILTER]
       # "Standardize" Level: INFO (includes 'INF*','NOTE*','LOG*','I','NORMAL')
       Alias          fix_level_info
       Name           modify
       Match          *
       Condition      Key_value_does_not_equal __temp_level_fixed Y
       Condition      Key_value_matches level (?i:inf\w*)|(?i:note\w*)|(?i:log\w*)|(?:\AI\z)|(?i:Normal)
       Set            level INFO
       Set            __temp_level_fixed   Y
    [FILTER]
       # "Standardize" Level: PANIC (includes 'PANIC','EMER*')
       Alias          fix_level_panic
       Name           modify
       Match          *
       Condition      Key_value_does_not_equal __temp_level_fixed Y
       Condition      Key_value_matches level (?i:panic)|(?i:emer\w*)
       Set            level PANIC
       Set            __temp_level_fixed   Y
    [FILTER]
       # "Standardize" Level: TRACE (includes 'TRACE','T')
       Alias          fix_level_trace
       Name           modify
       Match          *
       Condition      Key_value_does_not_equal __temp_level_fixed Y
       Condition      Key_value_matches level (?i:trace)|(?:\AT\t)
       Set            level TRACE
       Set            __temp_level_fixed   Y
    [FILTER]
       # "Standardize" Level: WARN (includes 'WAR*',"W","WRN*")
       Alias          fix_level_warn
       Name           modify
       Match          *
       Condition      Key_value_does_not_equal __temp_level_fixed Y
       Condition      Key_value_matches level (?i:war\w*)|(?:\AW\z)|(?i:wrn\w*)
       Set            level WARNING
       Set            __temp_level_fixed   Y
    [FILTER]
       # "Standardize" Level: None
       Alias          fix_level_none
       Name           modify
       Match          *
       Condition      Key_value_does_not_equal __temp_level_fixed Y
       Rename         level  orig_msg_level
       Set            level NONE
       Set            __temp_level_fixed   Y
    [FILTER]
       #
       # rename internal vars to move them under DEBUG
       #
       Alias          rename_debug_vars
       Name           modify
       Match          *
       Rename         unparsed_message      DB__unparsed_message
       Rename         unparsable            DB__unparsable
       Rename         flagged4parsing       DB__flagged4parsing
       Rename         fb_configMap_version  DB__fb_configMap_version
       Rename         log                   DB__unparsed_message
       Rename         orig_msg_level        DB__orig_msg_level
    [FILTER]
       #
       # Move internal vars to DEBUG
       #
       Alias          move_debug_vars
       Name           nest
       Match          kube.*
       Operation      nest
       Wildcard       DB__*
       Nest_under     debug
       Remove_prefix  DB__
    [FILTER]
       #
       # Remove all "temp" vars here
       #
       Alias          remove_temp_vars
       Name           modify
       Match          *
       # comment out the following line to
       # pass internal debugging variables
       # to Elasticsearch
       # Remove         debug
       Remove         time
       Remove_regex   __temp_.+
    [FILTER]
       #
       # WHITELIST Vars to output
       #
       Alias          whitelist
       Name           record_modifier
       Match          *
       Whitelist_key  @timestamp
       Whitelist_key  debug
       Whitelist_key  level
       Whitelist_key  kube
       Whitelist_key  logsource
       Whitelist_key  message
       Whitelist_key  messageKey
       Whitelist_key  messageParameters
       Whitelist_key  properties
    [INPUT]
       Name             tail
       Path             /var/log/containers/*.log
       Exclude_Path     /var/log/containers/v4m-*.log
       Parser           ${KUBERNETES_RUNTIME_LOGFMT}
       Tag              kube.*
       Refresh_Interval    5
       Mem_Buf_Limit    5MB
       Skip_Long_Lines  On
       Read_from_Head   On
       Ignore_Older     1d
       DB               /var/log/sas_viya_flb.db
       DB.locking       On
       storage.type     filesystem
    [INPUT]
       # NOTE: ** METALOGGING **
       Name             tail
       Path             /var/log/containers/v4m-*.log
       Parser           ${KUBERNETES_RUNTIME_LOGFMT}
       Tag              opsK.*
       Refresh_Interval    5
       Mem_Buf_Limit    5MB
       Skip_Long_Lines  On
       Read_from_Head   On
       Ignore_Older     1d
       DB               /var/log/sas_viya_flb.db
       DB.locking       On
       storage.type     filesystem
    [OUTPUT]
       Name  azure
       Alias azurelogs
       Match kube.*
       Log_Type      viya_logs
       Customer_ID  ${AZMONITOR_CUSTOMER_ID}
       Shared_Key   ${AZMONITOR_SHARED_KEY}
    [SERVICE]
       Flush        1
       Daemon       Off
       Log_Level    info
       Parsers_File parsers.conf
       Parsers_File viya-parsers.conf
       HTTP_Server  On
       HTTP_Listen  0.0.0.0
       HTTP_Port    2020
       storage.path /tmp/fb_buffer/
       storage.checksum off
       storage.sync normal
       storage.backlog.mem_limit 5M
       storage.metrics On
  parsers.conf: ""
kind: ConfigMap
metadata:
  labels:
    app: fluent-bit
  name: fbaz-fluent-bit-config
