Build Your Cloud Cosmolet Part 1


Breaking the BGP Barriers: How Cosmolet Revolutionizes Kubernetes Service Advertisement

Introducing Cosmolet - The CNI-Agnostic BGP Service Controller That Unlocks True Network Fabric Independence


The Problem: Kubernetes Networking’s BGP Blind Spots

In the rapidly evolving landscape of Kubernetes networking, organizations face a persistent challenge: how to effectively advertise Kubernetes service networks to external BGP infrastructures without being locked into specific CNI implementations or network fabric choices.

Traditional Container Network Interface (CNI) solutions, while powerful within the cluster, fall short when it comes to external BGP integration—particularly in two critical areas that are becoming increasingly important in modern data center architectures:

  1. BGP Unnumbered with IPv6 Peering: Essential for next-generation network fabrics
  2. CNI Vendor Lock-in: Forcing architectural decisions based on networking plugin capabilities rather than business requirements

These limitations have forced network engineers into uncomfortable compromises, choosing CNIs based on BGP capabilities rather than what’s best for their specific use case, or accepting suboptimal network designs that can’t leverage modern IPv6-based fabric architectures.

Enter Cosmolet: The Game-Changing Solution

Cosmolet Container Service Management and Load-balancing Outlet a.k.a cosmolet is a revolutionary BGP Service Controller designed to liberate Kubernetes networking from these constraints. Built as a lightweight, CNI-agnostic DaemonSet, cosmolet seamlessly bridges the gap between your Kubernetes services and any BGP-enabled network fabric.

What Makes Cosmolet Different?

Unlike traditional CNI-integrated BGP solutions, Cosmolet operates independently of your chosen Container Network Interface. It’s a purpose-built controller that focuses solely on one mission: intelligently advertising healthy Kubernetes Service ClusterIPs to your BGP network infrastructure.

Breaking the First Barrier: BGP Unnumbered with IPv6 Peering

The IPv6 Imperative

As data centers transition to IPv6-first architectures, BGP Unnumbered has emerged as the gold standard for fabric connectivity. This approach eliminates the need for manual IP address assignment on point-to-point links, instead using IPv6 link-local addresses for BGP peering—dramatically simplifying network operations and reducing configuration overhead.

The Challenge: Current CNI solutions either don’t support BGP Unnumbered at all, or their implementations are limited to IPv4-only scenarios, leaving IPv6-forward organizations stuck with suboptimal workarounds.

How Cosmolet Solves This

Cosmolet leverages FRR (Free Range Routing) as its BGP engine, inheriting FRR’s robust support for:

  • IPv6 BGP Unnumbered peering using link-local addresses
  • Dual-stack operation supporting both IPv4 and IPv6 simultaneously
  • Modern BGP extensions including BGP-4+ and extended nexthop capabilities
  • Fabric-agnostic design working with any BGP-speaking network infrastructure

FRR (Free Range Routing) is also used in the SONIC - Software for Open Networking in the Cloud

Refer: Github

cosmolet Implementation Logic:

Code Flowchart

Reference Network Architecture

Reference Network Architecture - HLD

# Example: IPv6 BGP Unnumbered Configuration
router bgp 65001
 neighbor fabric peer-group
 neighbor fabric remote-as external
 neighbor fabric capability extended-nexthop
 neighbor swp1 interface peer-group fabric
 neighbor swp2 interface peer-group fabric
 
 address-family ipv4 unicast
  redistribute static
  neighbor fabric activate
 exit-address-family
 
 address-family ipv6 unicast
  redistribute static
  neighbor fabric activate
 exit-address-family

This means your Kubernetes services can be advertised through modern, scalable IPv6 fabric architectures regardless of your CNI choice.

Breaking the Second Barrier: True CNI Independence

The CNI Lock-in Problem

Traditional approaches to Kubernetes BGP integration typically fall into these categories:

  1. CNI-Integrated Solutions: BGP functionality built into specific CNIs (like Calico BGP mode)
  2. CNI-Specific Controllers: Solutions that only work with particular network plugins
  3. Limited-Scope Solutions: Tools that handle only specific scenarios or protocols

Each approach creates architectural dependencies that can:

  • Force CNI selection based on BGP requirements rather than application needs
  • Limit flexibility in network fabric choices
  • Create upgrade and migration challenges
  • Increase operational complexity through tightly coupled systems

Cosmolet’s Agnostic Approach

Cosmolet fundamentally changes this equation by operating entirely outside the CNI layer. Here’s how:

🔄 CNI Independence

# Works seamlessly with ANY CNI
kubectl get nodes -o wide
# Whether you're running:
# - Calico (any mode: IPIP, VXLAN, or native)
# - Cilium (with or without eBPF)
# - Flannel (VXLAN, host-gw, or wireguard)
# - Antrea, Weave, Canal, or any other CNI

🎯 Service-Focused Design

Cosmolet operates at the Kubernetes Service API level, not the CNI level:

# Cosmolet monitors and advertises these automatically
apiVersion: v1
kind: Service
metadata:
  name: web-service
spec:
  type: ClusterIP  # Cosmolet advertises this IP via BGP
  clusterIP: 10.96.0.100
  ports:
  - port: 80
    targetPort: 8080

🏗️ Infrastructure Abstraction

Your network fabric choices become completely independent of your Kubernetes networking decisions:

Network Fabric CNI Choice Cosmolet Compatibility
Cumulus Linux + IPv6 Unnumbered Calico IPIP ✅ Full Support
Arista EOS + EVPN Cilium eBPF ✅ Full Support
Juniper + IPv4 Numbered Flannel VXLAN ✅ Full Support
Any BGP Fabric Any CNI ✅ Full Support

Technical Advantages: Deep Dive

1. Intelligent Health-Based Advertisement

Cosmolet doesn’t just blindly advertise service IPs—it implements intelligent health monitoring:

// Flow: Service Discovery → Health Check → BGP Decision
func (c *BGPServiceController) processService(service v1.Service) {
    // Step 1: Check service health via endpoints
    isHealthy := c.performHealthCheck(service)
    
    // Step 2: Only advertise if healthy
    if isHealthy {
        // Step 3: Check if already advertised
        if !c.isServiceAdvertisedByFRR(service.Spec.ClusterIP) {
            // Step 4: Advertise via FRR BGP
            c.advertiseServiceViaBGP(service.Spec.ClusterIP)
        }
    }
}

Benefits:

  • Prevents black-hole traffic to unhealthy services
  • Automatic failover when services become unavailable
  • Traffic engineering based on actual service state

2. Production-Ready Operations

Unlike proof-of-concept solutions, Cosmolet is built for production from day one:

# Comprehensive observability
endpoints:
  - /healthz     # Liveness probes
  - /readyz      # Readiness probes  
  - /metrics     # Prometheus metrics
  - /version     # Build information

# Security-first design
securityContext:
  privileged: true              # Required for FRR interaction
  capabilities:                 # Minimal required capabilities
    add: [NET_ADMIN, NET_RAW]
  runAsUser: 0                  # FRR socket access

3. Seamless Integration with Modern Tooling

Cosmolet integrates naturally with cloud-native ecosystems:

# GitOps Ready
apiVersion: argoproj.io/v1alpha1
kind: Application
spec:
  source:
    repoURL: https://charts.example.com/cosmolet
    chart: cosmolet
    targetRevision: 1.0.0
    helm:
      values: |
        config:
          services:
            namespaces: ["production", "staging"]
          bgp:
            enabled: true

Real-World Use Cases

Use Case 1: Multi-CNI Strategy

Scenario: Large organization with different CNI requirements across clusters:

  • Production: Cilium with eBPF for performance
  • Development: Flannel for simplicity
  • Edge: Calico for policy enforcement

Solution: Cosmolet provides consistent BGP advertisement across all environments regardless of CNI choice.

Use Case 2: IPv6-First Data Center

Scenario: Modern data center with IPv6 unnumbered fabric requiring service advertisement

# Network fabric configuration
interface swp1
 ipv6 nd ra-interval 10
 link-detect

router bgp 65000
 neighbor fabric peer-group
 neighbor fabric remote-as external
 neighbor swp1 interface peer-group fabric

Solution: Cosmolet + FRR seamlessly advertises Kubernetes services through IPv6 BGP unnumbered, something no CNI currently supports natively.

Use Case 3: Hybrid Cloud Connectivity

Scenario: Services running in Kubernetes need to be accessible from traditional BGP-connected infrastructure

Solution: Cosmolet bridges cloud-native and traditional networking worlds without requiring specialized CNI features.

Deployment: From Zero to Production

Quick Start

# 1. Deploy via Helm
helm install cosmolet cosmolet/cosmolet \
  --namespace cosmolet-system \
  --create-namespace

# 2. Configure for your environment
helm upgrade cosmolet cosmolet/cosmolet \
  --set config.services.namespaces='{production,staging}' \
  --set config.bgp.asn=65001

Production Configuration

# values-production.yaml
config:
  services:
    namespaces: ["production", "monitoring"]
  loopIntervalSeconds: 15
  bgp:
    enabled: true
    asn: 65001
  logging:
    level: "info"
    format: "json"

# Target BGP-enabled nodes
nodeSelector:
  node-role.kubernetes.io/bgp: "true"

# Production resource allocation  
resources:
  requests:
    cpu: 200m
    memory: 256Mi
  limits:
    cpu: 500m
    memory: 512Mi

# High availability
tolerations:
  - key: node-role.kubernetes.io/control-plane
    operator: Exists
    effect: NoSchedule

# Monitoring integration
monitoring:
  enabled: true
  serviceMonitor:
    enabled: true

Performance and Scale

Cosmolet is designed for enterprise-scale deployments:

Metric Specification
Services Monitored 10,000+ per cluster
Loop Latency Sub-second service health detection
Memory Footprint <256MB per node
CPU Usage <200m per node
BGP Convergence <5 seconds for route changes

Future-Proofing Your Infrastructure

By choosing Cosmolet, you’re investing in a solution that:

  • Evolves independently of CNI vendor roadmaps
  • Supports emerging protocols through FRR updates
  • Adapts to new fabric technologies without code changes
  • Integrates with future Kubernetes versions through stable APIs
  • Scales with your organization from edge to hyperscale

Conclusion: The Path Forward

The networking landscape is evolving rapidly, with IPv6 adoption accelerating and network fabrics becoming increasingly sophisticated. Organizations need solutions that provide flexibility without compromise—the ability to choose the best CNI for their applications while maintaining the freedom to design their network infrastructure optimally.

Cosmolet represents a paradigm shift in Kubernetes networking: separation of concerns between cluster networking and service advertisement. By decoupling these functions, we unlock:

  1. Technical Freedom: Choose your CNI based on application requirements, not BGP limitations
  2. Operational Simplicity: One tool, one purpose, maximum reliability
  3. Future Readiness: Support for emerging protocols and fabric architectures
  4. Vendor Independence: No lock-in to specific CNI or fabric vendors

Whether you’re running a greenfield IPv6 data center, managing a complex multi-CNI environment, or simply want the flexibility to evolve your networking architecture independently of your container platform choices, Cosmolet provides the foundation for a truly agnostic, future-ready Kubernetes networking strategy.


Ready to break free from CNI constraints?

🚀 Get Started: GitHub Repository
📖 Documentation: Installation Guide
💬 Community: Discussions

Cosmolet is open source and available under the GNU Affero General Public License v3.0 license. Join the community building the future of CNI-agnostic Kubernetes networking.