-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #73 from SQLJames/cleanup
Cleanup
- Loading branch information
Showing
13 changed files
with
1,383 additions
and
308 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,6 @@ | ||
name: Lint, Test and Deploy Charts | ||
on: | ||
push: | ||
pull_request: | ||
|
||
jobs: | ||
lint-test: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
name: Verify Chart Documentation | ||
on: | ||
push: | ||
|
||
jobs: | ||
verify-docs: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
- name: Install Golang | ||
uses: actions/setup-go@v5 | ||
with: | ||
go-version: 'stable' | ||
- name: install chart-doc-gen | ||
run: go install kubepack.dev/chart-doc-gen@latest | ||
- name: Set up dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y make | ||
# Install chart-doc-gen or add additional commands as needed | ||
- name: Generate Documentation | ||
run: make gen | ||
|
||
- name: Verify Documentation | ||
run: make verify |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
name: Verify Chart Schema | ||
on: | ||
push: | ||
|
||
jobs: | ||
verify-schema: | ||
name: "Verify Chart Schema" | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: "Checkout" | ||
uses: actions/[email protected] | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: "Set Up Helm" | ||
uses: azure/[email protected] | ||
if: github.ref != 'refs/heads/main' | ||
with: | ||
version: v3.4.1 | ||
- name: install helm-schema-gen | ||
run: helm plugin install https://github.com/karuppiah7890/helm-schema-gen.git | ||
- name: Set up dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y make | ||
# Install chart-doc-gen or add additional commands as needed | ||
- name: Generate Documentation | ||
run: make gen-schema | ||
|
||
- name: Verify Documentation | ||
run: make verify |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,169 @@ | ||
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/factorio-server-charts)](https://artifacthub.io/packages/search?repo=factorio-server-charts) | ||
[![Factorio](https://img.shields.io/static/v1?label=Factorio&message=v2.0.10&logo=data:image/png;base64,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&labelColor=4c2c2c&color=8c6c6c)](https://www.factorio.com/) | ||
[![Chart Version](https://img.shields.io/static/v1?logo=Helm&logoColor=0f1689&message=v1.1.0&label=Helm%20Chart&labelColor=eeeeee&color=fefefe)](https://sqljames.github.io/factorio-server-charts/index.yaml) | ||
[![Image Version](https://img.shields.io/static/v1?logo=Docker&message=v1.1.70&label=Docker%20Image&labelColor=eeeeee&color=fefefe)](https://sqljames.github.io/factorio-server-charts/index.yaml) | ||
|
||
# {{ .Project.ShortName }} | ||
|
||
[{{ .Project.Name }}]({{ .Project.URL }}) - {{ .Project.Description }} | ||
|
||
## TL;DR; | ||
|
||
```bash | ||
$ helm repo add {{ .Repository.Name }} {{ .Repository.URL }} | ||
$ helm repo update | ||
$ helm search repo {{ .Repository.Name }}/{{ .Chart.Name }} | ||
$ helm upgrade -i {{ .Release.Name }} {{ .Repository.Name }}/{{ .Chart.Name }} -n {{ .Release.Namespace }} --create-namespace | ||
``` | ||
|
||
## Introduction | ||
|
||
This chart deploys {{ .Project.App }} on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. | ||
|
||
## Prerequisites | ||
{{ range .Prerequisites }} | ||
- {{ . }} | ||
{{- end }} | ||
|
||
## Installing the Chart | ||
|
||
To install/upgrade the chart with the release name `{{ .Release.Name }}`: | ||
|
||
```bash | ||
$ helm upgrade -i {{ .Release.Name }} {{ .Repository.Name }}/{{ .Chart.Name }} -n {{ .Release.Namespace }} --create-namespace | ||
``` | ||
|
||
The command deploys {{ .Project.App }} on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. | ||
|
||
> **Tip**: List all releases using `helm list` | ||
|
||
## Uninstalling the Chart | ||
|
||
To uninstall the `{{ .Release.Name }}`: | ||
|
||
```bash | ||
$ helm uninstall {{ .Release.Name }} -n {{ .Release.Namespace }} | ||
``` | ||
|
||
The command removes all the Kubernetes components associated with the chart and deletes the release. | ||
|
||
## Importing a save file | ||
|
||
> :warning: Importing a save file will **OVERWRITE THE SERVER SAVEFILE** with the name specified in `factorioServer.save_name`. Import with caution! | ||
|
||
### Importing by URL | ||
|
||
To import your save file from a URL, set `import_save.source_url` to a direct-download link for your savegame. By default, the file will be downloaded and imported only once. | ||
|
||
If, on pod intialization, you wish to re-import the file every time the contents of the savegame change, set `import_save.reimport_on_change` to `true`. | ||
:warning: If the savegame at the source url changes, this will overwrite the server save with that file. Use with caution! | ||
|
||
If you wish to reimport the save file every time the pod reinitializes, regardless of changes, set `import_save.reimport_every_time` to `true`. This could be useful for demos or testing. | ||
:warning: This will overwrite the server savegame **every time the pod reinitializes**. Use with caution! | ||
|
||
### Manual Import | ||
|
||
To import an existing save file, start/restart the pod at least once. This will create the import folder structure. | ||
|
||
Now, copy the savegame you wish to import to the `/factorio/save-importer/import/<existing_savegame_name>.zip` on the running pod using whatever mechanism you prefer. To do this with kubectl: | ||
|
||
```bash | ||
kubectl cp ./my_existing_savegame.zip <namespace>/<pod_name>:/factorio/save-importer/import | ||
``` | ||
|
||
Restart the pod again to import your save file. | ||
|
||
|
||
## Installing mods | ||
|
||
To Install mods, change `mods.enabled` to `true`, add any offical mods by their URL name under the `mods.portal` | ||
section, and any unofficial mods in the `mods.unofficial`section. | ||
|
||
|
||
```yaml | ||
mods: | ||
image: | ||
repository: "ghcr.io/sqljames/factorio-mod-downloader" | ||
## Container image pull policy | ||
pullPolicy: Always | ||
## Overrides the image tag whose default is the chart appVersion. | ||
tag: "1.0.1" | ||
## You should set an fix version, i.e.: | ||
# tag: "1.1.37" | ||
enabled: false | ||
# in order to use the mods portal you will need to specify the username and token in the server_settings. | ||
portal: [] | ||
# - name: factorissimo-2-notnotmelon | ||
# version: 3.5.11 | ||
# unofficial section is meant to just allow you to download and place folders into the mods folder. | ||
# we will not check version compatibility automatically with these downloads. | ||
# you can encounter an error if the file names dont match what the mod is expecting for example | ||
# Error Util.cpp:83: Failed to load mod "Squeak-Through": Filename of mod | ||
# /factorio/mods/Squeak-Through.zip doesn't match the expected Squeak Through_1.8.2.zip (case sensitive!) | ||
unofficial: [] | ||
# - url: "https://github.com/Suprcheese/Squeak-Through/archive/refs/tags/1.8.2.zip" | ||
# name: "Squeak Through_1.8.2.zip" | ||
``` | ||
If the Factorio server doesn't start, check that the logs don't have an error with the mods. They are pretty verbose. | ||
|
||
### Overhaul mods | ||
It is possible that your mod may extend the default settings. As a result, your server might not start properly and instead throw an error. | ||
|
||
While we expose all the default settings, we would not be able to determine what is needed if it is absent. To add new settings you would need to convert the desired json file into a yaml struct as we are mounting all configurations as a config map into the container. | ||
|
||
For example prior to the official release of 2.0, there was an issue with Space Exploration. The `autoplace_controls` by default is an empty array, and thus we were not able to start the instance as there were no settings for them to evaluate. Additionally, they are also modifying some of the other settings. These changes implement the default recommended settings, available in the UI and were stored in a file at `...Factorio\mods\space-exploration\shared.lua`. In the lua file, it has 2 sections, basic_settings and advanced_settings which correspond to settings in `map-gen-settings.json` and `map-settings.json` respecively. | ||
|
||
At the time of writing, to make these changes you would need to add this to your values.yaml file to override their default values in the chart. | ||
|
||
> **_NOTE:_** These settings may change and it is important to check with the mod maintainer/community to check the recommended settings. | ||
``` | ||
map_settings: | ||
pollution: | ||
enemy_attack_pollution_consumption_modifier: 0.5 | ||
enemy_evolution: | ||
time_factor: 0.0000005 | ||
destroy_factor: 0.0005 | ||
pollution_factor: 0.00000025 | ||
|
||
map_gen_settings: | ||
water: 1.5 | ||
starting_area: 2 | ||
autoplace_controls: | ||
hot: | ||
size: 0.5 | ||
cold: | ||
size: 0.5 | ||
property_expression_names: | ||
control-setting:moisture:bias: '0.05' | ||
control-setting:aux:bias: '-0.35' | ||
``` | ||
More information about the debugging process for the space exploration mod can be read on [Issue 24](https://github.com/SQLJames/factorio-server-charts/issues/24). | ||
|
||
If you do run into any issues with mods, I will try to work with you on finding the right settings and document them as well. | ||
|
||
{{ if .Chart.Values -}} | ||
|
||
## Configuration | ||
|
||
The following table lists the configurable parameters of the `{{ .Chart.Name }}` chart and their default values. | ||
|
||
{{ .Chart.Values }} | ||
|
||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example: | ||
|
||
```bash | ||
$ helm upgrade -i {{ .Release.Name }} {{ .Repository.Name }}/{{ .Chart.Name }} -n {{ .Release.Namespace }} --create-namespace --set {{ .Chart.ValuesExample }} | ||
``` | ||
|
||
Alternatively, a YAML file that specifies the values for the parameters can be provided while | ||
installing the chart. For example: | ||
|
||
```bash | ||
$ helm upgrade -i {{ .Release.Name }} {{ .Repository.Name }}/{{ .Chart.Name }} -n {{ .Release.Namespace }} --create-namespace --values values.yaml | ||
``` | ||
{{- end }} | ||
|
||
## Releases | ||
|
||
Releases are published using the official helm release action in github. | ||
https://github.com/helm/chart-releaser-action |
Oops, something went wrong.