r2
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
🚀 Expose the website directly into the internet! The Kuberntes Ingress Controller based on Cloudflare Tunnel.
git clone https://github.com/STRRL/cloudflare-tunnel-ingress-controller.gitSTRRL/cloudflare-tunnel-ingress-controllerTLDR; This project simplifies exposing Kubernetes services to the internet easily and securely using Cloudflare Tunnel.
We'd love to hear how the project works for you—please take a minute to fill out the short community survey: cloudflare-tunnel-ingress-controller feedback.
To use the Cloudflare Tunnel Ingress Controller, you need to have a Cloudflare account and a domain configured on Cloudflare. You also need a Cloudflare API token with Zone:Zone:Read, Zone:DNS:Edit, and Account:Cloudflare Tunnel:Edit permissions, which you can create quickly using this template; see Cloudflare credentials for details.
Additionally, you need to fetch the Account ID from the Cloudflare dashboard.
Finally, you need to have a Kubernetes cluster with public Internet access.
Take a look on this video to see how smoothly and easily it works:
Install the controller with Helm:
helm upgrade --install --wait \ cloudflare-tunnel-ingress-controller \ cloudflare-tunnel-ingress-controller \ --repo https://helm.strrl.dev \ --namespace cloudflare-tunnel-ingress-controller \ --create-namespace \ --set cloudflare.apiToken="<CLOUDFLARE_API_TOKEN>" \ --set cloudflare.accountId="<CLOUDFLARE_ACCOUNT_ID>" \ --set cloudflare.tunnelName="<TUNNEL_NAME>"
Follow the quickstart to publish your first Ingress.
The controller supports CLI flags and matching environment variables. See controller configuration for the complete list and defaults.
There is also an awesome project which could integrate with Cloudflare Tunnel as CRD, check it out adyanth/cloudflare-operator!
Contributions are welcome! If you find a bug or have a feature request, please open an issue or submit a pull request. To speed up local development and testing, you can use Act to run GitHub Actions workflows locally. For example, to run unit tests using the same workflow as CI:
act -W .github/workflows/unit-test.yaml
You can view all available workflows here.
To run the project locally, Skaffold is integrated into the Makefile. First, install Skaffold by following the instructions at skaffold.dev.
Then, start the development environment with:
skaffold dev
Important: The controller pod expects a Kubernetes
Secretnamedcloudflare-apiwith credentials to authenticate with Cloudflare. If this secret is not present, the pod will fail with:CreateContainerConfigError: secret "cloudflare-api" not found.
There are two ways to provide the required secret:
Manually create it with kubectl:
kubectl create secret generic cloudflare-api \ -n cloudflare-tunnel-ingress-controller-dev \ --from-literal=api-token='your_api_token' \ --from-literal=cloudflare-account-id='your_account_id' \ --from-literal=cloudflare-tunnel-name='your_tunnel_name'
(Recommended for local development) Copy the example file hack/dev/cloudflare-api.example.yaml to hack/dev/cloudflare-api.yaml and fill in your own credentials:
cp hack/dev/cloudflare-api.example.yaml hack/dev/cloudflare-api.yaml
This file is included in .gitignore, so your secrets will not be committed to version control.
When you run skaffold dev, the secret defined in cloudflare-api.yaml will be automatically applied to your cluster.
apiVersion: v1 kind: Secret metadata: name: cloudflare-api namespace: cloudflare-tunnel-ingress-controller-dev stringData: api-token: "<your_api_token>" cloudflare-account-id: "<your_account_id>" cloudflare-tunnel-name: "<your_tunnel_name>"
This project is licensed under the MIT License. See the LICENSE file for details.
more like this
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
This is Okontu (aka Okonomi Ubuntu) with my collection of dotfiles and installers for environments on Ubuntu Linux. Ins…
家长可控的自建儿童视频流媒体播放器:无广告、无推荐流、封闭内容花园 · Self-hosted, ad-free kids video streaming player with parental controls — Cloudflar…
A smart music file organization tool based on audio fingerprinting technology. It automatically monitors the download d…
search projects, people, and tags