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:
- Configure the underlay connection to your external router
- Set up VNI configurations for your EVPN overlays
- Test the integration with BGP-speaking components
For troubleshooting, check the contributing guide for development environment setup and debugging information.