https://github.com/zufardhiyaulhaq/frp-operator
Expose your service in Kubernetes to the Internet with open source FRP!
https://github.com/zufardhiyaulhaq/frp-operator
frp frp-alternative frp-kubernetes frp-operator frpc frps k8s kubernetes kubernetes-frp kubernetes-tunnel operator private-kubernetes proxy tunnel
Last synced: 2 months ago
JSON representation
Expose your service in Kubernetes to the Internet with open source FRP!
- Host: GitHub
- URL: https://github.com/zufardhiyaulhaq/frp-operator
- Owner: zufardhiyaulhaq
- License: mit
- Created: 2022-06-11T12:05:26.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-15T12:28:31.000Z (about 1 year ago)
- Last Synced: 2024-05-01T16:34:23.623Z (about 1 year ago)
- Topics: frp, frp-alternative, frp-kubernetes, frp-operator, frpc, frps, k8s, kubernetes, kubernetes-frp, kubernetes-tunnel, operator, private-kubernetes, proxy, tunnel
- Language: Go
- Homepage:
- Size: 386 KB
- Stars: 29
- Watchers: 2
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Citation: CITATION.cff
Awesome Lists containing this project
README
# frp-operator
Expose your service in Kubernetes to the Internet with open source FRP!
   [](http://golang.org) [](https://github.com/zufardhiyaulhaq/frp-operator/actions/workflows/main.yml) [](https://github.com/zufardhiyaulhaq/frp-operator/issues) [](https://github.com/zufardhiyaulhaq/frp-operator/pulls)[](https://artifacthub.io/packages/search?repo=frp-operator)
## Document
1. [RFC: Fast Reverse Proxy Operator](https://docs.google.com/document/d/18_X4KKLNMAFcfYP-Nh0wwU31RP903IrLuc1Uemxcpoo)## Installing
To install the chart with the release name `my-release`:
```console
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](https://github.com/fatedier/frp)
3. Create server configuration
```
vi frps.ini[common]
bind_address = 0.0.0.0
bind_port = 7000
token = yourtoken
```
4. 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
```console
kubectl apply -f examples/deployment/
kubectl apply -f examples/client/
```
2. Check frpc object
```console
kubectl get client
NAME AGE
client-01 17mkubectl get upstream
NAME AGE
nginx 17m
```3. access the URL
```console
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](https://github.com/zufardhiyaulhaq/frp-operator/blob/main/charts/frp-operator/values.yaml)