charts/factorio/README.md
2020-12-04 00:23:04 +08:00

72 lines
2.7 KiB
Markdown

# Factorio
[Factorio](https://www.factorio.com/) is a game in which you build and maintain factories.
## Introduction
This chart creates a single [Factorio Headless](https://www.factorio.com/download-headless) Pod, plus Services for the Factorio server and RCON.
## Prerequisites
- Kubernetes 1.4+ with Beta APIs enabled
- PV provisioner support in the underlying infrastructure
## Provider-specific Prerequisites
Amazon's Elastic Loadbalancer lacks support for UDP. You'll need to set `factorioServer.ServiceType` to `NodePort` and expose the port that gets selected (see `kubectl describe svc <servicename>`) via a security group. You may need to do something similar for certain bare metal deployments.
You need not worry about this on Google Cloud Platform.
## Installing the Chart
To install the chart with the release name `my-release`:
```bash
$ helm install --name my-release stable/factorio
```
This command deploys a Factorio dedicated server with sane defaults.
> **Tip**: List all releases using `helm list`
## Uninstalling the Chart
To uninstall/delete the `my-release` deployment:
```bash
$ helm delete my-release
```
The command removes all the Kubernetes components associated with the chart and deletes the release.
## Configuration
Refer to [values.yaml](values.yaml) for the full run-down on defaults. These are a mixture of Kubernetes and Factorio-related directives that map to environment variables in [docker-factorio](https://github.com/games-on-k8s/docker-factorio).
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
```bash
$ helm install --name my-release \
--set factorioServer.factorioServer=My Server,ImageTag=0.15.39 \
stable/factorio
```
The above command deploys Factorio dedicated with a server name of `My Server` and docker-factorio image version `0.15.39`.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
```bash
$ helm install --name my-release -f values.yaml stable/factorio
```
> **Tip**: You can use the default [values.yaml](values.yaml)
## Persistence
The [docker-factorio](https://github.com/games-on-k8s/docker-factorio) image stores the saved games and mods under /opt/factorio.
By default a PersistentVolumeClaim is created and mounted for saves but not mods. In order to disable this functionality
you can change the values.yaml to disable persistence under the sub-sections under `Persistence`.
> *"An emptyDir volume is first created when a Pod is assigned to a Node, and exists as long as that Pod is running on that node. When a Pod is removed from a node for any reason, the data in the emptyDir is deleted forever."*