Kuvel
🟡 Updated this year🔍 Analysis
- 👍 0.2% endorsement rate
📋 About This Mod
# Kuvel ## Overview Kuvel, A service discovery plugin for Velocity. It will automatically discover Minecraft servers and register/unregister them within Velocity. ## Features * Monitor Minecraft pods in a Kubernetes cluster and automatically register/unregister them within Velocity * Create a LoadBalancer server and distribute players trying to join to the linked servers. * Synchronize server names across multiple Velocity instances using Redis ## Installing The Plugin can be downloaded from (https://github.com/AzisabaNetwork/Kuvel/releases/latest). Download `Kuvel.jar` and install it into Velocity plugins directory. The config file requires initial setup as seen below. ```yml # The kubernetes namespace to use for the server discovery. namespace: "" # The prefix to use for the keys of the server labels or annotations. label-key-prefix: "kuvel.azisaba.net" # Server name synchronization by Redis is required in load-balanced environments using multiple Velocity instances. redis: group-name: "develop" connection: hostname: "redis" port: 6379 # username is optional. if you have authentication enabled, you can use it here. Otherwise you can leave it blank or null. username: "default" # password is optional. if you have authentication enabled, you can use it here. Otherwise you can leave it blank or null. password: "password" # label-selectors are used to filter Pods and ReplicaSets to be registered. label-selectors: - "kuvel.azisaba.net/enable-server-discovery=true" ``` Alternatively you can use environment variables to configure Kuvel. The environment variable will override the config.yml and are `KUVEL_NAMESPACE`, `KUVEL_LABEL_KEY_PREFIX`, `KUVEL_REDIS_GROUPNAME`, `KUVEL_REDIS_CONNECTION_HOSTNAME`, `KUVEL_REDIS_CONNECTION_PORT`, `KUVEL_REDIS_CONNECTION_USERNAME`, and `KUVEL_REDIS_CONNECTION_PASSWORD`. In order for Kuvel to monitor the server, you must request permission from Kubernetes. For Velocity pods, please allow get/list/watch to Pods and ReplicaSets. ```yml apiVersion: v1 kind: ServiceAccount metadata: name: velocity-account namespace: default --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: velocity-clusterrolebiding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: view subjects: - kind: ServiceAccount name: velocity-account namespace: default ``` ```yml # Apply ServiceAccount to the Velocity pod apiVersion: apps/v1 kind: ... # ... spec: serviceAccountName: velocity-account # ... ``` ## Enable Service Discovery on the Minecraft Servers To tell Kuvel that the pod is a Minecraft server, use the Kubernetes label service. The label keys and values are specified in the config file. By default, the label key is `kuvel.azisaba.net/enable-server-discovery` and the value is `true`. The following labels are also used for some other features. | Label Name | Value | |:---------------------------------------:|:-----------------------------------------------------:| | kuvel.azisaba.net/preferred-server-name | Name of the server you wish to register with Velocity | | kuvel.azisaba.net/initial-server | true / false | | kuvel.azisaba.net/disable-name-suffix | true / false | If server names longer than 63 characters are desired, the `kuvel.azisaba.net/preferred-server-name` annotation can be used instead of the label. If `kuvel.azisaba.net/disable-name-suffix=true` is set on a Pod, Kuvel will register the server name exactly as `preferred-server-name` (no `-1` suffix). If multiple replicas are detected, Kuvel logs an error and skips the extra pods. This label is intended for single-replica Pods only. ### Pod ```yml apiVersion: v1 kind: Pod metadata: name: test-server labels: kuvel.azisaba.net/enable-server-discovery: "true" # Required for Kuvel to detect Minecraft servers. Depends on your config. kuvel.azisaba.net/preferred-server-name: "test-server" # Required for Kuvel to name the server # kuvel.azisaba.net/initial-server: "true" # Uncomment this line if you want to make this server the initial server. # kuvel.azisaba.net/disable-name-suffix: "true" # Use the exact preferred name (no -1 suffix); single replica only. spec: containers: - name: test-server image: itzg/minecraft-server:java8 ports: - containerPort: 25565 ``` ### Deployment ```yml apiVersion: apps/v1 kind: Deployment metadata: name: test-server-deployment spec: replicas: 2 selector: matchLabels: app: test-server-deployment template: metadata: labels: app: test-server-deployment kuvel.azisaba.net/enable-server-discovery: "true" # Required for Kuvel to detect Minecraft servers. Depends on your config. kuvel.azisaba.net/preferred-server-name: "test-server" # R
# Kuvel ## Overview Kuvel, A service discovery plugin for Velocity. It will automatically discover Minecraft servers and register/unregister them within Velocity.
## Features
Monitor Minecraft pods in a Kubernetes cluster and automatically register/unregister them within Velocity Create a LoadBalancer server and distribute players trying to join to the linked servers. * Synchronize server names across multiple Velocity instances using Redis
## Installing
The Plugin can be downloaded from (https://github.com/AzisabaNetwork/Kuvel/releases/latest). Download `Kuvel.jar` and install it into Velocity plugins directory. The config file requires initial setup as seen below.
```yml # The kubernetes namespace to use for the server discovery. namespace: "" # The prefix to use for the keys of the server labels or annotations. label-key-prefix: "kuvel.azisaba.net" # Server name synchronization by Redis is required in load-balanced environments using multiple Velocity instances. redis: group-name: "develop" connection: hostname: "redis" port: 6379 # username is optional. if you have authentication enabled, you can use it here. Otherwise you can leave it blank or null. username: "default" # password is optional. if you have authentication enabled, you can use it here. Otherwise you can leave it blank or null. password: "password"
# label-selectors are used to filter Pods and ReplicaSets to be registered. label-selectors: - "kuvel.azisaba.net/enable-server-discovery=true" ```
Alternatively you can use environment variables to configure Kuvel. The environment variable will override the config.yml and are `KUVEL_NAMESPACE`, `KUVEL_LABEL_KEY_PREFIX`, `KUVEL_REDIS_GROUPNAME`, `KUVEL_REDIS_CONNECTION_HOSTNAME`, `KUVEL_REDIS_CONNECTION_PORT`, `KUVEL_REDIS_CONNECTION_USERNAME`, and `KUVEL_REDIS_CONNECTION_PASSWORD`.
In order for Kuvel to monitor the server, you must request permission from Kubernetes. For Velocity pods, please allow get/list/watch to Pods and ReplicaSets.
```yml apiVersion: v1 kind: ServiceAccount metadata: name: velocity-account namespace: default --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: velocity-clusterrolebiding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: view subjects: - kind: ServiceAccount name: velocity-account namespace: default ``` ```yml # Apply ServiceAccount to the Velocity pod apiVersion: apps/v1 kind: ... # ... spec: serviceAccountName: velocity-account # ... ```
## Enable Service Discovery on the Minecraft Servers
To tell Kuvel that the pod is a Minecraft server, use the Kubernetes label service. The label keys and values are specified in the config file. By default, the label key is `kuvel.azisaba.net/enable-server-discovery` and the value is `true`.
The following labels are also used for some other features.
| Label Name | Value | |:---------------------------------------:|:-----------------------------------------------------:| | kuvel.azisaba.net/preferred-server-name | Name of the server you wish to register with Velocity | | kuvel.azisaba.net/initial-server | true / false | | kuvel.azisaba.net/disable-name-suffix | true / false |
If server names longer than 63 characters are desired, the `kuvel.azisaba.net/preferred-server-name` annotation can be used instead of the label. If `kuvel.azisaba.net/disable-name-suffix=true` is set on a Pod, Kuvel will register the server name exactly as `preferred-server-name` (no `-1` suffix). If multiple replicas are detected, Kuvel logs an error and skips the extra pods. This label is intended for single-replica Pods only.
```yml apiVersion: v1 kind: Pod metadata: name: test-server labels: kuvel.azisaba.net/enable-server-discovery: "true" # Required for Kuvel to detect Minecraft servers. Depends on your config. kuvel.azisaba.net/preferred-server-name: "test-server" # Required for Kuvel to name the server # kuvel.azisaba.net/initial-server: "true" # Uncomment this line if you want to make this server the initial server. # kuvel.azisaba.net/disable-name-suffix: "true" # Use the exact preferred name (no -1 suffix); single replica only. spec: containers: - name: test-server image: itzg/minecraft-server:java8 ports: - containerPort: 25565 ```
### Deployment ```yml apiVersion: apps/v1 kind: Deployment metadata: name: test-server-deployment spec: replicas: 2 selector: matchLabels: app: test-server-deployment template: metadata: labels: app: test-server-deployment kuvel.azisaba.net/enable-server-discovery: "true" # Required for Kuvel to detect Minecraft servers. Depends on your config. kuvel.azisaba.net/preferred-server-name: "test-server" # R
📊 Mod Details
- Game
- Minecraft Plugins
- Author
- acrylic-style
- Version
- 3.1.0-alpha.5
- Downloads
- 656
- Endorsements
- 1
- Category
- technology
- Created
- 8/19/2024
- Updated
- 4/7/2026
- Game Versions
- 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1
- Tags
- technology, utility
🔧 How to Install Minecraft Plugins Mods
Download from Modrinth. Use Prism Launcher or drop into your mods folder.
📖 Full step-by-step install guide for Minecraft Plugins →
Visit the official mod page for specific installation instructions for this mod.
🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Plugins commands, item IDs, and more.
❓ Frequently Asked Questions
Which Minecraft Plugins versions does Kuvel support?
The author lists 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2. Other versions may work but are untested by the author.
What is the latest version of Kuvel?
Version 3.1.0-alpha.5, published 2026-04-07 with 656 downloads recorded at the source.
Keep browsing — more Minecraft Plugins mods await