Installation

This guide covers the installation of OpenPERouter using different deployment methods.

Prerequisites #

Before installing OpenPERouter, ensure you have:

  • A Kubernetes cluster (v1.20 or later)
  • kubectl configured to communicate with your cluster
  • Cluster administrator privileges (for creating namespaces and CRDs)
  • Network interfaces configured for BGP peering with external routers
  • For OpenShift: oc CLI tool and cluster admin access

Installation Methods #

OpenPERouter offers several deployment methods to suit different environments and preferences:

Method 1: All-in-One Manifests (Quick Start) #

The simplest way to install OpenPERouter is using the all-in-one manifests. This method is ideal for testing and development environments.

Standard Installation (containerd) #

kubectl apply -f https://raw.githubusercontent.com/openperouter/openperouter/v0.0.2/config/all-in-one/openpe.yaml

CRI-O Variant #

If your cluster uses CRI-O as the container runtime:

kubectl apply -f https://raw.githubusercontent.com/openperouter/openperouter/v0.0.2/config/all-in-one/crio.yaml

Method 2: Kustomize Installation #

Kustomize provides more flexibility for customizing the deployment. This method is recommended for production environments.

Default Configuration #

Create a kustomization.yaml file:

namespace: openperouter-system

resources:
  - github.com/openperouter/openperouter/config/default?ref=v0.0.2

Then apply it:

kubectl apply -k .

CRI-O Variant with Kustomize #

namespace: openperouter-system
resources:
  - github.com/openperouter/openperouter/config/crio?ref=v0.0.2

Method 3: Helm Installation #

Helm provides the most flexibility for configuration and is recommended for production deployments.

Add the Helm Repository #

helm repo add openperouter https://openperouter.github.io/openperouter
helm repo update

Install OpenPERouter #

helm install openperouter openperouter/openperouter

Customize Installation #

You can customize the installation by creating a values file:

# values.yaml
openperouter:
  logLevel: "info"
  cri: "containerd"
  frr:
    image:
      repository: "quay.io/frrouting/frr"
      tag: "10.2.1"

Then install with custom values:

helm install openperouter openperouter/openperouter -f values.yaml

Platform-Specific Instructions #

OpenShift #

When running on OpenShift, additional Security Context Constraints (SCCs) must be configured:

oc adm policy add-scc-to-user privileged -n openperouter-system -z controller
oc adm policy add-scc-to-user privileged -n openperouter-system -z router

Verification #

After installation, verify that all components are running correctly:

kubectl get pods -n openperouter-system

You should see pods for:

  • openperouter-controller-* (controller daemonset)
  • openperouter-router-* (router daemonset)
  • openperouter-nodemarker-* (node labeler deployment)

Next Steps #

After successful installation:

  1. Configure the underlay connection to your external router
  2. Set up VNI configurations for your EVPN overlays
  3. Test the integration with BGP-speaking components

For troubleshooting, check the contributing guide for development environment setup and debugging information.