diff --git a/incubator/palworld/0.0.2/app-changelog.md b/incubator/palworld/0.0.2/app-changelog.md deleted file mode 100644 index 8f6b7ec22f..0000000000 --- a/incubator/palworld/0.0.2/app-changelog.md +++ /dev/null @@ -1,3 +0,0 @@ - - -## [palworld-0.0.2](https://github.com/truecharts/charts/compare/palworld-0.0.1...palworld-0.0.2) (2024-01-27) \ No newline at end of file diff --git a/incubator/palworld/0.0.2/ix_values.yaml b/incubator/palworld/0.0.2/ix_values.yaml deleted file mode 100644 index b6612858b7..0000000000 --- a/incubator/palworld/0.0.2/ix_values.yaml +++ /dev/null @@ -1,134 +0,0 @@ -image: - repository: ghcr.io/ich777/steamcmd - pullPolicy: IfNotPresent - tag: palworld@sha256:c7ed87dfb13890f340d663ca0a97acb6a8b83a40ab81a9c94c8675cee03af325 - -securityContext: - container: - readOnlyRootFilesystem: false - runAsUser: 0 - runAsGroup: 0 - -service: - main: - ports: - main: - protocol: udp - port: 8211 - rcon: - enabled: true - ports: - rcon: - enabled: true - protocol: tcp - port: 25575 - -palworld: - game: - id: "2394010" - name: "TrueCharts Palworld Server" - description: "A Palworld Server running in Kubernetes" - max_players: 32 - password: "" - steam: - username: "" - password: "" - admin: - password: "" - params: - - EpicApp=PalServer - params_extra: - - -useperfthreads - - -NoAsyncLoadingThread - - -UseMultithreadForDS - update_public_ip: false - validate: false - -workload: - main: - podSpec: - initContainers: - update-config-ini: - enabled: true - type: init - imageSelector: "image" - command: - - /bin/sh - - -c - args: - - | - config={{ .Values.persistence.serverfiles.targetSelector.main.main.mountPath }}/Pal/Saved/Config/LinuxServer - cfgFile=${config}/PalWorldSettings.ini - rconPort={{ .Values.service.rcon.ports.rcon.port }} - mainPort={{ .Values.service.main.ports.main.port }} - name="{{ .Values.palworld.game.name }}" - description="{{ .Values.palworld.game.description }}" - maxPlayers={{ .Values.palworld.game.max_players }} - gamePass={{ .Values.palworld.game.password }} - adminPass={{ .Values.palworld.admin.password }} - - 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 - - set_ini_value() { - local key="${1}" - local value="${2}" - - echo "Setting ${key}..." - sed -i "s|\(${key}=\)[^,]*|\1${value}|g" "${cfgFile}" - echo "Set to $(grep -Po "${key}=[^,]*" "${cfgFile}")" - } - - set_ini_value "RCONEnabled" "True" - set_ini_value "RCONPort" "${rconPort}" - set_ini_value "PublicPort" "${mainPort}" - set_ini_value "ServerName" "${name}" - set_ini_value "ServerDescription" "${description}" - set_ini_value "ServerPlayerMaxNum" "${maxPlayers}" - set_ini_value "ServerPassword" "${gamePass}" - set_ini_value "AdminPassword" "${adminPass}" - echo "Done!" - containers: - main: - probes: - liveness: - type: tcp - port: "{{ .Values.service.rcon.ports.rcon.port }}" - readiness: - type: tcp - port: "{{ .Values.service.rcon.ports.rcon.port }}" - startup: - type: tcp - port: "{{ .Values.service.rcon.ports.rcon.port }}" - env: - STEAMCMD_DIR: "{{ .Values.persistence.steamcmd.mountPath }}" - SERVER_DIR: "{{ .Values.persistence.serverfiles.targetSelector.main.main.mountPath }}" - GAME_ID: "{{ .Values.palworld.game.id }}" - SRV_ADMIN_PWD: "{{ .Values.palworld.admin.password }}" - GAME_PARAMS: '{{ join " " .Values.palworld.params }}' - GAME_PARAMS_EXTRA: '{{ join " " .Values.palworld.params_extra }}' - UPDATE_PUBLIC_IP: "{{ .Values.palworld.update_public_ip }}" - VALIDATE: "{{ .Values.palworld.validate }}" - USERNAME: "{{ .Values.palworld.steam.username }}" - PASSWRD: "{{ .Values.palworld.steam.password }}" - -persistence: - steamcmd: - enabled: true - mountPath: /serverdata/steamcmd - serverfiles: - enabled: true - targetSelector: - main: - main: - mountPath: /serverdata/serverfiles - update-config-ini: - mountPath: /serverdata/serverfiles - -portal: - open: - enabled: false diff --git a/incubator/palworld/0.0.2/CHANGELOG.md b/incubator/palworld/0.1.0/CHANGELOG.md similarity index 69% rename from incubator/palworld/0.0.2/CHANGELOG.md rename to incubator/palworld/0.1.0/CHANGELOG.md index 0faa349db6..cb4d970213 100644 --- a/incubator/palworld/0.0.2/CHANGELOG.md +++ b/incubator/palworld/0.1.0/CHANGELOG.md @@ -7,6 +7,9 @@ title: Changelog +## [palworld-0.1.0](https://github.com/truecharts/charts/compare/palworld-0.0.2...palworld-0.1.0) (2024-01-28) + + ## [palworld-0.0.2](https://github.com/truecharts/charts/compare/palworld-0.0.1...palworld-0.0.2) (2024-01-27) diff --git a/incubator/palworld/0.0.2/Chart.yaml b/incubator/palworld/0.1.0/Chart.yaml similarity index 98% rename from incubator/palworld/0.0.2/Chart.yaml rename to incubator/palworld/0.1.0/Chart.yaml index 8d560629e0..557d0e6ce7 100644 --- a/incubator/palworld/0.0.2/Chart.yaml +++ b/incubator/palworld/0.1.0/Chart.yaml @@ -34,4 +34,4 @@ sources: - https://github.com/truecharts/charts/tree/master/charts/incubator/palworld - https://ghcr.io/ich777/steamcmd type: application -version: 0.0.2 +version: 0.1.0 diff --git a/incubator/palworld/0.0.2/README.md b/incubator/palworld/0.1.0/README.md similarity index 100% rename from incubator/palworld/0.0.2/README.md rename to incubator/palworld/0.1.0/README.md diff --git a/incubator/palworld/0.1.0/app-changelog.md b/incubator/palworld/0.1.0/app-changelog.md new file mode 100644 index 0000000000..906f59934a --- /dev/null +++ b/incubator/palworld/0.1.0/app-changelog.md @@ -0,0 +1,3 @@ + + +## [palworld-0.1.0](https://github.com/truecharts/charts/compare/palworld-0.0.2...palworld-0.1.0) (2024-01-28) \ No newline at end of file diff --git a/incubator/palworld/0.0.2/app-readme.md b/incubator/palworld/0.1.0/app-readme.md similarity index 100% rename from incubator/palworld/0.0.2/app-readme.md rename to incubator/palworld/0.1.0/app-readme.md diff --git a/incubator/palworld/0.0.2/charts/common-17.2.26.tgz b/incubator/palworld/0.1.0/charts/common-17.2.26.tgz similarity index 100% rename from incubator/palworld/0.0.2/charts/common-17.2.26.tgz rename to incubator/palworld/0.1.0/charts/common-17.2.26.tgz diff --git a/incubator/palworld/0.1.0/ix_values.yaml b/incubator/palworld/0.1.0/ix_values.yaml new file mode 100644 index 0000000000..b3a6cf19e3 --- /dev/null +++ b/incubator/palworld/0.1.0/ix_values.yaml @@ -0,0 +1,201 @@ +image: + repository: ghcr.io/ich777/steamcmd + pullPolicy: IfNotPresent + tag: palworld@sha256:c7ed87dfb13890f340d663ca0a97acb6a8b83a40ab81a9c94c8675cee03af325 + +securityContext: + container: + readOnlyRootFilesystem: false + runAsUser: 0 + runAsGroup: 0 + +service: + main: + ports: + main: + protocol: udp + port: 8211 + rcon: + enabled: true + ports: + rcon: + enabled: true + protocol: tcp + port: 25575 + +palworld: + steam: + id: "2394010" + username: "" + password: "" + validate: false + game: + name: "TrueCharts Palworld Server" + description: "A Palworld Server running in Kubernetes" + use_auth: true + admin_password: "" + password: "" + difficulty: "None" + death_penalty: "ALL" + max_players: 32 + max_players_coop: 4 + max_players_guild: 20 + drop_item_max: 3000 + drop_item_max_unko: 100 + base_camp_max: 128 + base_camp_worker_max: 15 + enable_pvp_damage: false + enable_friendly_fire: false + enable_invader_enemy: true + enable_defense_other_guild_player: true + enable_non_login_penalty: true + enable_aim_assist_pad: false + enable_aim_assist_kb: false + enable_fast_travel: true + is_multiplay: false + is_pvp: false + is_start_location_select_by_map: true + active_unko: false + guild_auto_reset_no_online_players: false + auto_reset_guild_time_no_online_players: "72.000000" + can_pickup_other_guild_death_penalty_drop: false + exist_players_after_logout: true + update_public_ip: false + ban_list_url: "https://api.palworldgame.com/api/banlist.txt" + params: + - EpicApp=PalServer + params_extra: + - -useperfthreads + - -NoAsyncLoadingThread + - -UseMultithreadForDS + backup: + enabled: true + interval: 120 + to_keep: 12 + +workload: + main: + podSpec: + initContainers: + update-config-ini: + enabled: true + type: init + imageSelector: "image" + command: + - /bin/sh + - -c + args: + - | + config={{ .Values.persistence.serverfiles.targetSelector.main.main.mountPath }}/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 + + set_ini_value() { + local key="${1}" + local value="${2}" + + # Check if the value contains spaces or special characters + if echo "$value" | grep -q '[[:space:]]\|[^\w.-]'; then + # Add quotes around the value + value="\"$value\"" + fi + + echo "Setting ${key}..." + sed -i "s|\(${key}=\)[^,]*|\1${value}|g" "${cfgFile}" + echo "Set to $(grep -Po "(?<=${key}=)[^,]*" "${cfgFile}")" + } + + set_ini_value "RCONEnabled" "True" + set_ini_value "RCONPort" "{{ .Values.service.rcon.ports.rcon.port }}" + set_ini_value "PublicPort" "{{ .Values.service.main.ports.main.port }}" + + set_ini_value "ServerName" "{{ .Values.palworld.game.name }}" + set_ini_value "ServerDescription" "{{ .Values.palworld.game.description }}" + set_ini_value "Difficulty" "{{ .Values.palworld.game.difficulty }}" + set_ini_value "DeathPenalty" "{{ .Values.palworld.game.death_penalty }}" + + set_ini_value "ServerPlayerMaxNum" "{{ .Values.palworld.game.max_players }}" + set_ini_value "CoopPlayerMaxNum" "{{ .Values.palworld.game.max_players_coop }}" + set_ini_value "GuildPlayerMaxNum" "{{ .Values.palworld.game.max_players_guild }}" + + set_ini_value "DropItemMaxNum" "{{ .Values.palworld.game.max_players_guild }}" + set_ini_value "DropItemMaxNum_UNKO" "{{ .Values.palworld.game.drop_item_max_unko }}" + set_ini_value "BaseCampMaxNum" "{{ .Values.palworld.game.base_camp_max }}" + set_ini_value "BaseCampWorkerMaxNum" "{{ .Values.palworld.game.base_camp_worker_max }}" + + set_ini_value "bUseAuth" "{{ .Values.palworld.game.use_auth }}" + set_ini_value "bEnablePlayerToPlayerDamage" "{{ .Values.palworld.game.enable_pvp_damage }}" + set_ini_value "bEnableFriendlyFire" "{{ .Values.palworld.game.enable_friendly_fire }}" + set_ini_value "bEnableInvaderEnemy" "{{ .Values.palworld.game.enable_invader_enemy }}" + set_ini_value "bEnableAimAssistPad" "{{ .Values.palworld.game.enable_aim_assist_pad }}" + set_ini_value "bEnableAimAssistKeyboard" "{{ .Values.palworld.game.enable_aim_assist_kb }}" + set_ini_value "bEnableNonLoginPenalty" "{{ .Values.palworld.game.enable_non_login_penalty }}" + set_ini_value "bEnableFastTravel" "{{ .Values.palworld.game.enable_fast_travel }}" + set_ini_value "bEnableDefenseOtherGuildPlayer" "{{ .Values.palworld.game.enable_defense_other_guild_player }}" + set_ini_value "bIsMultiplay" "{{ .Values.palworld.game.is_multiplay }}" + set_ini_value "bIsStartLocationSelectByMap" "{{ .Values.palworld.game.is_start_location_select_by_map }}" + set_ini_value "bIsPvP" "{{ .Values.palworld.game.is_pvp }}" + set_ini_value "bExistPlayerAfterLogout" "{{ .Values.palworld.game.exist_players_after_logout }}" + set_ini_value "bActiveUNKO" "{{ .Values.palworld.game.active_unko }}" + set_ini_value "bAutoResetGuildNoOnlinePlayers" "{{ .Values.palworld.game.guild_auto_reset_no_online_players }}" + set_ini_value "AutoResetGuildTimeNoOnlinePlayers" "{{ .Values.palworld.game.auto_reset_guild_time_no_online_players }}" + set_ini_value "bCanPickupOtherGuildDeathPenaltyDrop" "{{ .Values.palworld.game.can_pickup_other_guild_death_penalty_drop }}" + set_ini_value "ServerPassword" "{{ .Values.palworld.game.password }}" + set_ini_value "AdminPassword" "{{ .Values.palworld.game.admin_password }}" + set_ini_value "BanListURL" "{{ .Values.palworld.game.ban_list_url }}" + + echo "Done!" + + containers: + main: + probes: + liveness: + type: tcp + port: "{{ .Values.service.rcon.ports.rcon.port }}" + readiness: + type: tcp + port: "{{ .Values.service.rcon.ports.rcon.port }}" + startup: + type: tcp + port: "{{ .Values.service.rcon.ports.rcon.port }}" + env: + # paths + STEAMCMD_DIR: "{{ .Values.persistence.steamcmd.mountPath }}" + SERVER_DIR: "{{ .Values.persistence.serverfiles.targetSelector.main.main.mountPath }}" + # steam + GAME_ID: "{{ .Values.palworld.steam.id }}" + USERNAME: "{{ .Values.palworld.steam.username }}" + PASSWRD: "{{ .Values.palworld.steam.password }}" + VALIDATE: "{{ .Values.palworld.steam.validate }}" + # game + SRV_ADMIN_PWD: "{{ .Values.palworld.game.admin_password }}" + UPDATE_PUBLIC_IP: "{{ .Values.palworld.game.update_public_ip }}" + GAME_PARAMS: '{{ join " " .Values.palworld.game.params }}' + GAME_PARAMS_EXTRA: '{{ join " " .Values.palworld.game.params_extra }}' + # backup + BACKUP: "{{ .Values.palworld.backup.enabled }}" + BACKUP_INTERVAL: "{{ .Values.palworld.backup.interval }}" + BACKUP_TO_KEEP: "{{ .Values.palworld.backup.to_keep }}" + +persistence: + steamcmd: + enabled: true + mountPath: /serverdata/steamcmd + serverfiles: + enabled: true + targetSelector: + main: + main: + mountPath: /serverdata/serverfiles + update-config-ini: + mountPath: /serverdata/serverfiles + +portal: + open: + enabled: false diff --git a/incubator/palworld/0.0.2/questions.yaml b/incubator/palworld/0.1.0/questions.yaml similarity index 94% rename from incubator/palworld/0.0.2/questions.yaml rename to incubator/palworld/0.1.0/questions.yaml index 5798888d7a..e6109e5120 100644 --- a/incubator/palworld/0.0.2/questions.yaml +++ b/incubator/palworld/0.1.0/questions.yaml @@ -150,8 +150,8 @@ questions: additional_attrs: true type: dict attrs: - - variable: game - label: Game Configuration + - variable: steam + label: Steam Configuration schema: additional_attrs: true type: dict @@ -163,37 +163,6 @@ questions: type: string required: true default: "2394010" - - variable: name - label: Server Name - description: The name of your server. - schema: - type: string - default: "TrueCharts Palworld Server" - - variable: description - label: Server Description - description: The description of your server. - schema: - type: string - default: "A Palworld Server running in Kubernetes" - - variable: max_players - label: Max Players - description: The max players that can play on your server. - schema: - type: int - default: 32 - - variable: password - label: Server Password - description: Optionally set a password for the server. - schema: - type: string - private: true - default: "" - - variable: steam - label: Steam Configuration - schema: - additional_attrs: true - type: dict - attrs: - variable: username label: Username description: Optionally set a steam username otherwise (disable Steam Guard). @@ -207,61 +176,252 @@ questions: type: string private: true default: "" - - variable: admin - label: Admin Configuration + - variable: validate + label: Validate + description: Validates the game data. + schema: + type: boolean + default: false + - variable: game + label: Game Configuration schema: additional_attrs: true type: dict attrs: - - variable: password - label: Server Admin Password + - variable: name + label: Server Name + description: The name of your server. + schema: + type: string + default: "TrueCharts Palworld Server" + - variable: description + label: Server Description + description: The description of your server. + schema: + type: string + default: "A Palworld Server running in Kubernetes" + - variable: use_auth + label: Use Auth + schema: + type: boolean + private: true + - variable: admin_password + label: Admin Server Password description: Optionally set a password for the admin (this field accepts no spaces) schema: type: string private: true default: "" - - variable: params - label: Game Params - schema: - type: list - default: - - EpicApp=PalServer - required: true - items: - - variable: param - label: Param + - variable: password + label: Server Password + description: Optionally set a password for the server. schema: type: string - required: true + private: true default: "" - - variable: params_extra - label: Game Params Extra - schema: - type: list - default: - - -useperfthreads - - -NoAsyncLoadingThread - - -UseMultithreadForDS - required: true - items: - - variable: extra_param - label: Extra Param + - variable: difficulty + label: Server Difficulty schema: type: string + default: "None" + - variable: death_penalty + label: Server Death Penalty + schema: + type: string + default: "ALL" + - variable: max_players + label: Max Players + schema: + type: int + default: 32 + - variable: max_players_coop + label: Max Co-Op Players + schema: + type: int + default: 4 + min: 1 + - variable: max_players_guild + label: Max Guild Players + schema: + type: int + default: 20 + min: 1 + - variable: drop_item_max + label: Drop Item Max + schema: + type: int + default: 3000 + min: 1 + - variable: drop_item_max_unko + label: Drop Item Max Unko + schema: + type: int + default: 100 + min: 1 + - variable: base_camp_max + label: Base Camp Max + schema: + type: int + default: 128 + min: 1 + - variable: base_camp_worker_max + label: Base Camp Worker Max + schema: + type: int + default: 15 + min: 1 + - variable: enable_pvp_damage + label: Enable PVP Damage + schema: + type: boolean + default: false + - variable: enable_friendly_fire + label: Enable Friendly Fire + schema: + type: boolean + default: false + - variable: enable_invader_enemy + label: Enable Invader Enemy + schema: + type: boolean + default: true + - variable: enable_defense_other_guild_player + label: Enable Defense Other Guild Player + schema: + type: boolean + default: true + - variable: enable_non_login_penalty + label: Enable Non Login Penalty + schema: + type: boolean + default: true + - variable: enable_aim_assist_pad + label: Enable Aim Assist Pad + schema: + type: boolean + default: false + - variable: enable_aim_assist_kb + label: Enable Aim Assist KeyBoard + schema: + type: boolean + default: false + - variable: enable_fast_travel + label: Enable Fast Travel + schema: + type: boolean + default: true + - variable: enable_friendly_fire + label: Enable Friendly Fire + schema: + type: boolean + default: false + - variable: is_multiplay + label: Is Multiplay + schema: + type: boolean + default: false + - variable: is_pvp + label: Is PVP + schema: + type: boolean + default: false + - variable: is_start_location_select_by_map + label: Is Start Location Select By Map + schema: + type: boolean + default: true + - variable: active_unko + label: Active Unko + schema: + type: boolean + default: false + - variable: guild_auto_reset_no_online_players + label: Guild Auto Reset No Online Players + schema: + type: boolean + default: false + - variable: auto_reset_guild_time_no_online_players + label: Auto Reset Guid Time No Online Players + schema: + type: string + default: "72.000000" + - variable: can_pickup_other_guild_death_penalty_drop + label: Can Pickup Other Guild Death Penalty Drop + schema: + type: boolean + default: false + - variable: exist_players_after_logout + label: Exist Players After LogOut + schema: + type: boolean + default: false + - variable: update_public_ip + label: Update Public IP + description: Will check if the Public IP is still valid. + schema: + type: boolean + default: false + - variable: ban_list_url + label: Ban List Url + schema: + type: string + default: "https://api.palworldgame.com/api/banlist.txt" + - variable: params + label: Game Params + schema: + type: list + default: + - EpicApp=PalServer required: true - default: "" - - variable: update_public_ip - label: Update Public IP - description: Will check if the Public IP is still valid (the container will try to grab your public IP on the first server start since the public IP is necessary to run a community server). + items: + - variable: param + label: Param + schema: + type: string + required: true + default: "" + - variable: params_extra + label: Game Params Extra + schema: + type: list + default: + - -useperfthreads + - -NoAsyncLoadingThread + - -UseMultithreadForDS + required: true + items: + - variable: extra_param + label: Extra Param + schema: + type: string + required: true + default: "" + - variable: backup + label: Backup Configuration schema: - type: boolean - default: false - - variable: validate - label: Validate - description: Validates the game data. - schema: - type: boolean - default: false + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Backups + description: To enable the automated backup function. + schema: + type: boolean + default: true + - variable: interval + label: Backup Interval + description: The backup interval in minutes. + schema: + type: int + default: 200 + min: 1 + - variable: to_keep + label: Backups To Keep + description: Number of backups to keep. + schema: + type: int + default: 12 + min: 1 - variable: TZ label: Timezone diff --git a/incubator/palworld/0.0.2/templates/NOTES.txt b/incubator/palworld/0.1.0/templates/NOTES.txt similarity index 100% rename from incubator/palworld/0.0.2/templates/NOTES.txt rename to incubator/palworld/0.1.0/templates/NOTES.txt diff --git a/incubator/palworld/0.0.2/templates/common.yaml b/incubator/palworld/0.1.0/templates/common.yaml similarity index 100% rename from incubator/palworld/0.0.2/templates/common.yaml rename to incubator/palworld/0.1.0/templates/common.yaml diff --git a/incubator/palworld/0.0.2/values.yaml b/incubator/palworld/0.1.0/values.yaml similarity index 100% rename from incubator/palworld/0.0.2/values.yaml rename to incubator/palworld/0.1.0/values.yaml