Skip to content

Commit 520b2b8

Browse files
author
James Rhoat
authored
Merge pull request #18 from Haloghen/feature/security-patches
[BREAKING] Security Patches and General Improvements Breaking Changes Moved account data from server_settings. to account. in values.yaml Moved server password from server_settings. to serverPassword. in values.yaml
2 parents 4e0fe87 + 83a926c commit 520b2b8

18 files changed

+618
-212
lines changed

.github/workflows/chart_workflow.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ jobs:
77
lint-test:
88
name: "Lint and Test"
99
runs-on: ubuntu-22.04
10-
if: github.ref != 'refs/heads/main'
1110
steps:
1211
- name: "Checkout"
1312
uses: actions/checkout@v2.4.2

CHANGELOG.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## Changelog
2+
3+
### V1.1.0
4+
5+
#### Breaking Changes
6+
7+
- Moved account data from `server_settings.` to `account.` in values.yaml
8+
- Moved server password from `server_settings.` to `serverPassword.` in values.yaml
9+
10+
#### Non-Breaking Changes
11+
12+
- Added `account.accountSecret` field to values.yaml
13+
- Added `rcon.passwordSecret` field to values.yaml
14+
- Added `serverPassword.passwordSecret` field to values.yaml
15+
- Changed default `rcon.password` to `CHANGEMECHANGEME`, which should be changed anyway
16+
- Changed default `map_gen_settings.autoplace_controls` from the standard values to `{}`, since by default map
17+
generation follows standard parameters if not overriden
18+
- Changed default `admin_list`, `white_list` and `ban_list` to `[]` instead of `nil`

README.md

+38-87
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,53 @@
11
[![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)
2-
2+
[![Factorio](https://img.shields.io/static/v1?label=Factorio&message=v1.1.70&logo=data:image/png;base64,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&labelColor=4c2c2c&color=8c6c6c)](https://www.factorio.com/)
3+
[![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)
4+
[![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)
35

46
# factorio-server-charts
57

6-
[factorio-server-charts](https://github.com/SQLJames/factorio-server-charts) - A Helm chart for running factorio in kubernetes
8+
[factorio-server-charts](https://github.com/SQLJames/factorio-server-charts) - A Helm chart for running factorio in
9+
kubernetes
710

811
## Introduction
912

10-
This chart deploys Factorio on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
11-
12-
## Prerequisites
13-
14-
- This chart does require a nodeport open if playing publicly.
15-
- networking knowledge to route the traffic to the appropriate port.
13+
This chart deploys Factorio on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package
14+
manager.
1615

1716
## Background
18-
This is something of a passion project for both learning kubernetes and because kubernetes is awesome.
19-
Because of this, I have only confirm this working on version 1.1.0 of factorio but I am sure it will work just fine on old versions as long as the schema doesn't change to much on the Secrets settings.
2017

21-
However, with the way this is implemented if you want to make it backwards compatible, you can update the appropriate sections in the values.yaml file to have the items added or removed to the json files that are required by factorio. Server-settings, map-gen-settings, etc.
18+
This is something of a passion project for both learning kubernetes and because kubernetes is awesome.
19+
Because of this, I have only confirm this working on version 1.1.0 of factorio but I am sure it will work just fine on
20+
old versions as long as the schema doesn't change to much on the Secrets settings.
2221

23-
I did run into one issue on my setup, and I feel like it will likely come up again if people follow along. The factorio server is defaulting to run on port 30000 instead of 34197 because the default nginx port range for ingress does not have 34197 within the normal port range. This shows the line of code that specifically is causing the issue inside kubernetes :)
24-
https://github.com/kubernetes/kubernetes/blob/59876df736c41093363f4c198aeec05e29c9c902/cmd/kube-apiserver/app/server.go#L197
22+
However, with the way this is implemented if you want to make it backwards compatible, you can update the appropriate
23+
sections in the values.yaml file to have the items added or removed to the json files that are required by factorio.
24+
Server-settings, map-gen-settings, etc.
2525

2626
## Releases
27-
Releases are published using the official helm release action in github.
27+
28+
Releases are published using the official helm release action in github.
2829
https://github.com/helm/chart-releaser-action
2930

30-
## Quick Start
31-
- create a values.yaml file
32-
- set the following options
33-
34-
```
35-
rcon:
36-
external: false
37-
38-
nodeSelector:
39-
kubernetes.io/hostname: "<name of your node>" #this makes it easier for firewall rules and makes sure things dont change
40-
41-
#making sure the game doesnt auto update on redeploy
42-
#https://hub.docker.com/r/factoriotools/factorio/
43-
image:
44-
tag: "<set me to the appropriate docker tag>"
45-
46-
47-
persistence:
48-
enabled: true
49-
50-
factorioServer:
51-
save_name: "<set me to your name>"
52-
53-
#needed if playing online
54-
admin_list: #put your admins based on factorio names
55-
# - "john_doe"
56-
# - "jane_doe"
57-
58-
white_list: #put the people you want to play with you based on factorio names
59-
# - "john_doe"
60-
# - "jane_doe"
61-
62-
server_settings:
63-
name: Factorio-2022-01-kubernetes
64-
tags:
65-
- modded
66-
visibility:
67-
public: true
68-
# Your factorio.com login credentials. Required for games with visibility public
69-
username: ''
70-
# Authentication token.
71-
token: ''
72-
# password required to log into the factorio server
73-
game_password: ''
74-
require_user_verification: true
75-
```
76-
77-
## installing mods
78-
79-
change enabled to true, follow comments below.
80-
81-
If the factorio server doesn't start, check that the logs don't have an error with the mods. They are pretty verbose
82-
```
83-
mods:
84-
enabled: true
85-
# in order to use the mods portal you will need to specify the username and token in the server_settings.
86-
# name is determined by the url, it will be the last part of the url, not the title of the mod.
87-
portal:
88-
- Krastorio2
89-
- StorageTank2_Updated
90-
- early-robots
91-
# unofficial section is meant to just allow you to download and place folders into the mods folder.
92-
# we will not check version compatibility automatically with these downloads.
93-
# you can encounter an error if the file names dont match what the mod is expecting for example
94-
#Error Util.cpp:83: Failed to load mod "Squeak-Through": Filename of mod
95-
# /factorio/mods/Squeak-Through.zip doesn't match the expected Squeak Through_1.8.2.zip (case sensitive!)
96-
unofficial:
97-
- url: "https://github.com/Suprcheese/Squeak-Through/archive/refs/tags/1.8.2.zip"
98-
name: "Squeak Through_1.8.2.zip"
99-
```
100-
101-
## Readme
102-
Readme was generated from the [chart-doc-gen](https://github.com/kubepack/chart-doc-gen) tool.
31+
## Full Documentation
32+
33+
To read the full documentation check the
34+
chart's [README.md](https://github.com/SQLJames/factorio-server-charts/blob/main/charts/factorio-server-charts/README.md)
35+
36+
## Changelog
37+
38+
### V1.1.0
39+
40+
#### Breaking Changes
41+
42+
- Moved account data from `server_settings.` to `account.` in values.yaml
43+
- Moved server password from `server_settings.` to `serverPassword.` in values.yaml
44+
45+
#### Non-Breaking Changes
46+
47+
- Added `account.accountSecret` field to values.yaml
48+
- Added `rcon.passwordSecret` field to values.yaml
49+
- Added `serverPassword.passwordSecret` field to values.yaml
50+
- Changed default `rcon.password` to `CHANGEMECHANGEME`, which should be changed anyway
51+
- Changed default `map_gen_settings.autoplace_controls` from the standard values to `{}`, since by default map
52+
generation follows standard parameters if not overriden
53+
- Changed default `admin_list`, `white_list` and `ban_list` to `[]` instead of `nil`

charts/factorio-server-charts/Chart.yaml

+6-2
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,17 @@ sources:
2020
# This is the chart version. This version number should be incremented each time you make changes
2121
# to the chart and its templates, including the app version.
2222
# Versions are expected to follow Semantic Versioning (https://semver.org/)
23-
version: 1.0.12
23+
version: 1.1.0
2424

2525
# This is the version number of the application being deployed. This version number should be
2626
# incremented each time you make changes to the application. Versions are not expected to
2727
# follow Semantic Versioning. They should reflect the version the application is using.
28-
maintainers: # (optional)
28+
29+
# (optional)
30+
maintainers:
2931
- name: James Rhoat
3032
email: James@Rhoat.com
3133
appVersion: 1.0.0
3234
deprecated: false
35+
36+
icon: https://factorio.com/static/img/factorio-wheel.png

0 commit comments

Comments
 (0)