403 lines
11 KiB
YAML
403 lines
11 KiB
YAML
apiVersion: v1
|
|
data:
|
|
map-gen-settings.json: |
|
|
{
|
|
"autoplace_controls": {
|
|
"coal": {
|
|
"frequency": 1,
|
|
"richness": 1,
|
|
"size": 1
|
|
},
|
|
"copper-ore": {
|
|
"frequency": 1,
|
|
"richness": 1,
|
|
"size": 1
|
|
},
|
|
"crude-oil": {
|
|
"frequency": 1,
|
|
"richness": 1,
|
|
"size": 1
|
|
},
|
|
"enemy-base": {
|
|
"frequency": 1,
|
|
"richness": 1,
|
|
"size": 1
|
|
},
|
|
"iron-ore": {
|
|
"frequency": 1,
|
|
"richness": 1,
|
|
"size": 1
|
|
},
|
|
"stone": {
|
|
"frequency": 1,
|
|
"richness": 1,
|
|
"size": 1
|
|
},
|
|
"trees": {
|
|
"frequency": 1,
|
|
"richness": 1,
|
|
"size": 1
|
|
},
|
|
"uranium-ore": {
|
|
"frequency": 1,
|
|
"richness": 1,
|
|
"size": 1
|
|
}
|
|
},
|
|
"cliff_settings": {
|
|
"cliff_elevation_0": 10,
|
|
"cliff_elevation_interval": 40,
|
|
"name": "cliff",
|
|
"richness": 1
|
|
},
|
|
"height": 0,
|
|
"peaceful_mode": false,
|
|
"property_expression_names": {
|
|
"control-setting:aux:bias": "0",
|
|
"control-setting:aux:frequency:multiplier": "1",
|
|
"control-setting:moisture:bias": "0",
|
|
"control-setting:moisture:frequency:multiplier": "1"
|
|
},
|
|
"starting_area": 1,
|
|
"starting_points": [
|
|
{
|
|
"x": 0,
|
|
"y": 0
|
|
}
|
|
],
|
|
"terrain_segmentation": 1,
|
|
"water": 1,
|
|
"width": 0
|
|
}
|
|
map-settings.json: |
|
|
{
|
|
"asteroids": {
|
|
"max_ray_portals_expanded_per_tick": 100,
|
|
"spawning_rate": 1
|
|
},
|
|
"difficulty_settings": {
|
|
"recipe_difficulty": 0,
|
|
"research_queue_setting": "after-victory",
|
|
"technology_difficulty": 0,
|
|
"technology_price_multiplier": 1
|
|
},
|
|
"enemy_evolution": {
|
|
"destroy_factor": 0.002,
|
|
"enabled": true,
|
|
"pollution_factor": 9e-7,
|
|
"time_factor": 0.000004
|
|
},
|
|
"enemy_expansion": {
|
|
"building_coefficient": 0.1,
|
|
"enabled": true,
|
|
"enemy_building_influence_radius": 2,
|
|
"friendly_base_influence_radius": 2,
|
|
"max_colliding_tiles_coefficient": 0.9,
|
|
"max_expansion_cooldown": 216000,
|
|
"max_expansion_distance": 7,
|
|
"min_base_spacing": 3,
|
|
"min_expansion_cooldown": 14400,
|
|
"neighbouring_base_chunk_coefficient": 0.4,
|
|
"neighbouring_chunk_coefficient": 0.5,
|
|
"other_base_coefficient": 2,
|
|
"settler_group_max_size": 20,
|
|
"settler_group_min_size": 5
|
|
},
|
|
"max_failed_behavior_count": 3,
|
|
"path_finder": {
|
|
"cache_accept_path_end_distance_ratio": 0.15,
|
|
"cache_accept_path_start_distance_ratio": 0.2,
|
|
"cache_max_connect_to_cache_steps_multiplier": 100,
|
|
"cache_path_end_distance_rating_multiplier": 20,
|
|
"cache_path_start_distance_rating_multiplier": 10,
|
|
"direct_distance_to_consider_short_request": 100,
|
|
"enemy_with_different_destination_collision_penalty": 30,
|
|
"extended_collision_penalty": 3,
|
|
"fwd2bwd_ratio": 5,
|
|
"general_entity_collision_penalty": 10,
|
|
"general_entity_subsequent_collision_penalty": 3,
|
|
"goal_pressure_ratio": 2,
|
|
"ignore_moving_enemy_collision_distance": 5,
|
|
"long_cache_min_cacheable_distance": 30,
|
|
"long_cache_size": 25,
|
|
"max_clients_to_accept_any_new_request": 10,
|
|
"max_clients_to_accept_short_new_request": 100,
|
|
"max_steps_worked_per_tick": 100,
|
|
"max_work_done_per_tick": 8000,
|
|
"min_steps_to_check_path_find_termination": 2000,
|
|
"negative_cache_accept_path_end_distance_ratio": 0.3,
|
|
"negative_cache_accept_path_start_distance_ratio": 0.3,
|
|
"negative_path_cache_delay_interval": 20,
|
|
"overload_levels": [
|
|
0,
|
|
100,
|
|
500
|
|
],
|
|
"overload_multipliers": [
|
|
2,
|
|
3,
|
|
4
|
|
],
|
|
"short_cache_min_algo_steps_to_cache": 50,
|
|
"short_cache_min_cacheable_distance": 10,
|
|
"short_cache_size": 5,
|
|
"short_request_max_steps": 1000,
|
|
"short_request_ratio": 0.5,
|
|
"stale_enemy_with_same_destination_collision_penalty": 30,
|
|
"start_to_goal_cost_multiplier_to_terminate_path_find": 500,
|
|
"use_path_cache": true
|
|
},
|
|
"pollution": {
|
|
"ageing": 1,
|
|
"diffusion_ratio": 0.02,
|
|
"enabled": true,
|
|
"enemy_attack_pollution_consumption_modifier": 1,
|
|
"expected_max_per_chunk": 150,
|
|
"max_pollution_to_restore_trees": 20,
|
|
"min_pollution_to_damage_trees": 60,
|
|
"min_to_diffuse": 15,
|
|
"min_to_show_per_chunk": 50,
|
|
"pollution_per_tree_damage": 50,
|
|
"pollution_restored_per_tree_damage": 10,
|
|
"pollution_with_max_forest_damage": 150
|
|
},
|
|
"steering": {
|
|
"default": {
|
|
"force_unit_fuzzy_goto_behavior": false,
|
|
"radius": 1.2,
|
|
"separation_factor": 1.2,
|
|
"separation_force": 0.005
|
|
},
|
|
"moving": {
|
|
"force_unit_fuzzy_goto_behavior": false,
|
|
"radius": 3,
|
|
"separation_factor": 3,
|
|
"separation_force": 0.01
|
|
}
|
|
},
|
|
"unit_group": {
|
|
"max_gathering_unit_groups": 30,
|
|
"max_group_gathering_time": 36000,
|
|
"max_group_member_fallback_factor": 3,
|
|
"max_group_radius": 30,
|
|
"max_group_slowdown_factor": 0.3,
|
|
"max_member_slowdown_when_ahead": 0.6,
|
|
"max_member_speedup_when_behind": 1.4,
|
|
"max_unit_group_size": 200,
|
|
"max_wait_time_for_late_members": 7200,
|
|
"member_disown_distance": 10,
|
|
"min_group_gathering_time": 3600,
|
|
"min_group_radius": 5,
|
|
"tick_tolerance_when_member_arrives": 60
|
|
}
|
|
}
|
|
rconpw: |
|
|
replaceme
|
|
server-adminlist.json: |
|
|
[
|
|
"Urrrk",
|
|
"Wendy"
|
|
]
|
|
server-settings.json: |
|
|
{
|
|
"afk_autokick_interval": 0,
|
|
"allow_commands": "admins-only",
|
|
"auto_pause": true,
|
|
"auto_pause_when_players_connect": false,
|
|
"autosave_interval": 10,
|
|
"autosave_only_on_server": true,
|
|
"autosave_slots": 5,
|
|
"description": "Factorio running on Kubernetes",
|
|
"game_password": "",
|
|
"ignore_player_limit_for_returning_players": false,
|
|
"max_heartbeats_per_second": 60,
|
|
"max_players": 0,
|
|
"max_upload_in_kilobytes_per_second": 0,
|
|
"max_upload_slots": 5,
|
|
"maximum_segment_size": 100,
|
|
"maximum_segment_size_peer_count": 10,
|
|
"minimum_latency_in_ticks": 0,
|
|
"minimum_segment_size": 25,
|
|
"minimum_segment_size_peer_count": 20,
|
|
"name": "Factorio",
|
|
"non_blocking_saving": false,
|
|
"only_admins_can_pause_the_game": true,
|
|
"password": "",
|
|
"require_user_verification": false,
|
|
"tags": [
|
|
"game",
|
|
"tags"
|
|
],
|
|
"token": "",
|
|
"username": "",
|
|
"visibility": {
|
|
"lan": true,
|
|
"public": false
|
|
}
|
|
}
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: factorio
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: factorio
|
|
app.kubernetes.io/version: stable
|
|
helm.sh/chart: factorio-1.2.2
|
|
name: factorio-settings
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
annotations:
|
|
io.cilium/lb-ipam-ips: 192.168.0.183
|
|
labels:
|
|
app.kubernetes.io/instance: factorio
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: factorio
|
|
app.kubernetes.io/version: stable
|
|
helm.sh/chart: factorio-1.2.2
|
|
name: factorio
|
|
spec:
|
|
ports:
|
|
- name: rcon
|
|
port: 27015
|
|
protocol: TCP
|
|
targetPort: rcon
|
|
- name: server
|
|
port: 34197
|
|
protocol: UDP
|
|
targetPort: server
|
|
selector:
|
|
app.kubernetes.io/instance: factorio
|
|
app.kubernetes.io/name: factorio
|
|
type: LoadBalancer
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: factorio
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: factorio
|
|
app.kubernetes.io/version: stable
|
|
helm.sh/chart: factorio-1.2.2
|
|
name: factorio-config
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|
|
storageClassName: openebs-3-replicas
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: factorio
|
|
app.kubernetes.io/managed-by: Helm
|
|
app.kubernetes.io/name: factorio
|
|
app.kubernetes.io/version: stable
|
|
helm.sh/chart: factorio-1.2.2
|
|
name: factorio
|
|
spec:
|
|
replicas: 1
|
|
revisionHistoryLimit: 3
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/instance: factorio
|
|
app.kubernetes.io/name: factorio
|
|
strategy:
|
|
type: Recreate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: factorio
|
|
app.kubernetes.io/name: factorio
|
|
spec:
|
|
automountServiceAccountToken: true
|
|
containers:
|
|
- env:
|
|
- name: GENERATE_NEW_SAVE
|
|
value: "false"
|
|
- name: LOAD_LATEST_SAVE
|
|
value: "true"
|
|
- name: PORT
|
|
value: "34197"
|
|
- name: RCON_PORT
|
|
value: "27015"
|
|
- name: SAVE_NAME
|
|
value: _autosave1
|
|
- name: TOKEN
|
|
value: ""
|
|
- name: TZ
|
|
value: UTC
|
|
- name: UPDATE_MODS_ON_START
|
|
value: "false"
|
|
- name: USERNAME
|
|
value: ""
|
|
image: factoriotools/factorio:2.0.43
|
|
imagePullPolicy: IfNotPresent
|
|
livenessProbe:
|
|
failureThreshold: 3
|
|
initialDelaySeconds: 0
|
|
periodSeconds: 10
|
|
tcpSocket:
|
|
port: 27015
|
|
timeoutSeconds: 1
|
|
name: factorio
|
|
ports:
|
|
- containerPort: 27015
|
|
name: rcon
|
|
protocol: TCP
|
|
- containerPort: 34197
|
|
name: server
|
|
protocol: UDP
|
|
readinessProbe:
|
|
failureThreshold: 3
|
|
initialDelaySeconds: 0
|
|
periodSeconds: 10
|
|
tcpSocket:
|
|
port: 27015
|
|
timeoutSeconds: 1
|
|
startupProbe:
|
|
failureThreshold: 30
|
|
initialDelaySeconds: 0
|
|
periodSeconds: 5
|
|
tcpSocket:
|
|
port: 27015
|
|
timeoutSeconds: 1
|
|
volumeMounts:
|
|
- mountPath: /factorio
|
|
name: config
|
|
- mountPath: /helmconfig/map_settings.json
|
|
name: factorio-config
|
|
subPath: map_settings.json
|
|
dnsPolicy: ClusterFirst
|
|
enableServiceLinks: true
|
|
initContainers:
|
|
- command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
mkdir -p /factorio/config
|
|
cp -vL /helmconfig/* /factorio/config/
|
|
image: busybox
|
|
imagePullPolicy: IfNotPresent
|
|
name: copy-configmap
|
|
securityContext:
|
|
runAsUser: 0
|
|
volumeMounts:
|
|
- mountPath: /helmconfig/
|
|
name: factorio-config
|
|
- mountPath: /factorio/
|
|
name: config
|
|
serviceAccountName: default
|
|
volumes:
|
|
- name: config
|
|
persistentVolumeClaim:
|
|
claimName: factorio-config
|
|
- configMap:
|
|
name: factorio-settings
|
|
name: factorio-config
|