From 5daf09c76da74dbd718a28e5f83bd8cbdbbaa094 Mon Sep 17 00:00:00 2001 From: Xstar97TheNoob <9399967+xstar97@users.noreply.github.com> Date: Fri, 22 Sep 2023 18:50:02 -0400 Subject: [PATCH] migrate(arksurvivalevolved) migrate arksurvivalevolved to new common **BREAKING CHANGES** (#11900) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Description** Migrate to latest common and update chart. ⚒️ Fixes # **⚙️ 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?** **📃 Notes:** **✔️ 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> --- .github/ct-install.yaml | 1 + .../incubator/arksurvivalevolved/Chart.yaml | 17 +-- .../docs/community_guide.md | 2 +- .../arksurvivalevolved/questions.yaml | 94 ++++++--------- .../arksurvivalevolved/templates/NOTES.txt | 1 + .../templates/{_secret.tpl => _secrets.tpl} | 21 ++-- .../arksurvivalevolved/templates/common.yaml | 19 +-- .../incubator/arksurvivalevolved/values.yaml | 109 ++++++++++-------- 8 files changed, 123 insertions(+), 141 deletions(-) create mode 100644 charts/incubator/arksurvivalevolved/templates/NOTES.txt rename charts/incubator/arksurvivalevolved/templates/{_secret.tpl => _secrets.tpl} (79%) diff --git a/.github/ct-install.yaml b/.github/ct-install.yaml index 444bdfcbc92..fd95d483101 100644 --- a/.github/ct-install.yaml +++ b/.github/ct-install.yaml @@ -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 diff --git a/charts/incubator/arksurvivalevolved/Chart.yaml b/charts/incubator/arksurvivalevolved/Chart.yaml index 2705a07dfeb..6404285f9a8 100644 --- a/charts/incubator/arksurvivalevolved/Chart.yaml +++ b/charts/incubator/arksurvivalevolved/Chart.yaml @@ -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" diff --git a/charts/incubator/arksurvivalevolved/docs/community_guide.md b/charts/incubator/arksurvivalevolved/docs/community_guide.md index 0089c43f578..1692349b9e2 100644 --- a/charts/incubator/arksurvivalevolved/docs/community_guide.md +++ b/charts/incubator/arksurvivalevolved/docs/community_guide.md @@ -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. diff --git a/charts/incubator/arksurvivalevolved/questions.yaml b/charts/incubator/arksurvivalevolved/questions.yaml index 5934df88b2b..38f0e42beaf 100644 --- a/charts/incubator/arksurvivalevolved/questions.yaml +++ b/charts/incubator/arksurvivalevolved/questions.yaml @@ -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} diff --git a/charts/incubator/arksurvivalevolved/templates/NOTES.txt b/charts/incubator/arksurvivalevolved/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/charts/incubator/arksurvivalevolved/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/charts/incubator/arksurvivalevolved/templates/_secret.tpl b/charts/incubator/arksurvivalevolved/templates/_secrets.tpl similarity index 79% rename from charts/incubator/arksurvivalevolved/templates/_secret.tpl rename to charts/incubator/arksurvivalevolved/templates/_secrets.tpl index de0ebd256e2..252bf2be3a8 100644 --- a/charts/incubator/arksurvivalevolved/templates/_secret.tpl +++ b/charts/incubator/arksurvivalevolved/templates/_secrets.tpl @@ -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 }} diff --git a/charts/incubator/arksurvivalevolved/templates/common.yaml b/charts/incubator/arksurvivalevolved/templates/common.yaml index 0de43afa177..881082bc6af 100644 --- a/charts/incubator/arksurvivalevolved/templates/common.yaml +++ b/charts/incubator/arksurvivalevolved/templates/common.yaml @@ -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" . }} diff --git a/charts/incubator/arksurvivalevolved/values.yaml b/charts/incubator/arksurvivalevolved/values.yaml index 988a03a12d6..2a11eb99fd8 100644 --- a/charts/incubator/arksurvivalevolved/values.yaml +++ b/charts/incubator/arksurvivalevolved/values.yaml @@ -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