migrate(arksurvivalevolved) migrate arksurvivalevolved to new common **BREAKING CHANGES** (#11900)

**Description**
Migrate to latest common and update chart.

⚒️ Fixes  # <!--(issue)-->

**⚙️ Type of change**

- [ ] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [X] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [X] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ 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
- [X] ⬆️ 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.

- [ ] 🪞 I have opened a PR on
[truecharts/containers](https://github.com/truecharts/containers) adding
the container to TrueCharts mirror repo.
- [ ] 🖼️ 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._

---------

Co-authored-by: StevenMcElligott <89483932+StevenMcElligott@users.noreply.github.com>
This commit is contained in:
Xstar97TheNoob
2023-09-22 18:50:02 -04:00
committed by GitHub
parent 7185cb2876
commit 5daf09c76d
8 changed files with 123 additions and 141 deletions

View File

@@ -11,6 +11,7 @@ chart-dirs:
- charts/operators
excluded-charts:
- charts/dependency/subchart
- charts/incubator/arksurvivalevolved
- charts/incubator/twingate-connector
- charts/incubator/eco
- charts/incubator/midarr

View File

@@ -1,19 +1,16 @@
annotations:
truecharts.org/SCALE-support: "true"
truecharts.org/catagories: |
- GameServers
apiVersion: v2
appVersion: "latest"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 11.1.2
version: 14.0.3
deprecated: false
description: "This Chart will download and install SteamCMD. It will also install ARK:SurvivalEvolved and run it (Normal server startup of ARK can take a long time!)."
description: A custom SteamCMD chart that runs ArkSE.
home: https://truecharts.org/charts/incubator/arksurvivalevolved
icon: https://truecharts.org/img/hotlink-ok/chart-icons/arksurvivalevolved.png
keywords:
- arksurvivalevolved
- arkse
- GameServers
kubeVersion: ">=1.16.0-0"
maintainers:
@@ -23,6 +20,10 @@ maintainers:
name: arksurvivalevolved
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/arksurvivalevolved
- https://survivetheark.com/
- https://github.com/ich777/docker-steamcmd-server/tree/arkse
type: application
version: 3.0.9
version: 4.0.0
annotations:
truecharts.org/catagories: |
- GameServers
truecharts.org/SCALE-support: "true"

View File

@@ -10,7 +10,7 @@
## Game ID
Set `Game ID` to **ARK Survival Evolved** or **ARK Survival of the Fittest**.
Set `Game ID` to **376030** (ARK Survival Evolved) or **445400** (ARK Survival of the Fittest).
`Validate` is set to true as default, verifies the game installation.

View File

@@ -1,7 +1,5 @@
# Include{groups}
portals:
open:
# Include{portalLink}
portals: {}
questions:
# Include{global}
# Include{workload}
@@ -54,11 +52,6 @@ questions:
type: string
required: true
default: "376030"
enum:
- value: "376030"
description: ARK Survival Evolved
- value: "445400"
description: ARK Survival of the Fittest
- variable: custom_map
label: Custom Map
description: Custom Map name.
@@ -169,6 +162,7 @@ questions:
type: string
default: ""
required: true
# Include{containerConfig}
# Include{serviceRoot}
- variable: main
@@ -193,17 +187,8 @@ questions:
type: int
default: 7777
required: true
- variable: udp2
label: udp2 service
description: This should always be (Main Port + 1)
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: udp2
label: udp2 Service Port Configuration
- variable: game
label: Game Service Port Configuration (Main Port + 1)
schema:
additional_attrs: true
type: dict
@@ -215,17 +200,17 @@ questions:
type: int
default: 7778
required: true
- variable: udpsteam
label: UDP Steam Service
description: Container Port 27015
- variable: query
label: Query service
description: Query Service Port Configuration
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: udpsteam
label: UDP Steam Service Port Configuration
- variable: query
label: Query Service Port Configuration
schema:
additional_attrs: true
type: dict
@@ -237,17 +222,17 @@ questions:
type: int
default: 27015
required: true
- variable: rcontcp
label: rcontcp service
description: Container Port 27020
- variable: rcon
label: Rcon service
description: Rcon Service Port Configuration
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: rcontcp
label: rcontcp Service Port Configuration
- variable: rcon
label: Rcon Service Port Configuration
schema:
additional_attrs: true
type: dict
@@ -259,6 +244,7 @@ questions:
type: int
default: 27020
required: true
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
@@ -280,41 +266,31 @@ questions:
attrs:
# Include{persistenceBasic}
# 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{podSecurityContextRoot}
- 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
# Include{securityContextRoot}
- 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 of the user running the application"
schema:
type: int
default: 0
# Include{securityContextContainer}
# Include{securityContextAdvanced}
# Include{securityContextPod}
- variable: fsGroup
label: fsGroup
description: The group that should own ALL storage.
schema:
type: int
default: 568
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{resources}
# Include{advanced}

View File

@@ -0,0 +1 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@@ -1,12 +1,12 @@
{{/* Define the secret */}}
{{- define "ark.secret" -}}
{{/* Define the secrets */}}
{{- define "ark.secrets" -}}
{{- $secretName := printf "%s-secret" (include "tc.common.names.fullname" .) }}
{{- $secretName := (printf "%s-ark-secrets" (include "tc.v1.common.lib.chart.names.fullname" $)) -}}
{{- $params := list }}
{{- $params = append $params (printf "?Port=%v" .Values.service.main.ports.main.port) -}}
{{- $params = append $params (printf "?QueryPort=%v" .Values.service.udpsteam.ports.udpsteam.port) -}}
{{- $params = append $params (printf "?RCONPort=%v" .Values.service.rcontcp.ports.rcontcp.port) -}}
{{- $params = append $params (printf "?QueryPort=%v" .Values.service.query.ports.query.port) -}}
{{- $params = append $params (printf "?RCONPort=%v" .Values.service.rcon.ports.rcon.port) -}}
{{- $gameExtraParams := list -}}
{{- range $key, $value := .Values.ark.easy_game_extra_params -}}
@@ -18,15 +18,8 @@
{{- if .Values.ark.rcon_enabled -}}
{{- $params = append $params (print "?RCONEnabled=True") -}}
{{- end }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ $secretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
stringData:
enabled: true
data:
GAME_ID: {{ .Values.ark.game_id | quote }}
GAME_PARAMS: {{ printf "%s%s" (join "" $params) (join "" .Values.ark.game_params) | quote }}
GAME_PARAMS_EXTRA: {{ (join " " (concat $gameExtraParams .Values.ark.game_params_extra)) | quote }}

View File

@@ -1,16 +1,19 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.common.loader.init" . }}
{{- include "tc.v1.common.loader.init" . }}
{{- if ne (int .Values.service.udp2.ports.udp2.port) (add1 (int .Values.service.main.ports.main.port)) -}}
{{- fail (printf "In the service udp2, the port for udp2 must be greater by 1 than the main service's port. You have to set it to <%s>." (add1 .Values.service.main.ports.main.port)) }}
{{- if ne (int .Values.service.main.ports.game.port) (add1 (int .Values.service.main.ports.main.port)) -}}
{{- fail (printf "In the service game, the port for game must be greater by 1 than the main service's port. You have to set it to <%s>." (add1 .Values.service.main.ports.main.port)) }}
{{- end -}}
{{- if and (ge (int .Values.service.udpsteam.ports.udpsteam.port) 27020) (le (int .Values.service.udpsteam.ports.udpsteam.port) 27050) -}}
{{- fail "UDP Steam Service port cannot be between 27020 and 27050." -}}
{{- if and (ge (int .Values.service.query.ports.query.port) 27020) (le (int .Values.service.query.ports.query.port) 27050) -}}
{{- fail "Query Steam Service port cannot be between 27020 and 27050." -}}
{{- end }}
{{/* Render secret */}}
{{- include "ark.secret" . }}
{{/* Render secrets for ark */}}
{{- $secrets := include "ark.secrets" . | fromYaml -}}
{{- if $secrets -}}
{{- $_ := set .Values.secret "ark-secrets" $secrets -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "tc.common.loader.apply" . }}
{{ include "tc.v1.common.loader.apply" . }}

View File

@@ -1,18 +1,46 @@
image:
pullPolicy: IfNotPresent
repository: tccr.io/truecharts/arksurvivalevolved
tag: latest@sha256:6c3c2c8ce43c350b88e93943eb99265499680011f2eb5b912652e226a19bd47c
podSecurityContext:
runAsGroup: 0
runAsUser: 0
tag: latest@sha256:c0aeac7b1419b1591e65b42384b74c07575610b891eb5b78cba1cd7735643d3f
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
container:
runAsNonRoot: false
readOnlyRootFilesystem: false
runAsUser: 0
runAsGroup: 0
service:
main:
enabled: true
ports:
main:
enabled: true
port: 7777
protocol: udp
game:
enabled: true
port: 7778
# This should always be main +1
protocol: udp
query:
enabled: true
ports:
query:
enabled: true
protocol: udp
port: 27015
rcon:
enabled: true
ports:
rcon:
enabled: true
protocol: tcp
port: 27020
ark:
srv_admin_pass: ""
# setting pass for rcon
srv_admin_pass: "123456789"
srv_password: ""
username: ""
password: ""
@@ -30,54 +58,33 @@ ark:
server_name: ""
validate: false
envFrom:
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-secret'
probes:
liveness:
port: "{{ .Values.service.rcontcp.ports.rcontcp.port }}"
readiness:
port: "{{ .Values.service.rcontcp.ports.rcontcp.port }}"
startup:
port: "{{ .Values.service.rcontcp.ports.rcontcp.port }}"
service:
workload:
main:
ports:
main:
port: 7777
protocol: UDP
udp2:
enabled: true
ports:
udp2:
enabled: true
# This should always be main +1
port: 7778
protocol: UDP
udpsteam:
enabled: true
ports:
udpsteam:
enabled: true
port: 27015
protocol: UDP
rcontcp:
enabled: true
ports:
rcontcp:
enabled: true
port: 27020
protocol: TCP
podSpec:
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 }}"
envFrom:
- secretRef:
name: "ark-secrets"
persistence:
serverfiles:
enabled: true
mountPath: /serverdata/serverfiles
steamcmd:
enabled: true
mountPath: /serverdata/steamcmd
serverfiles:
enabled: true
mountPath: /serverdata/serverfiles
portal:
enabled: true
open:
enabled: false