Skip to content

Nested cluster Fluent Bit cannot send logs to parent VLogs: missing vlogs in tenant egress policy #1970

Open

Description

Problem

Fluent Bit in nested Kubernetes clusters (Kamaji) cannot send logs to VLogs in the parent cluster. Connection attempts timeout:

[error] [upstream] connection #145 to tcp://10.43.81.27:9428 timed out after 10 seconds
[error] [output:http:http.0] no upstream connections available to vlogs-generic.tenant-root.svc:9428

Root Cause

The CiliumClusterwideNetworkPolicy for tenant egress (<tenant>-egress) explicitly allows traffic to vminsert in parent tenants for metrics, but does not include vlogs for logs.

In packages/apps/tenant/templates/networkpolicy.yaml (lines 43-55):

{{- if ne (include "tenant.name" .) "tenant-root" }}
- toEndpoints:
  {{- if hasPrefix "tenant-" .Release.Namespace }}
  {{- $parts := splitList "-" .Release.Namespace }}
  {{- range $i, $v := $parts }}
  {{- if ne $i 0 }}
  - matchLabels:
      "k8s:app.kubernetes.io/name": "vminsert"  # ← metrics work
      "k8s:io.kubernetes.pod.namespace": {{ join "-" (slice $parts 0 (add $i 1)) }}
  {{- end }}
  {{- end }}
  {{- end }}
{{- end }}

There is no equivalent rule for vlogs (app.kubernetes.io/name: vlogs), so Cilium blocks the traffic.

Impact

  • Metrics from nested clusters → parent cluster: ✅ Works (vminsert allowed)
  • Logs from nested clusters → parent cluster: ❌ Blocked (vlogs not allowed)

Fix

Add vlogs to the tenant egress policy, mirroring the vminsert rule.

Activity

  1. added
    kind/bugCategorizes issue or PR as related to a bug
    on Feb 3, 2026
  2. changed the title [-]Fluent Bit in nested Kubernetes cluster cannot send logs to VLogs in parent cluster[/-] [+]Nested cluster Fluent Bit cannot send logs to parent VLogs: missing vlogs in tenant egress policy[/+] on Feb 3, 2026
  3. added a commit that references this issue on Feb 3, 2026
    adbaeb0
  4. dosubot commented on Feb 3, 2026

    @dosubot

    Hi Aleksei Sviridkin (@lexfrei)! I'm Dosu and I’m helping the cozystack team.

    Your root cause analysis is spot on: the Fluent Bit output config in the monitoring-agents Helm chart uses Host vlogs-generic.tenant-root.svc without the .cozy.local suffix, which breaks cross-cluster service discovery for nested clusters. There’s no built-in logic to append .cozy.local automatically, so you’ll need to override the output host in your Helm values for nested clusters to use the full FQDN, like Host vlogs-generic.tenant-root.svc.cozy.local—this will be rendered into the ConfigMap by the chart and is compatible with Flux reconciliation as long as you manage it via values files or overlays, not manual patches (source).

    For the network side, there’s currently no Cilium policy in the repo that allows ingress to VLogs on port 9428 from tenant workloads. You’ll want to add a CiliumNetworkPolicy (or clusterwide policy) that selects the VLogs pods in tenant-root and allows ingress on TCP/9428 from the identities/labels representing your Kamaji tenant workloads. Place this manifest in the packages/system/cilium-networkpolicy Helm chart so it’s managed by Flux and reconciles automatically (source).

    If you need a concrete example or want to discuss label selectors for the policy, let me know! For more background, see cozystack/cozystack#938 and cozystack/cozystack#1221.

    To reply, just mention @dosu.


    How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

    Chat with Dosu Open in Cursor Join Discord Share on X

  5. added a commit that references this issue on Feb 3, 2026
    cd2483d
  6. added
    area/networkingIssues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)
    priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release
    triage/acceptedIndicates an issue is ready to be actively worked on
    on Apr 27, 2026
  7. added
    lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale
    and removed on Aug 3, 2026
  8. added
    area/ciliumIssues or PRs related to Cilium (agent, operator, Gateway API, network policy, LB-IPAM)
    on Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ciliumIssues or PRs related to Cilium (agent, operator, Gateway API, network policy, LB-IPAM)area/networkingIssues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)kind/bugCategorizes issue or PR as related to a buglifecycle/staleDenotes an issue or PR has remained open with no activity and has become stalepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releasetriage/acceptedIndicates an issue is ready to be actively worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions