From 217fc806452a0c6d71a3856e4b2207fc750c6f2a Mon Sep 17 00:00:00 2001 From: ACoolName Date: Sun, 28 Jun 2026 19:24:51 +0300 Subject: [PATCH] feat(example): add factorio image example --- config/samples/factorio_image-latest.yaml | 24 +++++++++++++++++++ internal/controller/filebrowser_config.go | 4 ++-- .../controller/servermanager_controller.go | 14 ++++++----- 3 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 config/samples/factorio_image-latest.yaml diff --git a/config/samples/factorio_image-latest.yaml b/config/samples/factorio_image-latest.yaml new file mode 100644 index 0000000..a66ae28 --- /dev/null +++ b/config/samples/factorio_image-latest.yaml @@ -0,0 +1,24 @@ +apiVersion: server-manager.acooldomain.co/v1alpha1 +kind: Image +metadata: + labels: + app.kubernetes.io/name: kubernetes-operator + app.kubernetes.io/managed-by: kustomize + name: minecraft-paper-1-21-5 +spec: + location: git.acooldomain.co/server-manager/minecraft:paper-1.21.5 + name: minecraft + tag: paper-1.21.5 + working_dir: /opt/server + ports: + - port: 25565 + protocol: TCP + + init_script: + image: alpine:latest + command: + - /bin/sh + args: + - /bin/sh + - "-c" + - "echo eula=true >> /data/eula.txt" diff --git a/internal/controller/filebrowser_config.go b/internal/controller/filebrowser_config.go index 312b378..32f74da 100644 --- a/internal/controller/filebrowser_config.go +++ b/internal/controller/filebrowser_config.go @@ -1,7 +1,7 @@ package controller type SourceConfig struct { - DefaultEnabled bool `yaml:"DefaultEnabled"` + DefaultEnabled bool `yaml:"defaultEnabled"` } type SourceDefinition struct { @@ -17,7 +17,7 @@ type ServerConfig struct { type AuthPasswordMethodConfig struct { Enabled bool `yaml:"enabled"` - MinLength bool `yaml:"minLength"` + MinLength int `yaml:"minLength"` } type AuthProxyMethodConfig struct { diff --git a/internal/controller/servermanager_controller.go b/internal/controller/servermanager_controller.go index a41583b..535ec30 100644 --- a/internal/controller/servermanager_controller.go +++ b/internal/controller/servermanager_controller.go @@ -302,13 +302,16 @@ func (r *ServerManagerReconciler) Reconcile(ctx context.Context, req ctrl.Reques if err != nil { return ctrl.Result{}, err } - var foundBrowserConfigMap *corev1.ConfigMap + logging.Info("created browser configmap") + var foundBrowserConfigMap corev1.ConfigMap - err = r.Get(ctx, client.ObjectKeyFromObject(browserConfigMap), foundBrowserConfigMap) + err = r.Get(ctx, client.ObjectKeyFromObject(browserConfigMap), &foundBrowserConfigMap) if err != nil { + logging.Info("Failed getting browser configmap", "err", err) err = r.Create(ctx, browserConfigMap) return ctrl.Result{Requeue: true}, err } + logging.Info("verified browser config map") browserPod := r.BrowserPod(s, pvc, browserPvc, browserConfigMap) foundBrowser := &corev1.Pod{} @@ -535,6 +538,7 @@ func (r *ServerManagerReconciler) BrowserService(s *servermanagerv1alpha1.Server func (r *ServerManagerReconciler) BrowserConfigMap(s *servermanagerv1alpha1.ServerManager) (*corev1.ConfigMap, error) { serializedConfig, err := yaml.Marshal(FileBrowserConfig{ Server: ServerConfig{ + Port: 80, BaseUrl: r.GenerateBrowserSubPath(s), Sources: []SourceDefinition{ { @@ -551,7 +555,7 @@ func (r *ServerManagerReconciler) BrowserConfigMap(s *servermanagerv1alpha1.Serv }, Proxy: AuthProxyMethodConfig{ Enabled: true, - Header: "X-Forwarded-User", + Header: r.Config.Browser.AuthHeader, }, }, }, @@ -564,15 +568,13 @@ func (r *ServerManagerReconciler) BrowserConfigMap(s *servermanagerv1alpha1.Serv return nil, err } - var configMapData map[string]string - configMapData["config.yaml"] = string(serializedConfig) return &corev1.ConfigMap{ ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("%s-browser-config", s.Name), Namespace: s.Namespace, Labels: map[string]string{"browser": s.Name}, }, - Data: configMapData, + Data: map[string]string{"config.yaml": string(serializedConfig)}, }, nil }