[ci skip] iSCSI migration, healthcheck fixes, health probes, etcd backup
- Migrate MySQL/PostgreSQL storage from local-path to iscsi-truenas
- Add democratic-csi iSCSI driver module for TrueNAS
- Add open-iscsi to cloud-init VM template
- Fix Shlink health probe path (/api/v3 -> /rest/v3 for Shlink 5.0)
- Fix etcd backup: use etcd 3.5.21-0 (3.6.x is distroless, no /bin/sh)
- Fix cluster healthcheck CronJob: always exit 0 to prevent circular
JobFailed alerts (reporting via Slack, not exit codes)
- Fix Uptime Kuma nested list handling in cluster-health.sh
- Add health probes to: audiobookshelf, immich ML, ntfy, headscale,
uptime-kuma, vaultwarden, rybbit (clickhouse + server + client),
shlink, shlink-web
- Add iSCSI storage documentation to CLAUDE.md
2026-03-06 19:54:21 +00:00
|
|
|
resource "kubernetes_namespace" "iscsi_csi" {
|
|
|
|
|
metadata {
|
|
|
|
|
name = "iscsi-csi"
|
|
|
|
|
labels = {
|
2026-03-15 00:03:59 +00:00
|
|
|
tier = var.tier
|
|
|
|
|
"resource-governance/custom-quota" = "true"
|
[ci skip] iSCSI migration, healthcheck fixes, health probes, etcd backup
- Migrate MySQL/PostgreSQL storage from local-path to iscsi-truenas
- Add democratic-csi iSCSI driver module for TrueNAS
- Add open-iscsi to cloud-init VM template
- Fix Shlink health probe path (/api/v3 -> /rest/v3 for Shlink 5.0)
- Fix etcd backup: use etcd 3.5.21-0 (3.6.x is distroless, no /bin/sh)
- Fix cluster healthcheck CronJob: always exit 0 to prevent circular
JobFailed alerts (reporting via Slack, not exit codes)
- Fix Uptime Kuma nested list handling in cluster-health.sh
- Add health probes to: audiobookshelf, immich ML, ntfy, headscale,
uptime-kuma, vaultwarden, rybbit (clickhouse + server + client),
shlink, shlink-web
- Add iSCSI storage documentation to CLAUDE.md
2026-03-06 19:54:21 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "helm_release" "democratic_csi" {
|
|
|
|
|
namespace = kubernetes_namespace.iscsi_csi.metadata[0].name
|
|
|
|
|
create_namespace = false
|
|
|
|
|
name = "democratic-csi-iscsi"
|
|
|
|
|
atomic = true
|
|
|
|
|
timeout = 300
|
|
|
|
|
|
|
|
|
|
repository = "https://democratic-csi.github.io/charts/"
|
|
|
|
|
chart = "democratic-csi"
|
|
|
|
|
|
|
|
|
|
values = [yamlencode({
|
|
|
|
|
csiDriver = {
|
|
|
|
|
name = "org.democratic-csi.iscsi"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
storageClasses = [{
|
|
|
|
|
name = "iscsi-truenas"
|
|
|
|
|
defaultClass = false
|
|
|
|
|
reclaimPolicy = "Retain"
|
|
|
|
|
volumeBindingMode = "Immediate"
|
|
|
|
|
allowVolumeExpansion = true
|
|
|
|
|
parameters = {
|
|
|
|
|
fsType = "ext4"
|
|
|
|
|
}
|
|
|
|
|
mountOptions = []
|
|
|
|
|
}]
|
|
|
|
|
|
|
|
|
|
controller = {
|
2026-03-14 08:51:45 +00:00
|
|
|
replicas = 2
|
[ci skip] iSCSI migration, healthcheck fixes, health probes, etcd backup
- Migrate MySQL/PostgreSQL storage from local-path to iscsi-truenas
- Add democratic-csi iSCSI driver module for TrueNAS
- Add open-iscsi to cloud-init VM template
- Fix Shlink health probe path (/api/v3 -> /rest/v3 for Shlink 5.0)
- Fix etcd backup: use etcd 3.5.21-0 (3.6.x is distroless, no /bin/sh)
- Fix cluster healthcheck CronJob: always exit 0 to prevent circular
JobFailed alerts (reporting via Slack, not exit codes)
- Fix Uptime Kuma nested list handling in cluster-health.sh
- Add health probes to: audiobookshelf, immich ML, ntfy, headscale,
uptime-kuma, vaultwarden, rybbit (clickhouse + server + client),
shlink, shlink-web
- Add iSCSI storage documentation to CLAUDE.md
2026-03-06 19:54:21 +00:00
|
|
|
driver = {
|
|
|
|
|
resources = {
|
2026-03-14 21:46:49 +00:00
|
|
|
requests = { cpu = "25m", memory = "192Mi" }
|
|
|
|
|
limits = { memory = "192Mi" }
|
[ci skip] iSCSI migration, healthcheck fixes, health probes, etcd backup
- Migrate MySQL/PostgreSQL storage from local-path to iscsi-truenas
- Add democratic-csi iSCSI driver module for TrueNAS
- Add open-iscsi to cloud-init VM template
- Fix Shlink health probe path (/api/v3 -> /rest/v3 for Shlink 5.0)
- Fix etcd backup: use etcd 3.5.21-0 (3.6.x is distroless, no /bin/sh)
- Fix cluster healthcheck CronJob: always exit 0 to prevent circular
JobFailed alerts (reporting via Slack, not exit codes)
- Fix Uptime Kuma nested list handling in cluster-health.sh
- Add health probes to: audiobookshelf, immich ML, ntfy, headscale,
uptime-kuma, vaultwarden, rybbit (clickhouse + server + client),
shlink, shlink-web
- Add iSCSI storage documentation to CLAUDE.md
2026-03-06 19:54:21 +00:00
|
|
|
}
|
|
|
|
|
}
|
2026-03-15 15:30:18 +00:00
|
|
|
externalProvisioner = {
|
|
|
|
|
resources = {
|
|
|
|
|
requests = { cpu = "5m", memory = "64Mi" }
|
|
|
|
|
limits = { memory = "64Mi" }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
externalAttacher = {
|
|
|
|
|
resources = {
|
|
|
|
|
requests = { cpu = "5m", memory = "64Mi" }
|
|
|
|
|
limits = { memory = "64Mi" }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
externalResizer = {
|
|
|
|
|
resources = {
|
|
|
|
|
requests = { cpu = "5m", memory = "64Mi" }
|
|
|
|
|
limits = { memory = "64Mi" }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
externalSnapshotter = {
|
|
|
|
|
resources = {
|
|
|
|
|
requests = { cpu = "5m", memory = "80Mi" }
|
|
|
|
|
limits = { memory = "80Mi" }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# csiProxy is a top-level chart key, NOT nested under controller/node
|
|
|
|
|
csiProxy = {
|
|
|
|
|
resources = {
|
|
|
|
|
requests = { cpu = "5m", memory = "32Mi" }
|
|
|
|
|
limits = { memory = "32Mi" }
|
|
|
|
|
}
|
[ci skip] iSCSI migration, healthcheck fixes, health probes, etcd backup
- Migrate MySQL/PostgreSQL storage from local-path to iscsi-truenas
- Add democratic-csi iSCSI driver module for TrueNAS
- Add open-iscsi to cloud-init VM template
- Fix Shlink health probe path (/api/v3 -> /rest/v3 for Shlink 5.0)
- Fix etcd backup: use etcd 3.5.21-0 (3.6.x is distroless, no /bin/sh)
- Fix cluster healthcheck CronJob: always exit 0 to prevent circular
JobFailed alerts (reporting via Slack, not exit codes)
- Fix Uptime Kuma nested list handling in cluster-health.sh
- Add health probes to: audiobookshelf, immich ML, ntfy, headscale,
uptime-kuma, vaultwarden, rybbit (clickhouse + server + client),
shlink, shlink-web
- Add iSCSI storage documentation to CLAUDE.md
2026-03-06 19:54:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
node = {
|
|
|
|
|
driver = {
|
|
|
|
|
resources = {
|
2026-03-14 21:46:49 +00:00
|
|
|
requests = { cpu = "25m", memory = "192Mi" }
|
|
|
|
|
limits = { memory = "192Mi" }
|
[ci skip] iSCSI migration, healthcheck fixes, health probes, etcd backup
- Migrate MySQL/PostgreSQL storage from local-path to iscsi-truenas
- Add democratic-csi iSCSI driver module for TrueNAS
- Add open-iscsi to cloud-init VM template
- Fix Shlink health probe path (/api/v3 -> /rest/v3 for Shlink 5.0)
- Fix etcd backup: use etcd 3.5.21-0 (3.6.x is distroless, no /bin/sh)
- Fix cluster healthcheck CronJob: always exit 0 to prevent circular
JobFailed alerts (reporting via Slack, not exit codes)
- Fix Uptime Kuma nested list handling in cluster-health.sh
- Add health probes to: audiobookshelf, immich ML, ntfy, headscale,
uptime-kuma, vaultwarden, rybbit (clickhouse + server + client),
shlink, shlink-web
- Add iSCSI storage documentation to CLAUDE.md
2026-03-06 19:54:21 +00:00
|
|
|
}
|
|
|
|
|
}
|
2026-03-15 15:30:18 +00:00
|
|
|
driverRegistrar = {
|
|
|
|
|
resources = {
|
|
|
|
|
requests = { cpu = "5m", memory = "32Mi" }
|
|
|
|
|
limits = { memory = "32Mi" }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
cleanup = {
|
|
|
|
|
resources = {
|
|
|
|
|
requests = { cpu = "5m", memory = "32Mi" }
|
|
|
|
|
limits = { memory = "32Mi" }
|
|
|
|
|
}
|
|
|
|
|
}
|
[ci skip] iSCSI migration, healthcheck fixes, health probes, etcd backup
- Migrate MySQL/PostgreSQL storage from local-path to iscsi-truenas
- Add democratic-csi iSCSI driver module for TrueNAS
- Add open-iscsi to cloud-init VM template
- Fix Shlink health probe path (/api/v3 -> /rest/v3 for Shlink 5.0)
- Fix etcd backup: use etcd 3.5.21-0 (3.6.x is distroless, no /bin/sh)
- Fix cluster healthcheck CronJob: always exit 0 to prevent circular
JobFailed alerts (reporting via Slack, not exit codes)
- Fix Uptime Kuma nested list handling in cluster-health.sh
- Add health probes to: audiobookshelf, immich ML, ntfy, headscale,
uptime-kuma, vaultwarden, rybbit (clickhouse + server + client),
shlink, shlink-web
- Add iSCSI storage documentation to CLAUDE.md
2026-03-06 19:54:21 +00:00
|
|
|
|
|
|
|
|
hostPID = true
|
|
|
|
|
hostPath = "/lib/modules"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
driver = {
|
|
|
|
|
config = {
|
|
|
|
|
driver = "freenas-iscsi"
|
|
|
|
|
|
|
|
|
|
instance_id = "truenas-iscsi"
|
|
|
|
|
|
|
|
|
|
httpConnection = {
|
|
|
|
|
protocol = "http"
|
|
|
|
|
host = var.truenas_host
|
|
|
|
|
port = 80
|
|
|
|
|
apiKey = var.truenas_api_key
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sshConnection = {
|
|
|
|
|
host = var.truenas_host
|
|
|
|
|
port = 22
|
|
|
|
|
username = "root"
|
|
|
|
|
privateKey = var.truenas_ssh_private_key
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
zfs = {
|
|
|
|
|
datasetParentName = "main/iscsi"
|
|
|
|
|
detachedSnapshotsDatasetParentName = "main/iscsi-snaps"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
iscsi = {
|
|
|
|
|
targetPortal = "${var.truenas_host}:3260"
|
|
|
|
|
namePrefix = "csi-"
|
|
|
|
|
nameSuffix = ""
|
|
|
|
|
targetGroups = [{
|
|
|
|
|
targetGroupPortalGroup = 1
|
|
|
|
|
targetGroupInitiatorGroup = 1
|
|
|
|
|
targetGroupAuthType = "None"
|
|
|
|
|
}]
|
|
|
|
|
extentInsecureTpc = true
|
|
|
|
|
extentXenCompat = false
|
|
|
|
|
extentDisablePhysicalBlocksize = true
|
|
|
|
|
extentBlocksize = 512
|
|
|
|
|
extentRpm = "SSD"
|
|
|
|
|
extentAvailThreshold = 0
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})]
|
|
|
|
|
}
|