diff --git a/incubator/sonsoftheforest/0.0.1/CHANGELOG.md b/incubator/sonsoftheforest/0.0.1/CHANGELOG.md
new file mode 100644
index 00000000000..69d94d4552a
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/CHANGELOG.md
@@ -0,0 +1,8 @@
+**Important:**
+*for the complete changelog, please refer to the website*
+
+
+
+
+## [sonsoftheforest-0.0.1]sonsoftheforest-0.0.1 (2023-09-16)
+
diff --git a/incubator/sonsoftheforest/0.0.1/Chart.yaml b/incubator/sonsoftheforest/0.0.1/Chart.yaml
new file mode 100644
index 00000000000..5075d1f3b51
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/Chart.yaml
@@ -0,0 +1,28 @@
+apiVersion: v2
+appVersion: "latest"
+dependencies:
+ - name: common
+ repository: https://library-charts.truecharts.org
+ version: 14.0.1
+deprecated: false
+description: A custom SteamCMD chart that runs Sons Of The Forest Server.
+home: https://truecharts.org/charts/incubator/sonsoftheforest
+icon: https://truecharts.org/img/hotlink-ok/chart-icons/sonsoftheforest.png
+keywords:
+ - sonsoftheforest
+ - GameServers
+kubeVersion: ">=1.16.0-0"
+maintainers:
+ - email: info@truecharts.org
+ name: TrueCharts
+ url: https://truecharts.org
+name: sonsoftheforest
+sources:
+ - https://github.com/truecharts/charts/tree/master/charts/incubator/sonsoftheforest
+ - https://github.com/ich777/docker-steamcmd-server/tree/sonsoftheforest
+type: application
+version: 0.0.1
+annotations:
+ truecharts.org/catagories: |
+ - GameServers
+ truecharts.org/SCALE-support: "true"
diff --git a/incubator/sonsoftheforest/0.0.1/README.md b/incubator/sonsoftheforest/0.0.1/README.md
new file mode 100644
index 00000000000..7e59600739c
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/README.md
@@ -0,0 +1 @@
+# README
diff --git a/incubator/sonsoftheforest/0.0.1/app-changelog.md b/incubator/sonsoftheforest/0.0.1/app-changelog.md
new file mode 100644
index 00000000000..791e928ee66
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/app-changelog.md
@@ -0,0 +1,4 @@
+
+
+## [sonsoftheforest-0.0.1]sonsoftheforest-0.0.1 (2023-09-16)
+
diff --git a/incubator/sonsoftheforest/0.0.1/app-readme.md b/incubator/sonsoftheforest/0.0.1/app-readme.md
new file mode 100644
index 00000000000..9799e531dcf
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/app-readme.md
@@ -0,0 +1,8 @@
+A custom SteamCMD chart that runs Sons Of The Forest Server.
+
+This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/sonsoftheforest](https://truecharts.org/charts/incubator/sonsoftheforest)
+
+---
+
+TrueCharts can only exist due to the incredible effort of our staff.
+Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
diff --git a/incubator/sonsoftheforest/0.0.1/charts/common-14.0.1.tgz b/incubator/sonsoftheforest/0.0.1/charts/common-14.0.1.tgz
new file mode 100644
index 00000000000..656c64047b2
Binary files /dev/null and b/incubator/sonsoftheforest/0.0.1/charts/common-14.0.1.tgz differ
diff --git a/incubator/sonsoftheforest/0.0.1/ix_values.yaml b/incubator/sonsoftheforest/0.0.1/ix_values.yaml
new file mode 100644
index 00000000000..ed9cbc54636
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/ix_values.yaml
@@ -0,0 +1,145 @@
+image:
+ repository: tccr.io/truecharts/sonsoftheforest
+ pullPolicy: IfNotPresent
+ tag: latest@sha256:e435b582929c81473862460a9305751b0cf79413ecc8599332b0104e0da603ab
+
+securityContext:
+ container:
+ runAsNonRoot: false
+ readOnlyRootFilesystem: false
+ runAsUser: 0
+ runAsGroup: 0
+
+service:
+ main:
+ ports:
+ main:
+ protocol: udp
+ port: 8766
+ query:
+ enabled: true
+ ports:
+ query:
+ enabled: true
+ protocol: udp
+ port: 27016
+ sync:
+ enabled: true
+ ports:
+ sync:
+ enabled: true
+ protocol: udp
+ port: 9700
+
+sonsoftheforest:
+ game:
+ id: "2465200"
+ user: ""
+ password: ""
+ validate: false
+ params: []
+ server:
+ IpAddress: "0.0.0.0"
+ GamePort: "{{ .Values.service.main.ports.main.port }}"
+ QueryPort: "{{ .Values.service.query.ports.query.port }}"
+ BlobSyncPort: "{{ .Values.service.sync.ports.sync.port }}"
+ ServerName: "Sons Of The Forest Docker Server"
+ MaxPlayers: 8
+ Password: ""
+ LanOnly: false
+ # integer, equal to or greater than 1
+ SaveSlot: 1
+ # new, continue
+ SaveMode: "continue"
+ # peaceful, normal, hard, hardsurvival, custom
+ GameMode: "normal"
+ SaveInterval: 600
+ IdleDayCycleSpeed: "0.0"
+ IdleTargetFramerate: 5
+ ActiveTargetFramerate: 60
+ LogFilesEnabled: false
+ TimestampLogFilenames: true
+ TimestampLogEntries: true
+ SkipNetworkAccessibilityTest: false
+ GameSettings:
+ Gameplay.TreeRegrowth: true
+ Structure.Damage: true
+ CustomGameModeSettings:
+ # Multiplayer
+ GameSetting.Multiplayer.Cheats: false
+ # Vail
+ GameSetting.Vail.EnemySpawn: true
+ # low, normal, high
+ GameSetting.Vail.EnemyHealth: "normal"
+ # low, normal, high
+ GameSetting.Vail.EnemyDamage: "normal"
+ # low, normal, high
+ GameSetting.Vail.EnemyArmour: "normal"
+ # low, normal, high
+ GameSetting.Vail.EnemyAggression: "normal"
+ # low, normal, high
+ GameSetting.Vail.AnimalSpawnRate: "normal"
+ # Environment
+ # spring, summer, autumn, winter
+ GameSetting.Environment.StartingSeason: "Summer"
+ # short, default, long, realistic
+ GameSetting.Environment.SeasonLength: "default"
+ # short, default, long, realistic
+ GameSetting.Environment.DayLength: "default"
+ # low, default, high
+ GameSetting.Environment.PrecipitationFrequency: "default"
+ # not a dupe key.
+ Structure.Damage: true
+ # Survival
+ # normal, hard
+ GameSetting.Survival.ConsumableEffects: "normal"
+ # off, normal, hard
+ GameSetting.Survival.PlayerStatsDamage: "off"
+ # off, normal, hard
+ GameSetting.Survival.ColdPenalties: "off"
+ GameSetting.Survival.ReducedFoodInContainers: false
+ GameSetting.Survival.SingleUssonsoftheforestntainers: false
+
+workload:
+ main:
+ podSpec:
+ containers:
+ main:
+ probes:
+ liveness:
+ enabled: false
+ readiness:
+ enabled: false
+ startup:
+ enabled: false
+ env:
+ GAME_PORT: "{{ .Values.service.main.ports.main.port }}"
+ STEAMCMD_DIR: "{{ .Values.persistence.steamcmd.mountPath }}"
+ SERVER_DIR: "{{ .Values.persistence.serverfiles.mountPath }}"
+ GAME_ID: "{{ .Values.sonsoftheforest.game.id }}"
+ USERNAME: "{{ .Values.sonsoftheforest.game.user }}"
+ PASSWRD: "{{ .Values.sonsoftheforest.game.password }}"
+ GAME_PARAMS: '{{ join " " .Values.sonsoftheforest.game.params }}'
+ VALIDATE: "{{ .Values.sonsoftheforest.game.validate }}"
+
+persistence:
+ steamcmd:
+ enabled: true
+ mountPath: /serverdata/steamcmd
+ serverfiles:
+ enabled: true
+ mountPath: /serverdata/serverfiles
+ dedicatedserver-dscfg:
+ enabled: true
+ type: configmap
+ objectName: sonsoftheforest-dscfg
+ targetSelector:
+ main:
+ main:
+ mountPath: /serverdata/serverfiles/userdata/dedicatedserver.cfg
+ subPath: dedicatedserver.cfg
+ readOnly: true
+
+portal:
+ open:
+ enabled: false
diff --git a/incubator/sonsoftheforest/0.0.1/questions.yaml b/incubator/sonsoftheforest/0.0.1/questions.yaml
new file mode 100644
index 00000000000..bf3914d7f94
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/questions.yaml
@@ -0,0 +1,2299 @@
+groups:
+ - name: Container Image
+ description: Image to be used for container
+ - name: General Settings
+ description: General Deployment Settings
+ - name: Workload Settings
+ description: Workload Settings
+ - name: App Configuration
+ description: App Specific Config Options
+ - name: Networking and Services
+ description: Configure Network and Services for Container
+ - name: Storage and Persistence
+ description: Persist and Share Data that is Separate from the Container
+ - name: Ingress
+ description: Ingress Configuration
+ - name: Security and Permissions
+ description: Configure Security Context and Permissions
+ - name: Resources and Devices
+ description: "Specify Resources/Devices to be Allocated to Workload"
+ - name: Middlewares
+ description: Traefik Middlewares
+ - name: Metrics
+ description: Metrics
+ - name: Addons
+ description: Addon Configuration
+ - name: Advanced
+ description: Advanced Configuration
+ - name: Postgresql
+ description: Postgresql
+ - name: Documentation
+ description: Documentation
+portals: {}
+questions:
+ - variable: global
+ group: General Settings
+ label: "Global Settings"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: stopAll
+ label: Stop All
+ description: "Stops All Running pods and hibernates cnpg"
+ schema:
+ type: boolean
+ default: false
+ - variable: workload
+ group: "Workload Settings"
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: main
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: type
+ label: Type (Advanced)
+ schema:
+ type: string
+ default: Deployment
+ enum:
+ - value: Deployment
+ description: Deployment
+ - value: DaemonSet
+ description: DaemonSet
+
+ - variable: replicas
+ label: Replicas (Advanced)
+ description: Set the number of Replicas
+ schema:
+ type: int
+ show_if: [["type", "!=", "DaemonSet"]]
+ default: 1
+ - variable: podSpec
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: containers
+ label: Containers
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: main
+ label: Main Container
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+
+ - variable: envList
+ label: Extra Environment Variables
+ description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..."
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: envItem
+ label: Environment Variable
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Name
+ schema:
+ type: string
+ - variable: value
+ label: Value
+ schema:
+ type: string
+ - variable: extraArgs
+ label: Extra Args
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: arg
+ label: Arg
+ schema:
+ type: string
+ - variable: advanced
+ label: Show Advanced Settings
+ description: Advanced settings are not covered by TrueCharts Support
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: command
+ label: Command
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: param
+ label: Param
+ schema:
+ type: string
+
+ - variable: sonsoftheforest
+ group: App Configuration
+ label: Sons of the Forest
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: game
+ label: Game Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: id
+ label: Game Id
+ description: The ID of the container to download at start up.
+ schema:
+ type: string
+ required: true
+ default: "2465200"
+ - variable: user
+ label: Steam User
+ description: Leave blank for anonymous login.
+ schema:
+ type: string
+ default: ""
+ - variable: password
+ label: Steam Password
+ description: Leave blank for anonymous login.
+ schema:
+ type: string
+ default: ""
+ - variable: validate
+ label: Validate
+ description: Validates the game data.
+ schema:
+ type: boolean
+ default: true
+ - variable: params
+ label: Game Params
+ schema:
+ type: list
+ default: []
+ required: true
+ items:
+ - variable: param
+ label: Param
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: server
+ label: Game Server Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: ServerName
+ label: Server Name
+ description: Name of the server visible in the server list, and in the Steam contacts.
+ schema:
+ type: string
+ required: true
+ default: "Sons Of The Forest Docker Server"
+ - variable: MaxPlayers
+ label: Max Players
+ description: The maximum number of players allowed simultaneously on the server.
+ schema:
+ type: int
+ required: true
+ default: 8
+ min: 1
+ - variable: Password
+ label: Password
+ description: Adds a password to make your server “private”. Upon connection, this password will be requested before the client can proceed.
+ schema:
+ type: string
+ private: true
+ default: ""
+ - variable: LanOnly
+ label: Lan Only
+ description: Allows or restricts the server visibility to LAN only.
+ schema:
+ type: boolean
+ default: false
+ - variable: SaveSlot
+ label: Save Slot
+ description: When creating a new save, this number will be the id of the save.
+ schema:
+ type: int
+ required: true
+ default: 1
+ min: 1
+ - variable: SaveMode
+ label: Save Mode
+ description: Game save initialization mode.
+ schema:
+ type: string
+ required: true
+ default: "Continue"
+ enum:
+ - value: Continue
+ description: Continue
+ - value: New
+ description: New
+ - variable: GameMode
+ label: Game Mode
+ description: Sets the difficulty game mode when creating a new save.
+ schema:
+ type: string
+ required: true
+ default: "normal"
+ enum:
+ - value: peaceful
+ description: Peaceful
+ - value: normal
+ description: Normal
+ - value: hard
+ description: Hard
+ - value: hardsurvival
+ description: Hard Survival
+ - value: custom
+ description: Custom
+ - variable: SaveInterval
+ label: Save Interval
+ description: How often the game server automatically saves the game to SaveSlot, in seconds.
+ schema:
+ type: int
+ required: true
+ default: 600
+ - variable: IdleDayCycleSpeed
+ label: Idle Day Cycle Speed
+ description: A multiplier to how quickly the time passes compared to normal gameplay when the server is considered idle (no player connected).
+ schema:
+ type: string
+ required: true
+ default: "0.0"
+ - variable: IdleTargetFramerate
+ label: Idle Target Framerate
+ description: Target framerate of the server when it’s considered idle (no player connected).
+ schema:
+ type: int
+ required: true
+ default: 5
+ - variable: ActiveTargetFramerate
+ label: Active Target Framerate
+ description: Target framerate of the server when it’s NOT considered idle (one or more player connected).
+ schema:
+ type: int
+ required: true
+ default: 60
+ - variable: LogFilesEnabled
+ label: Log Files Enabled
+ description: Defines if the logs will be written to files.
+ schema:
+ type: boolean
+ default: false
+ - variable: TimestampLogFilenames
+ label: Timestamp Log Filenames
+ description: Enabled log files timestamping.
+ schema:
+ type: boolean
+ default: true
+ - variable: TimestampLogEntries
+ label: Timestamp Log Entries
+ description: Enables each log entry written to file to be timestamped.
+ schema:
+ type: boolean
+ default: true
+ - variable: SkipNetworkAccessibilityTest
+ label: Skip Network Accessibility Test
+ description: Opt-out of network accessibility self tests.
+ schema:
+ type: boolean
+ default: false
+ - variable: GameSettings
+ label: Game Settings
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: Gameplay.TreeRegrowth
+ label: Tree Regrowth
+ description: Enable automatic tree regrowth, triggered when sleeping.
+ schema:
+ type: boolean
+ default: true
+ - variable: Structure.Damage
+ label: Structure Damage
+ description: Allow buildings to be damaged.
+ schema:
+ type: boolean
+ default: true
+ - variable: CustomGameModeSettings
+ label: Custom GameMode Settings
+ description: These parameters are ignored if the Game Mode is not “custom”.
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: GameSetting.Multiplayer.Cheats
+ label: Cheats
+ description: Allows cheats on the server.
+ schema:
+ type: boolean
+ default: false
+ - variable: GameSetting.Vail.EnemySpawn
+ label: Enemy Spawn
+ description: Enable enemies spawning.
+ schema:
+ type: boolean
+ default: true
+ - variable: GameSetting.Vail.EnemyHealth
+ label: Enemy Health
+ description: Adjust enemy starting health.
+ schema:
+ type: string
+ required: true
+ default: "normal"
+ enum:
+ - value: low
+ description: Low
+ - value: normal
+ description: Normal
+ - value: high
+ description: High
+ - variable: GameSetting.Vail.EnemyDamage
+ label: Enemy Damage
+ description: Adjust damage enemies can do.
+ schema:
+ type: string
+ required: true
+ default: "normal"
+ enum:
+ - value: low
+ description: Low
+ - value: normal
+ description: Normal
+ - value: high
+ description: High
+ - variable: GameSetting.Vail.EnemyArmour
+ label: Enemy Armour
+ description: Adjust enemies armor strength.
+ schema:
+ type: string
+ required: true
+ default: "normal"
+ enum:
+ - value: low
+ description: Low
+ - value: normal
+ description: Normal
+ - value: high
+ description: High
+ - variable: GameSetting.Vail.EnemyAggression
+ label: Enemy Aggression
+ description: Adjust enemy aggression level.
+ schema:
+ type: string
+ required: true
+ default: "normal"
+ enum:
+ - value: low
+ description: Low
+ - value: normal
+ description: Normal
+ - value: high
+ description: High
+ - variable: GameSetting.Vail.AnimalSpawnRate
+ label: Animal Spawn Rate
+ description: Adjust animal spawn rate.
+ schema:
+ type: string
+ required: true
+ default: "normal"
+ enum:
+ - value: low
+ description: Low
+ - value: normal
+ description: Normal
+ - value: high
+ description: High
+ - variable: GameSetting.Environment.StartingSeason
+ label: Starting Season
+ description: Set environmental starting season.
+ schema:
+ type: string
+ required: true
+ default: "summer"
+ enum:
+ - value: spring
+ description: Spring
+ - value: summer
+ description: Summer
+ - value: autumn
+ description: Autumn
+ - value: winter
+ description: Winter
+ - variable: GameSetting.Environment.SeasonLength
+ label: Season Length
+ description: Adjust season length.
+ schema:
+ type: string
+ required: true
+ default: "default"
+ enum:
+ - value: short
+ description: Short
+ - value: default
+ description: Default
+ - value: long
+ description: Long
+ - value: realistic
+ description: Realistic
+ - variable: GameSetting.Environment.DayLength
+ label: Day Length
+ description: Adjust day length.
+ schema:
+ type: string
+ required: true
+ default: "default"
+ enum:
+ - value: short
+ description: Short
+ - value: default
+ description: Default
+ - value: long
+ description: Long
+ - value: realistic
+ description: Realistic
+ - variable: GameSetting.Environment.PrecipitationFrequency
+ label: Precipitation Frequency
+ description: Adjust the frequency of rain and snow.
+ schema:
+ type: string
+ required: true
+ default: "default"
+ enum:
+ - value: low
+ description: Low
+ - value: default
+ description: Default
+ - value: high
+ description: High
+ - variable: Structure.Damage
+ label: Structure Damage
+ description: Allow buildings to be damaged.
+ schema:
+ type: boolean
+ default: true
+ - variable: GameSetting.Survival.ConsumableEffects
+ label: Consumable Effects
+ description: Enable damage taken when low hydration and low fullness.
+ schema:
+ type: string
+ required: true
+ default: "hard"
+ enum:
+ - value: normal
+ description: normal
+ - value: hard
+ description: Hard
+ - variable: GameSetting.Survival.PlayerStatsDamage
+ label: PlayerStat Damage
+ description: Enable damage from each bad or rotten food and drink.
+ schema:
+ type: string
+ required: true
+ default: "off"
+ enum:
+ - value: "off"
+ description: "Off"
+ - value: normal
+ description: normal
+ - value: hard
+ description: Hard
+ - variable: GameSetting.Survival.ColdPenalties
+ label: Cold Penalties
+ description: Adjusts the severity that cold will affect health and stamina regeneration.
+ schema:
+ type: string
+ required: true
+ default: "off"
+ enum:
+ - value: "off"
+ description: "Off"
+ - value: normal
+ description: normal
+ - value: hard
+ description: Hard
+ - variable: GameSetting.Survival.ReducedFoodInContainers
+ label: Reduced Food In Containers
+ description: Reduces the amount of food found in containers.
+ schema:
+ type: boolean
+ default: false
+ - variable: GameSetting.Survival.SingleUseContainers
+ label: Single Use Containers
+ description: Containers can only be opened once.
+ schema:
+ type: boolean
+ default: false
+
+ - variable: TZ
+ label: Timezone
+ group: "General Settings"
+ schema:
+ type: string
+ default: "Etc/UTC"
+ $ref:
+ - "definitions/timezone"
+ - variable: podOptions
+ group: "General Settings"
+ label: "Global Pod Options (Advanced)"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: expertPodOpts
+ label: "Expert - Pod Options"
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: hostNetwork
+ label: "Host Networking"
+ schema:
+ type: boolean
+ default: false
+ - variable: dnsConfig
+ label: "DNS Configuration"
+ schema:
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: options
+ label: "Options"
+ schema:
+ type: list
+ default: [{"name": "ndots", "value": "1"}]
+ items:
+ - variable: optionsEntry
+ label: "Option Entry"
+ schema:
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ required: true
+ - variable: value
+ label: "Value"
+ schema:
+ type: string
+ - variable: nameservers
+ label: "Nameservers"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: nsEntry
+ label: "Nameserver Entry"
+ schema:
+ type: string
+ required: true
+ - variable: searches
+ label: "Searches"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: searchEntry
+ label: "Search Entry"
+ schema:
+ type: string
+ required: true
+ - variable: service
+ group: Networking and Services
+ label: Configure Service(s)
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: main
+ label: Main Service
+ description: The Primary service on which the healthcheck runs, often the webUI
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the Service
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: type
+ label: Service Type
+ description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer"
+ schema:
+ type: string
+ default: LoadBalancer
+ enum:
+ - value: LoadBalancer
+ description: LoadBalancer (Expose Ports)
+ - value: ClusterIP
+ description: ClusterIP (Do Not Expose Ports)
+ - variable: loadBalancerIP
+ label: LoadBalancer IP
+ description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: string
+ default: ""
+ - variable: ports
+ label: "Service's Port(s) Configuration"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: main
+ label: Main Service Port Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: port
+ label: Port
+ description: This port exposes the container port on the service
+ schema:
+ type: int
+ default: 8766
+ required: true
+ - variable: query
+ label: Query service
+ description: Query Service Port Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the Service
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: type
+ label: Service Type
+ description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer"
+ schema:
+ type: string
+ default: LoadBalancer
+ enum:
+ - value: LoadBalancer
+ description: LoadBalancer (Expose Ports)
+ - value: ClusterIP
+ description: ClusterIP (Do Not Expose Ports)
+ - variable: loadBalancerIP
+ label: LoadBalancer IP
+ description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: string
+ default: ""
+ - variable: ports
+ label: "Service's Port(s) Configuration"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: query
+ label: Query Service Port Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: port
+ label: Port
+ description: This port exposes the container port on the service
+ schema:
+ type: int
+ default: 27016
+ required: true
+ - variable: sync
+ label: Sync service
+ description: Sync Service Port Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the Service
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: type
+ label: Service Type
+ description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer"
+ schema:
+ type: string
+ default: LoadBalancer
+ enum:
+ - value: LoadBalancer
+ description: LoadBalancer (Expose Ports)
+ - value: ClusterIP
+ description: ClusterIP (Do Not Expose Ports)
+ - variable: loadBalancerIP
+ label: LoadBalancer IP
+ description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: string
+ default: ""
+ - variable: ports
+ label: "Service's Port(s) Configuration"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: sync
+ label: Sync Service Port Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: port
+ label: Port
+ description: This port exposes the container port on the service
+ schema:
+ type: int
+ default: 9700
+ required: true
+ - variable: serviceexpert
+ group: Networking and Services
+ label: Show Expert Config
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: scaleExternalInterface
+ description: Add External Interfaces
+ label: Add external Interfaces
+ group: Networking
+ schema:
+ type: list
+ items:
+ - variable: interfaceConfiguration
+ description: Interface Configuration
+ label: Interface Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ $ref:
+ - "normalize/interfaceConfiguration"
+ attrs:
+ - variable: hostInterface
+ description: Please Specify Host Interface
+ label: Host Interface
+ schema:
+ type: string
+ required: true
+ $ref:
+ - "definitions/interface"
+ - variable: ipam
+ description: Define how IP Address will be managed
+ label: IP Address Management
+ schema:
+ additional_attrs: true
+ type: dict
+ required: true
+ attrs:
+ - variable: type
+ description: Specify type for IPAM
+ label: IPAM Type
+ schema:
+ type: string
+ required: true
+ enum:
+ - value: dhcp
+ description: Use DHCP
+ - value: static
+ description: Use Static IP
+ - variable: staticIPConfigurations
+ label: Static IP Addresses
+ schema:
+ type: list
+ show_if: [["type", "=", "static"]]
+ items:
+ - variable: staticIP
+ label: Static IP
+ schema:
+ type: ipaddr
+ cidr: true
+ - variable: staticRoutes
+ label: Static Routes
+ schema:
+ type: list
+ show_if: [["type", "=", "static"]]
+ items:
+ - variable: staticRouteConfiguration
+ label: Static Route Configuration
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: destination
+ label: Destination
+ schema:
+ type: ipaddr
+ cidr: true
+ required: true
+ - variable: gateway
+ label: Gateway
+ schema:
+ type: ipaddr
+ cidr: false
+ required: true
+ - variable: serviceList
+ label: Add Manual Custom Services
+ group: Networking and Services
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: serviceListEntry
+ label: Custom Service
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the service
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: name
+ label: Name
+ schema:
+ type: string
+ default: ""
+ - variable: type
+ label: Service Type
+ description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer"
+ schema:
+ type: string
+ default: LoadBalancer
+ enum:
+ - value: LoadBalancer
+ description: LoadBalancer (Expose Ports)
+ - value: ClusterIP
+ description: ClusterIP (Do Not Expose Ports)
+ - value: Simple
+ description: Deprecated CHANGE THIS
+ - variable: loadBalancerIP
+ label: LoadBalancer IP
+ description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: string
+ default: ""
+ - variable: advancedsvcset
+ label: Show Advanced Service Settings
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: externalIPs
+ label: "External IP's"
+ description: "External IP's"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: externalIP
+ label: External IP
+ schema:
+ type: string
+ - variable: ipFamilyPolicy
+ label: IP Family Policy
+ description: Specify the IP Policy
+ schema:
+ type: string
+ default: SingleStack
+ enum:
+ - value: SingleStack
+ description: SingleStack
+ - value: PreferDualStack
+ description: PreferDualStack
+ - value: RequireDualStack
+ description: RequireDualStack
+ - variable: ipFamilies
+ label: IP Families
+ description: (Advanced) The IP Families that should be used
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: ipFamily
+ label: IP Family
+ schema:
+ type: string
+ - variable: portsList
+ label: Additional Service Ports
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: portsListEntry
+ label: Custom ports
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the Port
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: name
+ label: Port Name
+ schema:
+ type: string
+ default: ""
+ - variable: protocol
+ label: Port Type
+ schema:
+ type: string
+ default: tcp
+ enum:
+ - value: http
+ description: HTTP
+ - value: https
+ description: HTTPS
+ - value: tcp
+ description: TCP
+ - value: udp
+ description: UDP
+ - variable: targetPort
+ label: Target Port
+ description: This port exposes the container port on the service
+ schema:
+ type: int
+ required: true
+ - variable: port
+ label: Container Port
+ schema:
+ type: int
+ required: true
+ - variable: persistence
+ label: Integrated Persistent Storage
+ description: Integrated Persistent Storage
+ group: Storage and Persistence
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: steamcmd
+ label: App SteamCMD Storage
+ description: Stores the Application SteamCMD.
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: type
+ label: Type of Storage
+ description: Sets the persistence type, Anything other than PVC could break rollback!
+ schema:
+ type: string
+ default: pvc
+ enum:
+ - value: pvc
+ description: PVC
+ - value: hostPath
+ description: Host Path
+ - value: emptyDir
+ description: emptyDir
+ - value: nfs
+ description: NFS Share
+ - variable: server
+ label: NFS Server
+ schema:
+ show_if: [["type", "=", "nfs"]]
+ type: string
+ default: ""
+ - variable: path
+ label: Path on NFS Server
+ schema:
+ show_if: [["type", "=", "nfs"]]
+ type: string
+ default: ""
+ - variable: autoPermissions
+ label: Automatic Permissions Configuration
+ description: Automatically set permissions
+ schema:
+ show_if: [["type", "!=", "pvc"]]
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: enabled
+ label: enabled
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: chown
+ label: Run CHOWN
+ description: |
+ It will run CHOWN on the path with the given fsGroup
+ schema:
+ type: boolean
+ default: false
+ - variable: chmod
+ label: Run CHMOD
+ description: |
+ It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770
+ schema:
+ type: string
+ valid_chars: '[0-9]{3}'
+ default: ""
+ - variable: recursive
+ label: Recursive
+ description: |
+ It will run CHOWN and CHMOD recursively
+ schema:
+ type: boolean
+ default: false
+ - variable: readOnly
+ label: Read Only
+ schema:
+ type: boolean
+ default: false
+ - variable: hostPath
+ label: Host Path
+ description: Path inside the container the storage is mounted
+ schema:
+ show_if: [["type", "=", "hostPath"]]
+ type: hostpath
+ - variable: medium
+ label: EmptyDir Medium
+ schema:
+ show_if: [["type", "=", "emptyDir"]]
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: Default
+ - value: Memory
+ description: Memory
+ - variable: size
+ label: Size quotum of Storage (Do NOT REDUCE after installation)
+ description: This value can ONLY be INCREASED after the installation
+ schema:
+ show_if: [["type", "=", "pvc"]]
+ type: string
+ default: 256Gi
+ - variable: serverfiles
+ label: App Server Files Storage
+ description: Stores the Application Server Files.
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: type
+ label: Type of Storage
+ description: Sets the persistence type, Anything other than PVC could break rollback!
+ schema:
+ type: string
+ default: pvc
+ enum:
+ - value: pvc
+ description: PVC
+ - value: hostPath
+ description: Host Path
+ - value: emptyDir
+ description: emptyDir
+ - value: nfs
+ description: NFS Share
+ - variable: server
+ label: NFS Server
+ schema:
+ show_if: [["type", "=", "nfs"]]
+ type: string
+ default: ""
+ - variable: path
+ label: Path on NFS Server
+ schema:
+ show_if: [["type", "=", "nfs"]]
+ type: string
+ default: ""
+ - variable: autoPermissions
+ label: Automatic Permissions Configuration
+ description: Automatically set permissions
+ schema:
+ show_if: [["type", "!=", "pvc"]]
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: enabled
+ label: enabled
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: chown
+ label: Run CHOWN
+ description: |
+ It will run CHOWN on the path with the given fsGroup
+ schema:
+ type: boolean
+ default: false
+ - variable: chmod
+ label: Run CHMOD
+ description: |
+ It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770
+ schema:
+ type: string
+ valid_chars: '[0-9]{3}'
+ default: ""
+ - variable: recursive
+ label: Recursive
+ description: |
+ It will run CHOWN and CHMOD recursively
+ schema:
+ type: boolean
+ default: false
+ - variable: readOnly
+ label: Read Only
+ schema:
+ type: boolean
+ default: false
+ - variable: hostPath
+ label: Host Path
+ description: Path inside the container the storage is mounted
+ schema:
+ show_if: [["type", "=", "hostPath"]]
+ type: hostpath
+ - variable: medium
+ label: EmptyDir Medium
+ schema:
+ show_if: [["type", "=", "emptyDir"]]
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: Default
+ - value: Memory
+ description: Memory
+ - variable: size
+ label: Size quotum of Storage (Do NOT REDUCE after installation)
+ description: This value can ONLY be INCREASED after the installation
+ schema:
+ show_if: [["type", "=", "pvc"]]
+ type: string
+ default: 256Gi
+ - variable: persistenceList
+ label: Additional App Storage
+ group: Storage and Persistence
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: persistenceListEntry
+ label: Custom Storage
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the storage
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: type
+ label: Type of Storage
+ description: Sets the persistence type, Anything other than PVC could break rollback!
+ schema:
+ type: string
+ default: hostPath
+ enum:
+ - value: pvc
+ description: PVC
+ - value: hostPath
+ description: Host Path
+ - value: emptyDir
+ description: emptyDir
+ - value: nfs
+ description: NFS Share
+ - variable: server
+ label: NFS Server
+ schema:
+ show_if: [["type", "=", "nfs"]]
+ type: string
+ default: ""
+ - variable: path
+ label: Path on NFS Server
+ schema:
+ show_if: [["type", "=", "nfs"]]
+ type: string
+ default: ""
+ - variable: autoPermissions
+ label: Automatic Permissions Configuration
+ description: Automatically set permissions
+ schema:
+ show_if: [["type", "!=", "pvc"]]
+ type: dict
+ additional_attrs: true
+ attrs:
+ - variable: enabled
+ label: enabled
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: chown
+ label: Run CHOWN
+ description: |
+ It will run CHOWN on the path with the given fsGroup
+ schema:
+ type: boolean
+ default: false
+ - variable: chmod
+ label: Run CHMOD
+ description: |
+ It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770
+ schema:
+ type: string
+ valid_chars: '[0-9]{3}'
+ default: ""
+ - variable: recursive
+ label: Recursive
+ description: |
+ It will run CHOWN and CHMOD recursively
+ schema:
+ type: boolean
+ default: false
+ - variable: readOnly
+ label: Read Only
+ schema:
+ type: boolean
+ default: false
+ - variable: hostPath
+ label: Host Path
+ description: Path inside the container the storage is mounted
+ schema:
+ show_if: [["type", "=", "hostPath"]]
+ type: hostpath
+ - variable: mountPath
+ label: Mount Path
+ description: Path inside the container the storage is mounted
+ schema:
+ type: string
+ default: ""
+ required: true
+ valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$'
+ - variable: medium
+ label: EmptyDir Medium
+ schema:
+ show_if: [["type", "=", "emptyDir"]]
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: Default
+ - value: Memory
+ description: Memory
+ - variable: size
+ label: Size Quotum of Storage
+ schema:
+ show_if: [["type", "=", "pvc"]]
+ type: string
+ default: 256Gi
+
+ - variable: securityContext
+ group: Security and Permissions
+ label: Security Context
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: container
+ label: Container
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ # Settings from questions.yaml get appended here on a per-app basis
+ - variable: runAsUser
+ label: "runAsUser"
+ description: "The UserID of the user running the application"
+ schema:
+ type: int
+ default: 0
+ - variable: runAsGroup
+ label: "runAsGroup"
+ description: "The groupID of the user running the application"
+ schema:
+ type: int
+ default: 0
+ # Settings from questions.yaml get appended here on a per-app basis
+ - variable: PUID
+ label: Process User ID - PUID
+ description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps
+ schema:
+ type: int
+ show_if: [["runAsUser", "=", 0]]
+ default: 568
+ - variable: UMASK
+ label: UMASK
+ description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps
+ schema:
+ type: string
+ default: "0022"
+ - variable: advanced
+ label: Show Advanced Settings
+ description: Advanced settings are not covered by TrueCharts Support
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: privileged
+ label: "Privileged mode"
+ schema:
+ type: boolean
+ default: false
+ - variable: readOnlyRootFilesystem
+ label: "ReadOnly Root Filesystem"
+ schema:
+ type: boolean
+ default: true
+ - variable: pod
+ label: Pod
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: fsGroupChangePolicy
+ label: "When should we take ownership?"
+ schema:
+ type: string
+ default: OnRootMismatch
+ enum:
+ - value: OnRootMismatch
+ description: OnRootMismatch
+ - value: Always
+ description: Always
+ - variable: supplementalGroups
+ label: Supplemental Groups
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: supplementalGroupsEntry
+ label: Supplemental Group
+ schema:
+ type: int
+ # Settings from questions.yaml get appended here on a per-app basis
+ - variable: fsGroup
+ label: "fsGroup"
+ description: "The group that should own ALL storage."
+ schema:
+ type: int
+ default: 568
+
+ - variable: resources
+ group: Resources and Devices
+ label: "Resource Limits"
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: limits
+ label: Advanced Limit Resource Consumption
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: cpu
+ label: CPU
+ description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation"
+ schema:
+ type: string
+ default: 4000m
+ valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$'
+ - variable: memory
+ label: RAM
+ description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation"
+ schema:
+ type: string
+ default: 8Gi
+ valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$'
+ - variable: requests
+ label: "Minimum Resources Required (request)"
+ schema:
+ additional_attrs: true
+ type: dict
+ hidden: true
+ attrs:
+ - variable: cpu
+ label: CPU
+ description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation"
+ schema:
+ type: string
+ default: 10m
+ hidden: true
+ valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$'
+ - variable: memory
+ label: "RAM"
+ description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation"
+ schema:
+ type: string
+ default: 50Mi
+ hidden: true
+ valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$'
+ - variable: deviceList
+ label: Mount USB Devices
+ group: Resources and Devices
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: deviceListEntry
+ label: Device
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enable the Storage
+ schema:
+ type: boolean
+ default: true
+ - variable: type
+ label: (Advanced) Type of Storage
+ description: Sets the persistence type
+ schema:
+ type: string
+ default: device
+ hidden: true
+ - variable: readOnly
+ label: readOnly
+ schema:
+ type: boolean
+ default: false
+ - variable: hostPath
+ label: Host Device Path
+ description: Path to the device on the host system
+ schema:
+ type: path
+ - variable: mountPath
+ label: Container Device Path
+ description: Path inside the container the device is mounted
+ schema:
+ type: string
+ default: "/dev/ttyACM0"
+ - variable: scaleGPU
+ label: GPU Configuration
+ group: Resources and Devices
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: scaleGPUEntry
+ label: GPU
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ # Specify GPU configuration
+ - variable: gpu
+ label: Select GPU
+ schema:
+ additional_attrs: true
+ type: dict
+ $ref:
+ - "definitions/gpuConfiguration"
+ attrs: []
+ - variable: workaround
+ label: "Workaround"
+ schema:
+ type: string
+ default: workaround
+ hidden: true
+# - variable: horizontalPodAutoscaler
+# group: Advanced
+# label: (Advanced) Horizontal Pod Autoscaler
+# schema:
+# type: list
+# default: []
+# items:
+# - variable: hpaEntry
+# label: HPA Entry
+# schema:
+# additional_attrs: true
+# type: dict
+# attrs:
+# - variable: name
+# label: Name
+# schema:
+# type: string
+# required: true
+# default: ""
+# - variable: enabled
+# label: Enabled
+# schema:
+# type: boolean
+# default: false
+# show_subquestions_if: true
+# subquestions:
+# - variable: target
+# label: Target
+# description: Deployment name, Defaults to Main Deployment
+# schema:
+# type: string
+# default: ""
+# - variable: minReplicas
+# label: Minimum Replicas
+# schema:
+# type: int
+# default: 1
+# - variable: maxReplicas
+# label: Maximum Replicas
+# schema:
+# type: int
+# default: 5
+# - variable: targetCPUUtilizationPercentage
+# label: Target CPU Utilization Percentage
+# schema:
+# type: int
+# default: 80
+# - variable: targetMemoryUtilizationPercentage
+# label: Target Memory Utilization Percentage
+# schema:
+# type: int
+# default: 80
+ - variable: networkPolicy
+ group: Advanced
+ label: (Advanced) Network Policy
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: netPolicyEntry
+ label: Network Policy Entry
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Name
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: enabled
+ label: Enabled
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: policyType
+ label: Policy Type
+ schema:
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: Default
+ - value: ingress
+ description: Ingress
+ - value: egress
+ description: Egress
+ - value: ingress-egress
+ description: Ingress and Egress
+ - variable: egress
+ label: Egress
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: egressEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: to
+ label: To
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: toEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: ipBlock
+ label: IP Block
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: cidr
+ label: CIDR
+ schema:
+ type: string
+ default: ""
+ - variable: except
+ label: Except
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: exceptint
+ label: ""
+ schema:
+ type: string
+ - variable: namespaceSelector
+ label: Namespace Selector
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: matchExpressions
+ label: Match Expressions
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: expressionEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: key
+ label: Key
+ schema:
+ type: string
+ - variable: operator
+ label: Operator
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: In
+ description: In
+ - value: NotIn
+ description: NotIn
+ - value: Exists
+ description: Exists
+ - value: DoesNotExist
+ description: DoesNotExist
+ - variable: values
+ label: Values
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: value
+ label: ""
+ schema:
+ type: string
+ - variable: podSelector
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: matchExpressions
+ label: Match Expressions
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: expressionEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: key
+ label: Key
+ schema:
+ type: string
+ - variable: operator
+ label: Operator
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: In
+ description: In
+ - value: NotIn
+ description: NotIn
+ - value: Exists
+ description: Exists
+ - value: DoesNotExist
+ description: DoesNotExist
+ - variable: values
+ label: Values
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: value
+ label: ""
+ schema:
+ type: string
+ - variable: ports
+ label: Ports
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: portsEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: port
+ label: Port
+ schema:
+ type: int
+ - variable: endPort
+ label: End Port
+ schema:
+ type: int
+ - variable: protocol
+ label: Protocol
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: TCP
+ description: TCP
+ - value: UDP
+ description: UDP
+ - value: SCTP
+ description: SCTP
+ - variable: ingress
+ label: Ingress
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: ingressEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: from
+ label: From
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: fromEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: ipBlock
+ label: IP Block
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: cidr
+ label: CIDR
+ schema:
+ type: string
+ default: ""
+ - variable: except
+ label: Except
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: exceptint
+ label: ""
+ schema:
+ type: string
+ - variable: namespaceSelector
+ label: Namespace Selector
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: matchExpressions
+ label: Match Expressions
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: expressionEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: key
+ label: Key
+ schema:
+ type: string
+ - variable: operator
+ label: Operator
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: In
+ description: In
+ - value: NotIn
+ description: NotIn
+ - value: Exists
+ description: Exists
+ - value: DoesNotExist
+ description: DoesNotExist
+ - variable: values
+ label: Values
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: value
+ label: ""
+ schema:
+ type: string
+ - variable: podSelector
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: matchExpressions
+ label: Match Expressions
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: expressionEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: key
+ label: Key
+ schema:
+ type: string
+ - variable: operator
+ label: Operator
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: In
+ description: In
+ - value: NotIn
+ description: NotIn
+ - value: Exists
+ description: Exists
+ - value: DoesNotExist
+ description: DoesNotExist
+ - variable: values
+ label: Values
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: value
+ label: ""
+ schema:
+ type: string
+ - variable: ports
+ label: Ports
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: portsEntry
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: port
+ label: Port
+ schema:
+ type: int
+ - variable: endPort
+ label: End Port
+ schema:
+ type: int
+ - variable: protocol
+ label: Protocol
+ schema:
+ type: string
+ default: TCP
+ enum:
+ - value: TCP
+ description: TCP
+ - value: UDP
+ description: UDP
+ - value: SCTP
+ description: SCTP
+ - variable: addons
+ group: Addons
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: codeserver
+ label: Codeserver
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enabled
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: service
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: type
+ label: Service Type
+ description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer"
+ schema:
+ type: string
+ default: LoadBalancer
+ enum:
+ - value: NodePort
+ description: Deprecated CHANGE THIS
+ - value: ClusterIP
+ description: ClusterIP
+ - value: LoadBalancer
+ description: LoadBalancer
+ - variable: loadBalancerIP
+ label: LoadBalancer IP
+ description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: string
+ default: ""
+ - variable: ports
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: codeserver
+ label: ""
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: port
+ label: Port
+ schema:
+ type: int
+ default: 36107
+ - variable: envList
+ label: Codeserver Environment Variables
+ schema:
+ type: list
+ show_if: [["type", "!=", "disabled"]]
+ default: []
+ items:
+ - variable: envItem
+ label: Environment Variable
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Name
+ schema:
+ type: string
+ required: true
+ - variable: value
+ label: Value
+ schema:
+ type: string
+ required: true
+ - variable: netshoot
+ label: Netshoot
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: enabled
+ label: Enabled
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: envList
+ label: Netshoot Environment Variables
+ schema:
+ type: list
+ show_if: [["type", "!=", "disabled"]]
+ default: []
+ items:
+ - variable: envItem
+ label: Environment Variable
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Name
+ schema:
+ type: string
+ required: true
+ - variable: value
+ label: Value
+ schema:
+ type: string
+ required: true
+ - variable: vpn
+ label: VPN
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: type
+ label: Type
+ schema:
+ type: string
+ default: disabled
+ enum:
+ - value: disabled
+ description: disabled
+ - value: gluetun
+ description: Gluetun
+ - value: tailscale
+ description: Tailscale
+ - value: openvpn
+ description: OpenVPN (Deprecated)
+ - value: wireguard
+ description: Wireguard (Deprecated)
+ - variable: openvpn
+ label: OpenVPN Settings
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["type", "=", "openvpn"]]
+ attrs:
+ - variable: username
+ label: Authentication Username (Optional)
+ description: Authentication Username, Optional
+ schema:
+ type: string
+ default: ""
+ - variable: password
+ label: Authentication Password
+ description: Authentication Credentials
+ schema:
+ type: string
+ show_if: [["username", "!=", ""]]
+ default: ""
+ required: true
+ - variable: tailscale
+ label: Tailscale Settings
+ schema:
+ additional_attrs: true
+ type: dict
+ show_if: [["type", "=", "tailscale"]]
+ attrs:
+ - variable: authkey
+ label: Authentication Key
+ description: Provide an auth key to automatically authenticate the node as your user account.
+ schema:
+ type: string
+ private: true
+ default: ""
+ - variable: auth_once
+ label: Auth Once
+ description: Only attempt to log in if not already logged in.
+ schema:
+ type: boolean
+ default: true
+ - variable: accept_dns
+ label: Accept DNS
+ description: Accept DNS configuration from the admin console.
+ schema:
+ type: boolean
+ default: false
+ - variable: userspace
+ label: Userspace
+ description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device.
+ schema:
+ type: boolean
+ default: false
+ - variable: routes
+ label: Routes
+ description: Expose physical subnet routes to your entire Tailscale network.
+ schema:
+ type: string
+ default: ""
+ - variable: dest_ip
+ label: Destination IP
+ description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched.
+ schema:
+ type: string
+ default: ""
+ - variable: sock5_server
+ label: Sock5 Server
+ description: The address on which to listen for SOCKS5 proxying into the tailscale net.
+ schema:
+ type: string
+ default: ""
+ - variable: outbound_http_proxy_listen
+ label: Outbound HTTP Proxy Listen
+ description: The address on which to listen for HTTP proxying into the tailscale net.
+ schema:
+ type: string
+ default: ""
+ - variable: extra_args
+ label: Extra Args
+ description: Extra Args
+ schema:
+ type: string
+ default: ""
+ - variable: daemon_extra_args
+ label: Tailscale Daemon Extra Args
+ description: Tailscale Daemon Extra Args
+ schema:
+ type: string
+ default: ""
+ - variable: killSwitch
+ label: Enable Killswitch
+ schema:
+ type: boolean
+ show_if: [["type", "!=", "disabled"]]
+ default: true
+ - variable: excludedNetworks_IPv4
+ label: Killswitch Excluded IPv4 networks
+ description: List of Killswitch Excluded IPv4 Addresses
+ schema:
+ type: list
+ show_if: [["type", "!=", "disabled"]]
+ default: []
+ items:
+ - variable: networkv4
+ label: IPv4 Network
+ schema:
+ type: string
+ required: true
+ - variable: excludedNetworks_IPv6
+ label: Killswitch Excluded IPv6 networks
+ description: "List of Killswitch Excluded IPv6 Addresses"
+ schema:
+ type: list
+ show_if: [["type", "!=", "disabled"]]
+ default: []
+ items:
+ - variable: networkv6
+ label: IPv6 Network
+ schema:
+ type: string
+ required: true
+ - variable: configFile
+ label: VPN Config File Location
+ schema:
+ type: string
+ show_if: [["type", "!=", "disabled"]]
+ default: ""
+
+ - variable: envList
+ label: VPN Environment Variables
+ schema:
+ type: list
+ show_if: [["type", "!=", "disabled"]]
+ default: []
+ items:
+ - variable: envItem
+ label: Environment Variable
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: name
+ label: Name
+ schema:
+ type: string
+ required: true
+ - variable: value
+ label: Value
+ schema:
+ type: string
+ required: true
+ max_length: 10240
+ - variable: docs
+ group: Documentation
+ label: Please read the documentation at https://truecharts.org
+ description: Please read the documentation at
+
https://truecharts.org
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: confirmDocs
+ label: I have checked the documentation
+ schema:
+ type: boolean
+ default: true
+ - variable: donateNag
+ group: Documentation
+ label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor
+ description: Please consider supporting TrueCharts, see
+
https://truecharts.org/sponsor
+ schema:
+ additional_attrs: true
+ type: dict
+ attrs:
+ - variable: confirmDonate
+ label: I have considered donating
+ schema:
+ type: boolean
+ default: true
+ hidden: true
diff --git a/incubator/sonsoftheforest/0.0.1/templates/NOTES.txt b/incubator/sonsoftheforest/0.0.1/templates/NOTES.txt
new file mode 100644
index 00000000000..efcb74cb772
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/templates/NOTES.txt
@@ -0,0 +1 @@
+{{- include "tc.v1.common.lib.chart.notes" $ -}}
diff --git a/incubator/sonsoftheforest/0.0.1/templates/_configmap.tpl b/incubator/sonsoftheforest/0.0.1/templates/_configmap.tpl
new file mode 100644
index 00000000000..e95bd8a34e4
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/templates/_configmap.tpl
@@ -0,0 +1,13 @@
+{{/* Define the configmap */}}
+{{- define "sonsoftheforest.configmaps" -}}
+{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}}
+
+{{- $server := .Values.sonsoftheforest.server -}}
+
+sonsoftheforest-dscfg:
+ enabled: true
+ data:
+ dedicatedserver.cfg: |
+ {{ $server | toJson }}
+
+{{- end -}}
diff --git a/incubator/sonsoftheforest/0.0.1/templates/common.yaml b/incubator/sonsoftheforest/0.0.1/templates/common.yaml
new file mode 100644
index 00000000000..f2fcfabc9de
--- /dev/null
+++ b/incubator/sonsoftheforest/0.0.1/templates/common.yaml
@@ -0,0 +1,11 @@
+{{/* Make sure all variables are set properly */}}
+{{- include "tc.v1.common.loader.init" . -}}
+
+{{/* Render configmaps for all pods */}}
+{{- $configmaps := include "sonsoftheforest.configmaps" . | fromYaml -}}
+{{- if $configmaps -}}
+ {{- $_ := mustMergeOverwrite .Values.configmap $configmaps -}}
+{{- end -}}
+
+{{/* Render the templates */}}
+{{- include "tc.v1.common.loader.apply" . -}}
diff --git a/incubator/sonsoftheforest/0.0.1/values.yaml b/incubator/sonsoftheforest/0.0.1/values.yaml
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/incubator/sonsoftheforest/item.yaml b/incubator/sonsoftheforest/item.yaml
new file mode 100644
index 00000000000..f96fce31514
--- /dev/null
+++ b/incubator/sonsoftheforest/item.yaml
@@ -0,0 +1,5 @@
+icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/sonsoftheforest.png
+categories:
+- GameServers
+
+screenshots: []