Skip to content

Expose your service in Kubernetes to the Internet with open source FRP!

License

Notifications You must be signed in to change notification settings

zufardhiyaulhaq/frp-operator

Repository files navigation

frp-operator

Expose your service in Kubernetes to the Internet with open source FRP!

Version: 1.2.0 Type: application AppVersion: 0.3.1 made with Go Github main branch build GitHub issues GitHub pull requestsArtifact Hub

Document

  1. RFC: Fast Reverse Proxy Operator

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.

  1. Create machine on cloud provider
  2. Download frps binary
  3. Create server configuration
vi frps.ini

[common]
bind_address = 0.0.0.0
bind_port = 7000
token = yourtoken
  1. 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

  1. Apply some example
kubectl apply -f examples/deployment/
kubectl apply -f examples/client/
  1. Check frpc object
kubectl get client
NAME        AGE
client-01   17m

kubectl get upstream
NAME    AGE
nginx   17m
  1. access the URL
http://178.128.100.87:8080/

Values

Key Type Default Description
operator.image string "zufardhiyaulhaq/frp-operator"
operator.replica int 1
operator.tag string "v0.3.1"
resources.limits.cpu string "200m"
resources.limits.memory string "100Mi"
resources.requests.cpu string "100m"
resources.requests.memory string "20Mi"

see example files here