diff --git a/charts/incubator/minecraft-bungeecord/Chart.yaml b/charts/incubator/minecraft-bungeecord/Chart.yaml new file mode 100644 index 00000000000..a3d9f73cb1a --- /dev/null +++ b/charts/incubator/minecraft-bungeecord/Chart.yaml @@ -0,0 +1,30 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: minecraft-bungeecord +version: 0.0.1 +appVersion: "2022.4.1" +description: A Spigot BungeeCord server. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/incubator/minecraft-bungeecord +icon: https://truecharts.org/img/chart-icons/minecraft-bungeecord.png +keywords: + - gameserver + - minecraft +sources: + - https://hub.docker.com/r/itzg/bungeecord + - https://github.com/itzg/docker-bungeecord +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.4.5 + # condition: +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - games + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/minecraft-bungeecord/ci/base-values.yaml b/charts/incubator/minecraft-bungeecord/ci/base-values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/charts/incubator/minecraft-bungeecord/ci/j11-values.yaml b/charts/incubator/minecraft-bungeecord/ci/j11-values.yaml new file mode 100644 index 00000000000..352f7bd7765 --- /dev/null +++ b/charts/incubator/minecraft-bungeecord/ci/j11-values.yaml @@ -0,0 +1,4 @@ +image: + repository: itzg/bungeecord + tag: java11-2022.4.1@sha256:fe5af3659c3e25b110edf83025a15725988770baee340ceecd97822bac6dcc09 + pullPolicy: Always diff --git a/charts/incubator/minecraft-bungeecord/ci/j8-values.yaml b/charts/incubator/minecraft-bungeecord/ci/j8-values.yaml new file mode 100644 index 00000000000..d6979a835db --- /dev/null +++ b/charts/incubator/minecraft-bungeecord/ci/j8-values.yaml @@ -0,0 +1,4 @@ +image: + repository: itzg/bungeecord + tag: java8-2022.4.1@sha256:b949350264b2eab450fc68485defd9c9c1cd281c012250493a1670ad38a88848 + pullPolicy: Always diff --git a/charts/incubator/minecraft-bungeecord/docs/installation_notes.md b/charts/incubator/minecraft-bungeecord/docs/installation_notes.md new file mode 100644 index 00000000000..3a7c491078d --- /dev/null +++ b/charts/incubator/minecraft-bungeecord/docs/installation_notes.md @@ -0,0 +1,7 @@ +# Installation Notes + +- Set `Select Image` to one of the values from the list. `Java 17`, `Java 11`, `Java 8`. Default is `Java 17`. +- Set `ENABLE_RCON` to **true**, to enable RCON server. +- Set `RCON_PASSWORD` to a SuperSecurePassword. +- Set `REPLACE_ENV_VARIABLES` to **true**, to replace variables that match your defined environment variables in all the files in /server. +- Set `ONLINE_MODE` _MUST_ be set to **false** which is required by bungeecord. diff --git a/charts/incubator/minecraft-bungeecord/icon.png b/charts/incubator/minecraft-bungeecord/icon.png new file mode 100644 index 00000000000..29339c9576b Binary files /dev/null and b/charts/incubator/minecraft-bungeecord/icon.png differ diff --git a/charts/incubator/minecraft-bungeecord/questions.yaml b/charts/incubator/minecraft-bungeecord/questions.yaml new file mode 100644 index 00000000000..fca0b6ff674 --- /dev/null +++ b/charts/incubator/minecraft-bungeecord/questions.yaml @@ -0,0 +1,446 @@ +# Include{groups} +portals: {} +questions: +# Include{global} + - variable: imageSelector + group: "Container Image" + label: "Select Image" + schema: + type: string + default: "image" + enum: + - value: "image" + description: "Default Image" + - value: "J17Image" + description: "Java 17" + - value: "j11Image" + description: "Java 11" + - value: "j8Image" + description: "Java 8" + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secretEnv + group: "Container Configuration" + label: "Image Secrets" + schema: + additional_attrs: true + type: dict + attrs: + - variable: RCON_PASSWORD + label: "RCON Password" + description: "This uses a third-party plugin to work, orblazer/bungee-rcon, which is automatically downloaded" + schema: + type: string + private: true + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: TYPE + label: "Server Type" + description: "The type of the server. When the type is set to CUSTOM, the environment setting BUNGEE_JAR_URL is required." + schema: + type: string + required: true + default: "WATERFALL" + enum: + - value: "BUNGEECORD" + description: "Bungeecord" + - value: "WATERFALL" + description: "Waterfall" + - value: "VELOCITY" + description: "Velocity" + - value: "CUSTOM" + description: "Custom" + - variable: BUNGEE_JAR_URL + label: "Bunge Jar URL" + description: "Used to download a comma separated list of *.jar urls to the plugins folder." + schema: + type: string + default: "" + required: true + show_if: [[TYPE, "=", "CUSTOM"]] + - variable: PLUGINS + label: "Plugins" + description: "Used to download a comma separated list of *.jar urls to the plugins folder." + schema: + type: string + default: "" + - variable: SPIGET_PLUGINS + label: "Spiget Plugins" + description: "The SPIGET_PLUGINS variable can be set with a comma-separated list of SpigotMC resource IDs." + schema: + type: string + default: "" + - variable: ENABLE_RCON + label: "Enable RCON" + schema: + type: boolean + default: true + - variable: REPLACE_ENV_VARIABLES + label: "Replace Env Variables" + description: "Replace variables that match your defined environment variables in all the files in /server." + schema: + type: boolean + default: false + - variable: ONLINE_MODE + label: "Enable Online Mode" + description: "MUST set to false which is required by bungeecord" + schema: + type: boolean + default: false + - variable: advancedenvironment + label: "Show Advanced Server Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: MEMORY + label: "Memory" + description: "The Java memory heap size to specify to the JVM." + schema: + type: string + required: true + default: "512M" + - variable: INIT_MEMORY + label: "Init Memory" + description: "Can be set to use a different initial heap size." + schema: + type: string + required: true + default: "512M" + - variable: MAX_MEMORY + label: "Max Memory" + description: "Can be set to use a different max heap size." + schema: + type: string + required: true + default: "512M" + - variable: NETWORKADDRESS_CACHE_TTL + label: "Network Address Cache TTL" + description: "Number of seconds to cache the successful network address lookups." + schema: + type: int + default: 60 + - variable: JVM_OPTS + label: "JVM Options" + schema: + type: string + default: "" + - variable: JVM_XX_OPTS + label: "JVM -X Options" + schema: + type: string + default: "" + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - 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: 25565 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 25577 + - variable: rcon + label: "RCON Service" + description: "RCON service" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: rcon + label: "RCON 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: 25578 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 25578 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + additional_attrs: true + type: dict + attrs: +# Include{persistenceBasic} +# Include{persistenceAdvanced} + - variable: server + label: "App Server Storage" + description: "Stores the Application Server." + schema: + additional_attrs: true + type: dict + attrs: +# Include{persistenceBasic} +# Include{persistenceAdvanced} + - variable: plugins + label: "App Plugins Storage" + description: "Stores the Application Plugins." + schema: + additional_attrs: true + type: dict + attrs: +# Include{persistenceBasic} +# Include{persistenceAdvanced} +# Include{persistenceList} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID this App of the user running the application" + schema: + type: int + default: 0 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/minecraft-bungeecord/templates/common.yaml b/charts/incubator/minecraft-bungeecord/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/charts/incubator/minecraft-bungeecord/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/charts/incubator/minecraft-bungeecord/values.yaml b/charts/incubator/minecraft-bungeecord/values.yaml new file mode 100644 index 00000000000..f94100834e6 --- /dev/null +++ b/charts/incubator/minecraft-bungeecord/values.yaml @@ -0,0 +1,65 @@ +image: + repository: tccr.io/truecharts/bungeecord + tag: v2022.4.1@sha256:b6e21cbc222cb4022baa342749c6364ccb26a8678e4de5d42db5cc592a682a5e + pullPolicy: Always +j17Image: + repository: tccr.io/truecharts/bungeecord-java17 + tag: v2022.4.1@sha256:21121f66eba1d3594ab1719c61c139336f04ef0585e6d60a929aa12a24f37e19 + pullPolicy: Always +j11Image: + repository: tccr.io/truecharts/bungeecord-java11 + tag: v2022.4.1@sha256:7594351f800ceddc45a00b013cb57d2867d1abbbbf573ceeec83c335acc21a1b + pullPolicy: Always +j8Image: + repository: tccr.io/truecharts/bungeecord-java8 + tag: v2022.4.1@sha256:7291e010fa9e029e37c9a260b657c4404dbe08da51a45f862ee22d480ff6494d + pullPolicy: Always + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +secretEnv: + RCON_PASSWORD: "secretrconpass" + +env: + RCON_PORT: 25578 + TYPE: "BUNGEECORD" + ONLINE_MODE: false + MEMORY: 512M + INIT_MEMORY: 512M + MAX_MEMORY: 512M + NETWORKADDRESS_CACHE_TTL: 60 + REPLACE_ENV_VARIABLES: true + # JVM_OPTS: "" + # JVM_XX_OPTS: "" + # PLUGINS: "" + +service: + main: + ports: + main: + port: 25565 + targetPort: 25577 +rcon: + enabled: true + ports: + rcon: + enabled: true + port: "{{ .Values.env.RCON_PORT }}" + targetPort: "{{ .Values.env.RCON_PORT }}" + +persistence: + config: + enabled: true + mountPath: "/config" + server: + enabled: true + mountPath: "/server" + plugins: + enabled: true + mountPath: "/plugins" diff --git a/cspell.config.yaml b/cspell.config.yaml index 9afbdb77b39..bee32c03a06 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -7,6 +7,7 @@ words: - backupname - bazarr - bugfixer's + - bungeecord - cheatsheet - cloudflared - Cloudflareddns