Factorio is a game in which you build and maintain factories.
This chart creates a single Factorio Headless Pod, plus Services for the Factorio server and RCON.
- Kubernetes 1.4+ with Beta APIs enabled
- PV provisioner support in the underlying infrastructure
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.
To install the chart with the release name my-release
:
$ helm install --name my-release stable/factorio
This command deploys a Factorio dedicated server with sane defaults.
Tip: List all releases using
helm list
To uninstall/delete the my-release
deployment:
$ helm delete my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
Refer to 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.
Specify each parameter using the --set key=value[,key=value]
argument to helm install
. For example,
$ helm install --name my-release \
--set factorioServer.factorioServer=My Server,ImageTag=0.14.15 \
stable/factorio
The above command deploys Factorio dedicated with a server name of My Server
and docker-factorio image version 0.14.15
.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
$ helm install --name my-release -f values.yaml stable/factorio
Tip: You can use the default values.yaml
The 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."