Преглед на файлове

new features for traefik labels

xcad преди 6 месеца
родител
ревизия
81aa6f0d7d
променени са 3 файла, в които са добавени 14 реда и са изтрити 16 реда
  1. 4 2
      cli/core/prompt.py
  2. 3 7
      cli/modules/compose/variables.py
  3. 7 7
      library/compose/nginx/compose.yaml

+ 4 - 2
cli/core/prompt.py

@@ -376,7 +376,8 @@ class PromptHandler:
             except Exception:
                 return raw
         if vtype == "bool":
-            return PromptHandler._cast_str_to_bool(raw)
+            bool_val = PromptHandler._cast_str_to_bool(raw)
+            return "true" if bool_val else "false"
         return raw
 
     @staticmethod
@@ -486,7 +487,8 @@ class PromptHandler:
             except Exception:
                 return raw
         if vtype == "bool":
-            return PromptHandler._cast_str_to_bool(raw)
+            bool_val = PromptHandler._cast_str_to_bool(raw)
+            return "true" if bool_val else "false"
         return raw
 
     @staticmethod

+ 3 - 7
cli/modules/compose/variables.py

@@ -37,14 +37,10 @@ class ComposeVariables(BaseVariables):
             "prompt": "Do you want to change the Traefik labels?",
             "variables": {
                 "traefik_enable": {"display_name": "Enable Traefik", "default": True, "type": "bool", "prompt": "Enable Traefik routing for this service?"},
-                "traefik_router_name": {"display_name": "Router name", "default": "", "type": "str", "prompt": "Enter router name (leave empty to use service name)"},
-                "traefik_entrypoints": {"display_name": "Entrypoints", "default": "websecure", "type": "str", "prompt": "Enter entrypoints (comma-separated, e.g., websecure)"},
-                "traefik_rule": {"display_name": "Routing rule", "default": "", "type": "str", "prompt": "Enter routing rule (e.g., Host(`example.com`))"},
+                "traefik_host": {"display_name": "Routing Rule Host", "default": "", "type": "str", "prompt": "Enter hostname for the routing rule (e.g., example.com))"},
                 "traefik_tls": {"display_name": "Enable TLS", "default": True, "type": "bool", "prompt": "Enable TLS for this router?"},
-                "traefik_cert_resolver": {"display_name": "Certificate resolver", "default": "cloudflare", "type": "str", "prompt": "Enter certificate resolver name"},
-                "traefik_service_port": {"display_name": "Service port", "default": 80, "type": "int", "prompt": "Enter the internal port the service listens on"},
-                "traefik_middlewares": {"display_name": "Middlewares", "default": "", "type": "str", "prompt": "Enter middlewares (comma-separated, leave empty for none)"},
-                "traefik_priority": {"display_name": "Router priority", "default": "", "type": "str", "prompt": "Enter router priority (leave empty for default)"},
+                "traefik_certresolver": {"display_name": "Certificate resolver", "default": "cloudflare", "type": "str", "prompt": "Enter certificate resolver name"},
+                "traefik_middleware": {"display_name": "Middlewares", "default": "", "type": "str", "prompt": "Enter middlewares (comma-separated, leave empty for none)"},
             },
         },
     }

+ 7 - 7
library/compose/nginx/compose.yaml

@@ -21,13 +21,13 @@ services:
       - ./data:/usr/share/nginx/html:ro
     {% if traefik %}
     labels:
-      - traefik.enable=true
-      - traefik.http.services.nginx.loadbalancer.server.port=80
-      - traefik.http.routers.nginx.entrypoints=websecure
-      - traefik.http.routers.nginx.rule=Host(`example.com`)
-      - traefik.http.routers.nginx.tls=true
-      - traefik.http.routers.nginx.tls.certresolver=cloudflare
-      - traefik.http.routers.nginx.service=nginx
+      - traefik.enable={{ traefik_enable | default(true) }}
+      - traefik.http.services.{{ container_name }}.loadbalancer.server.port=80
+      - traefik.http.routers.{{ container_name }}.entrypoints=websecure
+      - traefik.http.routers.{{ container_name }}.rule=Host(`{{ traefik_host | default('example.com') }}`)
+      - traefik.http.routers.{{ container_name }}.tls={{ traefik_tls | default(true) }}
+      - traefik.http.routers.{{ container_name }}.tls.certresolver={{ traefik_certresolver }}
+      - traefik.http.routers.{{ container_name }}.service={{ container_name }}
     {% endif %}
     networks:
       - {{ docker_network | default('bridge') }}