Configuration Reference

Helm values and config.yaml reference for kup6s-pages.

config.yaml

The dp-infra deployment configuration:

versions:
  helmChart: "0.1.0"           # kup6s-pages Helm chart version

namespace: "kup6s-pages"        # Target namespace for central components

operator:
  clusterIssuer: "letsencrypt-cluster-issuer"  # cert-manager ClusterIssuer

storage:
  storageClassName: "storagebox"  # RWX-capable StorageClass
  size: "10Gi"                    # PVC size for static sites

nginx:
  replicas: 2                     # Number of nginx replicas

webhook:
  enabled: true
  domain: "webhook.pages.kup6s.com"  # Webhook endpoint domain

resources:
  operator:
    requests: { cpu: "100m", memory: "64Mi" }
    limits: { cpu: "200m", memory: "128Mi" }
  syncer:
    requests: { cpu: "100m", memory: "128Mi" }
    limits: { cpu: "500m", memory: "256Mi" }
  nginx:
    requests: { cpu: "50m", memory: "64Mi" }
    limits: { cpu: "200m", memory: "128Mi" }

Helm Values

Global Settings

Value

Default

Description

nameOverride

""

Override chart name

fullnameOverride

""

Override full release name

createNamespace

true

Create namespace (false if managed externally)

namespace

kup6s-pages

Target namespace

imagePullSecrets

[]

Global image pull secrets

CRD Configuration

Value

Default

Description

crds.install

false

Install CRD with chart (use --skip-crds to skip)

crds.keep

true

Keep CRD when chart is uninstalled

Operator Configuration

Value

Default

Description

operator.replicas

1

Operator replicas (usually 1 due to leader election)

operator.image.registry

ghcr.io

Image registry

operator.image.repository

kup6s/pages-operator

Image repository

operator.image.tag

""

Image tag (defaults to Chart.appVersion)

operator.pagesDomain

pages.kup6s.com

Pages domain for auto-generated URLs

operator.clusterIssuer

letsencrypt-prod

cert-manager ClusterIssuer name

operator.metricsBindAddress

:8080

Metrics endpoint address

operator.healthProbeBindAddress

:8081

Health probe address

operator.extraArgs

[]

Additional CLI arguments

operator.resources.requests.cpu

100m

CPU request

operator.resources.requests.memory

64Mi

Memory request

operator.resources.limits.cpu

200m

CPU limit

operator.resources.limits.memory

128Mi

Memory limit

Syncer Configuration

Value

Default

Description

syncer.replicas

1

Syncer replicas (usually 1 to avoid conflicts)

syncer.image.registry

ghcr.io

Image registry

syncer.image.repository

kup6s/pages-syncer

Image repository

syncer.syncInterval

5m

Default git sync interval

syncer.webhookAddr

:8080

Webhook server listen address

syncer.sitesRoot

/sites

Sites root directory in PVC

syncer.resources.requests.cpu

100m

CPU request

syncer.resources.requests.memory

128Mi

Memory request

syncer.resources.limits.cpu

500m

CPU limit

syncer.resources.limits.memory

256Mi

Memory limit

nginx Configuration

Value

Default

Description

nginx.replicas

2

nginx replicas for HA

nginx.image.registry

docker.io

Image registry

nginx.image.repository

library/nginx

Image repository

nginx.image.tag

1.25-alpine

Image tag

nginx.resources.requests.cpu

50m

CPU request

nginx.resources.requests.memory

64Mi

Memory request

nginx.resources.limits.cpu

200m

CPU limit

nginx.resources.limits.memory

128Mi

Memory limit

nginx.customConfig

""

Custom nginx config (overrides default.conf)

nginx.pdb.enabled

true

Enable PodDisruptionBudget

nginx.pdb.minAvailable

1

Minimum available pods

Storage Configuration

Value

Default

Description

storage.existingClaim

""

Use existing PVC

storage.storageClassName

""

StorageClass (empty uses default)

storage.size

10Gi

PVC size

storage.accessModes

[ReadWriteMany]

Access modes (RWX required)

Webhook Configuration

Value

Default

Description

webhook.enabled

false

Enable webhook IngressRoute

webhook.domain

webhook.pages.kup6s.com

Webhook domain

webhook.clusterIssuer

""

ClusterIssuer (defaults to operator.clusterIssuer)

webhook.entryPoints

[websecure]

Traefik entrypoints

RBAC Configuration

Value

Default

Description

rbac.create

true

Create ClusterRole and ClusterRoleBinding

Storage Requirements

The storage must support ReadWriteMany (RWX) access mode since both the syncer and nginx pods mount the same volume.

Compatible StorageClasses in kup6s cluster:

  • storagebox - SMB CSI driver with Hetzner Storage Box

  • NFS-based storage classes

Longhorn ReadWriteMany requires NFSv4 setup and is not currently recommended.