Cilium & Hubble Network Observability
Cilium and Hubble network observability for Kubernetes. Use when managing network policies, observing traffic flows, or troubleshooting connectivity with eBPF-based networking.
Rohit Ghumare
@rohitg00
Install
$ openclaw skills install @rohitg00/k8s-ciliumCilium & Hubble Network Observability
Manage eBPF-based networking using kubectl-mcp-server's Cilium tools (8 tools).
Requires the
ciliumtoolset: start kubectl-mcp-server with--toolsets default,cilium(orMCP_TOOLSETS=default,cilium).
When to Apply
Use this skill when:
- User mentions: "Cilium", "Hubble", "eBPF", "network policy", "flow"
- Operations: network policy management, traffic observation, L7 filtering
- Keywords: "network security", "traffic flow", "dropped packets", "connectivity"
Priority Rules
| Priority | Rule | Impact | Tools |
|---|---|---|---|
| 1 | Detect Cilium installation first | CRITICAL | detect_ecosystem |
| 2 | Check agent status for health | HIGH | cilium_get_status |
| 3 | Use Hubble for flow debugging | HIGH | get_hubble_flows |
| 4 | Start with default deny | MEDIUM | CiliumNetworkPolicy |
Quick Reference
| Task | Tool | Example |
|---|---|---|
| Detect Cilium | detect_ecosystem | detect_ecosystem() |
| Agent status | cilium_get_status | cilium_get_status() |
| List policies | cilium_list_policies | cilium_list_policies(namespace) |
| Query flows | get_hubble_flows | get_hubble_flows(namespace) |
Check Installation
detect_ecosystem()
Cilium Status
cilium_get_status()
Network Policies
List Policies
cilium_list_policies(namespace="default")
Get Policy Details
cilium_get_policy(name="allow-web", namespace="default")
Create Cilium Network Policy
kubectl_apply(manifest="""
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: allow-web
namespace: default
spec:
endpointSelector:
matchLabels:
app: web
ingress:
- fromEndpoints:
- matchLabels:
app: frontend
toPorts:
- ports:
- port: "80"
protocol: TCP
egress:
- toEndpoints:
- matchLabels:
app: database
toPorts:
- ports:
- port: "5432"
protocol: TCP
""")
Endpoints
cilium_list_endpoints(namespace="default")
Identities
cilium_list_identities()
Nodes
cilium_list_nodes()
Hubble Flow Observability
get_hubble_flows(
namespace="default",
pod="my-pod",
last="5m"
)
get_hubble_flows(
namespace="default",
verdict="DROPPED"
)
get_hubble_flows(
namespace="default",
protocol="http"
)
Create L7 Policy
kubectl_apply(manifest="""
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: api-policy
namespace: default
spec:
endpointSelector:
matchLabels:
app: api
ingress:
- fromEndpoints:
- matchLabels:
app: frontend
toPorts:
- ports:
- port: "8080"
protocol: TCP
rules:
http:
- method: GET
path: "/api/v1/.*"
- method: POST
path: "/api/v1/users"
""")
Cluster Mesh
kubectl_apply(manifest="""
apiVersion: cilium.io/v2
kind: CiliumClusterwideNetworkPolicy
metadata:
name: allow-cross-cluster
spec:
endpointSelector:
matchLabels:
app: shared-service
ingress:
- fromEntities:
- cluster
- remote-node
""")
Troubleshooting Workflows
Pod Can't Reach Service
cilium_get_status()
cilium_list_endpoints(namespace)
cilium_list_policies(namespace)
get_hubble_flows(namespace, pod, verdict="DROPPED")
Policy Not Working
cilium_get_policy(name, namespace)
cilium_list_endpoints(namespace)
get_hubble_flows(namespace)
Network Performance Issues
cilium_get_status()
cilium_list_nodes()
get_hubble_flows(namespace, protocol="http")
Best Practices
- Start with default deny: Create baseline deny-all policy
- Use labels consistently: Policies rely on label selectors
- Monitor with Hubble: Observe flows before/after policy changes
- Test in staging: Verify policies don't break connectivity
Prerequisites
- Cilium: Required for all Cilium tools
cilium install
Related Skills
- k8s-networking - Standard K8s networking
- k8s-security - Security policies
- k8s-service-mesh - Istio service mesh
Top skills in this category
API Gateway
@byungkyuCall third-party APIs through the Maton gateway, which injects the credential for an app the user has already connected. Use this skill when the user names a connected app and a concrete action in it - read a mailbox, query a CRM, file an issue, update a spreadsheet, etc.
Marketing Mode
@thesethroseMarketing Mode combines 23 comprehensive marketing skills covering strategy, psychology, content, SEO, conversion optimization, and paid growth. Use when users need marketing strategy, copywriting, SEO help, conversion optimization, paid advertising, or any marketing tactic.
Blogwatcher
@steipeteMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
Marketing Skills
@jchopard69Access 23 marketing modules offering checklists, frameworks, and ready-to-use deliverables for CRO, SEO, copywriting, analytics, launches, ads, and social me...
diagram-generator
@matthewyinGenerate and edit diagrams with the mcp-diagram-generator MCP server. Use this skill for new diagrams, existing .drawio/.mmd/.excalidraw edits, network topology, architecture, flowchart, swimlane, sequence, class, ER, and Excalidraw whiteboard work. Always use this skill when the user asks to draw,