Ark chart rework (#35075)

**Description**
This updates the Ark Survival evolved chart to comply to our current
quality guidelines and use a container thats more suited towards
ark-specifically.

The new container includes ark-server-manager, which allows for
automatic management of mods as well.

**⚙️ Type of change**

- [x] ⚙️ 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
- [ ] 📜 Documentation Changes

**🧪 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:**
Also adds ark server as a hosted service...

**✔️ Checklist:**

- [ ] ⚖️ My code follows the style guidelines of this project
- [ ] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made changes to the documentation
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [ ] ⬆️ I increased versions for any altered app according to semantic
versioning
- [ ] I made sure the title starts with `feat(chart-name):`,
`fix(chart-name):`, `chore(chart-name):`, `docs(chart-name):` or
`fix(docs):`

** App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🖼️ 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._
This commit is contained in:
Kjeld Schouten
2025-05-05 19:46:08 +02:00
committed by GitHub
parent ac50f9391c
commit d229701c1e
10 changed files with 323 additions and 92 deletions
@@ -0,0 +1,127 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: ark
namespace: ark
spec:
interval: 10m
chart:
spec:
chart: arksurvivalevolved
version: 10.0.0
sourceRef:
kind: HelmRepository
name: truecharts
namespace: flux-system
interval: 15m
timeout: 20m
maxHistory: 3
install:
createNamespace: true
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
uninstall:
keepHistory: false
values:
credentials:
s3:
type: s3
url: "${S3URL}"
bucket: "${S3PREFIX_TC}-ark"
accessKey: "${S3ID_TC}"
secretKey: "${S3KEY_TC}"
encrKey: "${S3KEY_TC}"
service:
main:
enabled: true
loadBalancerIP: ${ARK_IP}
type: LoadBalancer
# externalTrafficPolicy: Local
ports:
main:
enabled: true
port: 7777
protocol: udp
game:
enabled: true
port: 7778
# This should always be main +1
protocol: udp
query:
enabled: true
# loadBalancerIP: $ARK_IP}
# type: LoadBalancer
ports:
query:
enabled: true
protocol: udp
port: 27015
rcon:
enabled: true
# loadBalancerIP: ${ARK_IP}
# type: LoadBalancer
ports:
rcon:
enabled: true
protocol: tcp
port: 27020
workload:
main:
podSpec:
containers:
main:
env:
## Free RealEstate
am_arkopt_clusterid: "TrueCharts-Ark"
am_arkStagingDir: ""
am_arkAutoUpdateOnStart: false
am_ark_SessionName: "TrueCharts"
am_serverMap: "Fjordur"
am_ark_MaxPlayers: "10"
am_ark_ServerPassword: ${ARK_PASSWORD}
am_ark_RCONEnabled: "True"
am_ark_ServerAdminPassword: ${ARK_RCONPASS}
persistence:
cluster:
volsync:
- name: b2
type: restic
credentials: s3
dest:
accessModes:
- ReadWriteOnce
enabled: true
src:
enabled: true
save:
volsync:
- name: b2
type: restic
credentials: s3
dest:
accessModes:
- ReadWriteOnce
enabled: true
src:
enabled: true
ark:
mods: []
resources:
limits:
cpu: 8000m
memory: 25Gi
requests:
cpu: 1000m
memory: 8Gi
@@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- helm-release.yaml
@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: ark
+12
View File
@@ -0,0 +1,12 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: ark
namespace: flux-system
spec:
interval: 10m
path: clusters/main/kubernetes/apps/ark/app
prune: true
sourceRef:
kind: GitRepository
name: truecharts
@@ -3,5 +3,6 @@ kind: Kustomization
resources:
- renovate/ks.yaml
- minecraft/ks.yaml
- ark/ks.yaml
- jackett/ks.yaml
- bitmagnet/ks.yaml