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