https://github.com/charlesmcchan/rainier
Rainier is a container network interface (CNI) plugin that creates one network interface for each container and attach it to an OVS bridge
https://github.com/charlesmcchan/rainier
cni cni-plugin kubernetes openvswitch
Last synced: about 2 months ago
JSON representation
Rainier is a container network interface (CNI) plugin that creates one network interface for each container and attach it to an OVS bridge
- Host: GitHub
- URL: https://github.com/charlesmcchan/rainier
- Owner: charlesmcchan
- Created: 2018-06-25T05:28:45.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-08-26T05:54:04.000Z (almost 8 years ago)
- Last Synced: 2025-07-21T12:49:12.862Z (10 months ago)
- Topics: cni, cni-plugin, kubernetes, openvswitch
- Language: Go
- Homepage:
- Size: 8.79 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rainier
Rainier is a container network interface (CNI) plugin that creates one network interface for each container and attach it to an OVS bridge
## How to use
### Prerequisite
- golang >= 1.11
- kubernetes
- kubernetes-cni
### Fetch rainier source code
```bash
git clone git@github.com:charlesmchan/rainier.git
```
### Build
```bash
cd rainier
go build rainier.go
```
### Link binary and configuration to CNI folder
```bash
sudo mkdir -p /etc/cni/net.d
sudo mkdir -p /opt/cni/bin
sudo ln -s config /etc/cni/net.d/rainier.conf
sudo ln -s rainier /opt/cni/bin/rainier
```
### Test with sample service
```bash
sudo kubectl create -f service.yaml
```
`service.yaml` will spawn 3 `busybox` containers. All of them should get an IP address and should be able to ping one another if OVS is set to standalone mode
## Note
Kubernetes does not take DNS configuration returned from CNI. We need to configure DNS in the Kubernetes pod configuration
## Todo
- Test cases
## How it is named
I have a bad sense of naming a project and I was eating rainier cherries while coding
## Acknowledgement
Special thanks to @hwchiu
## Reference
- [CNI](https://github.com/containernetworking/cni)
- [CNI plugin](https://github.com/containernetworking/plugins)
- [Go OpenvSwitch library](https://github.com/digitalocean/go-openvswitch)