@awlsring/cdk8s-valheim
Version:
A package that vends a Valheim server chart.
1,488 lines (925 loc) • 50 kB
Markdown
# CDK8s Valheim
This is a [CDK8s](https://cdk8s.io/) project that defines a Kubernetes deployment for [Valheim](https://www.valheimgame.com/) using the [lloesche/valheim-server](https://github.com/lloesche/valheim-server-docker) image.
## Use
A default deployment can be created with:
```typescript
new ValheimChart(app, 'valheim')
```
Default deployment will produce a server configured with all default [environment variables](https://github.com/lloesche/valheim-server-docker#environment-variables). The container will request resources for the games minimum recommended specs of 2 CPU and 4GB of memory.
Settings can be customized by passing in a `ValheimChartProps` object. This will allow you to configure all supported environment customizations and container configurations
```typescript
new ValheimChart(app, 'valheim', {
server: {
name: 'K8S Valheim',
worldName: 'K8S',
password: {
raw: 'password',
},
},
})
```
## Persistence
By default, the server will store its data on a host path. This is not recommended as your world data can easily be lost.
This chart allows for storing the data on a PersistentVolumeClaim. Two pvcs can be created, one for the world data and one for the configuration. The world data is mounted at `/opt/valheim/data` directory and the configuration is mounted at `/config` directory.
To create these, the PVCs can be configured as follows:
```typescript
new ValheimChart(app, 'valheim'. {
persistence: {
server: {
storageClass: "my-class",
},
config: {
storageClass: "my-class",
},
},
})
```
# API Reference <a name="API Reference" id="api-reference"></a>
## Constructs <a name="Constructs" id="Constructs"></a>
### ValheimChart <a name="ValheimChart" id="@awlsring/cdk8s-valheim.ValheimChart"></a>
A chart to deploy a Valheim server Uses the container by @lloesche.
> [https://github.com/lloesche/valheim-server-docker](https://github.com/lloesche/valheim-server-docker)
#### Initializers <a name="Initializers" id="@awlsring/cdk8s-valheim.ValheimChart.Initializer"></a>
```typescript
import { ValheimChart } from '@awlsring/cdk8s-valheim'
new ValheimChart(scope: Construct, name: string, props?: ValheimChartProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.Initializer.parameter.name">name</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.Initializer.parameter.props">props</a></code> | <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps">ValheimChartProps</a></code> | *No description.* |
---
##### `scope`<sup>Required</sup> <a name="scope" id="@awlsring/cdk8s-valheim.ValheimChart.Initializer.parameter.scope"></a>
- *Type:* constructs.Construct
---
##### `name`<sup>Required</sup> <a name="name" id="@awlsring/cdk8s-valheim.ValheimChart.Initializer.parameter.name"></a>
- *Type:* string
---
##### `props`<sup>Optional</sup> <a name="props" id="@awlsring/cdk8s-valheim.ValheimChart.Initializer.parameter.props"></a>
- *Type:* <a href="#@awlsring/cdk8s-valheim.ValheimChartProps">ValheimChartProps</a>
---
#### Methods <a name="Methods" id="Methods"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.addDependency">addDependency</a></code> | Create a dependency between this Chart and other constructs. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.generateObjectName">generateObjectName</a></code> | Generates a app-unique name for an object given it's construct node path. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.toJson">toJson</a></code> | Renders this chart to a set of Kubernetes JSON resources. |
---
##### `toString` <a name="toString" id="@awlsring/cdk8s-valheim.ValheimChart.toString"></a>
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `addDependency` <a name="addDependency" id="@awlsring/cdk8s-valheim.ValheimChart.addDependency"></a>
```typescript
public addDependency(dependencies: IConstruct): void
```
Create a dependency between this Chart and other constructs.
These can be other ApiObjects, Charts, or custom.
###### `dependencies`<sup>Required</sup> <a name="dependencies" id="@awlsring/cdk8s-valheim.ValheimChart.addDependency.parameter.dependencies"></a>
- *Type:* constructs.IConstruct
the dependencies to add.
---
##### `generateObjectName` <a name="generateObjectName" id="@awlsring/cdk8s-valheim.ValheimChart.generateObjectName"></a>
```typescript
public generateObjectName(apiObject: ApiObject): string
```
Generates a app-unique name for an object given it's construct node path.
Different resource types may have different constraints on names
(`metadata.name`). The previous version of the name generator was
compatible with DNS_SUBDOMAIN but not with DNS_LABEL.
For example, `Deployment` names must comply with DNS_SUBDOMAIN while
`Service` names must comply with DNS_LABEL.
Since there is no formal specification for this, the default name
generation scheme for kubernetes objects in cdk8s was changed to DNS_LABEL,
since it’s the common denominator for all kubernetes resources
(supposedly).
You can override this method if you wish to customize object names at the
chart level.
###### `apiObject`<sup>Required</sup> <a name="apiObject" id="@awlsring/cdk8s-valheim.ValheimChart.generateObjectName.parameter.apiObject"></a>
- *Type:* cdk8s.ApiObject
The API object to generate a name for.
---
##### `toJson` <a name="toJson" id="@awlsring/cdk8s-valheim.ValheimChart.toJson"></a>
```typescript
public toJson(): any[]
```
Renders this chart to a set of Kubernetes JSON resources.
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.isChart">isChart</a></code> | Return whether the given object is a Chart. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.of">of</a></code> | Finds the chart in which a node is defined. |
---
##### `isConstruct` <a name="isConstruct" id="@awlsring/cdk8s-valheim.ValheimChart.isConstruct"></a>
```typescript
import { ValheimChart } from '@awlsring/cdk8s-valheim'
ValheimChart.isConstruct(x: any)
```
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.
###### `x`<sup>Required</sup> <a name="x" id="@awlsring/cdk8s-valheim.ValheimChart.isConstruct.parameter.x"></a>
- *Type:* any
Any object.
---
##### `isChart` <a name="isChart" id="@awlsring/cdk8s-valheim.ValheimChart.isChart"></a>
```typescript
import { ValheimChart } from '@awlsring/cdk8s-valheim'
ValheimChart.isChart(x: any)
```
Return whether the given object is a Chart.
We do attribute detection since we can't reliably use 'instanceof'.
###### `x`<sup>Required</sup> <a name="x" id="@awlsring/cdk8s-valheim.ValheimChart.isChart.parameter.x"></a>
- *Type:* any
---
##### `of` <a name="of" id="@awlsring/cdk8s-valheim.ValheimChart.of"></a>
```typescript
import { ValheimChart } from '@awlsring/cdk8s-valheim'
ValheimChart.of(c: IConstruct)
```
Finds the chart in which a node is defined.
###### `c`<sup>Required</sup> <a name="c" id="@awlsring/cdk8s-valheim.ValheimChart.of.parameter.c"></a>
- *Type:* constructs.IConstruct
a construct node.
---
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.property.labels">labels</a></code> | <code>{[ key: string ]: string}</code> | Labels applied to all resources in this chart. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChart.property.namespace">namespace</a></code> | <code>string</code> | The default namespace for all objects in this chart. |
---
##### `node`<sup>Required</sup> <a name="node" id="@awlsring/cdk8s-valheim.ValheimChart.property.node"></a>
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `labels`<sup>Required</sup> <a name="labels" id="@awlsring/cdk8s-valheim.ValheimChart.property.labels"></a>
```typescript
public readonly labels: {[ key: string ]: string};
```
- *Type:* {[ key: string ]: string}
Labels applied to all resources in this chart.
This is an immutable copy.
---
##### `namespace`<sup>Optional</sup> <a name="namespace" id="@awlsring/cdk8s-valheim.ValheimChart.property.namespace"></a>
```typescript
public readonly namespace: string;
```
- *Type:* string
The default namespace for all objects in this chart.
---
## Structs <a name="Structs" id="Structs"></a>
### BackupProps <a name="BackupProps" id="@awlsring/cdk8s-valheim.BackupProps"></a>
Props for configuring the valheim server backups.
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.BackupProps.Initializer"></a>
```typescript
import { BackupProps } from '@awlsring/cdk8s-valheim'
const backupProps: BackupProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.BackupProps.property.enabled">enabled</a></code> | <code>boolean</code> | Should backups be enabled. |
| <code><a href="#@awlsring/cdk8s-valheim.BackupProps.property.directory">directory</a></code> | <code>string</code> | The directory to store backups. |
| <code><a href="#@awlsring/cdk8s-valheim.BackupProps.property.idleGracePeriod">idleGracePeriod</a></code> | <code>number</code> | The grace period for the server to be idle. |
| <code><a href="#@awlsring/cdk8s-valheim.BackupProps.property.maxBackups">maxBackups</a></code> | <code>number</code> | The retention count for backups. |
| <code><a href="#@awlsring/cdk8s-valheim.BackupProps.property.performIfIdle">performIfIdle</a></code> | <code>boolean</code> | Only backup if server idle. |
| <code><a href="#@awlsring/cdk8s-valheim.BackupProps.property.permissionUmask">permissionUmask</a></code> | <code>string</code> | Permission mask for the backup directory. |
| <code><a href="#@awlsring/cdk8s-valheim.BackupProps.property.retentionAge">retentionAge</a></code> | <code>number</code> | The retention age for backups. |
| <code><a href="#@awlsring/cdk8s-valheim.BackupProps.property.scheduleCron">scheduleCron</a></code> | <code>string</code> | The cron schedule for the backup job. |
| <code><a href="#@awlsring/cdk8s-valheim.BackupProps.property.zip">zip</a></code> | <code>boolean</code> | Should the backups be zipped. |
---
##### `enabled`<sup>Required</sup> <a name="enabled" id="@awlsring/cdk8s-valheim.BackupProps.property.enabled"></a>
```typescript
public readonly enabled: boolean;
```
- *Type:* boolean
- *Default:* true
Should backups be enabled.
---
##### `directory`<sup>Optional</sup> <a name="directory" id="@awlsring/cdk8s-valheim.BackupProps.property.directory"></a>
```typescript
public readonly directory: string;
```
- *Type:* string
- *Default:* /config/backups
The directory to store backups.
---
##### `idleGracePeriod`<sup>Optional</sup> <a name="idleGracePeriod" id="@awlsring/cdk8s-valheim.BackupProps.property.idleGracePeriod"></a>
```typescript
public readonly idleGracePeriod: number;
```
- *Type:* number
- *Default:* 3600s
The grace period for the server to be idle.
---
##### `maxBackups`<sup>Optional</sup> <a name="maxBackups" id="@awlsring/cdk8s-valheim.BackupProps.property.maxBackups"></a>
```typescript
public readonly maxBackups: number;
```
- *Type:* number
- *Default:* unlimited
The retention count for backups.
---
##### `performIfIdle`<sup>Optional</sup> <a name="performIfIdle" id="@awlsring/cdk8s-valheim.BackupProps.property.performIfIdle"></a>
```typescript
public readonly performIfIdle: boolean;
```
- *Type:* boolean
- *Default:* true
Only backup if server idle.
---
##### `permissionUmask`<sup>Optional</sup> <a name="permissionUmask" id="@awlsring/cdk8s-valheim.BackupProps.property.permissionUmask"></a>
```typescript
public readonly permissionUmask: string;
```
- *Type:* string
Permission mask for the backup directory.
---
##### `retentionAge`<sup>Optional</sup> <a name="retentionAge" id="@awlsring/cdk8s-valheim.BackupProps.property.retentionAge"></a>
```typescript
public readonly retentionAge: number;
```
- *Type:* number
- *Default:* 3
The retention age for backups.
---
##### `scheduleCron`<sup>Optional</sup> <a name="scheduleCron" id="@awlsring/cdk8s-valheim.BackupProps.property.scheduleCron"></a>
```typescript
public readonly scheduleCron: string;
```
- *Type:* string
- *Default:* 0 * * * *
The cron schedule for the backup job.
---
##### `zip`<sup>Optional</sup> <a name="zip" id="@awlsring/cdk8s-valheim.BackupProps.property.zip"></a>
```typescript
public readonly zip: boolean;
```
- *Type:* boolean
- *Default:* true
Should the backups be zipped.
---
### PasswordProps <a name="PasswordProps" id="@awlsring/cdk8s-valheim.PasswordProps"></a>
Password properties.
Used to determine if the password should be a raw string in manifest or retrieved from an existing secret
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.PasswordProps.Initializer"></a>
```typescript
import { PasswordProps } from '@awlsring/cdk8s-valheim'
const passwordProps: PasswordProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.PasswordProps.property.raw">raw</a></code> | <code>string</code> | The raw password string. |
| <code><a href="#@awlsring/cdk8s-valheim.PasswordProps.property.secret">secret</a></code> | <code>string</code> | The name of the secret to retrieve the password from. |
---
##### `raw`<sup>Optional</sup> <a name="raw" id="@awlsring/cdk8s-valheim.PasswordProps.property.raw"></a>
```typescript
public readonly raw: string;
```
- *Type:* string
The raw password string.
Will be visible in manifest. Should not use.
---
##### `secret`<sup>Optional</sup> <a name="secret" id="@awlsring/cdk8s-valheim.PasswordProps.property.secret"></a>
```typescript
public readonly secret: string;
```
- *Type:* string
The name of the secret to retrieve the password from.
The secret should be stored in a key named "password"
---
### PersistanceProps <a name="PersistanceProps" id="@awlsring/cdk8s-valheim.PersistanceProps"></a>
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.PersistanceProps.Initializer"></a>
```typescript
import { PersistanceProps } from '@awlsring/cdk8s-valheim'
const persistanceProps: PersistanceProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.PersistanceProps.property.config">config</a></code> | <code><a href="#@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps">PersistentVolumeClaimConfigProps</a></code> | PVC configuration for data specific files. |
| <code><a href="#@awlsring/cdk8s-valheim.PersistanceProps.property.server">server</a></code> | <code><a href="#@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps">PersistentVolumeClaimConfigProps</a></code> | PVC configuration for server specific files. |
---
##### `config`<sup>Optional</sup> <a name="config" id="@awlsring/cdk8s-valheim.PersistanceProps.property.config"></a>
```typescript
public readonly config: PersistentVolumeClaimConfigProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps">PersistentVolumeClaimConfigProps</a>
PVC configuration for data specific files.
---
##### `server`<sup>Optional</sup> <a name="server" id="@awlsring/cdk8s-valheim.PersistanceProps.property.server"></a>
```typescript
public readonly server: PersistentVolumeClaimConfigProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps">PersistentVolumeClaimConfigProps</a>
PVC configuration for server specific files.
---
### PersistentVolumeClaimConfigProps <a name="PersistentVolumeClaimConfigProps" id="@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps"></a>
Props for configuring a persistent volume claim.
> [https://kubernetes.io/docs/concepts/storage/persistent-volumes/](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps.Initializer"></a>
```typescript
import { PersistentVolumeClaimConfigProps } from '@awlsring/cdk8s-valheim'
const persistentVolumeClaimConfigProps: PersistentVolumeClaimConfigProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps.property.storageClass">storageClass</a></code> | <code>string</code> | The name of the storage class. |
| <code><a href="#@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps.property.accessModes">accessModes</a></code> | <code>cdk8s-plus-26.PersistentVolumeAccessMode[]</code> | The access mode from the volume. |
| <code><a href="#@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps.property.storage">storage</a></code> | <code>cdk8s.Size</code> | The size of the volume. |
---
##### `storageClass`<sup>Required</sup> <a name="storageClass" id="@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps.property.storageClass"></a>
```typescript
public readonly storageClass: string;
```
- *Type:* string
The name of the storage class.
---
##### `accessModes`<sup>Optional</sup> <a name="accessModes" id="@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps.property.accessModes"></a>
```typescript
public readonly accessModes: PersistentVolumeAccessMode[];
```
- *Type:* cdk8s-plus-26.PersistentVolumeAccessMode[]
- *Default:* = [READ_WRITE_ONCE]
The access mode from the volume.
> [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)
---
##### `storage`<sup>Optional</sup> <a name="storage" id="@awlsring/cdk8s-valheim.PersistentVolumeClaimConfigProps.property.storage"></a>
```typescript
public readonly storage: Size;
```
- *Type:* cdk8s.Size
The size of the volume.
> [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#capacity](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#capacity)
---
### ResourceLimitsProps <a name="ResourceLimitsProps" id="@awlsring/cdk8s-valheim.ResourceLimitsProps"></a>
Props for configuring resource limits.
> [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.ResourceLimitsProps.Initializer"></a>
```typescript
import { ResourceLimitsProps } from '@awlsring/cdk8s-valheim'
const resourceLimitsProps: ResourceLimitsProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.ResourceLimitsProps.property.cpu">cpu</a></code> | <code>cdk8s-plus-26.CpuResources</code> | The CPU resources to allocate to the container. |
| <code><a href="#@awlsring/cdk8s-valheim.ResourceLimitsProps.property.memory">memory</a></code> | <code>cdk8s-plus-26.MemoryResources</code> | The memory resources to allocate to the container. |
---
##### `cpu`<sup>Optional</sup> <a name="cpu" id="@awlsring/cdk8s-valheim.ResourceLimitsProps.property.cpu"></a>
```typescript
public readonly cpu: CpuResources;
```
- *Type:* cdk8s-plus-26.CpuResources
- *Default:* = 2000m
The CPU resources to allocate to the container.
> [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu)
---
##### `memory`<sup>Optional</sup> <a name="memory" id="@awlsring/cdk8s-valheim.ResourceLimitsProps.property.memory"></a>
```typescript
public readonly memory: MemoryResources;
```
- *Type:* cdk8s-plus-26.MemoryResources
- *Default:* = 4Gi
The memory resources to allocate to the container.
> [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory)
---
### SecurityProps <a name="SecurityProps" id="@awlsring/cdk8s-valheim.SecurityProps"></a>
Props for configuring security aspects of the container.
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.SecurityProps.Initializer"></a>
```typescript
import { SecurityProps } from '@awlsring/cdk8s-valheim'
const securityProps: SecurityProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.SecurityProps.property.allowPrivilegeEscalation">allowPrivilegeEscalation</a></code> | <code>boolean</code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.SecurityProps.property.group">group</a></code> | <code>number</code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.SecurityProps.property.privileged">privileged</a></code> | <code>boolean</code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.SecurityProps.property.readOnlyRootFilesystem">readOnlyRootFilesystem</a></code> | <code>boolean</code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.SecurityProps.property.user">user</a></code> | <code>number</code> | *No description.* |
---
##### `allowPrivilegeEscalation`<sup>Optional</sup> <a name="allowPrivilegeEscalation" id="@awlsring/cdk8s-valheim.SecurityProps.property.allowPrivilegeEscalation"></a>
```typescript
public readonly allowPrivilegeEscalation: boolean;
```
- *Type:* boolean
---
##### `group`<sup>Optional</sup> <a name="group" id="@awlsring/cdk8s-valheim.SecurityProps.property.group"></a>
```typescript
public readonly group: number;
```
- *Type:* number
---
##### `privileged`<sup>Optional</sup> <a name="privileged" id="@awlsring/cdk8s-valheim.SecurityProps.property.privileged"></a>
```typescript
public readonly privileged: boolean;
```
- *Type:* boolean
---
##### `readOnlyRootFilesystem`<sup>Optional</sup> <a name="readOnlyRootFilesystem" id="@awlsring/cdk8s-valheim.SecurityProps.property.readOnlyRootFilesystem"></a>
```typescript
public readonly readOnlyRootFilesystem: boolean;
```
- *Type:* boolean
---
##### `user`<sup>Optional</sup> <a name="user" id="@awlsring/cdk8s-valheim.SecurityProps.property.user"></a>
```typescript
public readonly user: number;
```
- *Type:* number
---
### ServerProps <a name="ServerProps" id="@awlsring/cdk8s-valheim.ServerProps"></a>
Props for configuring a Valheim server.
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.ServerProps.Initializer"></a>
```typescript
import { ServerProps } from '@awlsring/cdk8s-valheim'
const serverProps: ServerProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.adminList">adminList</a></code> | <code>string[]</code> | Space separated list of admin SteamIDs in SteamID64 format. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.allowList">allowList</a></code> | <code>string[]</code> | Space separated list of allowed SteamIDs in SteamID64 format. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.blockList">blockList</a></code> | <code>string[]</code> | Space separated list of banned SteamIDs in SteamID64 format. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.crossplay">crossplay</a></code> | <code>boolean</code> | Should enable crossplay. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.idleDatagramMaxCount">idleDatagramMaxCount</a></code> | <code>number</code> | The number of incoming UDP datagrams the container should tolerate (including useless datagrams such as mDNS, as well as useful datagrams like queries against the UDP query port and active connections by players) on non-public servers before deciding that the server is not idle. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.idleDatagramWindow">idleDatagramWindow</a></code> | <code>number</code> | The time window, in seconds, to wait for incoming UDP datagrams on non-public servers before determining if the server is idle. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.launchArgs">launchArgs</a></code> | <code>string</code> | Arguments to pass to the server on start. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.name">name</a></code> | <code>string</code> | The name of the server. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.password">password</a></code> | <code><a href="#@awlsring/cdk8s-valheim.PasswordProps">PasswordProps</a></code> | The server password. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.port">port</a></code> | <code>number</code> | The port the server runs on. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.public">public</a></code> | <code>boolean</code> | If the server is public. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.publicBeta">publicBeta</a></code> | <code>boolean</code> | If the beta server branch should be used. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.restartCron">restartCron</a></code> | <code>string</code> | The server restart schedule. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.restartIfIdle">restartIfIdle</a></code> | <code>boolean</code> | Only restart the server if no players are connected to the server (true or false). |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.serviceType">serviceType</a></code> | <code>cdk8s-plus-26.ServiceType</code> | The service type in the cluster to expose the server on. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.steamCmdArgs">steamCmdArgs</a></code> | <code>string</code> | The arguments to pass to the steamcmd command. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.timezone">timezone</a></code> | <code>string</code> | The container timezone. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.updateCron">updateCron</a></code> | <code>string</code> | The server update schedule. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.updateWhenIdle">updateWhenIdle</a></code> | <code>boolean</code> | Only run update check if no players are connected to the server (true or false). |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.valheimPlus">valheimPlus</a></code> | <code><a href="#@awlsring/cdk8s-valheim.ValheimPlusProps">ValheimPlusProps</a></code> | Properties for ValheimPlus. |
| <code><a href="#@awlsring/cdk8s-valheim.ServerProps.property.worldName">worldName</a></code> | <code>string</code> | The world name. |
---
##### `adminList`<sup>Optional</sup> <a name="adminList" id="@awlsring/cdk8s-valheim.ServerProps.property.adminList"></a>
```typescript
public readonly adminList: string[];
```
- *Type:* string[]
Space separated list of admin SteamIDs in SteamID64 format.
Overrides any existing adminlist.txt entries!
---
##### `allowList`<sup>Optional</sup> <a name="allowList" id="@awlsring/cdk8s-valheim.ServerProps.property.allowList"></a>
```typescript
public readonly allowList: string[];
```
- *Type:* string[]
Space separated list of allowed SteamIDs in SteamID64 format.
Overrides any existing permittedlist.txt entries!
---
##### `blockList`<sup>Optional</sup> <a name="blockList" id="@awlsring/cdk8s-valheim.ServerProps.property.blockList"></a>
```typescript
public readonly blockList: string[];
```
- *Type:* string[]
Space separated list of banned SteamIDs in SteamID64 format.
Overrides any existing banlist.txt entries!
---
##### `crossplay`<sup>Optional</sup> <a name="crossplay" id="@awlsring/cdk8s-valheim.ServerProps.property.crossplay"></a>
```typescript
public readonly crossplay: boolean;
```
- *Type:* boolean
Should enable crossplay.
---
##### `idleDatagramMaxCount`<sup>Optional</sup> <a name="idleDatagramMaxCount" id="@awlsring/cdk8s-valheim.ServerProps.property.idleDatagramMaxCount"></a>
```typescript
public readonly idleDatagramMaxCount: number;
```
- *Type:* number
The number of incoming UDP datagrams the container should tolerate (including useless datagrams such as mDNS, as well as useful datagrams like queries against the UDP query port and active connections by players) on non-public servers before deciding that the server is not idle.
---
##### `idleDatagramWindow`<sup>Optional</sup> <a name="idleDatagramWindow" id="@awlsring/cdk8s-valheim.ServerProps.property.idleDatagramWindow"></a>
```typescript
public readonly idleDatagramWindow: number;
```
- *Type:* number
The time window, in seconds, to wait for incoming UDP datagrams on non-public servers before determining if the server is idle.
---
##### `launchArgs`<sup>Optional</sup> <a name="launchArgs" id="@awlsring/cdk8s-valheim.ServerProps.property.launchArgs"></a>
```typescript
public readonly launchArgs: string;
```
- *Type:* string
Arguments to pass to the server on start.
---
##### `name`<sup>Optional</sup> <a name="name" id="@awlsring/cdk8s-valheim.ServerProps.property.name"></a>
```typescript
public readonly name: string;
```
- *Type:* string
- *Default:* "My Server"
The name of the server.
---
##### `password`<sup>Optional</sup> <a name="password" id="@awlsring/cdk8s-valheim.ServerProps.property.password"></a>
```typescript
public readonly password: PasswordProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.PasswordProps">PasswordProps</a>
The server password.
---
##### `port`<sup>Optional</sup> <a name="port" id="@awlsring/cdk8s-valheim.ServerProps.property.port"></a>
```typescript
public readonly port: number;
```
- *Type:* number
- *Default:* 2456
The port the server runs on.
This and the port + 1 must be open on the host
The specified port is used for game conncections, and the increment port is
used for the server query
---
##### `public`<sup>Optional</sup> <a name="public" id="@awlsring/cdk8s-valheim.ServerProps.property.public"></a>
```typescript
public readonly public: boolean;
```
- *Type:* boolean
- *Default:* true
If the server is public.
---
##### `publicBeta`<sup>Optional</sup> <a name="publicBeta" id="@awlsring/cdk8s-valheim.ServerProps.property.publicBeta"></a>
```typescript
public readonly publicBeta: boolean;
```
- *Type:* boolean
If the beta server branch should be used.
---
##### `restartCron`<sup>Optional</sup> <a name="restartCron" id="@awlsring/cdk8s-valheim.ServerProps.property.restartCron"></a>
```typescript
public readonly restartCron: string;
```
- *Type:* string
- *Default:* "0 5 * * *"
The server restart schedule.
---
##### `restartIfIdle`<sup>Optional</sup> <a name="restartIfIdle" id="@awlsring/cdk8s-valheim.ServerProps.property.restartIfIdle"></a>
```typescript
public readonly restartIfIdle: boolean;
```
- *Type:* boolean
- *Default:* true
Only restart the server if no players are connected to the server (true or false).
---
##### `serviceType`<sup>Optional</sup> <a name="serviceType" id="@awlsring/cdk8s-valheim.ServerProps.property.serviceType"></a>
```typescript
public readonly serviceType: ServiceType;
```
- *Type:* cdk8s-plus-26.ServiceType
- *Default:* ServiceType.LOAD_BALANCER
The service type in the cluster to expose the server on.
---
##### `steamCmdArgs`<sup>Optional</sup> <a name="steamCmdArgs" id="@awlsring/cdk8s-valheim.ServerProps.property.steamCmdArgs"></a>
```typescript
public readonly steamCmdArgs: string;
```
- *Type:* string
The arguments to pass to the steamcmd command.
---
##### `timezone`<sup>Optional</sup> <a name="timezone" id="@awlsring/cdk8s-valheim.ServerProps.property.timezone"></a>
```typescript
public readonly timezone: string;
```
- *Type:* string
- *Default:* "Etc/UTC
The container timezone.
---
##### `updateCron`<sup>Optional</sup> <a name="updateCron" id="@awlsring/cdk8s-valheim.ServerProps.property.updateCron"></a>
```typescript
public readonly updateCron: string;
```
- *Type:* string
- *Default:* "*\/15 * * * *"
The server update schedule.
---
##### `updateWhenIdle`<sup>Optional</sup> <a name="updateWhenIdle" id="@awlsring/cdk8s-valheim.ServerProps.property.updateWhenIdle"></a>
```typescript
public readonly updateWhenIdle: boolean;
```
- *Type:* boolean
- *Default:* true
Only run update check if no players are connected to the server (true or false).
---
##### `valheimPlus`<sup>Optional</sup> <a name="valheimPlus" id="@awlsring/cdk8s-valheim.ServerProps.property.valheimPlus"></a>
```typescript
public readonly valheimPlus: ValheimPlusProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.ValheimPlusProps">ValheimPlusProps</a>
Properties for ValheimPlus.
---
##### `worldName`<sup>Optional</sup> <a name="worldName" id="@awlsring/cdk8s-valheim.ServerProps.property.worldName"></a>
```typescript
public readonly worldName: string;
```
- *Type:* string
- *Default:* "Dedicated"
The world name.
---
### StatusHttpProps <a name="StatusHttpProps" id="@awlsring/cdk8s-valheim.StatusHttpProps"></a>
Props for configuring the status http server.
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.StatusHttpProps.Initializer"></a>
```typescript
import { StatusHttpProps } from '@awlsring/cdk8s-valheim'
const statusHttpProps: StatusHttpProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.StatusHttpProps.property.enabled">enabled</a></code> | <code>boolean</code> | Should the status http server be enabled. |
| <code><a href="#@awlsring/cdk8s-valheim.StatusHttpProps.property.configPath">configPath</a></code> | <code>string</code> | Path to the busybox httpd config. |
| <code><a href="#@awlsring/cdk8s-valheim.StatusHttpProps.property.htdocLocation">htdocLocation</a></code> | <code>string</code> | Path to the status httpd htdocs where status.json is written. |
| <code><a href="#@awlsring/cdk8s-valheim.StatusHttpProps.property.port">port</a></code> | <code>number</code> | The port the status http server runs on. |
| <code><a href="#@awlsring/cdk8s-valheim.StatusHttpProps.property.serviceType">serviceType</a></code> | <code>cdk8s-plus-26.ServiceType</code> | The service type for the status http server. |
---
##### `enabled`<sup>Required</sup> <a name="enabled" id="@awlsring/cdk8s-valheim.StatusHttpProps.property.enabled"></a>
```typescript
public readonly enabled: boolean;
```
- *Type:* boolean
- *Default:* false
Should the status http server be enabled.
---
##### `configPath`<sup>Optional</sup> <a name="configPath" id="@awlsring/cdk8s-valheim.StatusHttpProps.property.configPath"></a>
```typescript
public readonly configPath: string;
```
- *Type:* string
Path to the busybox httpd config.
---
##### `htdocLocation`<sup>Optional</sup> <a name="htdocLocation" id="@awlsring/cdk8s-valheim.StatusHttpProps.property.htdocLocation"></a>
```typescript
public readonly htdocLocation: string;
```
- *Type:* string
Path to the status httpd htdocs where status.json is written.
---
##### `port`<sup>Optional</sup> <a name="port" id="@awlsring/cdk8s-valheim.StatusHttpProps.property.port"></a>
```typescript
public readonly port: number;
```
- *Type:* number
- *Default:* 80
The port the status http server runs on.
---
##### `serviceType`<sup>Optional</sup> <a name="serviceType" id="@awlsring/cdk8s-valheim.StatusHttpProps.property.serviceType"></a>
```typescript
public readonly serviceType: ServiceType;
```
- *Type:* cdk8s-plus-26.ServiceType
- *Default:* ServiceType.CLUSTER_IP
The service type for the status http server.
---
### SupervisorHttpProps <a name="SupervisorHttpProps" id="@awlsring/cdk8s-valheim.SupervisorHttpProps"></a>
Props for configuring the supervisor.
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.SupervisorHttpProps.Initializer"></a>
```typescript
import { SupervisorHttpProps } from '@awlsring/cdk8s-valheim'
const supervisorHttpProps: SupervisorHttpProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.SupervisorHttpProps.property.enabled">enabled</a></code> | <code>boolean</code> | Should the supervisor http server be enabled. |
| <code><a href="#@awlsring/cdk8s-valheim.SupervisorHttpProps.property.password">password</a></code> | <code><a href="#@awlsring/cdk8s-valheim.PasswordProps">PasswordProps</a></code> | The supervisor password. |
| <code><a href="#@awlsring/cdk8s-valheim.SupervisorHttpProps.property.port">port</a></code> | <code>number</code> | The port the supervisor http server runs on. |
| <code><a href="#@awlsring/cdk8s-valheim.SupervisorHttpProps.property.serviceType">serviceType</a></code> | <code>cdk8s-plus-26.ServiceType</code> | The service type for the supervisor http server. |
| <code><a href="#@awlsring/cdk8s-valheim.SupervisorHttpProps.property.username">username</a></code> | <code>string</code> | The supervisor username. |
---
##### `enabled`<sup>Required</sup> <a name="enabled" id="@awlsring/cdk8s-valheim.SupervisorHttpProps.property.enabled"></a>
```typescript
public readonly enabled: boolean;
```
- *Type:* boolean
- *Default:* false
Should the supervisor http server be enabled.
---
##### `password`<sup>Required</sup> <a name="password" id="@awlsring/cdk8s-valheim.SupervisorHttpProps.property.password"></a>
```typescript
public readonly password: PasswordProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.PasswordProps">PasswordProps</a>
The supervisor password.
---
##### `port`<sup>Optional</sup> <a name="port" id="@awlsring/cdk8s-valheim.SupervisorHttpProps.property.port"></a>
```typescript
public readonly port: number;
```
- *Type:* number
- *Default:* 9001
The port the supervisor http server runs on.
---
##### `serviceType`<sup>Optional</sup> <a name="serviceType" id="@awlsring/cdk8s-valheim.SupervisorHttpProps.property.serviceType"></a>
```typescript
public readonly serviceType: ServiceType;
```
- *Type:* cdk8s-plus-26.ServiceType
- *Default:* ServiceType.CLUSTER_IP
The service type for the supervisor http server.
---
##### `username`<sup>Optional</sup> <a name="username" id="@awlsring/cdk8s-valheim.SupervisorHttpProps.property.username"></a>
```typescript
public readonly username: string;
```
- *Type:* string
- *Default:* admin
The supervisor username.
---
### SysLogProps <a name="SysLogProps" id="@awlsring/cdk8s-valheim.SysLogProps"></a>
Props for configuring syslog.
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.SysLogProps.Initializer"></a>
```typescript
import { SysLogProps } from '@awlsring/cdk8s-valheim'
const sysLogProps: SysLogProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.SysLogProps.property.logLocal">logLocal</a></code> | <code>boolean</code> | Should logging be done local. |
| <code><a href="#@awlsring/cdk8s-valheim.SysLogProps.property.remoteHost">remoteHost</a></code> | <code>string</code> | The remote syslog host. |
| <code><a href="#@awlsring/cdk8s-valheim.SysLogProps.property.remotePort">remotePort</a></code> | <code>number</code> | The remote syslog port. |
---
##### `logLocal`<sup>Optional</sup> <a name="logLocal" id="@awlsring/cdk8s-valheim.SysLogProps.property.logLocal"></a>
```typescript
public readonly logLocal: boolean;
```
- *Type:* boolean
Should logging be done local.
---
##### `remoteHost`<sup>Optional</sup> <a name="remoteHost" id="@awlsring/cdk8s-valheim.SysLogProps.property.remoteHost"></a>
```typescript
public readonly remoteHost: string;
```
- *Type:* string
The remote syslog host.
---
##### `remotePort`<sup>Optional</sup> <a name="remotePort" id="@awlsring/cdk8s-valheim.SysLogProps.property.remotePort"></a>
```typescript
public readonly remotePort: number;
```
- *Type:* number
- *Default:* 514
The remote syslog port.
---
### ValheimChartProps <a name="ValheimChartProps" id="@awlsring/cdk8s-valheim.ValheimChartProps"></a>
The props for the chart.
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.ValheimChartProps.Initializer"></a>
```typescript
import { ValheimChartProps } from '@awlsring/cdk8s-valheim'
const valheimChartProps: ValheimChartProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.disableResourceNameHashes">disableResourceNameHashes</a></code> | <code>boolean</code> | The autogenerated resource name by default is suffixed with a stable hash of the construct path. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.labels">labels</a></code> | <code>{[ key: string ]: string}</code> | Labels to apply to all resources in this chart. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.namespace">namespace</a></code> | <code>string</code> | The default namespace for all objects defined in this chart (directly or indirectly). |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.backup">backup</a></code> | <code><a href="#@awlsring/cdk8s-valheim.BackupProps">BackupProps</a></code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.imageTag">imageTag</a></code> | <code>string</code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.persistence">persistence</a></code> | <code><a href="#@awlsring/cdk8s-valheim.PersistanceProps">PersistanceProps</a></code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.resourceLimits">resourceLimits</a></code> | <code><a href="#@awlsring/cdk8s-valheim.ResourceLimitsProps">ResourceLimitsProps</a></code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.security">security</a></code> | <code><a href="#@awlsring/cdk8s-valheim.SecurityProps">SecurityProps</a></code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.server">server</a></code> | <code><a href="#@awlsring/cdk8s-valheim.ServerProps">ServerProps</a></code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.statusHttp">statusHttp</a></code> | <code><a href="#@awlsring/cdk8s-valheim.StatusHttpProps">StatusHttpProps</a></code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.supervisorHttp">supervisorHttp</a></code> | <code><a href="#@awlsring/cdk8s-valheim.SupervisorHttpProps">SupervisorHttpProps</a></code> | *No description.* |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimChartProps.property.sysLog">sysLog</a></code> | <code><a href="#@awlsring/cdk8s-valheim.SysLogProps">SysLogProps</a></code> | *No description.* |
---
##### `disableResourceNameHashes`<sup>Optional</sup> <a name="disableResourceNameHashes" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.disableResourceNameHashes"></a>
```typescript
public readonly disableResourceNameHashes: boolean;
```
- *Type:* boolean
- *Default:* false
The autogenerated resource name by default is suffixed with a stable hash of the construct path.
Setting this property to true drops the hash suffix.
---
##### `labels`<sup>Optional</sup> <a name="labels" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.labels"></a>
```typescript
public readonly labels: {[ key: string ]: string};
```
- *Type:* {[ key: string ]: string}
- *Default:* no common labels
Labels to apply to all resources in this chart.
---
##### `namespace`<sup>Optional</sup> <a name="namespace" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.namespace"></a>
```typescript
public readonly namespace: string;
```
- *Type:* string
- *Default:* no namespace is synthesized (usually this implies "default")
The default namespace for all objects defined in this chart (directly or indirectly).
This namespace will only apply to objects that don't have a
`namespace` explicitly defined for them.
---
##### `backup`<sup>Optional</sup> <a name="backup" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.backup"></a>
```typescript
public readonly backup: BackupProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.BackupProps">BackupProps</a>
---
##### `imageTag`<sup>Optional</sup> <a name="imageTag" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.imageTag"></a>
```typescript
public readonly imageTag: string;
```
- *Type:* string
---
##### `persistence`<sup>Optional</sup> <a name="persistence" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.persistence"></a>
```typescript
public readonly persistence: PersistanceProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.PersistanceProps">PersistanceProps</a>
---
##### `resourceLimits`<sup>Optional</sup> <a name="resourceLimits" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.resourceLimits"></a>
```typescript
public readonly resourceLimits: ResourceLimitsProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.ResourceLimitsProps">ResourceLimitsProps</a>
---
##### `security`<sup>Optional</sup> <a name="security" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.security"></a>
```typescript
public readonly security: SecurityProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.SecurityProps">SecurityProps</a>
---
##### `server`<sup>Optional</sup> <a name="server" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.server"></a>
```typescript
public readonly server: ServerProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.ServerProps">ServerProps</a>
---
##### `statusHttp`<sup>Optional</sup> <a name="statusHttp" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.statusHttp"></a>
```typescript
public readonly statusHttp: StatusHttpProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.StatusHttpProps">StatusHttpProps</a>
---
##### `supervisorHttp`<sup>Optional</sup> <a name="supervisorHttp" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.supervisorHttp"></a>
```typescript
public readonly supervisorHttp: SupervisorHttpProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.SupervisorHttpProps">SupervisorHttpProps</a>
---
##### `sysLog`<sup>Optional</sup> <a name="sysLog" id="@awlsring/cdk8s-valheim.ValheimChartProps.property.sysLog"></a>
```typescript
public readonly sysLog: SysLogProps;
```
- *Type:* <a href="#@awlsring/cdk8s-valheim.SysLogProps">SysLogProps</a>
---
### ValheimPlusProps <a name="ValheimPlusProps" id="@awlsring/cdk8s-valheim.ValheimPlusProps"></a>
Props for configuring valheim plus.
#### Initializer <a name="Initializer" id="@awlsring/cdk8s-valheim.ValheimPlusProps.Initializer"></a>
```typescript
import { ValheimPlusProps } from '@awlsring/cdk8s-valheim'
const valheimPlusProps: ValheimPlusProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimPlusProps.property.enabled">enabled</a></code> | <code>boolean</code> | Should valheim plus be enabled. |
| <code><a href="#@awlsring/cdk8s-valheim.ValheimPlusProps.property.release">release</a></code> | <code>string</code> | The version of valheim plus to use. |
---
##### `enabled`<sup>Required</sup> <a name="enabled" id="@awlsring/cdk8s-valheim.ValheimPlusProps.property.enabled"></a>
```typescript
public readonly enabled: boolean;
```
- *Type:* boolean
- *Default:* false
Should valheim plus be enabled.
---
##### `release`<sup>Optional</sup> <a name="release" id="@awlsring/cdk8s-valheim.ValheimPlusProps.property.release"></a>
```typescript
public readonly release: string;
```
- *Type:* string
- *Default:* latest
The version of valheim plus to use.
---