2026-06-03 16:32:28 -05:00
|
|
|
# Number of pod replicas. Increase for high availability or use autoscaling instead.
|
2026-06-03 10:51:38 -05:00
|
|
|
replicaCount: 1
|
|
|
|
|
|
|
|
|
|
image:
|
2026-06-03 16:32:28 -05:00
|
|
|
# Container image repository. Override to use a custom registry or fork.
|
2026-06-03 10:51:38 -05:00
|
|
|
repository: ghcr.io/offendingcommit/openconcho-web
|
2026-06-03 16:32:28 -05:00
|
|
|
# Image tag. Defaults to the chart appVersion when left empty.
|
2026-06-03 10:51:38 -05:00
|
|
|
tag: ""
|
|
|
|
|
pullPolicy: IfNotPresent
|
|
|
|
|
|
2026-06-03 16:32:28 -05:00
|
|
|
# Secrets for pulling images from private registries.
|
|
|
|
|
# Example: [{ name: my-registry-secret }]
|
2026-06-03 10:51:38 -05:00
|
|
|
imagePullSecrets: []
|
2026-06-03 16:32:28 -05:00
|
|
|
|
|
|
|
|
# Override the name portion used in resource names and labels.
|
2026-06-03 10:51:38 -05:00
|
|
|
nameOverride: ""
|
2026-06-03 16:32:28 -05:00
|
|
|
# Override the full resource name (normally release-name + chart-name).
|
2026-06-03 10:51:38 -05:00
|
|
|
fullnameOverride: ""
|
|
|
|
|
|
|
|
|
|
serviceAccount:
|
2026-06-03 16:32:28 -05:00
|
|
|
# Create a dedicated ServiceAccount for the pod.
|
2026-06-03 10:51:38 -05:00
|
|
|
create: true
|
2026-06-03 16:32:28 -05:00
|
|
|
# Disable automatic ServiceAccount token mounting — the app never calls the Kubernetes API.
|
2026-06-03 10:51:38 -05:00
|
|
|
automount: false
|
2026-06-03 16:32:28 -05:00
|
|
|
# Annotations to add to the ServiceAccount (e.g. for IRSA, Workload Identity, Vault).
|
2026-06-03 10:51:38 -05:00
|
|
|
annotations: {}
|
2026-06-03 16:32:28 -05:00
|
|
|
# Use a pre-existing ServiceAccount instead of creating one. Ignored when create is true.
|
2026-06-03 10:51:38 -05:00
|
|
|
name: ""
|
|
|
|
|
|
2026-06-03 16:32:28 -05:00
|
|
|
# Annotations applied to every pod (not the Deployment). Useful for Prometheus scraping,
|
|
|
|
|
# Vault agent injection, Datadog unified service tagging, etc.
|
2026-06-03 10:51:38 -05:00
|
|
|
podAnnotations: {}
|
2026-06-03 16:32:28 -05:00
|
|
|
# Extra labels applied to every pod.
|
2026-06-03 10:51:38 -05:00
|
|
|
podLabels: {}
|
|
|
|
|
|
2026-06-03 16:32:28 -05:00
|
|
|
# Pod-level security context shared by all containers.
|
|
|
|
|
# UID/GID 101 matches the nginx-unprivileged base image — do not change without rebuilding.
|
2026-06-03 10:51:38 -05:00
|
|
|
podSecurityContext:
|
|
|
|
|
runAsNonRoot: true
|
|
|
|
|
runAsUser: 101
|
|
|
|
|
runAsGroup: 101
|
|
|
|
|
fsGroup: 101
|
|
|
|
|
seccompProfile:
|
|
|
|
|
type: RuntimeDefault
|
|
|
|
|
|
2026-06-03 16:32:28 -05:00
|
|
|
# Container-level security context.
|
2026-06-03 10:51:38 -05:00
|
|
|
securityContext:
|
|
|
|
|
allowPrivilegeEscalation: false
|
|
|
|
|
readOnlyRootFilesystem: true
|
|
|
|
|
capabilities:
|
|
|
|
|
drop: [ALL]
|
|
|
|
|
|
2026-06-03 16:32:28 -05:00
|
|
|
# Directories mounted as ephemeral tmpfs (in-memory) to satisfy nginx's write requirements
|
|
|
|
|
# when the root filesystem is read-only. Add entries for any additional writable paths.
|
2026-06-03 10:51:38 -05:00
|
|
|
tmpfsMounts:
|
|
|
|
|
- mountPath: /var/cache/nginx
|
|
|
|
|
- mountPath: /var/run
|
|
|
|
|
- mountPath: /tmp
|
|
|
|
|
|
|
|
|
|
service:
|
2026-06-03 16:32:28 -05:00
|
|
|
# Kubernetes Service type. Options: ClusterIP | NodePort | LoadBalancer
|
2026-06-03 10:51:38 -05:00
|
|
|
type: ClusterIP
|
2026-06-03 16:32:28 -05:00
|
|
|
# Port exposed by the Service (what the Ingress or other pods target).
|
2026-06-03 10:51:38 -05:00
|
|
|
port: 80
|
2026-06-03 16:32:28 -05:00
|
|
|
# Port the container actually listens on (nginx-unprivileged default).
|
2026-06-03 10:51:38 -05:00
|
|
|
containerPort: 8080
|
|
|
|
|
|
|
|
|
|
ingress:
|
|
|
|
|
enabled: false
|
2026-06-03 16:32:28 -05:00
|
|
|
# IngressClass name. Leave empty to accept the cluster default.
|
|
|
|
|
# Examples: nginx | traefik | alb | kong
|
2026-06-03 10:51:38 -05:00
|
|
|
className: ""
|
2026-06-03 16:32:28 -05:00
|
|
|
# Annotations forwarded verbatim to the Ingress resource.
|
|
|
|
|
# Example (cert-manager + nginx-ingress):
|
|
|
|
|
# kubernetes.io/ingress.class: nginx
|
|
|
|
|
# cert-manager.io/cluster-issuer: letsencrypt-prod
|
2026-06-03 10:51:38 -05:00
|
|
|
annotations: {}
|
|
|
|
|
hosts:
|
|
|
|
|
- host: openconcho.example.com
|
|
|
|
|
paths:
|
|
|
|
|
- path: /
|
|
|
|
|
pathType: Prefix
|
2026-06-03 16:32:28 -05:00
|
|
|
# TLS configuration. Provide a Secret containing the certificate.
|
|
|
|
|
# Example:
|
|
|
|
|
# - secretName: openconcho-tls
|
|
|
|
|
# hosts:
|
|
|
|
|
# - openconcho.example.com
|
2026-06-03 10:51:38 -05:00
|
|
|
tls: []
|
|
|
|
|
|
|
|
|
|
honcho:
|
2026-06-03 16:32:28 -05:00
|
|
|
# Default Honcho instance URL pre-populated in the UI on first load.
|
|
|
|
|
# Users can change or add instances at runtime; this only seeds the initial value.
|
|
|
|
|
# Example: https://honcho.example.com
|
2026-06-03 10:51:38 -05:00
|
|
|
defaultUrl: ""
|
2026-06-03 16:32:28 -05:00
|
|
|
# Optional SSRF guard: comma-separated host globs the nginx proxy is allowed to forward to.
|
|
|
|
|
# Leave empty to allow any upstream. Applies only when the proxy is publicly reachable.
|
|
|
|
|
# Example: honcho.example.com,*.internal.example.com
|
2026-06-03 10:51:38 -05:00
|
|
|
upstreamAllowlist: ""
|
|
|
|
|
|
2026-06-03 16:32:28 -05:00
|
|
|
# CPU and memory requests / limits for the web container.
|
|
|
|
|
# The SPA is static HTML/JS, so memory is the primary concern and CPU is negligible at rest.
|
2026-06-03 10:51:38 -05:00
|
|
|
resources:
|
|
|
|
|
requests:
|
|
|
|
|
cpu: 50m
|
|
|
|
|
memory: 32Mi
|
|
|
|
|
limits:
|
|
|
|
|
memory: 128Mi
|
|
|
|
|
|
|
|
|
|
livenessProbe:
|
|
|
|
|
httpGet:
|
|
|
|
|
path: /healthz
|
|
|
|
|
port: http
|
|
|
|
|
initialDelaySeconds: 5
|
|
|
|
|
periodSeconds: 10
|
|
|
|
|
|
|
|
|
|
readinessProbe:
|
|
|
|
|
httpGet:
|
|
|
|
|
path: /healthz
|
|
|
|
|
port: http
|
|
|
|
|
initialDelaySeconds: 5
|
|
|
|
|
periodSeconds: 10
|
|
|
|
|
|
|
|
|
|
autoscaling:
|
|
|
|
|
enabled: false
|
|
|
|
|
minReplicas: 1
|
|
|
|
|
maxReplicas: 5
|
2026-06-03 16:32:28 -05:00
|
|
|
# Scale up when average CPU utilization across pods exceeds this percentage.
|
2026-06-03 10:51:38 -05:00
|
|
|
targetCPUUtilizationPercentage: 80
|
|
|
|
|
|
|
|
|
|
podDisruptionBudget:
|
|
|
|
|
enabled: false
|
2026-06-03 16:32:28 -05:00
|
|
|
# Minimum number of pods that must remain available during voluntary disruptions
|
|
|
|
|
# (node drains, rolling upgrades). Set maxUnavailable instead to flip the direction.
|
2026-06-03 10:51:38 -05:00
|
|
|
minAvailable: 1
|
2026-06-03 16:32:28 -05:00
|
|
|
# Uncomment to use maxUnavailable instead — cannot set both simultaneously.
|
|
|
|
|
# maxUnavailable: 1
|
2026-06-03 10:51:38 -05:00
|
|
|
|
2026-06-03 16:32:28 -05:00
|
|
|
# Restrict pod-to-pod traffic at the network layer. When enabled, only pods in the
|
|
|
|
|
# same namespace may reach the web container.
|
|
|
|
|
# WARNING: if ingress is also enabled, you must add a policy that allows traffic from
|
|
|
|
|
# the ingress-controller namespace — run `helm status <release>` to see the reminder.
|
2026-06-03 10:51:38 -05:00
|
|
|
networkPolicy:
|
|
|
|
|
enabled: false
|
|
|
|
|
|
2026-06-03 16:32:28 -05:00
|
|
|
# Spread pods across failure domains (availability zones, nodes, etc.) to reduce
|
|
|
|
|
# the blast radius of a single-node or single-zone failure.
|
|
|
|
|
# Example (zone spread):
|
|
|
|
|
# - maxSkew: 1
|
|
|
|
|
# topologyKey: topology.kubernetes.io/zone
|
|
|
|
|
# whenUnsatisfiable: DoNotSchedule
|
|
|
|
|
# labelSelector:
|
|
|
|
|
# matchLabels:
|
|
|
|
|
# app.kubernetes.io/name: openconcho
|
2026-06-03 10:51:38 -05:00
|
|
|
topologySpreadConstraints: []
|
2026-06-03 16:32:28 -05:00
|
|
|
|
|
|
|
|
# Constrain pods to nodes whose labels match these key/value pairs.
|
|
|
|
|
# Example: kubernetes.io/arch: amd64
|
2026-06-03 10:51:38 -05:00
|
|
|
nodeSelector: {}
|
2026-06-03 16:32:28 -05:00
|
|
|
|
|
|
|
|
# Allow pods to be scheduled on tainted nodes.
|
|
|
|
|
# Example:
|
|
|
|
|
# - key: dedicated
|
|
|
|
|
# operator: Equal
|
|
|
|
|
# value: web
|
|
|
|
|
# effect: NoSchedule
|
2026-06-03 10:51:38 -05:00
|
|
|
tolerations: []
|
2026-06-03 16:32:28 -05:00
|
|
|
|
|
|
|
|
# Advanced pod affinity / anti-affinity rules.
|
|
|
|
|
# Example (soft anti-affinity — prefer spreading across different nodes):
|
|
|
|
|
# podAntiAffinity:
|
|
|
|
|
# preferredDuringSchedulingIgnoredDuringExecution:
|
|
|
|
|
# - weight: 100
|
|
|
|
|
# podAffinityTerm:
|
|
|
|
|
# labelSelector:
|
|
|
|
|
# matchLabels:
|
|
|
|
|
# app.kubernetes.io/name: openconcho
|
|
|
|
|
# topologyKey: kubernetes.io/hostname
|
2026-06-03 10:51:38 -05:00
|
|
|
affinity: {}
|