From a3ceaabbe89c293966056b567ad1376673785b80 Mon Sep 17 00:00:00 2001 From: Xstar97TheNoob <9399967+xstar97@users.noreply.github.com> Date: Tue, 27 Jun 2023 13:02:37 -0400 Subject: [PATCH] feat(mc-router) add mc-router (#9605) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Description** Routes Minecraft client connections to backend servers. ⚒️ Fixes # **⚙️ Type of change** - [X] ⚙️ Feature/App addition - [ ] 🪛 Bugfix - [ ] ⚠️ Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] 🔃 Refactor of current code **🧪 How Has This Been Tested?** **📃 Notes:** the gui list could be better and separated each mapping item needs to be for example: "minecraft.local=10.0.0.123:25565" having the domain split and ip:port as separate items and then recombine them might be easier for the end user. **✔️ Checklist:** - [X] ⚖️ My code follows the style guidelines of this project - [X] 👀 I have performed a self-review of my own code - [ ] #️⃣ I have commented my code, particularly in hard-to-understand areas - [ ] 📄 I have made corresponding changes to the documentation - [ ] ⚠️ My changes generate no new warnings - [ ] 🧪 I have added tests to this description that prove my fix is effective or that my feature works - [ ] ⬆️ I increased versions for any altered app according to semantic versioning **➕ App addition** If this PR is an app addition please make sure you have done the following. - [X] 🪞 I have opened a PR on [truecharts/containers](https://github.com/truecharts/containers) adding the container to TrueCharts mirror repo. - [X] 🖼️ I have added an icon in the Chart's root directory called `icon.png` --- _Please don't blindly check all the boxes. Read them and only check those that apply. Those checkboxes are there for the reviewer to see what is this all about and the status of this PR with a quick glance._ --------- Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> --- charts/incubator/mc-router/.helmignore | 30 +++++ charts/incubator/mc-router/CHANGELOG.md | 1 + charts/incubator/mc-router/Chart.yaml | 28 ++++ charts/incubator/mc-router/README.md | 1 + charts/incubator/mc-router/icon.png | Bin 0 -> 25038 bytes charts/incubator/mc-router/questions.yaml | 125 ++++++++++++++++++ .../incubator/mc-router/templates/NOTES.txt | 1 + .../mc-router/templates/_secrets.tpl | 8 ++ .../incubator/mc-router/templates/common.yaml | 11 ++ charts/incubator/mc-router/values.yaml | 43 ++++++ 10 files changed, 248 insertions(+) create mode 100644 charts/incubator/mc-router/.helmignore create mode 100644 charts/incubator/mc-router/CHANGELOG.md create mode 100644 charts/incubator/mc-router/Chart.yaml create mode 100644 charts/incubator/mc-router/README.md create mode 100644 charts/incubator/mc-router/icon.png create mode 100644 charts/incubator/mc-router/questions.yaml create mode 100644 charts/incubator/mc-router/templates/NOTES.txt create mode 100644 charts/incubator/mc-router/templates/_secrets.tpl create mode 100644 charts/incubator/mc-router/templates/common.yaml create mode 100644 charts/incubator/mc-router/values.yaml diff --git a/charts/incubator/mc-router/.helmignore b/charts/incubator/mc-router/.helmignore new file mode 100644 index 00000000000..77ca5567b26 --- /dev/null +++ b/charts/incubator/mc-router/.helmignore @@ -0,0 +1,30 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png diff --git a/charts/incubator/mc-router/CHANGELOG.md b/charts/incubator/mc-router/CHANGELOG.md new file mode 100644 index 00000000000..825c32f0d03 --- /dev/null +++ b/charts/incubator/mc-router/CHANGELOG.md @@ -0,0 +1 @@ +# Changelog diff --git a/charts/incubator/mc-router/Chart.yaml b/charts/incubator/mc-router/Chart.yaml new file mode 100644 index 00000000000..08f67e2cc59 --- /dev/null +++ b/charts/incubator/mc-router/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +appVersion: "1.18.1" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 12.14.6 +deprecated: false +description: Routes Minecraft client connections to backend servers. +home: https://truecharts.org/charts/incubator/mc-router +icon: https://truecharts.org/img/hotlink-ok/chart-icons/mc-router.png +keywords: + - mc-router + - minecraft +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: mc-router +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/mc-router + - https://github.com/itzg/mc-router +type: application +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - minecraft + truecharts.org/SCALE-support: "true" diff --git a/charts/incubator/mc-router/README.md b/charts/incubator/mc-router/README.md new file mode 100644 index 00000000000..7e59600739c --- /dev/null +++ b/charts/incubator/mc-router/README.md @@ -0,0 +1 @@ +# README diff --git a/charts/incubator/mc-router/icon.png b/charts/incubator/mc-router/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..29339c9576bc6fed373fbd50655df86392d3a40d GIT binary patch literal 25038 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 literal 0 HcmV?d00001 diff --git a/charts/incubator/mc-router/questions.yaml b/charts/incubator/mc-router/questions.yaml new file mode 100644 index 00000000000..ca80d16f7d1 --- /dev/null +++ b/charts/incubator/mc-router/questions.yaml @@ -0,0 +1,125 @@ +# Include{groups} +portals: {} +questions: +# Include{global} +# Include{workload} +# Include{workloadDeployment} +# Include{replicas2} +# Include{podSpec} +# Include{containerMain} +# Include{containerBasic} +# Include{containerAdvanced} +# Include{containerConfig} +# Include{podOptions} + - variable: mcrouter + group: App Configuration + label: MC Router Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: host_minecraft + label: Host and Minecraft + schema: + type: list + default: [] + items: + - variable: domain_minecraft_service + label: Domain and Minecraft Service + schema: + type: string + default: "minecraft.local=localhost:25565" + valid_chars: '^([\w.-]+)=([A-Za-z0-9.-]+):(\d+)$' + required: true +# Include{serviceRoot} + - variable: main + label: Main Service + description: The Primary service on which the Minecraft Server runs on + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelectorLoadBalancer} +# Include{serviceSelectorExtras} + - variable: main + label: Main Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 25564 + required: true + - variable: minecraft + label: Minecraft Service + description: The Minecraft service. + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelectorLoadBalancer} +# Include{serviceSelectorExtras} + - variable: minecraft + label: Minecraft Service Port Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + description: This port exposes the container port on the service + schema: + type: int + default: 25565 + required: true +# Include{serviceExpertRoot} +# Include{serviceExpert} +# Include{serviceList} +# Include{persistenceList} +# Include{ingressRoot} + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} +# Include{ingressTLS} +# Include{ingressTraefik} +# Include{ingressAdvanced} +# Include{ingressList} +# Include{securityContextRoot} + + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 568 +# Include{securityContextContainer} +# Include{securityContextAdvanced} +# Include{securityContextPod} + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + +# Include{resources} +# Include{advanced} +# Include{addons} +# Include{codeserver} +# Include{netshoot} +# Include{vpn} +# Include{documentation} diff --git a/charts/incubator/mc-router/templates/NOTES.txt b/charts/incubator/mc-router/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/charts/incubator/mc-router/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/charts/incubator/mc-router/templates/_secrets.tpl b/charts/incubator/mc-router/templates/_secrets.tpl new file mode 100644 index 00000000000..61883b6b82f --- /dev/null +++ b/charts/incubator/mc-router/templates/_secrets.tpl @@ -0,0 +1,8 @@ +{{/* Define the secrets */}} +{{- define "mcrouter.secrets" -}} +{{- $mcrouter := .Values.mcrouter }} + +enabled: true +data: + MAPPING: {{ join "," $mcrouter.host_minecraft }} +{{- end -}} diff --git a/charts/incubator/mc-router/templates/common.yaml b/charts/incubator/mc-router/templates/common.yaml new file mode 100644 index 00000000000..1e2918e30fc --- /dev/null +++ b/charts/incubator/mc-router/templates/common.yaml @@ -0,0 +1,11 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* Render secrets for mcrouter */}} +{{- $secrets := include "mcrouter.secrets" . | fromYaml -}} +{{- if $secrets -}} + {{- $_ := set .Values.secret "secrets" $secrets -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/charts/incubator/mc-router/values.yaml b/charts/incubator/mc-router/values.yaml new file mode 100644 index 00000000000..8b061508491 --- /dev/null +++ b/charts/incubator/mc-router/values.yaml @@ -0,0 +1,43 @@ +image: + repository: tccr.io/truecharts/mc-router + pullPolicy: IfNotPresent + tag: v1.18.1@sha256:24c0c3e65c62a54eabf1a461ad8d0789d444f9b93c130d5720c249b703dafc23 + +service: + main: + ports: + main: + port: 25564 + minecraft: + enabled: true + ports: + minecraft: + enabled: true + port: 25565 + +mcrouter: + host_minecraft: + - "minecraft.local=localhost:25566" + +workload: + main: + podSpec: + containers: + main: + probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false + envFrom: + - secretRef: + name: "secrets" + env: + API_BINDING: ":{{ .Values.service.main.ports.main.port }}" + PORT: "{{ .Values.service.minecraft.ports.minecraft.port }}" + +portal: + open: + enabled: false