frp-operator
December 31, 2025 ยท View on GitHub
Expose your service in Kubernetes to the Internet with open source FRP!
Document
Installing
To install the chart with the release name my-release:
helm repo add frp-operator https://zufardhiyaulhaq.com/frp-operator/charts/releases/
helm install my-frp-operator frp-operator/frp-operator --values values.yaml
Prerequisite
To expose your private Kubernetes service into public network. You need public machine running FRP Server that act as a proxy. Currently the operator doesn't have capability to spine a new machine on cloud providers, but this can be setup in a minute.
- Create machine on cloud provider
- Download
frpsbinary - Create server configuration
vi frps.ini
[common]
bind_address = 0.0.0.0
bind_port = 7000
token = yourtoken
- Run FRP server
frps -c ./frps.ini
You can reuse our build-in ansible playbook to setup the FRP server on your machine, please check https://github.com/zufardhiyaulhaq/frp-operator/tree/main/ansible/server
Usage
- Apply some example
kubectl apply -f examples/deployment/
kubectl apply -f examples/client/
- Check frpc object
kubectl get client
NAME AGE
client-01 17m
kubectl get upstream
NAME AGE
nginx 17m
- access the URL
http://178.128.100.87:8080/
Values
| Key | Type | Default | Description |
|---|---|---|---|
| operator.image | string | "ghcr.io/zufardhiyaulhaq/frp-operator" | |
| operator.replica | int | 1 | |
| operator.tag | string | "v0.6.0" | |
| resources.limits.cpu | string | "200m" | |
| resources.limits.memory | string | "100Mi" | |
| resources.requests.cpu | string | "100m" | |
| resources.requests.memory | string | "20Mi" |
see example files here
Autogenerated from chart metadata using helm-docs v1.14.2