https://github.com/omio-labs/kubernetes-ingressify
Generate your own kubernetes ingress-driven configuration for any backend router
https://github.com/omio-labs/kubernetes-ingressify
devops devops-tools docker ingress kubernetes proxy router
Last synced: 2 months ago
JSON representation
Generate your own kubernetes ingress-driven configuration for any backend router
- Host: GitHub
- URL: https://github.com/omio-labs/kubernetes-ingressify
- Owner: omio-labs
- License: mit
- Created: 2017-11-13T11:14:30.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-03-26T12:07:52.000Z (about 4 years ago)
- Last Synced: 2026-04-10T22:36:53.841Z (2 months ago)
- Topics: devops, devops-tools, docker, ingress, kubernetes, proxy, router
- Language: Go
- Homepage:
- Size: 1.56 MB
- Stars: 3
- Watchers: 104
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# kubernetes-ingressify
[](https://github.com/goeuro/kubernetes-ingressify/releases/latest)
[](https://travis-ci.org/goeuro/kubernetes-ingressify)
[](https://travis-ci.org/goeuro/kubernetes-ingressify/branches)
[](https://goreportcard.com/report/github.com/goeuro/kubernetes-ingressify)
[](https://codecov.io/gh/goeuro/kubernetes-ingressify)
This is a simple binary that watches kubernetes ingress rules, renders your template and calls your script.
You can use this to generate ingress-based configuration for any backend router.
## Why?
There are multiple kubernetes ingress controller implementations.
Unfortunately they control both router implementation (how router is compiled, built, etc), behavior and configuration.
Its not easy to extend them and add custom logic, e.g. adding custom modules or plugins on the router, custom annotations and routing features, overriding templates, etc.
Different organizations have different traffic handling needs, and having a third-party ingress controller own everything is not possible in many scenarios.
But at the same time, the cost of writing your own ingress controller is also quite high.
This is an attempt to decouple router implementation from configuration and allow anyone to easily create their own ingress controllers.
## Roadmap
- [x] Bootstrap
- [ ] Poll ingress rules, templating and implementation
- [ ] Release v0.1
- [ ] Watch endpoint events, templating and implementation
- [ ] Release v0.2
- [ ] Documentation and examples
## Usage
We have a special release called `v0.0.1-snapshot` which always reflects master build.
Please go ahead and grab it: https://github.com/goeuro/kubernetes-ingressify/releases/tag/v0.0.1-snapshot
Create a configuration file:
```
# ingress.cfg
kubeconfig:
in_template:
out_file:
interval:
Run it:
```
kubernetes-ingressify -config ingress.cfg
```
For more usage details, please refer to the [examples](https://github.com/goeuro/kubernetes-ingressify/tree/master/examples)
## Development
Use docker/docker-compose to develop. You don't need to have golang installed.
* `docker-compose build` Builds image for development
* `docker-compose run --rm default /bin/bash` Gives you a terminal inside the container, from where you can run go commands like:
* `bin/test.sh` Runs all tests
* `gofmt -s -w .` Fix code formatting
* `go run main.go` Compiles and runs main
* Adding dependencies:
* catch-22: godep has issues, dep is alpha (not all libs support it) and glide is deprecated in favor of dep
* We use Godep as the least working option, but it means slightly additional effort when adding dependencies
* SSH into your container (as above) and follow https://github.com/tools/godep#add-a-dependency