From 1a7ed94d905f073cb1f35528df5673f4c8f681fa Mon Sep 17 00:00:00 2001 From: sonicaj Date: Wed, 24 Jan 2024 08:12:40 +0000 Subject: [PATCH] Publish new changes in catalog --- community/palworld/1.0.0/Chart.lock | 6 + community/palworld/1.0.0/Chart.yaml | 26 + community/palworld/1.0.0/README.md | 3 + community/palworld/1.0.0/app-readme.md | 3 + .../palworld/1.0.0/charts/common-1.2.9.tgz | Bin 0 -> 63208 bytes community/palworld/1.0.0/ci/basic-values.yaml | 13 + community/palworld/1.0.0/ix_values.yaml | 43 ++ community/palworld/1.0.0/metadata.yaml | 20 + community/palworld/1.0.0/questions.yaml | 518 ++++++++++++++++++ community/palworld/1.0.0/templates/NOTES.txt | 1 + .../palworld/1.0.0/templates/_palworld.tpl | 99 ++++ .../palworld/1.0.0/templates/_persistence.tpl | 35 ++ .../palworld/1.0.0/templates/_service.tpl | 21 + .../palworld/1.0.0/templates/_validation.tpl | 7 + .../palworld/1.0.0/templates/common.yaml | 10 + .../palworld/1.0.0/upgrade_strategy_disabled | 41 ++ community/palworld/item.yaml | 6 + 17 files changed, 852 insertions(+) create mode 100644 community/palworld/1.0.0/Chart.lock create mode 100644 community/palworld/1.0.0/Chart.yaml create mode 100644 community/palworld/1.0.0/README.md create mode 100644 community/palworld/1.0.0/app-readme.md create mode 100644 community/palworld/1.0.0/charts/common-1.2.9.tgz create mode 100644 community/palworld/1.0.0/ci/basic-values.yaml create mode 100644 community/palworld/1.0.0/ix_values.yaml create mode 100644 community/palworld/1.0.0/metadata.yaml create mode 100644 community/palworld/1.0.0/questions.yaml create mode 100644 community/palworld/1.0.0/templates/NOTES.txt create mode 100644 community/palworld/1.0.0/templates/_palworld.tpl create mode 100644 community/palworld/1.0.0/templates/_persistence.tpl create mode 100644 community/palworld/1.0.0/templates/_service.tpl create mode 100644 community/palworld/1.0.0/templates/_validation.tpl create mode 100644 community/palworld/1.0.0/templates/common.yaml create mode 100755 community/palworld/1.0.0/upgrade_strategy_disabled create mode 100644 community/palworld/item.yaml diff --git a/community/palworld/1.0.0/Chart.lock b/community/palworld/1.0.0/Chart.lock new file mode 100644 index 0000000000..89fca8d37d --- /dev/null +++ b/community/palworld/1.0.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.2.9 +digest: sha256:af1a9a1f87e3e48453c9f25f909f5ebcd7fa6e25162b7b425448ba752bcdbc5c +generated: "2024-01-22T14:15:27.684929848+02:00" diff --git a/community/palworld/1.0.0/Chart.yaml b/community/palworld/1.0.0/Chart.yaml new file mode 100644 index 0000000000..3eac6242b7 --- /dev/null +++ b/community/palworld/1.0.0/Chart.yaml @@ -0,0 +1,26 @@ +name: palworld +description: Palworld is a multiplayer, open-world survival crafting game where you befriend and collect mysterious creatures called "Pals". +annotations: + title: Palworld +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: palworld +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ + email: dev@ixsystems.com +dependencies: + - name: common + repository: file://../../../common + version: 1.2.9 +home: https://www.pocketpair.jp/palworld +icon: https://media.sys.truenas.net/apps/palworld/icons/icon.webp +sources: + - https://www.pocketpair.jp/palworld + - https://github.com/truenas/charts/tree/master/library/ix-dev/community/palworld + - https://github.com/ich777/docker-steamcmd-server/tree/palworld +keywords: + - game + - palworld diff --git a/community/palworld/1.0.0/README.md b/community/palworld/1.0.0/README.md new file mode 100644 index 0000000000..8738d28e48 --- /dev/null +++ b/community/palworld/1.0.0/README.md @@ -0,0 +1,3 @@ +# Palworld + +[Palworld](https://www.pocketpair.jp/palworld) is a multiplayer, open-world survival crafting game where you befriend and collect mysterious creatures called "Pals". diff --git a/community/palworld/1.0.0/app-readme.md b/community/palworld/1.0.0/app-readme.md new file mode 100644 index 0000000000..8738d28e48 --- /dev/null +++ b/community/palworld/1.0.0/app-readme.md @@ -0,0 +1,3 @@ +# Palworld + +[Palworld](https://www.pocketpair.jp/palworld) is a multiplayer, open-world survival crafting game where you befriend and collect mysterious creatures called "Pals". diff --git a/community/palworld/1.0.0/charts/common-1.2.9.tgz b/community/palworld/1.0.0/charts/common-1.2.9.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a6f1cd325bacc9674ee9b245a249e168aeb0c10d GIT binary patch literal 63208 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 + Format: EpicApp=PalServer + schema: + type: list + default: + - EpicApp=PalServer + items: + - variable: gameParam + label: Game Parameter + schema: + type: string + required: true + - variable: gameParamsExtra + label: Extra Game Parameters + description: | + Enter your extra game parameters
+ Format: -NoAsyncLoadingThread + schema: + type: list + default: + - -No-useperfthreads + - -NoAsyncLoadingThread + - -UseMultithreadForDS + items: + - variable: gameParamExtra + label: Extra Game Parameter + schema: + type: string + required: true + - variable: updatePublicIP + label: Update Public IP + description: | + If enabled the container will check on each container + start if the Public IP is still valid. + schema: + type: boolean + default: false + - variable: validate + label: Validate + description: If enabled the container validates the game data + schema: + type: boolean + default: false + - variable: username + label: Username + description: Leave blank for anonymous login + schema: + type: string + default: "" + - variable: password + label: Password + description: Leave blank for anonymous login + schema: + type: string + default: "" + show_if: [["username", "!=", ""]] + private: true + - variable: additionalEnvs + label: Additional Environment Variables + description: Configure additional environment variables for Palworld. + schema: + type: list + default: [] + items: + - variable: env + label: Environment Variable + schema: + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + + - variable: palworldID + label: "" + group: User and Group Configuration + schema: + type: dict + attrs: + - variable: user + label: User ID + description: The user id that Palworld files will be owned by. + schema: + type: int + min: 568 + default: 568 + required: true + - variable: group + label: Group ID + description: The group id that Palworld files will be owned by. + schema: + type: int + min: 568 + default: 568 + required: true + + - variable: palworldNetwork + label: "" + group: Network Configuration + schema: + type: dict + attrs: + - variable: serverPort + label: Server Port + description: The UDP port for the Palworld Server. + schema: + type: int + default: 38211 + min: 9000 + max: 65535 + required: true + - variable: rconPort + label: RCON Port + description: The TCP port for the Palworld RCON. + schema: + type: int + default: 38212 + min: 9000 + max: 65535 + required: true + - variable: hostNetwork + label: Host Network + description: | + Bind to the host network. It might be needed for the UDP server port to work. + schema: + type: boolean + default: false + + - variable: palworldStorage + label: "" + group: Storage Configuration + schema: + type: dict + attrs: + - variable: steamcmd + label: Palworld SteamCMD Storage + description: The path to store Palworld SteamCMD. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "steamcmd" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: Host Path Configuration + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + + - variable: server + label: Palworld Server Storage + description: The path to store Palworld Server. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: readOnly + label: Read Only + description: Mount the volume as read only. + schema: + type: boolean + default: false + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "server" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: Host Path Configuration + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + + - variable: additionalStorages + label: Additional Storage + description: Additional storage for Palworld. + schema: + type: list + default: [] + items: + - variable: storageEntry + label: Storage Entry + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system.
+ SMB Share: Is a SMB share that is mounted to a persistent volume claim. + schema: + type: string + required: true + default: "ixVolume" + immutable: true + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - value: "smb-pv-pvc" + description: SMB Share (Mounts a persistent volume claim to a SMB share) + - variable: readOnly + label: Read Only + description: Mount the volume as read only. + schema: + type: boolean + default: false + - variable: mountPath + label: Mount Path + description: The path inside the container to mount the storage. + schema: + type: path + required: true + - variable: hostPathConfig + label: Host Path Configuration + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + default: "storage_entry" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: smbConfig + label: SMB Share Configuration + description: The configuration for the SMB Share. + schema: + type: dict + show_if: [["type", "=", "smb-pv-pvc"]] + attrs: + - variable: server + label: Server + description: The server for the SMB share. + schema: + type: string + required: true + - variable: share + label: Share + description: The share name for the SMB share. + schema: + type: string + required: true + - variable: domain + label: Domain (Optional) + description: The domain for the SMB share. + schema: + type: string + - variable: username + label: Username + description: The username for the SMB share. + schema: + type: string + required: true + - variable: password + label: Password + description: The password for the SMB share. + schema: + type: string + required: true + private: true + - variable: size + label: Size (in Gi) + description: The size of the volume quota. + schema: + type: int + required: true + min: 1 + default: 1 + + - variable: resources + group: Resources Configuration + label: "" + schema: + type: dict + attrs: + - variable: limits + label: Limits + schema: + type: dict + attrs: + - variable: cpu + label: CPU + description: CPU limit for Palworld. + schema: + type: string + max_length: 6 + valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$' + valid_chars_error: | + Valid CPU limit formats are
+ - Plain Integer - eg. 1
+ - Float - eg. 0.5
+ - Milicpu - eg. 500m + default: "4000m" + required: true + - variable: memory + label: Memory + description: Memory limit for Palworld. + schema: + type: string + max_length: 12 + valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$' + valid_chars_error: | + Valid Memory limit formats are
+ - Suffixed with E/P/T/G/M/K - eg. 1G
+ - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
+ - Plain Integer in bytes - eg. 1024
+ - Exponent - eg. 134e6 + default: "8Gi" + required: true diff --git a/community/palworld/1.0.0/templates/NOTES.txt b/community/palworld/1.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..ba4e01146c --- /dev/null +++ b/community/palworld/1.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/community/palworld/1.0.0/templates/_palworld.tpl b/community/palworld/1.0.0/templates/_palworld.tpl new file mode 100644 index 0000000000..b27cbcd8b2 --- /dev/null +++ b/community/palworld/1.0.0/templates/_palworld.tpl @@ -0,0 +1,99 @@ +{{- define "palworld.workload" -}} +workload: + palworld: + enabled: true + primary: true + type: Deployment + podSpec: + hostNetwork: {{ .Values.palworldNetwork.hostNetwork }} + securityContext: + fsGroup: {{ .Values.palworldID.group }} + containers: + palworld: + enabled: true + primary: true + imageSelector: image + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + readOnlyRootFilesystem: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - SETGID + - SETUID + - KILL + env: + STEAMCMD_DIR: /serverdata/steamcmd + {{- $srvDir := "/serverdata/serverfiles" }} + SERVER_DIR: {{ $srvDir }} + SRV_ADMIN_PWD: {{ .Values.palworldConfig.adminPassword }} + GAME_PARAMS: {{ join " " .Values.palworldNetwork.serverPort }} + GAME_PARAMS_EXTRA: {{ join " " .Values.palworldConfig.gameParamsExtra }} + UPDATE_PUBLIC_IP: {{ .Values.palworldConfig.updatePublicIP }} + VALIDATE: {{ .Values.palworldConfig.validate }} + USERNAME: {{ .Values.palworldConfig.username }} + PASSWORD: {{ .Values.palworldConfig.password }} + fixedEnv: + PUID: {{ .Values.palworldID.user }} + {{ with .Values.palworldConfig.additionalEnvs }} + envList: + {{ range $env := . }} + - name: {{ $env.name }} + value: {{ $env.value }} + {{ end }} + {{ end }} + probes: + liveness: + enabled: true + type: tcp + port: {{ .Values.palworldNetwork.rconPort }} + readiness: + enabled: true + type: tcp + port: {{ .Values.palworldNetwork.rconPort }} + startup: + enabled: true + type: tcp + port: {{ .Values.palworldNetwork.rconPort }} + initContainers: + 01-config: + enabled: true + type: init + imageSelector: image + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + readOnlyRootFilesystem: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + command: /bin/bash + args: + - -c + - | + config={{ $srvDir }}/Pal/Saved/Config/LinuxServer + cfgFile=${config}/PalWorldSettings.ini + mkdir -p ${config} + if [ ! -f ${cfgFile} ]; then + echo "Config file not found, fetching..." + # Fetch the config file if it doesn't exist, just like the container does + wget -qO ${cfgFile} https://github.com/ich777/docker-steamcmd-server/raw/palworld/config/PalWorldSettings.ini + fi + echo "Setting RCON status..." + sed -i 's/\(RCONEnabled=\)[^,]*/\1True/g' ${cfgFile} + echo "Set to [$(grep -Po 'RCONEnabled=[^,]*' ${cfgFile})]" + echo "Setting RCON Port..." + sed -i 's/\(RCONPort=\)[^,]*/\1{{ .Values.palworldNetwork.rconPort }}/g' ${cfgFile} + echo "Set to [$(grep -Po 'RCONPort=[^,]*' ${cfgFile})]" + echo "Setting Game Port..." + sed -i 's/\(PublicPort=\)[^,]*/\1{{ .Values.palworldNetwork.serverPort }}/g' ${cfgFile} + echo "Set to [$(grep -Po 'PublicPort=[^,]*' ${cfgFile})]" + echo "Done!" +{{- end -}} diff --git a/community/palworld/1.0.0/templates/_persistence.tpl b/community/palworld/1.0.0/templates/_persistence.tpl new file mode 100644 index 0000000000..ef7428479b --- /dev/null +++ b/community/palworld/1.0.0/templates/_persistence.tpl @@ -0,0 +1,35 @@ +{{- define "palworld.persistence" -}} +persistence: + steamcmd: + enabled: true + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.palworldStorage.steamcmd) | nindent 4 }} + targetSelector: + palworld: + palworld: + mountPath: /serverdata/steamcmd + server: + enabled: true + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.palworldStorage.server) | nindent 4 }} + targetSelector: + palworld: + palworld: + mountPath: /serverdata/serverfiles + 01-config: + mountPath: /serverdata/serverfiles + tmp: + enabled: true + type: emptyDir + targetSelector: + palworld: + palworld: + mountPath: /tmp + {{- range $idx, $storage := .Values.palworldStorage.additionalStorages }} + {{ printf "palworld-%v:" (int $idx) }} + enabled: true + {{- include "ix.v1.common.app.storageOptions" (dict "storage" $storage) | nindent 4 }} + targetSelector: + palworld: + palworld: + mountPath: {{ $storage.mountPath }} + {{- end }} +{{- end -}} diff --git a/community/palworld/1.0.0/templates/_service.tpl b/community/palworld/1.0.0/templates/_service.tpl new file mode 100644 index 0000000000..ac1d184bfc --- /dev/null +++ b/community/palworld/1.0.0/templates/_service.tpl @@ -0,0 +1,21 @@ +{{- define "palworld.service" -}} +service: + palworld: + enabled: true + primary: true + type: NodePort + targetSelector: palworld + ports: + server: + enabled: true + primary: true + port: {{ .Values.palworldNetwork.serverPort }} + nodePort: {{ .Values.palworldNetwork.serverPort }} + protocol: udp + targetSelector: palworld + rcon: + enabled: true + port: {{ .Values.palworldNetwork.rconPort }} + nodePort: {{ .Values.palworldNetwork.rconPort }} + targetSelector: palworld +{{- end -}} diff --git a/community/palworld/1.0.0/templates/_validation.tpl b/community/palworld/1.0.0/templates/_validation.tpl new file mode 100644 index 0000000000..b0bab79a7a --- /dev/null +++ b/community/palworld/1.0.0/templates/_validation.tpl @@ -0,0 +1,7 @@ +{{- define "palworld.validation" -}} + {{- range $param := .Values.palworldConfig.gameParams -}} + {{- if hasPrefix "port=" $param -}} + {{- fail "PalWorld - [port=] param is automatically adjusted from the Server Port field" -}} + {{- end -}} + {{- end -}} +{{- end -}} diff --git a/community/palworld/1.0.0/templates/common.yaml b/community/palworld/1.0.0/templates/common.yaml new file mode 100644 index 0000000000..faabd7f405 --- /dev/null +++ b/community/palworld/1.0.0/templates/common.yaml @@ -0,0 +1,10 @@ +{{- include "ix.v1.common.loader.init" . -}} + +{{- include "palworld.validation" $ -}} + +{{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "palworld.workload" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "palworld.service" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "palworld.persistence" $ | fromYaml) -}} + +{{- include "ix.v1.common.loader.apply" . -}} diff --git a/community/palworld/1.0.0/upgrade_strategy_disabled b/community/palworld/1.0.0/upgrade_strategy_disabled new file mode 100755 index 0000000000..924794842c --- /dev/null +++ b/community/palworld/1.0.0/upgrade_strategy_disabled @@ -0,0 +1,41 @@ +#!/usr/bin/python3 +import json +import re +import sys + +from catalog_update.upgrade_strategy import semantic_versioning + + +RE_STABLE_VERSION = re.compile(r'v\d+\.\d+\.\d+') + + +def newer_mapping(image_tags): + key = list(image_tags.keys())[0] + temp_tags = {t.strip('v'): t for t in image_tags[key] if RE_STABLE_VERSION.fullmatch(t)} + + # Strip leading zeros + tags = {} + for tag in temp_tags: + tag = tag.split('.') + for i in range(len(tag)): + # Remove leading zeros + tag[i] = tag[i].lstrip('0') + tags[tag] = '.'.join(tag) + + version = semantic_versioning(list(tags)) + if not version: + return {} + + return { + 'tags': {key: tags[version]}, + 'app_version': version, + } + + +if __name__ == '__main__': + try: + versions_json = json.loads(sys.stdin.read()) + except ValueError: + raise ValueError('Invalid json specified') + + print(json.dumps(newer_mapping(versions_json))) diff --git a/community/palworld/item.yaml b/community/palworld/item.yaml new file mode 100644 index 0000000000..cd5c6ceb5c --- /dev/null +++ b/community/palworld/item.yaml @@ -0,0 +1,6 @@ +icon_url: https://media.sys.truenas.net/apps/palworld/icons/icon.webp +categories: + - games +screenshots: [] +tags: + - palworld