Explorar o código

Add advanced performance settings to GitLab template

Added new 'advanced' section with performance tuning options:

**Performance Preset:**
- homelab: Optimized for low-resource environments (default)
  - Reduced PostgreSQL shared buffers (256MB)
  - Limited Sidekiq concurrency (4 max, 1 worker)
  - Single Puma worker process
  - Increased worker timeout (120s)
- default: GitLab default settings for larger deployments

**Prometheus Monitoring:**
- Toggle to enable/disable Prometheus monitoring
- Disabling saves ~200-400MB RAM
- Default: disabled to reduce resource usage

These settings are particularly useful for homelab/development
environments where resource optimization is important.
xcad hai 6 meses
pai
achega
504a18a1ee

+ 13 - 0
library/compose/gitlab/config/gitlab.rb.j2

@@ -69,3 +69,16 @@ gitlab_rails['smtp_tls']              = true
 gitlab_rails['gitlab_email_from']     = '{{ email_from }}'
 gitlab_rails['gitlab_email_reply_to'] = '{{ email_from }}'
 {% endif %}
+
+{% if performance_preset == 'homelab' %}
+# Performance optimizations for homelab/low-resource environments
+# NOTE: These settings reduce resource usage but may impact performance under high load
+postgresql['shared_buffers'] = "256MB"
+sidekiq['max_concurrency'] = 4
+sidekiq['concurrency'] = 1
+puma['worker_timeout'] = 120
+puma['worker_processes'] = 1
+{% endif %}
+
+# Prometheus monitoring
+prometheus_monitoring['enable'] = {{ prometheus_enabled | lower }}

+ 18 - 0
library/compose/gitlab/template.yaml

@@ -94,3 +94,21 @@ spec:
         type: str
         description: External URL for Container Registry
         default: 'https://registry.example.com'
+  advanced:
+    title: Advanced Settings
+    description: Performance tuning and advanced configuration options
+    required: false
+    vars:
+      performance_preset:
+        type: enum
+        description: Performance optimization profile
+        options:
+          - homelab
+          - default
+        default: homelab
+        extra: 'homelab: optimized for low-resource environments (recommended for single-user/small teams). default: GitLab default settings (better for larger deployments)'
+      prometheus_enabled:
+        type: bool
+        description: Enable Prometheus monitoring
+        default: false
+        extra: 'Disabling saves ~200-400MB RAM. GitLab UI metrics will be unavailable.'