Commit Graph
257 Commits
Author SHA1 Message Date
jklein eed1a48fc0 Update minecraft-server to the java17 line (0.4.0+upjava17)
Second of the three Java-line publishes. Only the two version lines in
Chart.yaml change; the rendered output differs from the published java8 chart
in exactly one line, the image tag.

The CI install values move along with the appVersion: the image tag is the
Java line, so the JVM is fixed per published chart version and the Minecraft
version has to match it (Java 8 runs up to 1.16.5, 1.18-1.20.4 need Java 17).
No single Minecraft version boots on all three lines, and because the chart
has no probes a version the JVM cannot load would still leave a green
install-test behind. minecraft.version therefore moves 1.12.2 -> 1.20.1.
ci/ is outside the chart directory and is neither packaged nor published.
2026-08-23 16:05:53 +02:00
jklein e0875b3585 Merge pull request #71 from jk-cluster/feat/minecraft-server-stage1
Fleet migration stage 1: import minecraft-server, publish java8 line
2026-08-23 14:00:24 +00:00
jklein a68192e5fb Import minecraft-server chart for Fleet migration stage 1 (java8 line)
Imports the chart from cluster-config functionally unchanged, wires it into
the publish/validate/install-test pipelines and publishes it as the first of
three Java lines (0.4.0+upjava8).

The only deviation from the source chart is the chart-global scaleDown flag
plus a server.replicas value, following the satisfactory pattern: two of the
three servers stand at 0 replicas in the cluster, which the chart could not
express, and Fleet would otherwise start them on reconcile. The default
(scaleDown: false) still renders replicas: 1, so the rendering of the running
server is unchanged - verified byte-identical against the three real values
files for all three Java lines.

Known deficiencies (hardening, probes, naming scheme, hardcoded values,
missing icon, the misleading mc-router auto-discovery annotations) are left
untouched on purpose and are scheduled for stage 2.
2026-08-23 15:57:17 +02:00
jklein d1f2ef0027 Merge pull request #70 from jk-cluster/feat/minecraft-router-app-1.46.4
Minecraft-router: update to mc-router 1.46.4 (Fleet migration stage 3)
2026-08-23 13:56:05 +00:00
jklein a7a966de0e Update minecraft-router to mc-router 1.46.4
Chart 1.0.0+up1.25.1 -> 1.0.1+up1.46.4 (patch: plain app-version update,
no values-schema and no chart-side behavior change). appVersion is the
image tag; itzg/mc-router publishes Docker tags without the "v" prefix
that the git tags carry since 1.35.0, so "1.46.4" is correct.

Verified against the upstream sources at v1.46.4 rather than the release
titles alone:

- --api-binding and --port are unchanged, so the chart's args still
  apply.
- The ROUTES_CONFIG env var and the routes config schema
  ({"default-server": ..., "mappings": {addr: "host:port"}}) are
  byte-for-byte identical to 1.25.1. Confirmed in a cluster: both
  mappings, including a per-mapping port override, are loaded.
- There is still no /health endpoint, so the probes keep using
  GET /routes. The "Accept: application/json" matcher that made the
  header mandatory in 1.25.1 was dropped in 1.32.2; the header is kept
  because it is harmless and correct.
- The image moved from scratch to cgr.dev/chainguard/static in 1.46.0
  and now declares USER 65532. The chart keeps pinning uid/gid 10000, so
  the runtime identity does not change.

Only the values comments that the update made inaccurate are touched; no
value, default or template changes. The comments now also record that
every unmodelled mc-router flag is reachable through server.env, which
is why the new 1.26-1.46 options need no new chart values.
2026-08-23 15:51:48 +02:00
jklein d01125cb7f Merge pull request #66 from jk-cluster/feat/minecraft-router-conventions-signed
Minecraft-router chart: naming scheme, hardening, probes, values interface (Fleet migration stage 2)
2026-08-23 13:18:19 +00:00
jklein c20ad389f2 Minecraft-router chart: naming scheme, hardening, probes, values interface
Stage 2 of the Fleet migration for minecraft-router: bring the chart up to the
repo style guidelines. Chart 0.1.1+up1.25.1 -> 1.0.0+up1.25.1 (major: resource
renames, mappings becomes required, probes and security hardening change the
runtime behavior; appVersion unchanged).

- Resources renamed to {{ .Release.Name }}-{{ .Chart.Name }}-<kind>, templates
  to <chart>.<kind>.yaml; the deployment label now matches its own selector.
- mappings is required and must not be empty (the old default rendered
  "<nil>": "<nil>:25565"); every entry needs domain and internalUrl.
- Ports come from values: server.port (router listen port, also passed as
  --port), server.backendPort (default backend port, overridable per mapping),
  server.apiPort (--api-binding, used by the probes). Defaults stay 25565 /
  25565 / 8080, server.outwardPort keeps its 25565 default and comment.
- _helpers.tpl added (resources/limitFactor and replicas/scaleDown helpers),
  resources come from values, no CPU limit.
- replicas value plus the chart-global scaleDown flag.
- Additive env block rendered through tpl (value / secretKeyRef /
  configMapKeyRef).
- Values-configurable securityContext.pod / .container with hardened defaults:
  non-root uid/gid 10000, readOnlyRootFilesystem, no privilege escalation, all
  capabilities dropped.
- Liveness, readiness and startup probes on the mc-router API: GET /routes with
  an "Accept: application/json" header (the API router matches on that header
  and answers 404 without it).
- icon added to Chart.yaml.
- CI fixture supplies mappings; README chart table entry updated.
2026-08-23 15:14:49 +02:00
jklein 0e3ba0a92f Merge pull request #63 from jk-cluster/feat/minecraft-router-stage1
Fleet migration stage 1: import minecraft-router unchanged
2026-08-23 11:01:31 +00:00
jklein 3be5111630 Import minecraft-router chart unchanged (Fleet migration stage 1)
Takes the existing mc-router chart over from cluster-config as-is so the
deployment can move to Fleet without any change to the rolled-out state.
Convention alignment follows in stage 2, the app update in stage 3.

The only deviation from "unchanged": Chart.yaml carried name:
minecraft-server (copy-paste from the sister chart). The publish job pushes
by the glob <directory>-*.tgz while helm package names the archive after the
Chart.yaml name, so without this correction the push finds no file.

Version 0.1.1+up1.25.1 - chart semver stays at 0.1.1, the +up suffix is repo
policy and does not affect rendering.

Also wires up CI: publish workflow, change-app-version choice list,
install-test values (CI-only node-port override, since 25565 is outside the
k3d default range) and the README chart table.
2026-08-23 12:58:21 +02:00
jklein 5bc813ebd1 Merge pull request #57 from jk-cluster/feat/conventions-batch4-finish
Conventions batch 4: env blocks, homeassistant className default, strict clusterIssuer
2026-08-22 21:19:28 +00:00
jklein 408232a36f Document the consolidated chart style guidelines
README.md gains a comprehensive 'Chart style guidelines' section - the
binding end state of the conventions overhaul (#32, batches 0-4) for all
current and future charts: naming (incl. the PVC-name exception and the
StatefulSet migration pattern), versioning scheme and semver rules,
image pinning, the ingress standard (domain + clusterIssuer strictly
required without defaults, className default nginx, annotations merge,
TLS secret name, homeassistant exception), security hardening with
mandatory documentation of deviations, probes, the auto-limits scheme,
the secrets.<name>SecretRef convention, tpl-rendered env blocks,
scaling, and the icon/lint/CI-fixture/no-dependencies rules.

The Versioning section now points there and documents that app-version
updates go through PRs. CLAUDE.md's conventions section is aligned as a
compact summary referencing the README guide.
2026-08-22 23:16:41 +02:00
jklein 22fdb58396 Strict clusterIssuer also for cyberchef and urlaubsverwaltung
Per the maintainer decision (option a: ingress.clusterIssuer strictly
required in ALL charts) the two remaining defaults are removed as well:

- cyberchef: drop the letsencrypt default; bump raised from minor to
  major (6.0.0+up11.4.0) as this is a breaking values change.
- urlaubsverwaltung: drop the letsencrypt-issuer default; major bump
  to 6.0.0+up6.7.0.
- CI test-values for both charts now set clusterIssuer explicitly.

A repo-wide grep confirms no chart carries a clusterIssuer default
anymore.
2026-08-22 23:13:23 +02:00
jklein c88ce80750 Conventions batch 4: env blocks, homeassistant className default, strict clusterIssuer
- apache-tika, gotenberg, cyberchef, homeassistant, patchmon: additive env
  value blocks rendered through tpl (value, secretKeyRef and configMapKeyRef
  forms), following the template-chart/outline pattern; patchmon gets separate
  blocks for the server container and the guacd sidecar.
- homeassistant: ingress.className now defaults to nginx; an empty className
  omits ingressClassName from the rendered Ingress, so the flexible upstream
  ingress style stays intact.
- outline, paperless-ngx: remove the ingress.clusterIssuer defaults
  (letsencrypt / letsencrypt-issuer) - the value is now strictly required,
  consistent with the repo-wide ingress standard; CI test-values set it
  explicitly.

Chart bumps: apache-tika 7.2.0, gotenberg 4.2.0, cyberchef 5.2.0,
patchmon 5.2.0, homeassistant 4.2.0 (minor); outline 5.0.0,
paperless-ngx 10.0.0 (major).
2026-08-22 20:10:06 +02:00
jklein 274294d2ef Merge pull request #56 from jk-cluster/feat/paperless-ngx-conventions
Paperless-ngx chart: naming scheme, secret refs, pinned init images (conventions batch 3)
2026-08-22 17:43:13 +00:00
jklein 29ac6d09c5 Paperless-ngx chart: naming scheme, secret refs, pinned init images (conventions batch 3)
Batch-3 major PR for paperless-ngx (issue #32):

- secrets.redisRef/databaseRef/paperlessRef -> redisSecretRef/
  databaseSecretRef/paperlessSecretRef (consistent with the other
  SecretRef values in the same block); CI fixtures updated
- TLS secret renamed to the standard tls-<release>-<chart>-ingress
  (domain no longer part of the name)
- busybox init/cronjob image pinned via paperless.busybox.image
  values, default bumped 1.28 -> 1.38.0
- probes values-configurable (defaults unchanged, incl. the 600s
  startup budget); consume CronJob deliberately stays probe-less
- ingress standard: ingress.className (default nginx) and
  ingress.annotations merge; domain/clusterIssuer stay required
- additive paperless.env block rendered through tpl (value,
  secretKeyRef, configMapKeyRef forms)
- disabled scripts ConfigMap renamed to ...-configmap; PVC names kept
  as documented naming-scheme exception (comments in the templates)
- chart 8.0.1+up3.0.5 -> 9.0.0+up3.0.5 (breaking values changes)
2026-08-22 19:39:54 +02:00
jklein 3499873ff2 Merge pull request #55 from jk-cluster/feat/urlaubsverwaltung-conventions
Urlaubsverwaltung chart: naming scheme, configurable probes (conventions batch 3)
2026-08-22 17:30:20 +00:00
jklein 9d22b3b921 urlaubsverwaltung chart: naming scheme, configurable probes, flexible ingress
- Rename all resources from <chart>-<release>-uv-<kind> to the repo
  standard <release>-<chart>-<kind> (deployment, service, ingress, both
  OnePasswordItem secrets); drop the uv infix. No PVCs in this chart, so
  no storage migration is needed.
- TLS secret renamed to the standard tls-<release>-<chart>-ingress
  (was tls-<chart>-<release>-ingress).
- Probes lifted into values (urlaubsverwaltung.livenessProbe/
  readinessProbe/startupProbe); defaults are exactly the previously
  hardcoded, issue-#9-calibrated settings.
- Repo-standard flexible ingress: ingress.className (default nginx),
  ingress.annotations merged with the cert-manager annotation,
  ingress.enabled flag; domain/clusterIssuer stay required.
- Additive urlaubsverwaltung.env block rendered through tpl with
  value/secretKeyRef/configMapKeyRef forms.
- CI fixtures updated to the new secret names.

Major bump 4.1.2+up6.7.0 -> 5.0.0+up6.7.0 (resource renames).
2026-08-22 19:27:14 +02:00
jklein 6bca19d921 Merge pull request #54 from jk-cluster/feat/matrix-synapse-conventions
Matrix-Synapse chart: security hardening, naming scheme, configurable probes (conventions batch 3)
2026-08-22 17:18:59 +00:00
jklein 0021becba2 Matrix-Synapse chart: security hardening, naming scheme, configurable probes
- Values-driven securityContext for the Synapse pod/container with hardened
  defaults: runAsNonRoot as uid/gid 1000 (matching the image's previous gosu
  drop target), readOnlyRootFilesystem, allowPrivilegeEscalation false, all
  capabilities dropped; /tmp mounted as emptyDir. The now-ineffective UID/GID
  env vars are removed (the securityContext controls the user).
- Naming scheme: delegation Deployment renamed to ...-delegation-nginx-deployment,
  ConfigMap to ...-delegation-nginx-configmap (references and service selector
  updated).
- matrix.configSecretRef moved to secrets.configSecretRef (repo standard).
- Probes for Synapse and the delegation nginx are values-configurable;
  defaults are the previous hardcoded settings.
- Flexible ingress standard: ingress.className (default nginx) and
  ingress.annotations merged with the cert-manager annotation.
- Additive matrix.env block rendered through tpl (value/secretKeyRef/
  configMapKeyRef forms).
- CI fixtures: secret ref moved, seed job image synced to appVersion.
- Chart 4.2.1+upv1.159.0 -> 5.0.0+upv1.159.0 (major; app version unchanged).
2026-08-22 19:16:21 +02:00
jklein 69c893599a Merge pull request #53 from jk-cluster/feat/zipline-conventions
Zipline chart: ingress standard, secret ref structure (conventions batch 3)
2026-08-22 17:04:50 +00:00
jklein 48cb5c01de Zipline chart: ingress standard, secret ref structure (conventions batch 3)
Repo-standard flexible ingress (required clusterIssuer instead of the
hardcoded letsencrypt-issuer, domain moved from config.domain to
ingress.domain, className value, annotations merge, standard TLS secret
name), secrets.<name>SecretRef structure, core secret renamed to the
standard -secret name, additive tpl-rendered env block, documented PVC
naming exception. Major bump 4.1.2+up4.7.0 -> 5.0.0+up4.7.0.
2026-08-22 19:01:04 +02:00
jklein 193f38c283 Merge pull request #52 from jk-cluster/feat/cwa-conventions
Calibre-Web-Automated chart: naming scheme, security hardening (conventions batch 3)
2026-08-22 16:52:16 +00:00
jklein f6de7ffa80 Calibre-Web-Automated chart: naming scheme, security hardening (conventions batch 3)
All audit findings for the calibre-web-automated chart (#32) in one major
bump, 3.1.1+upv4.0.6 -> 4.0.0+upv4.0.6:

- Rename StatefulSet, Service, OnePasswordItem secret and Ingress from the
  inverted <chart>-<release>-cwa-<kind> scheme to
  <release>-<chart>-<kind>; spec.serviceName and all references follow.
  Both PVCs deliberately keep their historical names (documented naming
  exception; renaming would orphan the data).
- TLS secret renamed to the standard tls-<release>-<chart>-ingress.
- Ingress on the repo standard: ingress.className (default nginx),
  ingress.annotations merged with the chart-managed annotations,
  ingress.clusterIssuer now required (was silently defaulted to
  "letsencrypt-issuer").
- Security hardening, values-configurable via securityContext.pod /
  securityContext.container: allowPrivilegeEscalation false, all
  capabilities dropped except the minimal set the s6-overlay init needs
  (CHOWN, DAC_OVERRIDE, FOWNER, KILL, SETGID, SETUID). Documented
  deviations: the image must start as root (s6 drops to PUID 1000) and
  readOnlyRootFilesystem stays false (read-only mode disables PUID/PGID
  remapping upstream and breaks the ImageMagick policy setup).
- Additive env value rendered through tpl (value / secretKeyRef /
  configMapKeyRef forms).
- CI fixtures: secret renamed to the new scheme, clusterIssuer added to
  test-values.

Part of #32.
2026-08-22 18:46:07 +02:00
jklein 563130290d Merge pull request #51 from jk-cluster/feat/satisfactory-conventions
Satisfactory chart: naming scheme, security hardening, configurable probes (conventions batch 3)
2026-08-22 16:33:05 +00:00
jklein ceb48dfee9 Merge pull request #50 from jk-cluster/feat/voucher-vault-conventions
VoucherVault chart: complete security hardening, flexible ingress (conventions batch 3)
2026-08-22 16:28:07 +00:00
jklein 6320709cbc VoucherVault chart: complete security hardening, flexible ingress
Enable readOnlyRootFilesystem and drop all capabilities by default. The
paths the image writes at runtime are covered by emptyDirs (/tmp,
/opt/app/logs and STATIC_ROOT /opt/app/myapp/static); an init container
seeds the static volume with the assets shipped in the image because the
directory doubles as the app's static source. The ephemeral-storage
request covers the ~90Mi static emptyDir.

Move the Ingress to the repo-standard flexible style: ingress.className
value (default nginx) instead of a hardcoded ingressClassName, and
ingress.annotations merged with the cert-manager annotation. domain and
clusterIssuer stay required; the TLS secret name was already standard.

Major bump 3.1.2+up1.30.1 -> 4.0.0+up1.30.1 (hardening changes runtime
behavior). App version unchanged. Part of #32.
2026-08-22 18:24:53 +02:00
jklein d8494ff0ed Merge pull request #49 from jk-cluster/feat/rallly-conventions
Rallly chart: deployment naming, values-driven security contexts (conventions batch 3)
2026-08-22 14:04:01 +00:00
jklein 247c01bce1 satisfactory chart: naming scheme, security hardening, configurable probes
All audit findings from #32 for the satisfactory chart in one major PR:

- StatefulSet renamed to {{ .Release.Name }}-{{ .Chart.Name }}-sfs, service
  to ...-service (standard scheme); template file satisfactory-server.sfs.yaml
  renamed to satisfactory.sfs.yaml. The PVC keeps its historical -vc name
  (documented naming exception; renaming would orphan the data).
- Hardened, values-configurable security contexts (securityContext.pod /
  securityContext.container): runAsNonRoot with the image's steam user
  (uid/gid 1000), readOnlyRootFilesystem, all capabilities dropped. emptyDirs
  mounted at /tmp and the steam user's ~/.steam, ~/.config and ~/.local make
  the read-only root filesystem work; all other writes go to the PVC.
- Probes are now values (livenessProbe/readinessProbe/startupProbe), defaults
  exactly the previously hardcoded values.
- Additive env value rendered through tpl with value/secretKeyRef/
  configMapKeyRef forms (template-chart pattern).

Chart 3.1.1+upv1.9.10 -> 4.0.0+upv1.9.10 (major: resource renames +
hardening); appVersion unchanged.
2026-08-22 16:00:33 +02:00
jklein bf49c744f1 Align rallly chart with repo conventions (batch 3)
- Rename the Deployment (and its labels/selector/pod template/container)
  to {{ .Release.Name }}-{{ .Chart.Name }}-deployment per the naming
  scheme; the Service selector follows.
- Move the hardcoded pod/container security contexts into values
  (rallly.securityContext.pod / .container), defaults unchanged; the
  bogus null entry under capabilities.add becomes an empty list.
- Ingress standard: ingress.className value (default nginx) and
  ingress.annotations merged with the cert-manager annotation;
  domain/clusterIssuer stay required, TLS secret name already conformed.
- Add the tpl-rendered rallly.env value (value/secretKeyRef/
  configMapKeyRef forms), appended to the built-in env.
- Major bump 3.1.2+up4.12.3 -> 4.0.0+up4.12.3 (deployment rename
  replaces the Deployment on upgrade: selector is immutable).
2026-08-22 16:00:02 +02:00
jklein 4ed2d51f5f Merge pull request #48 from jk-cluster/feat/teamspeak-conventions
TeamSpeak chart: naming scheme, hardening, configurable node ports (conventions batch 3)
2026-08-22 13:53:49 +00:00
jklein a41a6cdf6c Merge pull request #47 from jk-cluster/feat/samba-conventions
Samba chart: security hardening, configurable node ports (conventions batch 3)
2026-08-22 13:53:47 +00:00
jklein f74cc5e47c Merge pull request #46 from jk-cluster/feat/outline-conventions
Outline chart: security hardening, configurable probes, flexible ingress (conventions batch 3)
2026-08-22 13:51:41 +00:00
jklein 999e7533ae TeamSpeak chart: naming scheme, hardening, configurable node ports
Batch-3 major PR for teamspeak-server (issue #32):

- Rename service and StatefulSet to the repo naming scheme
  ({{ .Release.Name }}-{{ .Chart.Name }}-service / -sfs); the PVC keeps
  its historical name (documented naming exception, data preservation).
- NodePorts configurable via server.voicePort / server.fileTransferPort
  (defaults 30987/30033, satisfactory pattern); ports are also passed to
  the server via TSSERVER_DEFAULT_PORT / TSSERVER_FILE_TRANSFER_PORT.
- Hardened, values-configurable security contexts
  (securityContext.pod/container): non-root uid/gid 9987,
  readOnlyRootFilesystem, all capabilities dropped.
- Probes values-configurable (defaults unchanged).
- Additive env value rendered through tpl (value/secretKeyRef/
  configMapKeyRef forms).
- Chart 3.1.2 -> 4.0.0 (+up6.0.0.beta12.1).
2026-08-22 15:51:07 +02:00
jklein 69111ae470 Samba chart: security hardening, configurable node ports, values cleanup
- Add securityContext.pod/container values with hardened defaults; the
  dockur/samba image requires root and a writable root filesystem, so the
  remaining deviations from the baseline are documented in values.yaml
  (caps reduced to CHOWN, DAC_OVERRIDE, FOWNER, NET_BIND_SERVICE, SETGID,
  SETUID; allowPrivilegeEscalation: false)
- Make the NodePorts configurable (samba.smbNodePort/netbiosNodePort,
  defaults 30445/30139 as published before)
- Rename secrets.sambaUsersRef to secrets.sambaUsersSecretRef (breaking)
- Rename the ConfigMap from -config-cfm to -configmap
- Add the tpl-rendered env value convention (value, secretKeyRef,
  configMapKeyRef forms)
- Fix the CI users.conf fixture to the username:uid:groupname:gid:password
  format the pinned image actually parses
- Bump chart to 4.0.0+up4.23.10

Part of #32
2026-08-22 15:50:30 +02:00
jklein 0481007cfe Outline chart: security hardening, configurable probes, flexible ingress
- Pod and container securityContext are now values-configurable
  (outline.securityContext.pod/container) with hardened defaults:
  runAsNonRoot (uid/gid 1001, the upstream image's nodejs user),
  readOnlyRootFilesystem, allowPrivilegeEscalation false, all
  capabilities dropped. /tmp is mounted as an emptyDir for Outline's
  import/export scratch files.
- Probes moved to values (outline.livenessProbe/readinessProbe/
  startupProbe); defaults are exactly the previously hardcoded ones.
- Ingress raised to the repo standard: ingress.className (default
  nginx), ingress.annotations merged with the always-set annotations,
  ingress.enabled flag; domain/clusterIssuer stay required and the
  TLS secret name was already conform.
- Additive outline.env block rendered through tpl with value/
  secretKeyRef/configMapKeyRef forms; chart-managed env stays in the
  template.

Major bump 3.1.1+up1.9.2 -> 4.0.0+up1.9.2 (runtime behavior changes
through hardening).

Part of #32
2026-08-22 15:47:52 +02:00
jklein 6a6e34edd7 Merge pull request #45 from jk-cluster/feat/conventions-batch2-additive
Conventions batch 2: flexible ingress standard, configurable probes
2026-08-22 13:40:10 +00:00
jklein f091c33205 Conventions batch 2: flexible ingress standard, configurable probes
Establish the flexible ingress standard from #32 in template-chart and
document it in README/CLAUDE.md: ingress.domain and ingress.clusterIssuer
stay required, new ingress.className value (default nginx) replaces the
hardcoded ingressClassName, new optional ingress.annotations are merged
with the cert-manager cluster-issuer annotation, TLS secret name
unchanged (tls-<release>-<chart>-ingress).

Apply the standard to cyberchef and patchmon (the two charts without an
own batch-3 major PR) and make the patchmon probes values-configurable
(server + guacd, rendered through tpl so the default Host header keeps
following ingress.domain). Defaults render semantically identical to the
previous hardcoded output.

cyberchef 5.0.1 -> 5.1.0, patchmon 5.0.1 -> 5.1.0 (minor, additive).
2026-08-22 15:35:09 +02:00
jklein 6df7c07331 Merge pull request #44 from jk-cluster/chore/conventions-batch1-cosmetics
Conventions batch 1: icons, template file names, cosmetics
2026-08-22 13:29:10 +00:00
jklein a69542383e Conventions batch 1: icons, template file names, cosmetics
- Add icon: to all 17 Chart.yaml (official project icons); removes the
  last helm lint --strict INFO finding across the repo
- Rename template files to the <app>.<kind>.yaml scheme (apache-tika,
  gotenberg, teamspeak-server PVC, paperless-ngx configmap) - pure
  git mv, no content changes
- template-chart: fix missing space in {{ .Chart.Name}} and rename the
  ConfigMap resource -config-map -> -configmap (chart is never published)
- rallly: fix typos in required messages (rallySecret -> ralllySecret,
  databseSecret -> databaseSecret)
- README: document the deliberate PVC-name exception from the naming
  scheme (renames would provision new empty volumes)
- Patch-bump all 16 published charts

Rendered resources are byte-identical for all published charts (only
helm's '# Source:' comments change for the renamed files); the only
render change is the template-chart ConfigMap name.

Part of #32
2026-08-22 15:21:52 +02:00
jklein d0b24247e2 Merge pull request #42 from jk-cluster/fix/satisfactory-workflow-name
Fix satisfactory publish workflow name
2026-08-22 13:17:11 +00:00
jklein c668780fd3 Fix satisfactory publish workflow name 2026-08-22 15:15:21 +02:00
jklein 7c24098abc Merge pull request #41 from jk-cluster/feat/synapse-delegation-nginx-image
Make delegation nginx image configurable in matrix-synapse
2026-08-22 12:13:20 +00:00
jklein f3e8a1b686 Make delegation nginx image configurable in matrix-synapse
The delegation nginx image was hardcoded as nginx:1.28.3 in the
deployment template. It is now rendered from the new values
matrix.delegation.image.repository / matrix.delegation.image.tag,
defaulting to nginx:1.30.4 (current stable line, tag verified against
Docker Hub). README documents that auxiliary/sidecar images are pinned
via values and reviewed with every app-version update round.

Chart version: 4.1.1+upv1.159.0 -> 4.2.0+upv1.159.0 (minor: additive
values change).
2026-08-22 13:39:48 +02:00
jklein 23465772e3 Merge pull request #39 from jk-cluster/feat/patchmon-2.1.3
Update patchmon to 2.1.3
2026-08-22 11:25:13 +00:00
jklein fbe0dbac81 Update patchmon to 2.1.3
Chart rewrite for the 2.x single-server architecture: one stateless
server deployment (frontend embedded, /api served by the same process),
no PVC, single service and ingress path, optional guacd sidecar
(disabled by default), 2.x env vocabulary (TRUST_PROXY, readonly role),
probes send the public hostname as Host header.

Fixes #29: all three reported spots (PVC storageClass guard, RWX assets
PVC, frontend nginx 'backend' hostname) are removed by this rewrite.
2026-08-22 13:18:59 +02:00
jklein f12d6409fd Merge pull request #38 from jk-cluster/feat/paperless-ngx-3.0.5
Update paperless-ngx to 3.0.5
2026-08-22 07:32:08 +00:00
jklein 8f1329abcb Update paperless-ngx to 3.0.5
Major app jump 2.20.15 -> 3.0.5. Chart major bump (7.1.1 -> 8.0.0):
the paperless.files.barcodes.scanner value is removed (pyzbar and
PAPERLESS_CONSUMER_BARCODE_SCANNER were removed upstream), the
paperless.ocr.mode default changes from the removed "skip" to "auto",
and the startup probe budget is raised to 600s for the one-time
Whoosh -> Tantivy index rebuild. New optional values:
paperless.ocr.archiveFileGeneration, paperless.files.deleteDuplicates,
oidc.provider.tokenAuthMethod.
2026-08-22 09:28:54 +02:00
jklein 1bbd2a6b2f Merge pull request #37 from jk-cluster/feat/paperless-ngx-2.20.15
Update paperless-ngx to 2.20.15
2026-08-22 07:16:39 +00:00
jklein a50b50ab49 Update paperless-ngx to 2.20.15 2026-08-22 09:14:58 +02:00
jklein 29322d2047 Merge pull request #36 from jk-cluster/feat/cyberchef-11.4.0
Update cyberchef to 11.4.0
2026-08-22 07:12:50 +00:00