mirror of
https://github.com/Noooste/garage-ui.git
synced 2026-08-25 03:46:47 +00:00
c1a1d64928
Signed-off-by: Noste <83548733+Noooste@users.noreply.github.com>
214 lines
4.8 KiB
YAML
214 lines
4.8 KiB
YAML
# Default values for garage-ui
|
|
|
|
replicaCount: 1
|
|
|
|
image:
|
|
repository: noooste/garage-ui
|
|
pullPolicy: IfNotPresent
|
|
# Overrides the image tag whose default is the chart appVersion
|
|
tag: ""
|
|
|
|
imagePullSecrets: []
|
|
nameOverride: ""
|
|
fullnameOverride: ""
|
|
|
|
config:
|
|
server:
|
|
host: "0.0.0.0"
|
|
port: 8080
|
|
environment: "production"
|
|
domain: "garage-ui.example.com"
|
|
protocol: "http"
|
|
# Full external URL (required for OIDC)
|
|
root_url: "https://garage-ui.example.com"
|
|
# Request size limits (in bytes)
|
|
max_body_size: 314572800 # 300MB
|
|
max_header_size: 1048576 # 1MB
|
|
read_buffer_size: 4096 # 4KB
|
|
write_buffer_size: 4096 # 4KB
|
|
|
|
garage:
|
|
# Garage S3 API endpoint
|
|
endpoint: "http://garage:3900"
|
|
region: "garage"
|
|
# Garage Admin API endpoint
|
|
admin_endpoint: "http://garage:3903"
|
|
# Admin API bearer token
|
|
admin_token: ""
|
|
# Use existing secret for admin token (recommended)
|
|
existingSecret:
|
|
name: ""
|
|
key: "admin-token"
|
|
|
|
auth:
|
|
# Ed25519 private key for JWT signing (PEM format)
|
|
# Generate with: openssl genpkey -algorithm ED25519
|
|
# If not provided and no existing secret is specified, a key will be auto-generated
|
|
# and persisted in a Kubernetes secret (recommended for production)
|
|
jwt_private_key: ""
|
|
# Use existing secret for JWT private key (optional)
|
|
# If not specified, the chart will auto-generate a secret on first install
|
|
jwt_private_key_secret:
|
|
name: ""
|
|
key: "jwt-key.pem"
|
|
|
|
# Admin authentication (username/password)
|
|
admin:
|
|
enabled: false
|
|
username: "admin"
|
|
password: "changeme"
|
|
existingSecret:
|
|
name: ""
|
|
key: "admin-password"
|
|
|
|
# OIDC authentication (Keycloak, Auth0, Okta, etc.)
|
|
# NOTE: Requires server.root_url to be set
|
|
oidc:
|
|
enabled: false
|
|
provider_name: "Keycloak"
|
|
client_id: "garage-ui"
|
|
client_secret: "your-client-secret"
|
|
existingSecret:
|
|
name: ""
|
|
key: "client-secret"
|
|
scopes:
|
|
- openid
|
|
- email
|
|
- profile
|
|
# OIDC provider endpoints
|
|
issuer_url: "https://keycloak.example.com/realms/master"
|
|
auth_url: "https://keycloak.example.com/realms/master/protocol/openid-connect/auth"
|
|
token_url: "https://keycloak.example.com/realms/master/protocol/openid-connect/token"
|
|
userinfo_url: "https://keycloak.example.com/realms/master/protocol/openid-connect/userinfo"
|
|
# Validation settings
|
|
skip_issuer_check: false
|
|
skip_expiry_check: false
|
|
# User attribute mappings
|
|
email_attribute: "email"
|
|
username_attribute: "preferred_username"
|
|
name_attribute: "name"
|
|
# Role-based access control
|
|
role_attribute_path: "resource_access.garage-ui.roles"
|
|
admin_role: "admin"
|
|
# TLS settings
|
|
tls_skip_verify: false
|
|
# Session settings
|
|
session_max_age: 86400 # 24 hours
|
|
cookie_name: "garage_session"
|
|
cookie_secure: true
|
|
cookie_http_only: true
|
|
cookie_same_site: "lax"
|
|
|
|
# CORS configuration
|
|
cors:
|
|
enabled: true
|
|
allowed_origins:
|
|
- "*"
|
|
allowed_methods:
|
|
- GET
|
|
- POST
|
|
- PUT
|
|
- DELETE
|
|
- OPTIONS
|
|
allowed_headers:
|
|
- Origin
|
|
- Content-Type
|
|
- Accept
|
|
- Authorization
|
|
allow_credentials: false
|
|
max_age: 3600
|
|
|
|
logging:
|
|
# Options: debug, info, warn, error
|
|
level: "info"
|
|
# Options: json, text
|
|
format: "json"
|
|
|
|
# Pod annotations
|
|
podAnnotations: {}
|
|
|
|
# Pod security context
|
|
podSecurityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 1000
|
|
fsGroup: 1000
|
|
|
|
# Container security context
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: false
|
|
|
|
service:
|
|
type: ClusterIP
|
|
port: 80
|
|
|
|
ingress:
|
|
enabled: false
|
|
className: "nginx"
|
|
annotations: {}
|
|
# cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
|
# nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
|
hosts:
|
|
- host: garage-ui.local
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
tls: []
|
|
# - secretName: garage-ui-tls
|
|
# hosts:
|
|
# - garage-ui.local
|
|
|
|
resources:
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
|
|
livenessProbe:
|
|
enabled: true
|
|
httpGet:
|
|
path: /health
|
|
port: http
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 10
|
|
timeoutSeconds: 3
|
|
failureThreshold: 3
|
|
|
|
readinessProbe:
|
|
enabled: true
|
|
httpGet:
|
|
path: /health
|
|
port: http
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 5
|
|
timeoutSeconds: 3
|
|
failureThreshold: 3
|
|
|
|
# ServiceMonitor for Prometheus Operator
|
|
serviceMonitor:
|
|
enabled: false
|
|
interval: 30s
|
|
path: /api/v1/monitoring/metrics
|
|
labels: {}
|
|
|
|
# NetworkPolicy
|
|
networkPolicy:
|
|
enabled: false
|
|
policyTypes:
|
|
- Ingress
|
|
- Egress
|
|
|
|
# Node labels for pod assignment
|
|
nodeSelector: {}
|
|
|
|
# Tolerations for pod assignment
|
|
tolerations: []
|
|
|
|
# Affinity for pod assignment
|
|
affinity: {}
|