qumine/ingress-controller

By qumine

Updated over 2 years ago

Kubernetes ingress controller for routing Minecraft connections based on the requested hostname

Image

1M+

QuMine - Ingress

GitHub ReleaseGitHub WorkflowGoDocGo Report Card

Kubernetes ingress controller for routing Minecraft connections based on the requested hostname

Usage

Kubernetes

HELM Charts can be found here: qumine/charts

Ingress

The ingress should be run as a daemonset on all of your outwards facing nodes.

By default the ingress should run fine without customization, but if you need to the behaviour of the ingress can be customized by setting a couple of arguments. Here is the full list of available arguments

  -api-host string
        Address the rest api will listen on (default "0.0.0.0")
  -api-port int
        Port the rest api will listen on (default 8080)
  -debug
        Enable debugging log level
  -help
        Show this page
  -host string
        Address the server will listen on (default "0.0.0.0")
  -kube-config string
        Path of the kube config file to use
  -port int
        Port the server will listen on (default 25565)
  -version
        Show the current version
Upstream Services

To enable a service to be discovered by the ingress it needs to have the ingress.qumine.io/hostname annotations. Optionaly you can set the ingress.qumine.io/portname annotation to define which port will be used for the minecraft connection.

apiVersion: v1
kind: Service
metadata:
  name: example
  annotations:
    ingress.qumine.io/hostname: "example"
    ingress.qumine.io/portname: "minecraft"
spec:
  ports:
  - port: 25565
    name: minecraft
  selector:
    app: example

Outside of Kubernetes

Will follow in the near future

Development

Perfrom a Snapshot release locally

docker run -it --rm \
  -v ${PWD}:/build -w /build \
  -v /var/run/docker.sock:/var/run/docker.sock \
  goreleaser/goreleaser \
  release --snapshot --rm-dist

Docker Pull Command

docker pull qumine/ingress-controller