From 39af90e87cbce35e0f31952ae775680d27ab8bed Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sat, 27 Jan 2024 06:08:01 -0500 Subject: [PATCH 01/20] Added setting graceful stop period --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 592f520..e0bb97d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,7 @@ services: image: thijsvanloef/palworld-server-docker:latest restart: unless-stopped container_name: palworld-server + stop_grace_period: 30s ports: - 8211:8211/udp - 27015:27015/udp # Required if you want your server to show up in the community servers tab From aa7c1068bc0dcaff9ddce80d5b815fb9f96ed868 Mon Sep 17 00:00:00 2001 From: Twinki Date: Sun, 28 Jan 2024 10:15:17 -0500 Subject: [PATCH 02/20] Add helm chart-releaser # Motivations # Modifications --- .github/workflows/release.yml | 34 +++ .gitignore | 3 +- charts/cr.yaml | 1 + {chart => charts/palworld}/Chart.yaml | 38 +-- {chart => charts/palworld}/README.md | 0 {chart => charts/palworld}/VALUES_SUMMARY.md | 0 .../palworld}/templates/configmaps.yaml | 78 ++--- .../palworld}/templates/deployments.yaml | 140 ++++----- .../palworld}/templates/pvcs.yaml | 60 ++-- .../palworld}/templates/secrets.yaml | 48 +-- .../palworld}/templates/services.yaml | 66 ++--- {chart => charts/palworld}/values.yaml | 278 +++++++++--------- 12 files changed, 390 insertions(+), 356 deletions(-) create mode 100644 charts/cr.yaml rename {chart => charts/palworld}/Chart.yaml (96%) rename {chart => charts/palworld}/README.md (100%) rename {chart => charts/palworld}/VALUES_SUMMARY.md (100%) rename {chart => charts/palworld}/templates/configmaps.yaml (97%) rename {chart => charts/palworld}/templates/deployments.yaml (97%) rename {chart => charts/palworld}/templates/pvcs.yaml (97%) rename {chart => charts/palworld}/templates/secrets.yaml (97%) rename {chart => charts/palworld}/templates/services.yaml (97%) rename {chart => charts/palworld}/values.yaml (97%) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index df8c48f..965d403 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,9 @@ on: types: [published] jobs: + # Builds the Dockerfile and pushes it to dockerhub release: + name: Release - Docker image runs-on: ubuntu-latest steps: - name: Checkout @@ -34,3 +36,35 @@ jobs: with: push: true tags: ${{ steps.meta.outputs.tags }} + + # Generates a new release specifically for the helm chart, using the helm charts version + # Only generates a new release if the helm charts version has changed since the last release + # Will then update the gh-pages branch & helm repository + release-helm: + name: Release - Helm chart + runs-on: ubuntu-latest + permissions: + contents: write + pages: write + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Git - Configure + run: | + git config user.name "$GITHUB_ACTOR" + git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + + # Will push updates to a index.yaml file in the gh-pages branch + - name: Helm - chart-releaser + uses: helm/chart-releaser-action@v1.6.0 + with: + charts_dir: charts + pages_branch: gh-pages + mark_as_latest: false + skip_existing: true + config: ./charts/cr.yaml + env: + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.gitignore b/.gitignore index 5cddfe9..036b533 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ palworld .idea -values*.yaml -!chart/values.yaml \ No newline at end of file +!charts/* \ No newline at end of file diff --git a/charts/cr.yaml b/charts/cr.yaml new file mode 100644 index 0000000..e3130a8 --- /dev/null +++ b/charts/cr.yaml @@ -0,0 +1 @@ +release-name-template: "chart-{{ .Version }}" diff --git a/chart/Chart.yaml b/charts/palworld/Chart.yaml similarity index 96% rename from chart/Chart.yaml rename to charts/palworld/Chart.yaml index da1408a..93aea06 100644 --- a/chart/Chart.yaml +++ b/charts/palworld/Chart.yaml @@ -1,20 +1,20 @@ -apiVersion: v2 -name: palworld -version: 0.0.1 -description: This chart can provide an rAthena emulator installation on a Kubernetes cluster. -type: application -keywords: - - palworld - - server - - kubernetes - - helm -home: https://github.com/thijsvanloef/palworld-server-docker -sources: - - https://github.com/thijsvanloef/palworld-server-docker -maintainers: - - name: Filipe Souza - email: filipe.souza@mestre8d.com - url: https://github.com/Filipe-Souza -icon: https://cdn.akamai.steamstatic.com/steam/apps/1623730/header.jpg -appVersion: "latest" +apiVersion: v2 +name: palworld +version: 0.0.1 +description: This chart can provide an rAthena emulator installation on a Kubernetes cluster. +type: application +keywords: + - palworld + - server + - kubernetes + - helm +home: https://github.com/thijsvanloef/palworld-server-docker +sources: + - https://github.com/thijsvanloef/palworld-server-docker +maintainers: + - name: Filipe Souza + email: filipe.souza@mestre8d.com + url: https://github.com/Filipe-Souza +icon: https://cdn.akamai.steamstatic.com/steam/apps/1623730/header.jpg +appVersion: "latest" deprecated: false \ No newline at end of file diff --git a/chart/README.md b/charts/palworld/README.md similarity index 100% rename from chart/README.md rename to charts/palworld/README.md diff --git a/chart/VALUES_SUMMARY.md b/charts/palworld/VALUES_SUMMARY.md similarity index 100% rename from chart/VALUES_SUMMARY.md rename to charts/palworld/VALUES_SUMMARY.md diff --git a/chart/templates/configmaps.yaml b/charts/palworld/templates/configmaps.yaml similarity index 97% rename from chart/templates/configmaps.yaml rename to charts/palworld/templates/configmaps.yaml index 4dea3bf..e53158a 100644 --- a/chart/templates/configmaps.yaml +++ b/charts/palworld/templates/configmaps.yaml @@ -1,40 +1,40 @@ -{{- $cPwd := randAlphaNum 12 | nospace -}} -{{- $sName := "" -}} -apiVersion: v1 -kind: ConfigMap -metadata: - namespace: {{ .Values.namespace }} - name: "{{ .Release.Name }}-env-config" - annotations: - {{- with .Values.server.config.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - app.kubernetes.io/name: "{{ .Release.Name }}-config" - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/component: "{{ .Release.Name }}-config" - app.kubernetes.io/version: {{ .Chart.AppVersion }} - {{- with .Values.server.config.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -data: - PUID: "{{ .Values.server.config.puid }}" - PGID: "{{ .Values.server.config.pgid }}" - PORT: "{{ .Values.server.config.port }}" - PLAYERS: "{{ .Values.server.config.max_players }}" - MULTITHREADING: "{{ .Values.server.config.multithreading }}" - {{ if .Values.server.config.rcon.enable }} - RCON_ENABLED: "true" - RCON_PORT: "{{ .Values.server.config.rcon.port }}" - {{ end }} - {{ if .Values.server.config.community.enable }} - COMMUNITY: "true" - SERVER_PASSWORD: {{- if .Values.server.config.community.password }} "{{ .Values.server.config.community.password }}" {{ else }} {{ $cPwd }} {{ end }} - {{ end }} - {{ if .Values.server.config.server_name }} - SERVER_NAME: {{ regexReplaceAll "\\W+" .Values.server.config.server_name "_" }} - {{ else }} - SERVER_NAME: {{ printf "%s_%s" "palworld" (randAlphaNum 6 | nospace) }} +{{- $cPwd := randAlphaNum 12 | nospace -}} +{{- $sName := "" -}} +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: {{ .Values.namespace }} + name: "{{ .Release.Name }}-env-config" + annotations: + {{- with .Values.server.config.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + app.kubernetes.io/name: "{{ .Release.Name }}-config" + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/component: "{{ .Release.Name }}-config" + app.kubernetes.io/version: {{ .Chart.AppVersion }} + {{- with .Values.server.config.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +data: + PUID: "{{ .Values.server.config.puid }}" + PGID: "{{ .Values.server.config.pgid }}" + PORT: "{{ .Values.server.config.port }}" + PLAYERS: "{{ .Values.server.config.max_players }}" + MULTITHREADING: "{{ .Values.server.config.multithreading }}" + {{ if .Values.server.config.rcon.enable }} + RCON_ENABLED: "true" + RCON_PORT: "{{ .Values.server.config.rcon.port }}" + {{ end }} + {{ if .Values.server.config.community.enable }} + COMMUNITY: "true" + SERVER_PASSWORD: {{- if .Values.server.config.community.password }} "{{ .Values.server.config.community.password }}" {{ else }} {{ $cPwd }} {{ end }} + {{ end }} + {{ if .Values.server.config.server_name }} + SERVER_NAME: {{ regexReplaceAll "\\W+" .Values.server.config.server_name "_" }} + {{ else }} + SERVER_NAME: {{ printf "%s_%s" "palworld" (randAlphaNum 6 | nospace) }} {{ end }} \ No newline at end of file diff --git a/chart/templates/deployments.yaml b/charts/palworld/templates/deployments.yaml similarity index 97% rename from chart/templates/deployments.yaml rename to charts/palworld/templates/deployments.yaml index 20d9f1c..2c857bc 100644 --- a/chart/templates/deployments.yaml +++ b/charts/palworld/templates/deployments.yaml @@ -1,70 +1,70 @@ ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: {{ .Values.namespace }} - name: "{{ .Release.Name }}-server" -spec: - selector: - matchLabels: - app.kubernetes.io/component: "{{ .Release.Name }}-server" - strategy: - type: "{{ .Values.server.strategy }}" - template: - metadata: - annotations: - {{- with .Values.server.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - app.kubernetes.io/name: "{{ .Release.Name }}-server" - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/component: "{{ .Release.Name }}-server" - app.kubernetes.io/version: {{ .Chart.AppVersion }} - {{- with .Values.server.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - spec: - containers: - {{ if .Values.server.service.healthz.enabled }} - - name: healthz - image: "chussenot/tiny-server:latest" - imagePullPolicy: {{ .Values.server.image.imagePullPolicy }} - ports: - - name: healthz - containerPort: 80 - protocol: TCP - {{ end }} - - name: server - image: "{{ .Values.server.image.name }}:{{ .Values.server.image.tag }}" - imagePullPolicy: {{ .Values.server.image.imagePullPolicy }} - resources: - {{- with .Values.server.resources }} - {{- toYaml . | nindent 12 }} - {{- end }} - ports: - {{- with .Values.server.ports }} - {{- toYaml . | nindent 12 }} - {{- end }} - env: - - name: ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: "{{ .Release.Name }}-rcon-password" - key: "rconPassword" - envFrom: - - configMapRef: - name: "{{ .Release.Name }}-env-config" - volumeMounts: - - mountPath: /palworld - name: datadir - volumes: - - name: datadir - persistentVolumeClaim: - {{- if not .Values.server.storage.external }} - claimName: "{{ .Release.Name }}-datadir-pvc" - {{ else }} - claimName: "{{ .Values.server.storage.externalName }}" - {{ end }} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + namespace: {{ .Values.namespace }} + name: "{{ .Release.Name }}-server" +spec: + selector: + matchLabels: + app.kubernetes.io/component: "{{ .Release.Name }}-server" + strategy: + type: "{{ .Values.server.strategy }}" + template: + metadata: + annotations: + {{- with .Values.server.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + app.kubernetes.io/name: "{{ .Release.Name }}-server" + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/component: "{{ .Release.Name }}-server" + app.kubernetes.io/version: {{ .Chart.AppVersion }} + {{- with .Values.server.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + spec: + containers: + {{ if .Values.server.service.healthz.enabled }} + - name: healthz + image: "chussenot/tiny-server:latest" + imagePullPolicy: {{ .Values.server.image.imagePullPolicy }} + ports: + - name: healthz + containerPort: 80 + protocol: TCP + {{ end }} + - name: server + image: "{{ .Values.server.image.name }}:{{ .Values.server.image.tag }}" + imagePullPolicy: {{ .Values.server.image.imagePullPolicy }} + resources: + {{- with .Values.server.resources }} + {{- toYaml . | nindent 12 }} + {{- end }} + ports: + {{- with .Values.server.ports }} + {{- toYaml . | nindent 12 }} + {{- end }} + env: + - name: ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: "{{ .Release.Name }}-rcon-password" + key: "rconPassword" + envFrom: + - configMapRef: + name: "{{ .Release.Name }}-env-config" + volumeMounts: + - mountPath: /palworld + name: datadir + volumes: + - name: datadir + persistentVolumeClaim: + {{- if not .Values.server.storage.external }} + claimName: "{{ .Release.Name }}-datadir-pvc" + {{ else }} + claimName: "{{ .Values.server.storage.externalName }}" + {{ end }} diff --git a/chart/templates/pvcs.yaml b/charts/palworld/templates/pvcs.yaml similarity index 97% rename from chart/templates/pvcs.yaml rename to charts/palworld/templates/pvcs.yaml index c16e754..4ece1da 100644 --- a/chart/templates/pvcs.yaml +++ b/charts/palworld/templates/pvcs.yaml @@ -1,31 +1,31 @@ -{{- if not .Values.server.storage.external }} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - namespace: {{ .Values.namespace }} - name: "{{ .Release.Name }}-datadir-pvc" - annotations: - {{- with .Values.server.config.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - app.kubernetes.io/name: "{{ .Release.Name }}-datadir-pvc" - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/component: "{{ .Release.Name }}-datadir-pvc" - app.kubernetes.io/version: {{ .Chart.AppVersion }} - {{- if .Values.server.storage.preventDelete }} - helm.sh/resource-policy: keep - {{ end }} - {{- with .Values.server.config.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: {{ .Values.server.storage.size }} - storageClassName: {{ .Values.server.storage.storageClassName }} +{{- if not .Values.server.storage.external }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + namespace: {{ .Values.namespace }} + name: "{{ .Release.Name }}-datadir-pvc" + annotations: + {{- with .Values.server.config.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + app.kubernetes.io/name: "{{ .Release.Name }}-datadir-pvc" + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/component: "{{ .Release.Name }}-datadir-pvc" + app.kubernetes.io/version: {{ .Chart.AppVersion }} + {{- if .Values.server.storage.preventDelete }} + helm.sh/resource-policy: keep + {{ end }} + {{- with .Values.server.config.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .Values.server.storage.size }} + storageClassName: {{ .Values.server.storage.storageClassName }} {{ end }} \ No newline at end of file diff --git a/chart/templates/secrets.yaml b/charts/palworld/templates/secrets.yaml similarity index 97% rename from chart/templates/secrets.yaml rename to charts/palworld/templates/secrets.yaml index f1a3d85..6e695d4 100644 --- a/chart/templates/secrets.yaml +++ b/charts/palworld/templates/secrets.yaml @@ -1,25 +1,25 @@ -{{- define "server.rcon.password" -}} -{{- randAlphaNum 24 | nospace -}} -{{- end -}} -apiVersion: v1 -kind: Secret -metadata: - namespace: {{ .Values.namespace }} - name: "{{ .Release.Name }}-rcon-password" - annotations: - {{- with .Values.server.config.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} - labels: - helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - app.kubernetes.io/name: "{{ .Release.Name }}-rcon-password" - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/component: "{{ .Release.Name }}-rcon-password" - app.kubernetes.io/version: {{ .Chart.AppVersion }} - {{- with .Values.server.config.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} -type: Opaque -stringData: +{{- define "server.rcon.password" -}} +{{- randAlphaNum 24 | nospace -}} +{{- end -}} +apiVersion: v1 +kind: Secret +metadata: + namespace: {{ .Values.namespace }} + name: "{{ .Release.Name }}-rcon-password" + annotations: + {{- with .Values.server.config.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + app.kubernetes.io/name: "{{ .Release.Name }}-rcon-password" + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/component: "{{ .Release.Name }}-rcon-password" + app.kubernetes.io/version: {{ .Chart.AppVersion }} + {{- with .Values.server.config.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +type: Opaque +stringData: rconPassword: {{- if .Values.server.config.rcon.password }} "{{ .Values.server.config.rcon.password }}" {{ else }} "{{ include "server.rcon.password" .}}" {{ end }} \ No newline at end of file diff --git a/chart/templates/services.yaml b/charts/palworld/templates/services.yaml similarity index 97% rename from chart/templates/services.yaml rename to charts/palworld/templates/services.yaml index 2aa7fba..cf6bcb5 100644 --- a/chart/templates/services.yaml +++ b/charts/palworld/templates/services.yaml @@ -1,34 +1,34 @@ ---- -apiVersion: v1 -kind: Service -metadata: - namespace: {{ .Values.namespace }} - name: "{{ .Release.Name }}-svc" - labels: - helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - app.kubernetes.io/name: "{{ .Release.Name }}-svc" - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/component: "{{ .Release.Name }}-svc" - app.kubernetes.io/version: {{ .Chart.AppVersion }} - {{- with .Values.server.service.labels }} - {{- toYaml . | nindent 4 }} - {{- end }} - annotations: - {{- with .Values.server.config.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - selector: - app.kubernetes.io/component: "{{ .Release.Name }}-server" - ports: - {{ if .Values.server.service.healthz.enabled }} - - name: {{ .Values.server.service.healthz.name }} - port: {{ .Values.server.service.healthz.port }} - protocol: {{ .Values.server.service.healthz.protocol }} - targetPort: {{ .Values.server.service.healthz.targetPort }} - {{ end }} - {{- with .Values.server.service.ports }} - {{- toYaml . | nindent 4 }} - {{- end }} +--- +apiVersion: v1 +kind: Service +metadata: + namespace: {{ .Values.namespace }} + name: "{{ .Release.Name }}-svc" + labels: + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + app.kubernetes.io/name: "{{ .Release.Name }}-svc" + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/component: "{{ .Release.Name }}-svc" + app.kubernetes.io/version: {{ .Chart.AppVersion }} + {{- with .Values.server.service.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + annotations: + {{- with .Values.server.config.annotations }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + selector: + app.kubernetes.io/component: "{{ .Release.Name }}-server" + ports: + {{ if .Values.server.service.healthz.enabled }} + - name: {{ .Values.server.service.healthz.name }} + port: {{ .Values.server.service.healthz.port }} + protocol: {{ .Values.server.service.healthz.protocol }} + targetPort: {{ .Values.server.service.healthz.targetPort }} + {{ end }} + {{- with .Values.server.service.ports }} + {{- toYaml . | nindent 4 }} + {{- end }} type: {{ .Values.server.service.type }} \ No newline at end of file diff --git a/chart/values.yaml b/charts/palworld/values.yaml similarity index 97% rename from chart/values.yaml rename to charts/palworld/values.yaml index 0fcf492..955d343 100644 --- a/chart/values.yaml +++ b/charts/palworld/values.yaml @@ -1,139 +1,139 @@ -# -- Namespace where the resources will be created -namespace: palworld -# -- (dict) The server configuration -# @notationType -- bigValue -server: - # -- Additional annotations to the resources - annotations: { } - # -- Additional labels to the resources - labels: { } - # -- (dict) Resources limits for the container. - resources: - limits: - cpu: 4 - memory: "12Gi" - requests: - cpu: 4 - memory: "8Gi" - # -- (dict) Define some parameters for the storage volume - storage: - # -- (bool) Define if it will use an existing PVC containing the installation data. - external: false - # -- (bool) The external PVC name to use. - externalName: "" - # -- Keeps helm from deleting the PVC. By default, helm does not delete pvcs. - preventDelete: false - # -- The size of the pvc storage. - size: 12Gi - # -- The storage class name. - storageClassName: "" - # -- (dict) Define the parameters for the server image container - # @notationType -- bigValue - image: - # -- Name of the image, without the tag. - name: thijsvanloef/palworld-server-docker - # -- The tag of the image. - tag: latest - # -- Define the pull policy for the server image. - imagePullPolicy: IfNotPresent - - # -- (dict) Change the ports to be mapped to the pod. - # If you change those, make sure to change the service.ports and server.config accordingly. - # @notationType -- bigValue - ports: - # -- (dict) The "game" port definition. - # If you change this, make sure to change the service.ports.game and server.config accordingly. - - name: game - containerPort: 8211 - protocol: UDP - # -- (dict) The "query" port definition . - # If you change this, make sure to change the service.ports.query_port and server.config accordingly. - - name: query - containerPort: 27015 - protocol: UDP - # -- (dict) The "rcon" port definition . - # If you change this, make sure to change the service.ports.rcon and server.config accordingly. - - name: rcon - containerPort: 25575 - protocol: UDP - # -- (string) Change the deployment strategy - strategy: Recreate - - # -- (dict) Change the service configuration. - # If you change those, make sure to change the server.config and server.ports accordingly. - # @notationType -- bigValue - service: - # -- (bool) Enables the creation of the service component. - enabled: true - # -- Additional annotations to the resources - annotations: { } - # -- Additional labels to the resources - labels: { } - # -- (string) The type of service to be created. - type: LoadBalancer - # -- (dict) The "healthz" definition . - # Use if you need to create a TCP health check for load balancers on cloud services. - healthz: - enabled: false - name: healthz - port: 80 - protocol: TCP - targetPort: 80 - # -- (dict) Change the ports to be mapped to the service. - # If you change those, make sure to change the server.config and server.ports accordingly. - # @notationType -- bigValue - ports: - # -- (dict) The "game" port definition. - # If you change this, make sure to change the server.ports.game and server.config.port accordingly. - - name: game - port: 8211 - protocol: UDP - targetPort: 8211 - # -- (dict) The "query" port definition . - # If you change this, make sure to change the server.ports.query and server.config.query_port accordingly. - - name: query - port: 27015 - protocol: UDP - targetPort: 27015 - # -- (dict) The "rcon" port definition . - # If you change this, make sure to change the server.ports.rcon and server.config.rcon.port accordingly. - - name: rcon - port: 25575 - protocol: UDP - targetPort: 25575 - # -- (dict) Change the game server configuration. - # If you change those, make sure to change the service.ports and server.ports accordingly. - # Those are directly connected with the container image, providing multiple environment variables to the scripts. - # @notationType -- bigValue - config: - # -- Additional annotations to the resources - annotations: { } - # -- Additional labels to the resources - labels: { } - puid: 1000 - pgid: 1000 - port: 8211 - # -- (string) The query port of the game. - query_port: 27015 - # -- The max number of players supported. - max_players: 16 - # -- (bool) Enables the multithreading, allowing the usage of up to 4 cores (needs citation) - multithreading: true - # -- (dict) Remote connection configuration. - # Allows the remote connection and management for the server. - # Those are directly connected with the container image, providing multiple environment variables to the scripts. - # @notationType -- bigValue - rcon: - # -- (bool) Enables/disables the rcon port. - enable: true - # -- (string) The port for rcon. If you change this, make sure to change the service.ports and server.ports accordingly. - port: 25575 - # -- (string) If not provided, a random password will be generated and stored on the secret. - password: "" - community: - # -- (bool) Enables/disables the visibility of this server on Steam community servers list. - enable: true - # -- (string) If not provided, a random password will be generated and stored on the secret. - password: "" - # -- (string) If not provided, a random server name will be generated with the "palworld_" prefix. - server_name: "" +# -- Namespace where the resources will be created +namespace: palworld +# -- (dict) The server configuration +# @notationType -- bigValue +server: + # -- Additional annotations to the resources + annotations: { } + # -- Additional labels to the resources + labels: { } + # -- (dict) Resources limits for the container. + resources: + limits: + cpu: 4 + memory: "12Gi" + requests: + cpu: 4 + memory: "8Gi" + # -- (dict) Define some parameters for the storage volume + storage: + # -- (bool) Define if it will use an existing PVC containing the installation data. + external: false + # -- (bool) The external PVC name to use. + externalName: "" + # -- Keeps helm from deleting the PVC. By default, helm does not delete pvcs. + preventDelete: false + # -- The size of the pvc storage. + size: 12Gi + # -- The storage class name. + storageClassName: "" + # -- (dict) Define the parameters for the server image container + # @notationType -- bigValue + image: + # -- Name of the image, without the tag. + name: thijsvanloef/palworld-server-docker + # -- The tag of the image. + tag: latest + # -- Define the pull policy for the server image. + imagePullPolicy: IfNotPresent + + # -- (dict) Change the ports to be mapped to the pod. + # If you change those, make sure to change the service.ports and server.config accordingly. + # @notationType -- bigValue + ports: + # -- (dict) The "game" port definition. + # If you change this, make sure to change the service.ports.game and server.config accordingly. + - name: game + containerPort: 8211 + protocol: UDP + # -- (dict) The "query" port definition . + # If you change this, make sure to change the service.ports.query_port and server.config accordingly. + - name: query + containerPort: 27015 + protocol: UDP + # -- (dict) The "rcon" port definition . + # If you change this, make sure to change the service.ports.rcon and server.config accordingly. + - name: rcon + containerPort: 25575 + protocol: UDP + # -- (string) Change the deployment strategy + strategy: Recreate + + # -- (dict) Change the service configuration. + # If you change those, make sure to change the server.config and server.ports accordingly. + # @notationType -- bigValue + service: + # -- (bool) Enables the creation of the service component. + enabled: true + # -- Additional annotations to the resources + annotations: { } + # -- Additional labels to the resources + labels: { } + # -- (string) The type of service to be created. + type: LoadBalancer + # -- (dict) The "healthz" definition . + # Use if you need to create a TCP health check for load balancers on cloud services. + healthz: + enabled: false + name: healthz + port: 80 + protocol: TCP + targetPort: 80 + # -- (dict) Change the ports to be mapped to the service. + # If you change those, make sure to change the server.config and server.ports accordingly. + # @notationType -- bigValue + ports: + # -- (dict) The "game" port definition. + # If you change this, make sure to change the server.ports.game and server.config.port accordingly. + - name: game + port: 8211 + protocol: UDP + targetPort: 8211 + # -- (dict) The "query" port definition . + # If you change this, make sure to change the server.ports.query and server.config.query_port accordingly. + - name: query + port: 27015 + protocol: UDP + targetPort: 27015 + # -- (dict) The "rcon" port definition . + # If you change this, make sure to change the server.ports.rcon and server.config.rcon.port accordingly. + - name: rcon + port: 25575 + protocol: UDP + targetPort: 25575 + # -- (dict) Change the game server configuration. + # If you change those, make sure to change the service.ports and server.ports accordingly. + # Those are directly connected with the container image, providing multiple environment variables to the scripts. + # @notationType -- bigValue + config: + # -- Additional annotations to the resources + annotations: { } + # -- Additional labels to the resources + labels: { } + puid: 1000 + pgid: 1000 + port: 8211 + # -- (string) The query port of the game. + query_port: 27015 + # -- The max number of players supported. + max_players: 16 + # -- (bool) Enables the multithreading, allowing the usage of up to 4 cores (needs citation) + multithreading: true + # -- (dict) Remote connection configuration. + # Allows the remote connection and management for the server. + # Those are directly connected with the container image, providing multiple environment variables to the scripts. + # @notationType -- bigValue + rcon: + # -- (bool) Enables/disables the rcon port. + enable: true + # -- (string) The port for rcon. If you change this, make sure to change the service.ports and server.ports accordingly. + port: 25575 + # -- (string) If not provided, a random password will be generated and stored on the secret. + password: "" + community: + # -- (bool) Enables/disables the visibility of this server on Steam community servers list. + enable: true + # -- (string) If not provided, a random password will be generated and stored on the secret. + password: "" + # -- (string) If not provided, a random server name will be generated with the "palworld_" prefix. + server_name: "" From 2f4291f07706d52a1e9f8a62c6ea16d8b62f9bdd Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sun, 28 Jan 2024 11:09:18 -0500 Subject: [PATCH 03/20] Changed overridden to overwritten --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 731e94a..bb3f0ca 100644 --- a/README.md +++ b/README.md @@ -264,7 +264,7 @@ The server will run a save before the backup if rcon is enabled. When the server starts, a `PalWorldSettings.ini` file will be created in the following location: `/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini` -Any changes made while the server is live will be overridden. +Any changes made while the server is live will be overwritten. Please keep in mind that the ENV variables will always overwrite the changes made to `PalWorldSettings.ini`. From 01813b31f01bdb9c68278bccacbe14d0af86e15d Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sun, 28 Jan 2024 11:12:57 -0500 Subject: [PATCH 04/20] Added clarification --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bb3f0ca..7cbeab1 100644 --- a/README.md +++ b/README.md @@ -264,7 +264,7 @@ The server will run a save before the backup if rcon is enabled. When the server starts, a `PalWorldSettings.ini` file will be created in the following location: `/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini` -Any changes made while the server is live will be overwritten. +Any changes made while the server is live will be overwritten when the server stops. Please keep in mind that the ENV variables will always overwrite the changes made to `PalWorldSettings.ini`. From 791fc6cb119b9e80252905a1b4059b15f888c530 Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sun, 28 Jan 2024 11:13:34 -0500 Subject: [PATCH 05/20] Moved line to important element --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 7cbeab1..1476078 100644 --- a/README.md +++ b/README.md @@ -264,12 +264,11 @@ The server will run a save before the backup if rcon is enabled. When the server starts, a `PalWorldSettings.ini` file will be created in the following location: `/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini` -Any changes made while the server is live will be overwritten when the server stops. - Please keep in mind that the ENV variables will always overwrite the changes made to `PalWorldSettings.ini`. > [!IMPORTANT] > Changes can only be made to `PalWorldSettings.ini` while the server is off. +> Any changes made while the server is live will be overwritten when the server stops. For a more detailed list of explanations of server settings go to: [shockbyte](https://shockbyte.com/billing/knowledgebase/1189/How-to-Configure-your-Palworld-server.html) From 2ecf26d79247f230ca278db2cc84c29d9a16489b Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sun, 28 Jan 2024 11:14:59 -0500 Subject: [PATCH 06/20] Added new line --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1476078..87a4dd7 100644 --- a/README.md +++ b/README.md @@ -268,6 +268,7 @@ Please keep in mind that the ENV variables will always overwrite the changes mad > [!IMPORTANT] > Changes can only be made to `PalWorldSettings.ini` while the server is off. +> > Any changes made while the server is live will be overwritten when the server stops. For a more detailed list of explanations of server settings go to: [shockbyte](https://shockbyte.com/billing/knowledgebase/1189/How-to-Configure-your-Palworld-server.html) From 000163195119511d22d22c061e6d1a1a80afe181 Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sun, 28 Jan 2024 11:19:25 -0500 Subject: [PATCH 07/20] Removed space --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 87a4dd7..3bb677c 100644 --- a/README.md +++ b/README.md @@ -268,7 +268,7 @@ Please keep in mind that the ENV variables will always overwrite the changes mad > [!IMPORTANT] > Changes can only be made to `PalWorldSettings.ini` while the server is off. -> +> > Any changes made while the server is live will be overwritten when the server stops. For a more detailed list of explanations of server settings go to: [shockbyte](https://shockbyte.com/billing/knowledgebase/1189/How-to-Configure-your-Palworld-server.html) From 783e2c4130c78712ef71392d1be065292ccc0782 Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sun, 28 Jan 2024 11:40:46 -0500 Subject: [PATCH 08/20] Changed to superscript for notes --- README.md | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3bb677c..3a5ec95 100644 --- a/README.md +++ b/README.md @@ -120,11 +120,11 @@ It is highly recommended you set the following environment values before startin | Variable | Info | Default Values | Allowed Values | |--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|------------------------------------------------------------------------------------------------------------| | TZ | Timezone used for time stamping backup server | UTC | See [TZ Identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) | -| PLAYERS* | Max amount of players that are able to join the server | 16 | 1-32 | -| PORT* | UDP port that the server will expose | 8211 | 1024-65535 | -| PUID* | The uid of the user the server should run as | 1000 | !0 | -| PGID* | The gid of the group the server should run as | 1000 | !0 | -| MULTITHREADING** | Improves performance in multi-threaded CPU environments. It is effective up to a maximum of about 4 threads, and allocating more than this number of threads does not make much sense. | false | true/false | +| PLAYERS1 | Max amount of players that are able to join the server | 16 | 1-32 | +| PORT1 | UDP port that the server will expose | 8211 | 1024-65535 | +| PUID1 | The uid of the user the server should run as | 1000 | !0 | +| PGID1 | The gid of the group the server should run as | 1000 | !0 | +| MULTITHREADING2 | Improves performance in multi-threaded CPU environments. It is effective up to a maximum of about 4 threads, and allocating more than this number of threads does not make much sense. | false | true/false | | COMMUNITY | Whether or not the server shows up in the community server browser (USE WITH SERVER_PASSWORD) | false | true/false | | PUBLIC_IP | You can manually specify the global IP address of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | | x.x.x.x | | PUBLIC_PORT | You can manually specify the port number of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | | 1024-65535 | @@ -132,16 +132,14 @@ It is highly recommended you set the following environment values before startin | SERVER_DESCRIPTION | Your server Description | | "string" | | SERVER_PASSWORD | Secure your community server with a password | | "string" | | ADMIN_PASSWORD | Secure administration access in the server with a password | | "string" | -| UPDATE_ON_BOOT** | Update/Install the server when the docker container starts (THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER) | true | true/false | -| RCON_ENABLED*** | Enable RCON for the Palworld server | true | true/false | +| UPDATE_ON_BOOT2 | Update/Install the server when the docker container starts (THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER) | true | true/false | +| RCON_ENABLED3 | Enable RCON for the Palworld server | true | true/false | | RCON_PORT | RCON port to connect to | 25575 | 1024-65535 | | QUERY_PORT | Query port used to communicate with Steam servers | 27015 | 1024-65535 | -*highly recommended to set - -** Make sure you know what you are doing when running this option enabled - -*** Required for docker stop to save and gracefully close the server +1 highly recommended to set +2 Make sure you know what you are doing when running this option enabled +3 Required for docker stop to save and gracefully close the server > [!IMPORTANT] > Boolean values used in environment variables are case sensitive because they are used in the shell script. From 20a486bac248313675e5bfafe6c246c3bd3293ab Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sun, 28 Jan 2024 11:19:25 -0500 Subject: [PATCH 09/20] Reverted to pure markdown. --- README.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3a5ec95..3bb677c 100644 --- a/README.md +++ b/README.md @@ -120,11 +120,11 @@ It is highly recommended you set the following environment values before startin | Variable | Info | Default Values | Allowed Values | |--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|------------------------------------------------------------------------------------------------------------| | TZ | Timezone used for time stamping backup server | UTC | See [TZ Identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) | -| PLAYERS1 | Max amount of players that are able to join the server | 16 | 1-32 | -| PORT1 | UDP port that the server will expose | 8211 | 1024-65535 | -| PUID1 | The uid of the user the server should run as | 1000 | !0 | -| PGID1 | The gid of the group the server should run as | 1000 | !0 | -| MULTITHREADING2 | Improves performance in multi-threaded CPU environments. It is effective up to a maximum of about 4 threads, and allocating more than this number of threads does not make much sense. | false | true/false | +| PLAYERS* | Max amount of players that are able to join the server | 16 | 1-32 | +| PORT* | UDP port that the server will expose | 8211 | 1024-65535 | +| PUID* | The uid of the user the server should run as | 1000 | !0 | +| PGID* | The gid of the group the server should run as | 1000 | !0 | +| MULTITHREADING** | Improves performance in multi-threaded CPU environments. It is effective up to a maximum of about 4 threads, and allocating more than this number of threads does not make much sense. | false | true/false | | COMMUNITY | Whether or not the server shows up in the community server browser (USE WITH SERVER_PASSWORD) | false | true/false | | PUBLIC_IP | You can manually specify the global IP address of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | | x.x.x.x | | PUBLIC_PORT | You can manually specify the port number of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | | 1024-65535 | @@ -132,14 +132,16 @@ It is highly recommended you set the following environment values before startin | SERVER_DESCRIPTION | Your server Description | | "string" | | SERVER_PASSWORD | Secure your community server with a password | | "string" | | ADMIN_PASSWORD | Secure administration access in the server with a password | | "string" | -| UPDATE_ON_BOOT2 | Update/Install the server when the docker container starts (THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER) | true | true/false | -| RCON_ENABLED3 | Enable RCON for the Palworld server | true | true/false | +| UPDATE_ON_BOOT** | Update/Install the server when the docker container starts (THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER) | true | true/false | +| RCON_ENABLED*** | Enable RCON for the Palworld server | true | true/false | | RCON_PORT | RCON port to connect to | 25575 | 1024-65535 | | QUERY_PORT | Query port used to communicate with Steam servers | 27015 | 1024-65535 | -1 highly recommended to set -2 Make sure you know what you are doing when running this option enabled -3 Required for docker stop to save and gracefully close the server +*highly recommended to set + +** Make sure you know what you are doing when running this option enabled + +*** Required for docker stop to save and gracefully close the server > [!IMPORTANT] > Boolean values used in environment variables are case sensitive because they are used in the shell script. From 07e6911ddc1d9afd6449f7cc21376ea73c9cb213 Mon Sep 17 00:00:00 2001 From: "Carlos M. Martinez" Date: Sun, 28 Jan 2024 11:59:04 -0500 Subject: [PATCH 10/20] Updated readme --- README.md | 4 ++++ docker-compose.yml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a978fa..3ad7dc8 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ services: image: thijsvanloef/palworld-server-docker:latest restart: unless-stopped container_name: palworld-server + stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop ports: - 8211:8211/udp - 27015:27015/udp @@ -95,6 +96,9 @@ docker run -d \ ``` +> [!TIP] +> If you want to stop the container with a custom stop grace period then run: `docker stop --name palworld-server --time 30` + ### Kubernetes All files you will need to deploy this container to kubernetes are located in the [k8s folder](k8s/). diff --git a/docker-compose.yml b/docker-compose.yml index e0bb97d..ef5491a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ services: image: thijsvanloef/palworld-server-docker:latest restart: unless-stopped container_name: palworld-server - stop_grace_period: 30s + stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop ports: - 8211:8211/udp - 27015:27015/udp # Required if you want your server to show up in the community servers tab From 26fc1d435a29c93e5ce5bf09eb73f1955972a863 Mon Sep 17 00:00:00 2001 From: Twinki Date: Sun, 28 Jan 2024 12:18:17 -0500 Subject: [PATCH 11/20] Fix helm readme # Motivations Cleaner & working readmes related to the helm chart # Modifications - Move the charts/palworld/readme to charts/readme - Rename VALUES_SUMMARY to README, we don't need to differentiate it by name now --- README.md | 2 +- charts/README.md | 32 +++++++++++++ charts/palworld/README.md | 80 ++++++++++++++++++++++--------- charts/palworld/VALUES_SUMMARY.md | 68 -------------------------- 4 files changed, 91 insertions(+), 91 deletions(-) create mode 100644 charts/README.md delete mode 100644 charts/palworld/VALUES_SUMMARY.md diff --git a/README.md b/README.md index 731e94a..41a8394 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ Follow the steps in the [README.md here](k8s/readme.md) to deploy it. #### Using helm chart -Follow up the docs on the [README.md for the helm chart](./chart/README.md) to deploy. +Follow up the docs on the [README.md for the helm chart](./charts/README.md) to deploy. ### Environment variables diff --git a/charts/README.md b/charts/README.md new file mode 100644 index 0000000..81d7b7f --- /dev/null +++ b/charts/README.md @@ -0,0 +1,32 @@ +# Palworld Helm Chart + +Allows you to deploy the usage of [Palworld Server docker](https://github.com/Filipe-Souza/palworld-server-docker) as +a helm chart and with helm deployments. + +This is an advanced method of installation and can be quite difficult to non-technical trying to set it up. + +## Dependencies + +You will need the [Helm client](https://helm.sh/docs/intro/install/) and a Kubernetes cluster. + +## Install the chart + +There is no helm package available yet, so you need to clone this repo and setup it manually, or with some GitOps tool +like ArgoCD/FluxCD. + +After cloning the repository, you can create a new file, e.g.: values.override.yaml to store your custom values. + +After copying, modify your values.override.yaml as needed. You can look up the +[values summary](VALUES_SUMMARY.md) to see the parameter documentation. + +After that, you can apply the chart: + +```bash +helm install --create-namespace --namespace palworld palworld chart/ --values values.override.yaml +``` + +You can remove all the resources created (except the PVC) with the following command: + +```bash +helm uninstall -n palworld palworld +``` diff --git a/charts/palworld/README.md b/charts/palworld/README.md index 81d7b7f..49d3222 100644 --- a/charts/palworld/README.md +++ b/charts/palworld/README.md @@ -1,32 +1,68 @@ -# Palworld Helm Chart +# palworld -Allows you to deploy the usage of [Palworld Server docker](https://github.com/Filipe-Souza/palworld-server-docker) as -a helm chart and with helm deployments. +![Version: 0.0.0](https://img.shields.io/badge/Version-0.0.0-informational) +![Type: application](https://img.shields.io/badge/Type-application-informational) +![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational) -This is an advanced method of installation and can be quite difficult to non-technical trying to set it up. +This chart can provide an rAthena emulator installation on a Kubernetes cluster. -## Dependencies +**Homepage:** -You will need the [Helm client](https://helm.sh/docs/intro/install/) and a Kubernetes cluster. +## Maintainers -## Install the chart +| Name | Email | Url | +| ---- | ------ | --- | +| Filipe Souza | | | -There is no helm package available yet, so you need to clone this repo and setup it manually, or with some GitOps tool -like ArgoCD/FluxCD. +## Source Code -After cloning the repository, you can create a new file, e.g.: values.override.yaml to store your custom values. +* -After copying, modify your values.override.yaml as needed. You can look up the -[values summary](VALUES_SUMMARY.md) to see the parameter documentation. +## Values -After that, you can apply the chart: +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| namespace | string | `"palworld"` | Namespace where the resources will be created | +| server | dict | | The server configuration | +| server.annotations | object | `{}` | Additional annotations to the resources | +| server.config | dict | | Change the game server configuration. If you change those, make sure to change the service.ports and server.ports accordingly. Those are directly connected with the container image, providing multiple environment variables to the scripts. | +| server.config.annotations | object | `{}` | Additional annotations to the resources | +| server.config.community.enable | bool | `true` | Enables/disables the visibility of this server on Steam community servers list. | +| server.config.community.password | string | `""` | If not provided, a random password will be generated and stored on the secret. | +| server.config.labels | object | `{}` | Additional labels to the resources | +| server.config.max_players | int | `16` | The max number of players supported. | +| server.config.multithreading | bool | `true` | Enables the multithreading, allowing the usage of up to 4 cores (needs citation) | +| server.config.query_port | string | `27015` | The query port of the game. | +| server.config.rcon | dict | | Remote connection configuration. Allows the remote connection and management for the server. Those are directly connected with the container image, providing multiple environment variables to the scripts. | +| server.config.rcon.enable | bool | `true` | Enables/disables the rcon port. | +| server.config.rcon.password | string | `""` | If not provided, a random password will be generated and stored on the secret. | +| server.config.rcon.port | string | `25575` | The port for rcon. If you change this, make sure to change the service.ports and server.ports accordingly. | +| server.image | dict | | Define the parameters for the server image container | +| server.image.imagePullPolicy | string | `"IfNotPresent"` | Define the pull policy for the server image. | +| server.image.name | string | `"thijsvanloef/palworld-server-docker"` | Name of the image, without the tag. | +| server.image.tag | string | `"latest"` | The tag of the image. | +| server.labels | object | `{}` | Additional labels to the resources | +| server.ports | dict | | Change the ports to be mapped to the pod. If you change those, make sure to change the service.ports and server.config accordingly. | +| server.ports[0] | dict | `{"containerPort":8211,"name":"game","protocol":"UDP"}` | The "game" port definition. If you change this, make sure to change the service.ports.game and server.config accordingly. | +| server.ports[1] | dict | `{"containerPort":27015,"name":"query","protocol":"UDP"}` | The "query" port definition . If you change this, make sure to change the service.ports.query_port and server.config accordingly. | +| server.ports[2] | dict | `{"containerPort":25575,"name":"rcon","protocol":"UDP"}` | The "rcon" port definition . If you change this, make sure to change the service.ports.rcon and server.config accordingly. | +| server.resources | dict | `{"limits":{"cpu":4,"memory":"12Gi"},"requests":{"cpu":4,"memory":"8Gi"}}` | Resources limits for the container. | +| server.service | dict | | Change the service configuration. If you change those, make sure to change the server.config and server.ports accordingly. | +| server.service.annotations | object | `{}` | Additional annotations to the resources | +| server.service.enabled | bool | `true` | Enables the creation of the service component. | +| server.service.healthz | dict | `{"enabled":false,"name":"healthz","port":80,"protocol":"TCP","targetPort":80}` | The "healthz" definition . Use if you need to create a TCP health check for load balancers on cloud services. | +| server.service.labels | object | `{}` | Additional labels to the resources | +| server.service.ports | dict | | Change the ports to be mapped to the service. If you change those, make sure to change the server.config and server.ports accordingly. | +| server.service.ports[0] | dict | `{"name":"game","port":8211,"protocol":"UDP","targetPort":8211}` | The "game" port definition. If you change this, make sure to change the server.ports.game and server.config.port accordingly. | +| server.service.ports[1] | dict | `{"name":"query","port":27015,"protocol":"UDP","targetPort":27015}` | The "query" port definition . If you change this, make sure to change the server.ports.query and server.config.query_port accordingly. | +| server.service.ports[2] | dict | `{"name":"rcon","port":25575,"protocol":"UDP","targetPort":25575}` | The "rcon" port definition . If you change this, make sure to change the server.ports.rcon and server.config.rcon.port accordingly. | +| server.service.type | string | `"LoadBalancer"` | The type of service to be created. | +| server.storage | dict | `{"external":false,"externalName":"","preventDelete":false,"size":"12Gi","storageClassName":""}` | Define some parameters for the storage volume | +| server.storage.external | bool | `false` | Define if it will use an existing PVC containing the installation data. | +| server.storage.externalName | bool | `""` | The external PVC name to use. | +| server.storage.preventDelete | bool | `false` | Keeps helm from deleting the PVC. By default, helm does not delete pvcs. | +| server.storage.size | string | `"12Gi"` | The size of the pvc storage. | +| server.storage.storageClassName | string | `""` | The storage class name. | -```bash -helm install --create-namespace --namespace palworld palworld chart/ --values values.override.yaml -``` - -You can remove all the resources created (except the PVC) with the following command: - -```bash -helm uninstall -n palworld palworld -``` +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0) diff --git a/charts/palworld/VALUES_SUMMARY.md b/charts/palworld/VALUES_SUMMARY.md deleted file mode 100644 index 49d3222..0000000 --- a/charts/palworld/VALUES_SUMMARY.md +++ /dev/null @@ -1,68 +0,0 @@ -# palworld - -![Version: 0.0.0](https://img.shields.io/badge/Version-0.0.0-informational) -![Type: application](https://img.shields.io/badge/Type-application-informational) -![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational) - -This chart can provide an rAthena emulator installation on a Kubernetes cluster. - -**Homepage:** - -## Maintainers - -| Name | Email | Url | -| ---- | ------ | --- | -| Filipe Souza | | | - -## Source Code - -* - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| namespace | string | `"palworld"` | Namespace where the resources will be created | -| server | dict | | The server configuration | -| server.annotations | object | `{}` | Additional annotations to the resources | -| server.config | dict | | Change the game server configuration. If you change those, make sure to change the service.ports and server.ports accordingly. Those are directly connected with the container image, providing multiple environment variables to the scripts. | -| server.config.annotations | object | `{}` | Additional annotations to the resources | -| server.config.community.enable | bool | `true` | Enables/disables the visibility of this server on Steam community servers list. | -| server.config.community.password | string | `""` | If not provided, a random password will be generated and stored on the secret. | -| server.config.labels | object | `{}` | Additional labels to the resources | -| server.config.max_players | int | `16` | The max number of players supported. | -| server.config.multithreading | bool | `true` | Enables the multithreading, allowing the usage of up to 4 cores (needs citation) | -| server.config.query_port | string | `27015` | The query port of the game. | -| server.config.rcon | dict | | Remote connection configuration. Allows the remote connection and management for the server. Those are directly connected with the container image, providing multiple environment variables to the scripts. | -| server.config.rcon.enable | bool | `true` | Enables/disables the rcon port. | -| server.config.rcon.password | string | `""` | If not provided, a random password will be generated and stored on the secret. | -| server.config.rcon.port | string | `25575` | The port for rcon. If you change this, make sure to change the service.ports and server.ports accordingly. | -| server.image | dict | | Define the parameters for the server image container | -| server.image.imagePullPolicy | string | `"IfNotPresent"` | Define the pull policy for the server image. | -| server.image.name | string | `"thijsvanloef/palworld-server-docker"` | Name of the image, without the tag. | -| server.image.tag | string | `"latest"` | The tag of the image. | -| server.labels | object | `{}` | Additional labels to the resources | -| server.ports | dict | | Change the ports to be mapped to the pod. If you change those, make sure to change the service.ports and server.config accordingly. | -| server.ports[0] | dict | `{"containerPort":8211,"name":"game","protocol":"UDP"}` | The "game" port definition. If you change this, make sure to change the service.ports.game and server.config accordingly. | -| server.ports[1] | dict | `{"containerPort":27015,"name":"query","protocol":"UDP"}` | The "query" port definition . If you change this, make sure to change the service.ports.query_port and server.config accordingly. | -| server.ports[2] | dict | `{"containerPort":25575,"name":"rcon","protocol":"UDP"}` | The "rcon" port definition . If you change this, make sure to change the service.ports.rcon and server.config accordingly. | -| server.resources | dict | `{"limits":{"cpu":4,"memory":"12Gi"},"requests":{"cpu":4,"memory":"8Gi"}}` | Resources limits for the container. | -| server.service | dict | | Change the service configuration. If you change those, make sure to change the server.config and server.ports accordingly. | -| server.service.annotations | object | `{}` | Additional annotations to the resources | -| server.service.enabled | bool | `true` | Enables the creation of the service component. | -| server.service.healthz | dict | `{"enabled":false,"name":"healthz","port":80,"protocol":"TCP","targetPort":80}` | The "healthz" definition . Use if you need to create a TCP health check for load balancers on cloud services. | -| server.service.labels | object | `{}` | Additional labels to the resources | -| server.service.ports | dict | | Change the ports to be mapped to the service. If you change those, make sure to change the server.config and server.ports accordingly. | -| server.service.ports[0] | dict | `{"name":"game","port":8211,"protocol":"UDP","targetPort":8211}` | The "game" port definition. If you change this, make sure to change the server.ports.game and server.config.port accordingly. | -| server.service.ports[1] | dict | `{"name":"query","port":27015,"protocol":"UDP","targetPort":27015}` | The "query" port definition . If you change this, make sure to change the server.ports.query and server.config.query_port accordingly. | -| server.service.ports[2] | dict | `{"name":"rcon","port":25575,"protocol":"UDP","targetPort":25575}` | The "rcon" port definition . If you change this, make sure to change the server.ports.rcon and server.config.rcon.port accordingly. | -| server.service.type | string | `"LoadBalancer"` | The type of service to be created. | -| server.storage | dict | `{"external":false,"externalName":"","preventDelete":false,"size":"12Gi","storageClassName":""}` | Define some parameters for the storage volume | -| server.storage.external | bool | `false` | Define if it will use an existing PVC containing the installation data. | -| server.storage.externalName | bool | `""` | The external PVC name to use. | -| server.storage.preventDelete | bool | `false` | Keeps helm from deleting the PVC. By default, helm does not delete pvcs. | -| server.storage.size | string | `"12Gi"` | The size of the pvc storage. | -| server.storage.storageClassName | string | `""` | The storage class name. | - ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0) From 37b9dc72757d86dc46a469eecc21ef5d2e3aa066 Mon Sep 17 00:00:00 2001 From: Twinki Date: Sun, 28 Jan 2024 12:27:45 -0500 Subject: [PATCH 12/20] revert --- charts/README.md | 32 ------------- charts/palworld/README.md | 80 +++++++++---------------------- charts/palworld/VALUES_SUMMARY.md | 68 ++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 90 deletions(-) delete mode 100644 charts/README.md create mode 100644 charts/palworld/VALUES_SUMMARY.md diff --git a/charts/README.md b/charts/README.md deleted file mode 100644 index 81d7b7f..0000000 --- a/charts/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Palworld Helm Chart - -Allows you to deploy the usage of [Palworld Server docker](https://github.com/Filipe-Souza/palworld-server-docker) as -a helm chart and with helm deployments. - -This is an advanced method of installation and can be quite difficult to non-technical trying to set it up. - -## Dependencies - -You will need the [Helm client](https://helm.sh/docs/intro/install/) and a Kubernetes cluster. - -## Install the chart - -There is no helm package available yet, so you need to clone this repo and setup it manually, or with some GitOps tool -like ArgoCD/FluxCD. - -After cloning the repository, you can create a new file, e.g.: values.override.yaml to store your custom values. - -After copying, modify your values.override.yaml as needed. You can look up the -[values summary](VALUES_SUMMARY.md) to see the parameter documentation. - -After that, you can apply the chart: - -```bash -helm install --create-namespace --namespace palworld palworld chart/ --values values.override.yaml -``` - -You can remove all the resources created (except the PVC) with the following command: - -```bash -helm uninstall -n palworld palworld -``` diff --git a/charts/palworld/README.md b/charts/palworld/README.md index 49d3222..81d7b7f 100644 --- a/charts/palworld/README.md +++ b/charts/palworld/README.md @@ -1,68 +1,32 @@ -# palworld +# Palworld Helm Chart -![Version: 0.0.0](https://img.shields.io/badge/Version-0.0.0-informational) -![Type: application](https://img.shields.io/badge/Type-application-informational) -![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational) +Allows you to deploy the usage of [Palworld Server docker](https://github.com/Filipe-Souza/palworld-server-docker) as +a helm chart and with helm deployments. -This chart can provide an rAthena emulator installation on a Kubernetes cluster. +This is an advanced method of installation and can be quite difficult to non-technical trying to set it up. -**Homepage:** +## Dependencies -## Maintainers +You will need the [Helm client](https://helm.sh/docs/intro/install/) and a Kubernetes cluster. -| Name | Email | Url | -| ---- | ------ | --- | -| Filipe Souza | | | +## Install the chart -## Source Code +There is no helm package available yet, so you need to clone this repo and setup it manually, or with some GitOps tool +like ArgoCD/FluxCD. -* +After cloning the repository, you can create a new file, e.g.: values.override.yaml to store your custom values. -## Values +After copying, modify your values.override.yaml as needed. You can look up the +[values summary](VALUES_SUMMARY.md) to see the parameter documentation. -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| namespace | string | `"palworld"` | Namespace where the resources will be created | -| server | dict | | The server configuration | -| server.annotations | object | `{}` | Additional annotations to the resources | -| server.config | dict | | Change the game server configuration. If you change those, make sure to change the service.ports and server.ports accordingly. Those are directly connected with the container image, providing multiple environment variables to the scripts. | -| server.config.annotations | object | `{}` | Additional annotations to the resources | -| server.config.community.enable | bool | `true` | Enables/disables the visibility of this server on Steam community servers list. | -| server.config.community.password | string | `""` | If not provided, a random password will be generated and stored on the secret. | -| server.config.labels | object | `{}` | Additional labels to the resources | -| server.config.max_players | int | `16` | The max number of players supported. | -| server.config.multithreading | bool | `true` | Enables the multithreading, allowing the usage of up to 4 cores (needs citation) | -| server.config.query_port | string | `27015` | The query port of the game. | -| server.config.rcon | dict | | Remote connection configuration. Allows the remote connection and management for the server. Those are directly connected with the container image, providing multiple environment variables to the scripts. | -| server.config.rcon.enable | bool | `true` | Enables/disables the rcon port. | -| server.config.rcon.password | string | `""` | If not provided, a random password will be generated and stored on the secret. | -| server.config.rcon.port | string | `25575` | The port for rcon. If you change this, make sure to change the service.ports and server.ports accordingly. | -| server.image | dict | | Define the parameters for the server image container | -| server.image.imagePullPolicy | string | `"IfNotPresent"` | Define the pull policy for the server image. | -| server.image.name | string | `"thijsvanloef/palworld-server-docker"` | Name of the image, without the tag. | -| server.image.tag | string | `"latest"` | The tag of the image. | -| server.labels | object | `{}` | Additional labels to the resources | -| server.ports | dict | | Change the ports to be mapped to the pod. If you change those, make sure to change the service.ports and server.config accordingly. | -| server.ports[0] | dict | `{"containerPort":8211,"name":"game","protocol":"UDP"}` | The "game" port definition. If you change this, make sure to change the service.ports.game and server.config accordingly. | -| server.ports[1] | dict | `{"containerPort":27015,"name":"query","protocol":"UDP"}` | The "query" port definition . If you change this, make sure to change the service.ports.query_port and server.config accordingly. | -| server.ports[2] | dict | `{"containerPort":25575,"name":"rcon","protocol":"UDP"}` | The "rcon" port definition . If you change this, make sure to change the service.ports.rcon and server.config accordingly. | -| server.resources | dict | `{"limits":{"cpu":4,"memory":"12Gi"},"requests":{"cpu":4,"memory":"8Gi"}}` | Resources limits for the container. | -| server.service | dict | | Change the service configuration. If you change those, make sure to change the server.config and server.ports accordingly. | -| server.service.annotations | object | `{}` | Additional annotations to the resources | -| server.service.enabled | bool | `true` | Enables the creation of the service component. | -| server.service.healthz | dict | `{"enabled":false,"name":"healthz","port":80,"protocol":"TCP","targetPort":80}` | The "healthz" definition . Use if you need to create a TCP health check for load balancers on cloud services. | -| server.service.labels | object | `{}` | Additional labels to the resources | -| server.service.ports | dict | | Change the ports to be mapped to the service. If you change those, make sure to change the server.config and server.ports accordingly. | -| server.service.ports[0] | dict | `{"name":"game","port":8211,"protocol":"UDP","targetPort":8211}` | The "game" port definition. If you change this, make sure to change the server.ports.game and server.config.port accordingly. | -| server.service.ports[1] | dict | `{"name":"query","port":27015,"protocol":"UDP","targetPort":27015}` | The "query" port definition . If you change this, make sure to change the server.ports.query and server.config.query_port accordingly. | -| server.service.ports[2] | dict | `{"name":"rcon","port":25575,"protocol":"UDP","targetPort":25575}` | The "rcon" port definition . If you change this, make sure to change the server.ports.rcon and server.config.rcon.port accordingly. | -| server.service.type | string | `"LoadBalancer"` | The type of service to be created. | -| server.storage | dict | `{"external":false,"externalName":"","preventDelete":false,"size":"12Gi","storageClassName":""}` | Define some parameters for the storage volume | -| server.storage.external | bool | `false` | Define if it will use an existing PVC containing the installation data. | -| server.storage.externalName | bool | `""` | The external PVC name to use. | -| server.storage.preventDelete | bool | `false` | Keeps helm from deleting the PVC. By default, helm does not delete pvcs. | -| server.storage.size | string | `"12Gi"` | The size of the pvc storage. | -| server.storage.storageClassName | string | `""` | The storage class name. | +After that, you can apply the chart: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0) +```bash +helm install --create-namespace --namespace palworld palworld chart/ --values values.override.yaml +``` + +You can remove all the resources created (except the PVC) with the following command: + +```bash +helm uninstall -n palworld palworld +``` diff --git a/charts/palworld/VALUES_SUMMARY.md b/charts/palworld/VALUES_SUMMARY.md new file mode 100644 index 0000000..49d3222 --- /dev/null +++ b/charts/palworld/VALUES_SUMMARY.md @@ -0,0 +1,68 @@ +# palworld + +![Version: 0.0.0](https://img.shields.io/badge/Version-0.0.0-informational) +![Type: application](https://img.shields.io/badge/Type-application-informational) +![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational) + +This chart can provide an rAthena emulator installation on a Kubernetes cluster. + +**Homepage:** + +## Maintainers + +| Name | Email | Url | +| ---- | ------ | --- | +| Filipe Souza | | | + +## Source Code + +* + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| namespace | string | `"palworld"` | Namespace where the resources will be created | +| server | dict | | The server configuration | +| server.annotations | object | `{}` | Additional annotations to the resources | +| server.config | dict | | Change the game server configuration. If you change those, make sure to change the service.ports and server.ports accordingly. Those are directly connected with the container image, providing multiple environment variables to the scripts. | +| server.config.annotations | object | `{}` | Additional annotations to the resources | +| server.config.community.enable | bool | `true` | Enables/disables the visibility of this server on Steam community servers list. | +| server.config.community.password | string | `""` | If not provided, a random password will be generated and stored on the secret. | +| server.config.labels | object | `{}` | Additional labels to the resources | +| server.config.max_players | int | `16` | The max number of players supported. | +| server.config.multithreading | bool | `true` | Enables the multithreading, allowing the usage of up to 4 cores (needs citation) | +| server.config.query_port | string | `27015` | The query port of the game. | +| server.config.rcon | dict | | Remote connection configuration. Allows the remote connection and management for the server. Those are directly connected with the container image, providing multiple environment variables to the scripts. | +| server.config.rcon.enable | bool | `true` | Enables/disables the rcon port. | +| server.config.rcon.password | string | `""` | If not provided, a random password will be generated and stored on the secret. | +| server.config.rcon.port | string | `25575` | The port for rcon. If you change this, make sure to change the service.ports and server.ports accordingly. | +| server.image | dict | | Define the parameters for the server image container | +| server.image.imagePullPolicy | string | `"IfNotPresent"` | Define the pull policy for the server image. | +| server.image.name | string | `"thijsvanloef/palworld-server-docker"` | Name of the image, without the tag. | +| server.image.tag | string | `"latest"` | The tag of the image. | +| server.labels | object | `{}` | Additional labels to the resources | +| server.ports | dict | | Change the ports to be mapped to the pod. If you change those, make sure to change the service.ports and server.config accordingly. | +| server.ports[0] | dict | `{"containerPort":8211,"name":"game","protocol":"UDP"}` | The "game" port definition. If you change this, make sure to change the service.ports.game and server.config accordingly. | +| server.ports[1] | dict | `{"containerPort":27015,"name":"query","protocol":"UDP"}` | The "query" port definition . If you change this, make sure to change the service.ports.query_port and server.config accordingly. | +| server.ports[2] | dict | `{"containerPort":25575,"name":"rcon","protocol":"UDP"}` | The "rcon" port definition . If you change this, make sure to change the service.ports.rcon and server.config accordingly. | +| server.resources | dict | `{"limits":{"cpu":4,"memory":"12Gi"},"requests":{"cpu":4,"memory":"8Gi"}}` | Resources limits for the container. | +| server.service | dict | | Change the service configuration. If you change those, make sure to change the server.config and server.ports accordingly. | +| server.service.annotations | object | `{}` | Additional annotations to the resources | +| server.service.enabled | bool | `true` | Enables the creation of the service component. | +| server.service.healthz | dict | `{"enabled":false,"name":"healthz","port":80,"protocol":"TCP","targetPort":80}` | The "healthz" definition . Use if you need to create a TCP health check for load balancers on cloud services. | +| server.service.labels | object | `{}` | Additional labels to the resources | +| server.service.ports | dict | | Change the ports to be mapped to the service. If you change those, make sure to change the server.config and server.ports accordingly. | +| server.service.ports[0] | dict | `{"name":"game","port":8211,"protocol":"UDP","targetPort":8211}` | The "game" port definition. If you change this, make sure to change the server.ports.game and server.config.port accordingly. | +| server.service.ports[1] | dict | `{"name":"query","port":27015,"protocol":"UDP","targetPort":27015}` | The "query" port definition . If you change this, make sure to change the server.ports.query and server.config.query_port accordingly. | +| server.service.ports[2] | dict | `{"name":"rcon","port":25575,"protocol":"UDP","targetPort":25575}` | The "rcon" port definition . If you change this, make sure to change the server.ports.rcon and server.config.rcon.port accordingly. | +| server.service.type | string | `"LoadBalancer"` | The type of service to be created. | +| server.storage | dict | `{"external":false,"externalName":"","preventDelete":false,"size":"12Gi","storageClassName":""}` | Define some parameters for the storage volume | +| server.storage.external | bool | `false` | Define if it will use an existing PVC containing the installation data. | +| server.storage.externalName | bool | `""` | The external PVC name to use. | +| server.storage.preventDelete | bool | `false` | Keeps helm from deleting the PVC. By default, helm does not delete pvcs. | +| server.storage.size | string | `"12Gi"` | The size of the pvc storage. | +| server.storage.storageClassName | string | `""` | The storage class name. | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0) From 6254fe33653d63279013d27faf60daddf3a5e51b Mon Sep 17 00:00:00 2001 From: Twinki Date: Sun, 28 Jan 2024 12:33:13 -0500 Subject: [PATCH 13/20] fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5d941ac..1999ded 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,7 @@ Follow the steps in the [README.md here](k8s/readme.md) to deploy it. #### Using helm chart -Follow up the docs on the [README.md for the helm chart](./charts/README.md) to deploy. +Follow up the docs on the [README.md for the helm chart](./charts/palworld/README.md) to deploy. ### Environment variables From d1a3211d810aa21f349de9d572a784143df0b7c4 Mon Sep 17 00:00:00 2001 From: Filipe Souza Date: Sun, 28 Jan 2024 15:11:03 -0300 Subject: [PATCH 14/20] - Added support to the new server environment variables; --- .gitignore | 3 ++- charts/palworld/Chart.yaml | 4 ++-- charts/palworld/VALUES_SUMMARY.md | 12 ++++++++---- charts/palworld/templates/configmaps.yaml | 8 +++++++- charts/palworld/values.yaml | 14 ++++++++++++++ 5 files changed, 33 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 036b533..d65ba47 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ palworld .idea -!charts/* \ No newline at end of file +!charts/* +values*.yaml \ No newline at end of file diff --git a/charts/palworld/Chart.yaml b/charts/palworld/Chart.yaml index 93aea06..50d9ee1 100644 --- a/charts/palworld/Chart.yaml +++ b/charts/palworld/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: palworld -version: 0.0.1 -description: This chart can provide an rAthena emulator installation on a Kubernetes cluster. +version: 0.0.2 +description: This chart will provide a Palworld server installation on a kubernetes cluster. type: application keywords: - palworld diff --git a/charts/palworld/VALUES_SUMMARY.md b/charts/palworld/VALUES_SUMMARY.md index 49d3222..dd4b18e 100644 --- a/charts/palworld/VALUES_SUMMARY.md +++ b/charts/palworld/VALUES_SUMMARY.md @@ -1,10 +1,8 @@ # palworld -![Version: 0.0.0](https://img.shields.io/badge/Version-0.0.0-informational) -![Type: application](https://img.shields.io/badge/Type-application-informational) -![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational) +![Version: 0.0.2](https://img.shields.io/badge/Version-0.0.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) -This chart can provide an rAthena emulator installation on a Kubernetes cluster. +This chart will provide a Palworld server installation on a kubernetes cluster. **Homepage:** @@ -32,11 +30,16 @@ This chart can provide an rAthena emulator installation on a Kubernetes cluster. | server.config.labels | object | `{}` | Additional labels to the resources | | server.config.max_players | int | `16` | The max number of players supported. | | server.config.multithreading | bool | `true` | Enables the multithreading, allowing the usage of up to 4 cores (needs citation) | +| server.config.public_ip | string | `""` | You can manually specify the global IP address of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | +| server.config.public_port | string | `""` | You can manually specify the port number of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | | server.config.query_port | string | `27015` | The query port of the game. | | server.config.rcon | dict | | Remote connection configuration. Allows the remote connection and management for the server. Those are directly connected with the container image, providing multiple environment variables to the scripts. | | server.config.rcon.enable | bool | `true` | Enables/disables the rcon port. | | server.config.rcon.password | string | `""` | If not provided, a random password will be generated and stored on the secret. | | server.config.rcon.port | string | `25575` | The port for rcon. If you change this, make sure to change the service.ports and server.ports accordingly. | +| server.config.server_description | string | `""` | Your server description to be shown in game | +| server.config.timezone | string | `"UTC"` | The timezone used for time stamping backup server. Use the IANA TZ format with Area/Location See the [list of TZ database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) | +| server.config.update_on_boot | string | `true` | Update/Install the server when the container starts. THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER | | server.image | dict | | Define the parameters for the server image container | | server.image.imagePullPolicy | string | `"IfNotPresent"` | Define the pull policy for the server image. | | server.image.name | string | `"thijsvanloef/palworld-server-docker"` | Name of the image, without the tag. | @@ -63,6 +66,7 @@ This chart can provide an rAthena emulator installation on a Kubernetes cluster. | server.storage.preventDelete | bool | `false` | Keeps helm from deleting the PVC. By default, helm does not delete pvcs. | | server.storage.size | string | `"12Gi"` | The size of the pvc storage. | | server.storage.storageClassName | string | `""` | The storage class name. | +| server.strategy | string | `"Recreate"` | Change the deployment strategy | ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0) diff --git a/charts/palworld/templates/configmaps.yaml b/charts/palworld/templates/configmaps.yaml index e53158a..71b3967 100644 --- a/charts/palworld/templates/configmaps.yaml +++ b/charts/palworld/templates/configmaps.yaml @@ -37,4 +37,10 @@ data: SERVER_NAME: {{ regexReplaceAll "\\W+" .Values.server.config.server_name "_" }} {{ else }} SERVER_NAME: {{ printf "%s_%s" "palworld" (randAlphaNum 6 | nospace) }} - {{ end }} \ No newline at end of file + {{ end }} + TZ: {{ .Values.server.config.timezone }} + PUBLIC_IP: {{ .Values.server.config.public_ip | quote }} + PUBLIC_PORT: {{ .Values.server.config.public_port | quote }} + SERVER_DESCRIPTION: {{ .Values.server.config.server_description }} + UPDATE_ON_BOOT: {{ .Values.server.config.update_on_boot | quote }} + QUERY_PORT: {{ .Values.server.config.query_port | quote }} \ No newline at end of file diff --git a/charts/palworld/values.yaml b/charts/palworld/values.yaml index 955d343..02a24fb 100644 --- a/charts/palworld/values.yaml +++ b/charts/palworld/values.yaml @@ -137,3 +137,17 @@ server: password: "" # -- (string) If not provided, a random server name will be generated with the "palworld_" prefix. server_name: "" + # -- (string) The timezone used for time stamping backup server. Use the IANA TZ format with Area/Location + # See the [list of TZ database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) + timezone: "UTC" + # -- (string) You can manually specify the global IP address of the network on which the server running. + # If not specified, it will be detected automatically. If it does not work well, try manual configuration. + public_ip: "" + # -- (string) You can manually specify the port number of the network on which the server running. + # If not specified, it will be detected automatically. If it does not work well, try manual configuration. + public_port: "" + # -- (string) Your server description to be shown in game + server_description: "" + # -- (string) Update/Install the server when the container starts. + # THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER + update_on_boot: true From e06c0179022fe5a09511c1551d55ccb530076862 Mon Sep 17 00:00:00 2001 From: Filipe Souza Date: Sun, 28 Jan 2024 16:39:48 -0300 Subject: [PATCH 15/20] - Updated chart to support the world game parameters; - Bumped chart version to 0.0.2; --- charts/palworld/templates/configmaps.yaml | 7 ++- charts/palworld/values.yaml | 53 +++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/charts/palworld/templates/configmaps.yaml b/charts/palworld/templates/configmaps.yaml index 71b3967..58cfd91 100644 --- a/charts/palworld/templates/configmaps.yaml +++ b/charts/palworld/templates/configmaps.yaml @@ -43,4 +43,9 @@ data: PUBLIC_PORT: {{ .Values.server.config.public_port | quote }} SERVER_DESCRIPTION: {{ .Values.server.config.server_description }} UPDATE_ON_BOOT: {{ .Values.server.config.update_on_boot | quote }} - QUERY_PORT: {{ .Values.server.config.query_port | quote }} \ No newline at end of file + QUERY_PORT: {{ .Values.server.config.query_port | quote }} + {{ if .Values.server.config.world_parameters }} + {{- with .Values.server.config.world_parameters }} + {{- toYaml . | nindent 2 }} + {{- end }} + {{ end }} \ No newline at end of file diff --git a/charts/palworld/values.yaml b/charts/palworld/values.yaml index 02a24fb..0dbf519 100644 --- a/charts/palworld/values.yaml +++ b/charts/palworld/values.yaml @@ -151,3 +151,56 @@ server: # -- (string) Update/Install the server when the container starts. # THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER update_on_boot: true + world_parameters: + DAYTIME_SPEEDRATE: "1.000000" + NIGHTTIME_SPEEDRATE: "1.000000" + EXP_RATE: "1.000000" + PAL_CAPTURE_RATE: "1.000000" + PAL_SPAWN_NUM_RATE: "1.000000" + PAL_DAMAGE_RATE_ATTACK: "1.000000" + PAL_DAMAGE_RATE_DEFENSE: "1.000000" + PLAYER_DAMAGE_RATE_ATTACK: "1.000000" + PLAYER_DAMAGE_RATE_DEFENSE: "1.000000" + PLAYER_STOMACH_DECREASE_RATE: "1.000000" + PLAYER_STAMINA_DECREASE_RATE: "1.000000" + PLAYER_AUTO_HP_REGEN_RATE: "1.000000" + PLAYER_AUTO_HP_REGEN_RATE_IN_SLEEP: "1.000000" + PAL_STOMACH_DECREASE_RATE: "1.000000" + PAL_STAMINA_DECREASE_RATE: "1.000000" + PAL_AUTO_HP_REGEN_RATE: "1.000000" + PAL_AUTO_HP_REGEN_RATE_IN_SLEEP: "1.000000" + BUILD_OBJECT_DAMAGE_RATE: "1.000000" + BUILD_OBJECT_DETERIORATION_DAMAGE_RATE: "1.000000" + COLLECTION_DROP_RATE: "1.000000" + COLLECTION_OBJECT_HP_RATE: "1.000000" + COLLECTION_OBJECT_RESPAWN_SPEED_RATE: "1.000000" + ENEMY_DROP_ITEM_RATE: "1.000000" + DEATH_PENALTY: "All" + ENABLE_PLAYER_TO_PLAYER_DAMAGE: "False" + ENABLE_FRIENDLY_FIRE: "False" + ENABLE_INVADER_ENEMY: "True" + ACTIVE_UNKO: "True" + ENABLE_AIM_ASSIST_PAD: "True" + ENABLE_AIM_ASSIST_KEYBOARD: "False" + DROP_ITEM_MAX_NUM: "3000" + DROP_ITEM_MAX_NUM_UNKO: "1000" + BASE_CAMP_MAX_NUM: "128" + BASE_CAMP_WORKER_MAXNUM: "15" + DROP_ITEM_ALIVE_MAX_HOURS: "1.000000" + AUTO_RESET_GUILD_NO_ONLINE_PLAYERS: "False" + AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS: "72.000000" + GUILD_PLAYER_MAX_NUM: "3" + PAL_EGG_DEFAULT_HATCHING_TIME: "72.000000" + WORK_SPEED_RATE: "1.000000" + IS_MULTIPLAY: "False" + IS_PVP: "False" + CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP: "False" + ENABLE_NON_LOGIN_PENALTY: "True" + ENABLE_FAST_TRAVEL: "True" + IS_START_LOCATION_SELECT_BY_MAP: "True" + EXIST_PLAYER_AFTER_LOGOUT: "False" + ENABLE_DEFENSE_OTHER_GUILD_PLAYER: "False" + COOP_PLAYER_MAX_NUM: "4" + REGION: "" + USEAUTH: "True" + BAN_LIST_URL: "https://api.palworldgame.com/api/banlist.txt" From 65a7b2cf85d0fb22fdec699e936527a657900b50 Mon Sep 17 00:00:00 2001 From: Filipe Souza Date: Sun, 28 Jan 2024 17:20:43 -0300 Subject: [PATCH 16/20] - Updated the values summary; --- charts/palworld/VALUES_SUMMARY.md | 1 + charts/palworld/values.yaml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/charts/palworld/VALUES_SUMMARY.md b/charts/palworld/VALUES_SUMMARY.md index dd4b18e..e8b5a68 100644 --- a/charts/palworld/VALUES_SUMMARY.md +++ b/charts/palworld/VALUES_SUMMARY.md @@ -40,6 +40,7 @@ This chart will provide a Palworld server installation on a kubernetes cluster. | server.config.server_description | string | `""` | Your server description to be shown in game | | server.config.timezone | string | `"UTC"` | The timezone used for time stamping backup server. Use the IANA TZ format with Area/Location See the [list of TZ database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) | | server.config.update_on_boot | string | `true` | Update/Install the server when the container starts. THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER | +| server.config.world_parameters | object | | Configures the game world settings. The key:values here should represent in game accepted values. Wrap all values with quotes here to avoid validation issues. | | server.image | dict | | Define the parameters for the server image container | | server.image.imagePullPolicy | string | `"IfNotPresent"` | Define the pull policy for the server image. | | server.image.name | string | `"thijsvanloef/palworld-server-docker"` | Name of the image, without the tag. | diff --git a/charts/palworld/values.yaml b/charts/palworld/values.yaml index 0dbf519..4f37074 100644 --- a/charts/palworld/values.yaml +++ b/charts/palworld/values.yaml @@ -151,6 +151,10 @@ server: # -- (string) Update/Install the server when the container starts. # THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER update_on_boot: true + # -- (object) Configures the game world settings. + # The key:values here should represent in game accepted values. + # Wrap all values with quotes here to avoid validation issues. + # @notationType -- bigValue world_parameters: DAYTIME_SPEEDRATE: "1.000000" NIGHTTIME_SPEEDRATE: "1.000000" From 1ded35b2cd8c11b2733e0848f9941ea6a3622bec Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Sun, 28 Jan 2024 21:49:44 +0100 Subject: [PATCH 17/20] fix linting errors --- charts/palworld/VALUES_SUMMARY.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/charts/palworld/VALUES_SUMMARY.md b/charts/palworld/VALUES_SUMMARY.md index e8b5a68..320631b 100644 --- a/charts/palworld/VALUES_SUMMARY.md +++ b/charts/palworld/VALUES_SUMMARY.md @@ -1,6 +1,8 @@ # palworld -![Version: 0.0.2](https://img.shields.io/badge/Version-0.0.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) +![Version: 0.0.2](https://img.shields.io/badge/Version-0.0.2-informational?style=flat-square) +![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) This chart will provide a Palworld server installation on a kubernetes cluster. From 08dba13607a547a7e212a72349fcc67ead19c301 Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Sun, 28 Jan 2024 21:50:41 +0100 Subject: [PATCH 18/20] remove style to match rest of repo --- charts/palworld/VALUES_SUMMARY.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/charts/palworld/VALUES_SUMMARY.md b/charts/palworld/VALUES_SUMMARY.md index 320631b..7526ee6 100644 --- a/charts/palworld/VALUES_SUMMARY.md +++ b/charts/palworld/VALUES_SUMMARY.md @@ -1,8 +1,8 @@ # palworld -![Version: 0.0.2](https://img.shields.io/badge/Version-0.0.2-informational?style=flat-square) -![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) -![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) +![Version: 0.0.2](https://img.shields.io/badge/Version-0.0.2-informational) +![Type: application](https://img.shields.io/badge/Type-application-informational) +![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational) This chart will provide a Palworld server installation on a kubernetes cluster. From bf780b14695a43e445af7253be93d9c2bd23a56c Mon Sep 17 00:00:00 2001 From: Filipe Souza Date: Sun, 28 Jan 2024 18:01:34 -0300 Subject: [PATCH 19/20] - Fixed wrong property in the service annotation; --- charts/palworld/templates/services.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/palworld/templates/services.yaml b/charts/palworld/templates/services.yaml index cf6bcb5..5396c5e 100644 --- a/charts/palworld/templates/services.yaml +++ b/charts/palworld/templates/services.yaml @@ -15,7 +15,7 @@ metadata: {{- toYaml . | nindent 4 }} {{- end }} annotations: - {{- with .Values.server.config.annotations }} + {{- with .Values.server.service.annotations }} {{- toYaml . | nindent 4 }} {{- end }} spec: From 282f991a8e2726100a650d9025840210108faa86 Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Sun, 28 Jan 2024 22:05:26 +0100 Subject: [PATCH 20/20] fix linting errors --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ad2462c..be69730 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,8 @@ docker run -d \ ``` > [!TIP] -> If you want to stop the container with a custom stop grace period then run: `docker stop --name palworld-server --time 30` +> If you want to stop the container with a custom stop grace period then run: +> `docker stop --name palworld-server --time 30` ### Kubernetes