-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalues.yaml
More file actions
105 lines (96 loc) · 4.34 KB
/
Copy pathvalues.yaml
File metadata and controls
105 lines (96 loc) · 4.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
image:
repository: pagedrop-host
tag: "0.1.0"
pullPolicy: IfNotPresent
# Write-API bearer token. Either set `value` (chart creates a Secret) or point
# `existingSecret`/`existingSecretKey` at a Secret you manage.
token:
value: ""
existingSecret: ""
existingSecretKey: token
storage:
size: 1Gi
# storageClassName: "" # uncomment to pin a class; PVC is ReadWriteOnce.
# Write-API request-body cap (bytes). Must be >= the largest inlined-image page
# the MCP server may send: the core inlines up to ~24 MB of image data, which is
# ~32 MB once base64-encoded into the HTML. Empty = the host default (40 MiB).
# If you also enable the API ingress, raise its proxy-body-size to match
# (nginx defaults to 1 MB) — see apiIngress.annotations below.
limits:
maxBodyBytes: ""
# Artifact lifecycle (self-hosted features).
lifecycle:
# Default TTL for artifacts published without an explicit ttlSeconds.
# Empty = never expire by default. A publish may still opt out with ttlSeconds: 0.
defaultTtlSeconds: ""
# How often the background reaper deletes expired artifacts from disk (seconds).
reaperIntervalSeconds: 300
# Per-page password protection (self-hosted feature).
protection:
# When true, every publish WITHOUT an explicit password gets an auto-generated
# memorable passphrase (four EFF words + separators). Intended for public /
# no-SSO installations. REQUIRES a cookieSecret below (the chart will refuse to
# render otherwise).
defaultProtect: false
# Whether the page-unlock cookie carries the `Secure` attribute (HTTPS-only).
# Leave true whenever TLS terminates in front of the view server. Set false
# ONLY for HTTP-only deployments (no TLS anywhere) — otherwise the browser
# drops the Secure cookie and the unlock form loops forever.
cookieSecure: true
# Secret used to HMAC-sign page-unlock cookies. STRONGLY RECOMMENDED whenever
# passwords are used and MANDATORY when defaultProtect is true — otherwise the
# host falls back to a random per-process secret and unlock sessions break on
# restart and across replicas (including the brief two-pod overlap of a rolling
# update). Set `value` (chart creates a Secret) or point existingSecret at one.
cookieSecret:
value: ""
existingSecret: ""
existingSecretKey: cookieSecret
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 250m
memory: 128Mi
# Viewing ingress — PLACE THIS BEHIND YOUR SSO PROXY via annotations.
# Disabled by default: enabling it without SSO-proxy annotations would expose
# published pages to the internet unauthenticated. Enable it explicitly
# together with your proxy annotations (see README.md).
viewIngress:
enabled: false
className: ""
host: pagedrop.internal.example.com
annotations: {} # <-- inject your SSO proxy (oauth2-proxy/Pomerium/etc.) annotations here
tls: []
# API ingress — token-gated; the MCP server reaches it.
# WARNING: this bypasses the SSO proxy. It MUST be internal-only. Prefer
# leaving it disabled and reaching the Service in-cluster, or restrict it with
# the NetworkPolicy below and an internal load balancer.
apiIngress:
enabled: false
className: ""
host: pagedrop-api.internal.example.com
# If inlined-image publishes may exceed 1 MB, raise the proxy body-size limit
# to match `limits.maxBodyBytes`, e.g. for the nginx ingress:
# nginx.ingress.kubernetes.io/proxy-body-size: "40m"
annotations: {}
tls: []
# NetworkPolicy restricting who can reach the write-API port (8081).
# The write API is DENY-BY-DEFAULT: with both allow-lists below empty, no
# ingress rule for port 8081 is rendered at all, so it is unreachable. You
# MUST set allowedCIDRs and/or allowedPodSelectors to permit your MCP
# client's source (or set networkPolicy.enabled=false to disable the policy
# entirely and rely on other network controls).
networkPolicy:
enabled: true
# CIDRs allowed to reach the API port (e.g. your MCP host / VPN range).
allowedCIDRs: []
# Pod selectors (namespace-local) allowed to reach the API port.
allowedPodSelectors: []
# Optional restriction on who can reach the viewing port (8080) directly.
# Leaving both of these empty leaves port 8080 reachable by ANY in-cluster
# pod: SSO only fronts the ingress, it does not gate pod-to-pod traffic.
# Set one or both to restrict direct access to your SSO proxy's source.
viewAllowedCIDRs: []
viewAllowedPodSelectors: []