Harthelm Docs

Teams and storage

Chart values: tenancy, teams, storage, customDomains, gc.

Generated from charts/harthelm/values.yaml at v1.5.0

tenancy

ValueTypeDefaultDescription
tenancy.defaultOrgstring"Default"The organization and team every install starts with.
tenancy.defaultTeamstring"Default"

teams

Namespace rg-<team> defaults (the quota and the LimitRange); a team's own quota overrides entries.

ValueTypeDefaultDescription
teams.quotaobjectKubernetes quantities (a plain number is bytes there); memory and storage also take the MiB and GiB spellings (4096MiB, 50GiB).
teams.quota.requestsCpustring or number"2"
teams.quota.requestsMemorystring or number"4Gi"
teams.quota.limitsMemorystring or number"8Gi"
teams.quota.requestsStoragestring or number"50Gi"
teams.limitRange.defaultRequestCpustring"100m"
teams.limitRange.defaultRequestMemorystring"128Mi"
teams.limitRange.defaultLimitCpustring""
teams.limitRange.defaultLimitMemorystring"512Mi"
teams.network.dnsobjectThe cluster DNS pods the team namespaces may ask.
teams.network.dns.namespaceSelector.kubernetes.io/metadata.namestring"kube-system"
teams.network.dns.podSelector.k8s-appstring"kube-dns"
teams.network.mirrorsobjectPackage and tool mirrors on private addresses (air-gapped installs, values-airgap.yaml): workspaces reach the internet but no private range, so name the mirrors (NetworkPolicyPeer objects; empty: any destination) and their TCP ports. With Cilium the backstop leaves the ipBlocks out of its private-range deny. No ports: no rule.
teams.network.mirrors.tolist of object[]
teams.network.mirrors.portslist of integer[]

storage

ValueTypeDefaultDescription
storage.classstring""Workspace volumes. class empty: the cluster's default StorageClass.
storage.modeauto, rwx, rwo-colocated"auto"rwx: one ReadWriteMany volume. rwo-colocated: a ReadWriteOnce volume, every pod of a workspace on one node. auto: core probes the class at start and decides.
storage.defaultSizeGiBinteger or string10Volume size of a plan that sets no storageGiB: a number of GiB or a size string (20Gi, 20480MiB), whole GiB.

customDomains

Custom domains of the teams: a team admin adds a host, it serves once DNS verifies it (the TXT record _harthelm.<host> only), through one edge object per domain in this namespace (Ingress or HTTPRoute after routing.*) to the router, with a certificate from the issuer below, an uploaded one, or a wildcard.

ValueTypeDefaultDescription
customDomains.enabledbooleantrue
customDomains.cnameTargetstring""the host a domain's CNAME points to (routing only, never proof); empty: A/AAAA of publicIPs
customDomains.publicIPslist of string[]the edge's addresses, shown as A/AAAA records for apex domains
customDomains.resolverslist of string["1.1.1.1:53","8.8.8.8:53","9.9.9.9:53"]The resolvers verification asks (IP:port), never the cluster's DNS, so an internal override cannot verify a domain. Air-gapped installs name their own.
customDomains.maxPerTeaminteger20
customDomains.claimDaysinteger7Only the TXT record _harthelm.<host> verifies a domain; a CNAME or A record only routes. An unverified domain holds its name for claimDays, then it is removed and the name is free again.
customDomains.lapseDaysinteger7Verified domains are re-checked daily; one whose TXT record stays missing for lapseDays lapses: it stops serving and gets no API keys or session tokens until a check finds the record again.
customDomains.createPerTeamPerHourinteger10Domains a team may add per hour, deleted ones included (each verified domain costs an ACME order on the installation's shared account); over it the API answers 429.
customDomains.limits.defaultMaxBodyBytesinteger104857600the router's per-domain defaults and the ceilings a team admin may set
customDomains.limits.maxBodyBytesinteger1073741824
customDomains.limits.defaultTimeoutSecondsinteger60
customDomains.limits.maxTimeoutSecondsinteger3600
customDomains.issuerobjectThe cert-manager issuer of automated certificates (needs rbac.certManager). No name: none are issued, and domains need an uploaded certificate or a wildcard below. HTTP-01 or DNS-01 is the issuer's business.
customDomains.issuer.namestring""
customDomains.issuer.kindClusterIssuer, Issuer"ClusterIssuer"
customDomains.issuer.groupstring"cert-manager.io"
customDomains.wildcardslist of object[]Existing wildcard certificates (Secrets in this namespace) that cover domains one label below them, e.g. [{domain: "*.example.com", secretName: example-wildcard-tls}]; a covered domain gets no Certificate of its own.

gc

ValueTypeDefaultDescription
gc.modelog, delete"log"log: orphaned objects are logged and kept (so a restored older dump never deletes a workspace). delete: removed.

On this page