This commit is contained in:
Mike McFetridge
2026-07-20 09:23:17 -04:00
parent c1315882da
commit 72272e4006
3179 changed files with 562960 additions and 14 deletions
+79
View File
@@ -0,0 +1,79 @@
configs:
cm:
url: << public_url >>
kustomize.buildOptions: --enable-helm
params:
server.insecure: << server_insecure | lower >>
controller:
replicas: << controller_replicas >>
metrics:
enabled: << controller_metrics_enabled | lower >>
<%- if metrics_service_monitor_enabled and controller_metrics_enabled %>
serviceMonitor:
enabled: true
<%- endif %>
repoServer:
replicas: << repo_server_replicas >>
metrics:
enabled: << repo_server_metrics_enabled | lower >>
<%- if metrics_service_monitor_enabled and repo_server_metrics_enabled %>
serviceMonitor:
enabled: true
<%- endif %>
server:
replicas: << server_replicas >>
metrics:
enabled: << server_metrics_enabled | lower >>
<%- if metrics_service_monitor_enabled and server_metrics_enabled %>
serviceMonitor:
enabled: true
<%- endif %>
<%- if ingress_enabled %>
ingress:
enabled: true
ingressClassName: << ingress_class_name >>
hostname: << ingress_hostname >>
path: << ingress_path >>
pathType: Prefix
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: << ingress_entrypoints >>
<%- if ingress_middleware %>
traefik.ingress.kubernetes.io/router.middlewares: << ingress_middleware >>
<%- endif %>
<%- if ingress_tls_enabled %>
traefik.ingress.kubernetes.io/router.tls: "true"
<%- if ingress_cert_manager_enabled %>
cert-manager.io/cluster-issuer: << ingress_cluster_issuer >>
<%- endif %>
<%- endif %>
tls: << ingress_tls_enabled | lower >>
<%- if ingress_tls_enabled and not ingress_cert_manager_enabled %>
extraTls:
- hosts:
- << ingress_hostname >>
secretName: << ingress_tls_secret >>
<%- endif %>
<%- endif %>
dex:
enabled: << dex_enabled | lower >>
metrics:
enabled: << dex_metrics_enabled | lower >>
<%- if metrics_service_monitor_enabled and dex_enabled and dex_metrics_enabled %>
serviceMonitor:
enabled: true
<%- endif %>
redis:
enabled: << redis_enabled | lower >>
<%- if redis_enabled %>
metrics:
enabled: << redis_metrics_enabled | lower >>
<%- if metrics_service_monitor_enabled and redis_metrics_enabled %>
serviceMonitor:
enabled: true
<%- endif %>
<%- endif %>
+301
View File
@@ -0,0 +1,301 @@
{
"slug": "argocd",
"kind": "helm",
"metadata": {
"name": "Argo CD",
"description": "Helm values template for Argo CD with ingress, TLS, controller or repo-server sizing, Dex, Redis, and metrics toggles for homelab GitOps clusters.",
"tags": [
"gitops",
"kubernetes",
"traefik"
],
"icon": {
"provider": "selfhst",
"id": "argo-cd"
},
"draft": false,
"version": {
"name": "9.2.4",
"source_dep_name": "manual/argocd"
}
},
"variables": [
{
"title": "General",
"name": "general",
"items": [
{
"name": "public_url",
"type": "str",
"title": "Public URL",
"required": true,
"default": "https://argocd.home.arpa",
"description": "Public URL Argo CD should advertise to users and callbacks.",
"config": {
"placeholder": "https://argocd.home.arpa"
}
},
{
"name": "server_insecure",
"type": "bool",
"title": "Server Insecure",
"required": false,
"default": true,
"description": "Let the ingress controller terminate TLS in front of `argocd-server`."
}
]
},
{
"title": "Ingress",
"toggle": "ingress_enabled",
"name": "ingress",
"items": [
{
"name": "ingress_enabled",
"type": "bool",
"title": "Ingress",
"required": false,
"default": true,
"description": "Expose Argo CD through a Kubernetes ingress."
},
{
"name": "ingress_class_name",
"type": "str",
"title": "Ingress Class",
"required": true,
"default": "traefik",
"description": "IngressClass name used for the Argo CD server ingress.",
"needs": [
"ingress_enabled=true"
],
"config": {
"placeholder": "traefik"
}
},
{
"name": "ingress_hostname",
"type": "str",
"title": "Ingress Hostname",
"required": true,
"default": "argocd.home.arpa",
"needs": [
"ingress_enabled=true"
],
"config": {
"placeholder": "argocd.home.arpa"
}
},
{
"name": "ingress_path",
"type": "str",
"title": "Ingress Path",
"required": true,
"default": "/",
"description": "Path exposed by the Argo CD ingress.",
"needs": [
"ingress_enabled=true"
],
"config": {
"placeholder": "/"
}
},
{
"name": "ingress_entrypoints",
"type": "str",
"title": "Traefik Entrypoints",
"required": false,
"default": "websecure",
"description": "Traefik entrypoints annotation for the ingress.",
"needs": [
"ingress_enabled=true"
],
"config": {
"placeholder": "websecure"
}
},
{
"name": "ingress_middleware",
"type": "str",
"title": "Traefik Middleware",
"required": false,
"default": "",
"description": "Optional Traefik middleware reference attached to the Argo CD ingress.",
"needs": [
"ingress_enabled=true"
],
"config": {
"placeholder": "traefik-dashboard-secured@kubernetescrd"
}
},
{
"name": "ingress_tls_enabled",
"type": "bool",
"title": "Ingress TLS",
"required": false,
"default": true,
"needs": [
"ingress_enabled=true"
]
},
{
"name": "ingress_tls_secret",
"type": "str",
"title": "TLS Secret",
"required": true,
"default": "argocd-server-tls",
"description": "TLS secret name used when cert-manager is not managing the ingress certificate.",
"needs": [
"ingress_enabled=true",
"ingress_tls_enabled=true"
],
"config": {
"placeholder": "argocd-server-tls"
}
},
{
"name": "ingress_cert_manager_enabled",
"type": "bool",
"title": "Cert-Manager",
"required": false,
"default": false,
"description": "Annotate the ingress for cert-manager certificate issuance.",
"needs": [
"ingress_enabled=true",
"ingress_tls_enabled=true"
]
},
{
"name": "ingress_cluster_issuer",
"type": "str",
"title": "ClusterIssuer",
"required": true,
"default": "letsencrypt-production",
"description": "ClusterIssuer used when cert-manager handles ingress certificates.",
"needs": [
"ingress_enabled=true",
"ingress_tls_enabled=true",
"ingress_cert_manager_enabled=true"
],
"config": {
"placeholder": "letsencrypt-production"
}
}
]
},
{
"title": "Components",
"name": "components",
"items": [
{
"name": "controller_replicas",
"type": "int",
"title": "Controller Replicas",
"required": false,
"default": 1,
"description": "Number of Argo CD application controller replicas.",
"config": {
"placeholder": "1"
}
},
{
"name": "repo_server_replicas",
"type": "int",
"title": "Repo Server Replicas",
"required": false,
"default": 1,
"description": "Number of Argo CD repo-server replicas.",
"config": {
"placeholder": "1"
}
},
{
"name": "server_replicas",
"type": "int",
"title": "Server Replicas",
"required": false,
"default": 1,
"description": "Number of Argo CD API server replicas.",
"config": {
"placeholder": "1"
}
},
{
"name": "dex_enabled",
"type": "bool",
"title": "Dex",
"required": false,
"default": true,
"description": "Deploy bundled Dex for SSO scenarios that still use the Argo CD Dex component."
},
{
"name": "redis_enabled",
"type": "bool",
"title": "Bundled Redis",
"required": false,
"default": true,
"description": "Deploy bundled Redis. Disable only if you provide Redis separately."
}
]
},
{
"title": "Metrics",
"name": "metrics",
"items": [
{
"name": "metrics_service_monitor_enabled",
"type": "bool",
"title": "ServiceMonitor",
"required": false,
"default": false,
"description": "Create ServiceMonitor resources for enabled component metrics."
},
{
"name": "controller_metrics_enabled",
"type": "bool",
"title": "Controller Metrics",
"required": false,
"default": true,
"description": "Expose metrics from the application controller."
},
{
"name": "repo_server_metrics_enabled",
"type": "bool",
"title": "Repo Server Metrics",
"required": false,
"default": true,
"description": "Expose metrics from the repo-server."
},
{
"name": "server_metrics_enabled",
"type": "bool",
"title": "Server Metrics",
"required": false,
"default": true,
"description": "Expose metrics from the Argo CD API server."
},
{
"name": "dex_metrics_enabled",
"type": "bool",
"title": "Dex Metrics",
"required": false,
"default": false,
"description": "Expose metrics from Dex when Dex is enabled.",
"needs": [
"dex_enabled=true"
]
},
{
"name": "redis_metrics_enabled",
"type": "bool",
"title": "Redis Metrics",
"required": false,
"default": false,
"description": "Expose metrics from bundled Redis when Redis is enabled.",
"needs": [
"redis_enabled=true"
]
}
]
}
]
}
+14
View File
@@ -0,0 +1,14 @@
---
authentik:
secret_key: << authentik_secret_key >>
postgresql:
password: << database_password >>
<%- if email_enabled %>
email:
password: << email_password >>
<%- endif %>
<%- if not database_external %>
postgresql:
auth:
password: << database_password >>
<%- endif %>
+56
View File
@@ -0,0 +1,56 @@
---
global:
image:
repository: "ghcr.io/goauthentik/server"
tag: "2026.2.2"
pullPolicy: IfNotPresent
authentik:
postgresql:
name: << database_name >>
user: << database_user >>
<%- if database_external %>
host: << database_host >>
port: << database_port >>
<%- endif %>
<%- if email_enabled %>
email:
host: << email_host >>
port: << email_port >>
username: << email_username >>
use_tls: << email_use_tls | lower >>
from: << email_from >>
<%- endif %>
error_reporting:
enabled: << authentik_error_reporting | lower >>
log_level: << authentik_log_level >>
server:
service:
type: << network_mode >>
<%- if traefik_enabled %>
ingress:
enabled: true
ingressClassName: traefik
<%- if traefik_tls_enabled and traefik_tls_certmanager %>
annotations:
cert-manager.io/cluster-issuer: << certmanager_issuer >>
<%- endif %>
hosts:
- << traefik_host >>
<%- if traefik_tls_enabled %>
tls:
- secretName: << traefik_tls_secret >>
hosts:
- << traefik_host >>
<%- endif %>
<%- endif %>
postgresql:
<%- if database_external %>
enabled: false
<%- else %>
enabled: true
auth:
database: << database_name >>
username: << database_user >>
<%- endif %>
redis:
enabled: true
+273
View File
@@ -0,0 +1,273 @@
{
"slug": "authentik-helm",
"kind": "helm",
"metadata": {
"name": "Authentik",
"description": "Helm chart for Authentik, an open-source Identity Provider supporting OAuth2, SAML, and LDAP for flexible single sign-on and authentication.",
"tags": [],
"icon": {
"provider": "selfhst",
"id": "authentik"
},
"draft": false,
"version": {
"name": "2026.2.2",
"source_dep_name": "ghcr.io/goauthentik/server",
"source_dep_version": "2026.2.2"
}
},
"variables": [
{
"title": "Networking",
"name": "networking",
"items": [
{
"name": "network_mode",
"type": "str",
"title": "Network Mode",
"required": false,
"default": "ClusterIP",
"config": {
"placeholder": "ClusterIP"
}
}
]
},
{
"title": "Authentik Configuration",
"name": "authentik",
"items": [
{
"name": "authentik_secret_key",
"type": "secret",
"title": "Secret Key",
"required": false,
"config": {
"autogenerated": {
"kind": "base64",
"bytes": 60
}
}
},
{
"name": "authentik_log_level",
"type": "enum",
"title": "Authentik log level",
"required": false,
"default": "error",
"config": {
"options": [
"trace",
"debug",
"info",
"warning",
"error"
]
}
},
{
"name": "authentik_error_reporting",
"type": "bool",
"title": "Error Reporting",
"required": false,
"default": false
}
]
},
{
"title": "Database Configuration",
"name": "database",
"items": [
{
"name": "database_external",
"type": "bool",
"title": "External Database",
"required": false,
"default": false
},
{
"name": "database_host",
"type": "str",
"title": "Database host",
"required": false,
"default": "authentik-postgresql",
"needs": [
"database_external=true"
],
"config": {
"placeholder": "authentik-postgresql"
}
},
{
"name": "database_port",
"type": "int",
"title": "Database port",
"required": false,
"default": 5432,
"needs": [
"database_external=true"
],
"config": {
"placeholder": "5432"
}
},
{
"name": "database_name",
"type": "str",
"title": "Database name",
"required": false,
"default": "authentik",
"config": {
"placeholder": "authentik"
}
},
{
"name": "database_user",
"type": "str",
"title": "Database user",
"required": false,
"default": "authentik",
"config": {
"placeholder": "authentik"
}
},
{
"name": "database_password",
"type": "secret",
"title": "PostgreSQL database password",
"required": false,
"config": {
"autogenerated": {
"kind": "base64",
"bytes": 36
}
}
}
]
},
{
"title": "Email Configuration",
"name": "email",
"items": [
{
"name": "email_enabled",
"type": "bool",
"title": "Email",
"required": false,
"default": false
},
{
"name": "email_host",
"type": "str",
"title": "SMTP server hostname",
"required": false,
"config": {
"placeholder": "smtp.home.arpa"
}
},
{
"name": "email_port",
"type": "int",
"title": "SMTP server port",
"required": false,
"default": 587,
"config": {
"placeholder": "587"
}
},
{
"name": "email_username",
"type": "str",
"title": "SMTP username",
"required": false,
"default": "",
"config": {
"placeholder": "user@example.com"
}
},
{
"name": "email_password",
"type": "secret",
"title": "SMTP password",
"required": false,
"default": ""
},
{
"name": "email_from",
"type": "str",
"title": "From email address",
"required": false,
"config": {
"placeholder": "authentik@home.arpa"
}
},
{
"name": "email_use_tls",
"type": "bool",
"title": "SMTP TLS",
"required": false,
"default": true
}
]
},
{
"title": "Traefik Configuration",
"name": "traefik",
"items": [
{
"name": "traefik_enabled",
"type": "bool",
"title": "Traefik",
"required": false,
"default": false
},
{
"name": "traefik_host",
"type": "str",
"title": "Traefik hostname",
"required": true,
"config": {
"placeholder": "authentik.home.arpa"
}
},
{
"name": "traefik_tls_enabled",
"type": "bool",
"title": "TLS",
"required": false,
"default": false
},
{
"name": "traefik_tls_secret",
"type": "str",
"title": "TLS Secret",
"required": false,
"default": "authentik-tls",
"config": {
"placeholder": "authentik-tls"
}
},
{
"name": "traefik_tls_certmanager",
"type": "bool",
"title": "Cert Manager",
"required": false,
"default": false
},
{
"name": "certmanager_issuer",
"type": "str",
"title": "Issuer",
"required": false,
"default": "letsencrypt-prod",
"needs": [
"traefik_tls_certmanager=true"
],
"config": {
"placeholder": "letsencrypt-prod"
}
}
]
}
]
}
+21
View File
@@ -0,0 +1,21 @@
---
image:
repository: quay.io/jetstack/cert-manager-controller
tag: v1.20.2
webhook:
image:
repository: quay.io/jetstack/cert-manager-webhook
tag: v1.20.2
cainjector:
image:
repository: quay.io/jetstack/cert-manager-cainjector
tag: v1.20.2
crds:
enabled: true
<%- if dns_recursive_nameservers_only %>
extraArgs:
- --dns01-recursive-nameservers-only
- --dns01-recursive-nameservers=<< dns_nameserver_1 >>,<< dns_nameserver_2 >>
<%- endif %>
+56
View File
@@ -0,0 +1,56 @@
{
"slug": "certmanager",
"kind": "helm",
"metadata": {
"name": "Cert-Manager",
"description": "Helm chart for cert-manager, a Kubernetes add-on that automates TLS certificate management and issuance from sources like Let's Encrypt.",
"tags": [],
"icon": {
"provider": "mdi",
"id": "certificate-outline"
},
"draft": false,
"version": {
"name": "v1.20.2",
"source_dep_name": "quay.io/jetstack/cert-manager-controller",
"source_dep_version": "v1.20.2"
}
},
"variables": [
{
"title": "DNS Configuration",
"name": "dns",
"items": [
{
"name": "dns_nameserver_1",
"type": "str",
"title": "Primary DNS",
"required": false,
"default": "1.1.1.1:53",
"description": "Primary DNS nameserver for DNS01 challenges",
"config": {
"placeholder": "1.1.1.1:53"
}
},
{
"name": "dns_nameserver_2",
"type": "str",
"title": "Secondary DNS",
"required": false,
"default": "1.0.0.1:53",
"description": "Secondary DNS nameserver for DNS01 challenges",
"config": {
"placeholder": "1.0.0.1:53"
}
},
{
"name": "dns_recursive_nameservers_only",
"type": "bool",
"title": "Recursive DNS",
"required": false,
"default": true
}
]
}
]
}
+12
View File
@@ -0,0 +1,12 @@
---
# Sensitive Helm values. Store this file securely and do not commit rendered real secrets.
<%- if not database_external %>
postgresql:
auth:
password: "<< database_password >>"
<%- endif %>
<%- if not redis_external %>
redis:
auth:
password: "<< redis_password >>"
<%- endif %>
+8
View File
@@ -0,0 +1,8 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: << namespace >>
labels:
app.kubernetes.io/name: infisical
app.kubernetes.io/instance: << release_name >>
+16
View File
@@ -0,0 +1,16 @@
<%- if database_external %>
---
apiVersion: v1
kind: Secret
metadata:
name: << database_secret_name >>
namespace: << namespace >>
labels:
app.kubernetes.io/name: infisical
app.kubernetes.io/instance: << release_name >>
type: Opaque
stringData:
DB_CONNECTION_URI: "<< database_connection_uri >>"
<%- else %>
# External PostgreSQL is disabled; the chart-managed PostgreSQL credentials are in helm-secrets.yaml.
<%- endif %>
+29
View File
@@ -0,0 +1,29 @@
---
apiVersion: v1
kind: Secret
metadata:
name: << infisical_secret_name >>
namespace: << namespace >>
labels:
app.kubernetes.io/name: infisical
app.kubernetes.io/instance: << release_name >>
type: Opaque
stringData:
AUTH_SECRET: "<< infisical_auth_secret >>"
ENCRYPTION_KEY: "<< infisical_encryption_key >>"
SITE_URL: "<< infisical_site_url >>"
<%- if redis_external %>
REDIS_URL: "<< redis_url >>"
<%- endif %>
<%- if email_enabled %>
SMTP_HOST: "<< email_host >>"
SMTP_PORT: "<< email_port >>"
SMTP_FROM_ADDRESS: "<< email_from_address >>"
SMTP_FROM_NAME: "<< email_from_name >>"
SMTP_USERNAME: "<< email_username >>"
SMTP_PASSWORD: "<< email_password >>"
SMTP_SECURE: "<< email_secure | lower >>"
SMTP_REQUIRE_TLS: "<< email_require_tls | lower >>"
SMTP_IGNORE_TLS: "<< email_ignore_tls | lower >>"
<%- endif %>
+110
View File
@@ -0,0 +1,110 @@
---
# Infisical standalone Helm chart values.
# Chart repo: https://dl.cloudsmith.io/public/infisical/helm-charts/helm/charts/
# Install example:
# helm upgrade --install << release_name >> infisical-helm-charts/infisical-standalone \
# --version 1.9.0 \
# --namespace << namespace >> \
# --values values.yaml \
# --values helm-secrets.yaml
infisical:
enabled: true
name: << release_name >>
replicaCount: << replica_count >>
image:
repository: infisical/infisical
tag: "v0.158.0"
pullPolicy: IfNotPresent
# This Kubernetes Secret must contain AUTH_SECRET, ENCRYPTION_KEY, SITE_URL,
# and optional SMTP/REDIS_URL keys. See secret.yaml.
kubeSecretRef: << infisical_secret_name >>
service:
type: << service_type >>
autoBootstrap:
enabled: false
serviceAccount:
create: true
resources:
requests:
cpu: << resources_cpu_request >>
memory: << resources_memory_request >>
limits:
memory: << resources_memory_limit >>
<%- if ingress_enabled %>
ingress:
enabled: true
hostName: << ingress_host >>
ingressClassName: << ingress_class_name >>
nginx:
enabled: << ingress_nginx_enabled | lower >>
annotations:
<%- if traefik_entrypoint %>
traefik.ingress.kubernetes.io/router.entrypoints: << traefik_entrypoint >>
<%- endif %>
<%- if ingress_tls_enabled %>
traefik.ingress.kubernetes.io/router.tls: "true"
<%- endif %>
<%- if ingress_certmanager_enabled %>
cert-manager.io/cluster-issuer: << certmanager_issuer >>
<%- endif %>
<%- if ingress_tls_enabled %>
tls:
- secretName: << ingress_tls_secret >>
hosts:
- << ingress_host >>
<%- endif %>
<%- else %>
ingress:
enabled: false
<%- endif %>
ingress-nginx:
enabled: << ingress_nginx_enabled | lower >>
postgresql:
<%- if database_external %>
enabled: false
useExistingPostgresSecret:
enabled: true
existingConnectionStringSecret:
name: << database_secret_name >>
key: DB_CONNECTION_URI
<%- else %>
enabled: true
auth:
username: << database_user >>
database: << database_name >>
<%- endif %>
redis:
<%- if redis_external %>
enabled: false
<%- else %>
enabled: true
architecture: standalone
usePassword: true
auth:
# Override the real password from helm-secrets.yaml.
password: "REPLACE_FROM_HELM_SECRETS_FILE"
master:
persistence:
enabled: << redis_persistence_enabled | lower >>
<%- if redis_persistence_enabled %>
storageClass: << redis_storage_class >>
size: << redis_storage_size >>
<%- endif %>
resources:
requests:
cpu: << redis_cpu_request >>
memory: << redis_memory_request >>
limits:
memory: << redis_memory_limit >>
<%- endif %>
+758
View File
@@ -0,0 +1,758 @@
{
"slug": "infisical-helm",
"kind": "helm",
"metadata": {
"name": "Infisical",
"description": "Helm values and Kubernetes secret manifests for deploying the Infisical standalone chart with external PostgreSQL, Redis, Traefik ingress, and homelab-friendly defaults.",
"tags": [
"secrets",
"kubernetes",
"helm",
"postgresql",
"redis",
"traefik"
],
"icon": {
"provider": "selfhst",
"id": "infisical",
"color": "amber"
},
"draft": false,
"version": {
"name": "v0.158.0",
"source_dep_name": "infisical/infisical",
"source_dep_version": "v0.158.0"
}
},
"variables": [
{
"name": "general",
"title": "General",
"items": [
{
"name": "release_name",
"type": "str",
"title": "Release Name",
"required": true,
"default": "infisical",
"description": "Helm release name.",
"config": {
"placeholder": "infisical"
}
},
{
"name": "namespace",
"type": "str",
"title": "Namespace",
"required": true,
"default": "infisical",
"description": "Kubernetes namespace for Infisical resources.",
"config": {
"placeholder": "infisical"
}
},
{
"name": "replica_count",
"type": "int",
"title": "Replicas",
"required": true,
"default": 1,
"description": "Number of Infisical application replicas. Keep one replica for initial bootstrap, then scale out after testing.",
"config": {
"placeholder": "1"
}
}
]
},
{
"name": "infisical",
"title": "Infisical",
"items": [
{
"name": "infisical_site_url",
"type": "str",
"title": "Site URL",
"required": true,
"default": "https://infisical.home.arpa",
"config": {
"placeholder": "https://infisical.home.arpa"
}
},
{
"name": "infisical_secret_name",
"type": "str",
"title": "Kubernetes Secret Name",
"required": true,
"default": "infisical-secrets",
"description": "Kubernetes Secret referenced by infisical.kubeSecretRef.",
"config": {
"placeholder": "infisical-secrets"
}
},
{
"name": "infisical_encryption_key",
"type": "secret",
"title": "Encryption Key",
"required": true,
"description": "Infisical ENCRYPTION_KEY. Back this up securely; losing it makes stored secrets unrecoverable.",
"config": {
"autogenerated": {
"length": 32,
"characters": [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"a",
"b",
"c",
"d",
"e",
"f"
]
}
}
},
{
"name": "infisical_auth_secret",
"type": "secret",
"title": "Auth Secret",
"required": true,
"config": {
"autogenerated": {
"kind": "base64",
"bytes": 32
}
}
}
]
},
{
"name": "networking",
"title": "Networking",
"items": [
{
"name": "service_type",
"type": "enum",
"title": "Service Type",
"required": true,
"default": "ClusterIP",
"description": "Kubernetes Service type for the Infisical application.",
"config": {
"options": [
"ClusterIP",
"NodePort",
"LoadBalancer"
]
}
},
{
"name": "ingress_enabled",
"type": "bool",
"title": "Ingress",
"required": false,
"default": true
},
{
"name": "ingress_host",
"type": "str",
"title": "Ingress Host",
"required": true,
"default": "infisical.home.arpa",
"description": "FQDN for Infisical ingress.",
"needs": [
"ingress_enabled=true"
],
"config": {
"placeholder": "infisical.home.arpa"
}
},
{
"name": "ingress_class_name",
"type": "str",
"title": "Ingress Class",
"required": true,
"default": "traefik",
"description": "Ingress class name.",
"needs": [
"ingress_enabled=true"
],
"config": {
"placeholder": "traefik"
}
},
{
"name": "ingress_nginx_enabled",
"type": "bool",
"title": "Bundled NGINX Ingress",
"required": false,
"default": false,
"description": "Enable the chart's bundled ingress-nginx controller. Disable this when using an existing Traefik ingress controller.",
"needs": [
"ingress_enabled=true"
]
},
{
"name": "traefik_entrypoint",
"type": "str",
"title": "Traefik Entrypoint",
"required": false,
"default": "websecure",
"description": "Traefik router entrypoint annotation. Leave empty for non-Traefik ingress controllers.",
"needs": [
"ingress_enabled=true"
],
"config": {
"placeholder": "websecure"
}
},
{
"name": "ingress_tls_enabled",
"type": "bool",
"title": "TLS",
"required": false,
"default": true,
"needs": [
"ingress_enabled=true"
]
},
{
"name": "ingress_tls_secret",
"type": "str",
"title": "TLS Secret",
"required": true,
"default": "infisical-tls",
"description": "Kubernetes TLS secret name.",
"needs": [
"ingress_enabled=true",
"ingress_tls_enabled=true"
],
"config": {
"placeholder": "infisical-tls"
}
},
{
"name": "ingress_certmanager_enabled",
"type": "bool",
"title": "Cert Manager Annotation",
"required": false,
"default": false,
"description": "Add cert-manager cluster issuer annotation to the Ingress.",
"needs": [
"ingress_enabled=true",
"ingress_tls_enabled=true"
]
},
{
"name": "certmanager_issuer",
"type": "str",
"title": "ClusterIssuer",
"required": true,
"default": "letsencrypt-prod",
"description": "cert-manager ClusterIssuer name.",
"needs": [
"ingress_enabled=true",
"ingress_tls_enabled=true",
"ingress_certmanager_enabled=true"
],
"config": {
"placeholder": "letsencrypt-prod"
}
}
]
},
{
"name": "database",
"title": "PostgreSQL",
"items": [
{
"name": "database_external",
"type": "bool",
"title": "External PostgreSQL",
"required": false,
"default": true
},
{
"name": "database_secret_name",
"type": "str",
"title": "DB Secret Name",
"required": true,
"default": "infisical-postgres",
"description": "Kubernetes Secret containing DB_CONNECTION_URI for external PostgreSQL.",
"needs": [
"database_external=true"
],
"config": {
"placeholder": "infisical-postgres"
}
},
{
"name": "database_connection_uri",
"type": "secret",
"title": "DB Connection URI",
"required": true,
"default": "postgresql://infisical:CHANGE_ME@postgres.example.internal:5432/infisical?sslmode=disable",
"description": "Full PostgreSQL connection URI for external databases. URL-encode special characters in usernames/passwords.",
"needs": [
"database_external=true"
],
"config": {
"placeholder": "postgresql://infisical:password@postgres.example.internal:5432/infisical?sslmode=disable"
}
},
{
"name": "database_user",
"type": "str",
"title": "Database User",
"required": true,
"default": "infisical",
"needs": [
"database_external=false"
],
"config": {
"placeholder": "infisical"
}
},
{
"name": "database_name",
"type": "str",
"title": "Database Name",
"required": true,
"default": "infisical",
"needs": [
"database_external=false"
],
"config": {
"placeholder": "infisical"
}
},
{
"name": "database_password",
"type": "secret",
"title": "Database Password",
"required": true,
"description": "PostgreSQL password for the bundled database, written to helm-secrets.yaml.",
"needs": [
"database_external=false"
],
"config": {
"autogenerated": {
"length": 32,
"characters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
]
}
}
}
]
},
{
"name": "redis",
"title": "Redis",
"items": [
{
"name": "redis_external",
"type": "bool",
"title": "External Redis",
"required": false,
"default": false
},
{
"name": "redis_url",
"type": "secret",
"title": "Redis URL",
"required": true,
"default": "redis://:CHANGE_ME@redis.example.internal:6379",
"description": "Full Redis URL for external Redis.",
"needs": [
"redis_external=true"
],
"config": {
"placeholder": "redis://:password@redis.example.internal:6379"
}
},
{
"name": "redis_password",
"type": "secret",
"title": "Redis Password",
"required": true,
"description": "Redis password for the bundled Redis chart, written to helm-secrets.yaml.",
"needs": [
"redis_external=false"
],
"config": {
"autogenerated": {
"length": 32,
"characters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
]
}
}
},
{
"name": "redis_persistence_enabled",
"type": "bool",
"title": "Redis Persistence",
"required": false,
"default": true,
"needs": [
"redis_external=false"
]
},
{
"name": "redis_storage_class",
"type": "str",
"title": "Redis StorageClass",
"required": false,
"default": "ceph-rbd",
"description": "StorageClass for the bundled Redis PVC.",
"needs": [
"redis_external=false",
"redis_persistence_enabled=true"
],
"config": {
"placeholder": "ceph-rbd"
}
},
{
"name": "redis_storage_size",
"type": "str",
"title": "Redis Storage Size",
"required": false,
"default": "2Gi",
"description": "PVC size for the bundled Redis chart.",
"needs": [
"redis_external=false",
"redis_persistence_enabled=true"
],
"config": {
"placeholder": "2Gi"
}
}
]
},
{
"name": "resources",
"title": "Resources",
"items": [
{
"name": "resources_cpu_request",
"type": "str",
"title": "CPU Request",
"required": false,
"default": "250m",
"config": {
"placeholder": "250m"
}
},
{
"name": "resources_memory_request",
"type": "str",
"title": "Memory Request",
"required": false,
"default": "512Mi",
"config": {
"placeholder": "512Mi"
}
},
{
"name": "resources_memory_limit",
"type": "str",
"title": "Memory Limit",
"required": false,
"default": "1000Mi",
"config": {
"placeholder": "1000Mi"
}
},
{
"name": "redis_cpu_request",
"type": "str",
"title": "Redis CPU Request",
"required": false,
"default": "50m",
"needs": [
"redis_external=false"
],
"config": {
"placeholder": "50m"
}
},
{
"name": "redis_memory_request",
"type": "str",
"title": "Redis Memory Request",
"required": false,
"default": "128Mi",
"needs": [
"redis_external=false"
],
"config": {
"placeholder": "128Mi"
}
},
{
"name": "redis_memory_limit",
"type": "str",
"title": "Redis Memory Limit",
"required": false,
"default": "256Mi",
"needs": [
"redis_external=false"
],
"config": {
"placeholder": "256Mi"
}
}
]
},
{
"name": "email",
"title": "Email",
"toggle": "email_enabled",
"items": [
{
"name": "email_enabled",
"type": "bool",
"title": "SMTP Email",
"required": false,
"default": false,
"description": "Add SMTP keys to the Infisical Kubernetes Secret."
},
{
"name": "email_host",
"type": "str",
"title": "SMTP Host",
"required": true,
"default": "smtp.home.arpa",
"needs": [
"email_enabled=true"
],
"config": {
"placeholder": "smtp.home.arpa"
}
},
{
"name": "email_port",
"type": "int",
"title": "SMTP Port",
"required": true,
"default": 587,
"needs": [
"email_enabled=true"
],
"config": {
"placeholder": "587"
}
},
{
"name": "email_from_address",
"type": "str",
"title": "From Address",
"required": true,
"default": "infisical@home.arpa",
"needs": [
"email_enabled=true"
],
"config": {
"placeholder": "infisical@home.arpa"
}
},
{
"name": "email_from_name",
"type": "str",
"title": "From Name",
"required": false,
"default": "Infisical",
"needs": [
"email_enabled=true"
],
"config": {
"placeholder": "Infisical"
}
},
{
"name": "email_username",
"type": "str",
"title": "SMTP Username",
"required": true,
"default": "",
"needs": [
"email_enabled=true"
],
"config": {
"placeholder": "user@example.com"
}
},
{
"name": "email_password",
"type": "secret",
"title": "SMTP Password",
"required": false,
"default": "",
"needs": [
"email_enabled=true"
]
},
{
"name": "email_secure",
"type": "bool",
"title": "SMTP Secure",
"required": false,
"default": false,
"needs": [
"email_enabled=true"
]
},
{
"name": "email_require_tls",
"type": "bool",
"title": "Require TLS",
"required": false,
"default": true,
"needs": [
"email_enabled=true"
]
},
{
"name": "email_ignore_tls",
"type": "bool",
"title": "Ignore TLS",
"required": false,
"default": false,
"needs": [
"email_enabled=true"
]
}
]
}
]
}
+51
View File
@@ -0,0 +1,51 @@
---
image:
longhorn:
engine:
repository: "longhornio/longhorn-engine"
tag: "v1.11.2"
manager:
repository: "longhornio/longhorn-manager"
tag: "v1.11.2"
ui:
repository: "longhornio/longhorn-ui"
tag: "v1.11.2"
instanceManager:
repository: "longhornio/longhorn-instance-manager"
tag: "v1.11.2"
shareManager:
repository: "longhornio/longhorn-share-manager"
tag: "v1.11.2"
backingImageManager:
repository: "longhornio/backing-image-manager"
tag: "v1.11.2"
supportBundleKit:
repository: "longhornio/support-bundle-kit"
tag: "v0.0.84"
csi:
attacher:
repository: "longhornio/csi-attacher"
tag: "v4.11.0"
provisioner:
repository: "longhornio/csi-provisioner"
tag: "v5.3.0"
nodeDriverRegistrar:
repository: "longhornio/csi-node-driver-registrar"
tag: "v2.16.0"
resizer:
repository: "longhornio/csi-resizer"
tag: "v2.1.0"
snapshotter:
repository: "longhornio/csi-snapshotter"
tag: "v8.5.0"
livenessProbe:
repository: "longhornio/livenessprobe"
tag: "v2.18.0"
longhornUI:
replicas: << ui_replicas >>
<%- if backup_enabled %>
defaultSettings:
backupTarget: << backup_target >>
<%- endif %>
+66
View File
@@ -0,0 +1,66 @@
{
"slug": "longhorn",
"kind": "helm",
"metadata": {
"name": "Longhorn",
"description": "Helm chart for Longhorn, a distributed block storage system for Kubernetes with built-in backup, snapshots, and disaster recovery.",
"tags": [],
"icon": {
"provider": "selfhst",
"id": "rancher-longhorn"
},
"draft": false,
"version": {
"name": "v1.11.2",
"source_dep_name": "longhornio/longhorn-manager",
"source_dep_version": "v1.11.2"
}
},
"variables": [
{
"title": "Backup Configuration",
"name": "backup",
"items": [
{
"name": "backup_enabled",
"type": "bool",
"title": "Backup",
"required": false,
"default": false
},
{
"name": "backup_target",
"type": "str",
"title": "Backup Target",
"required": false,
"description": "Backup target URL (e.g., s3://bucket or nfs://server/path)",
"needs": [
"backup_enabled=true"
]
}
]
},
{
"title": "Longhorn UI",
"name": "ui",
"items": [
{
"name": "ui_replicas",
"type": "int",
"title": "UI Replicas",
"required": false,
"default": 1,
"description": "Number of Longhorn UI replicas",
"config": {
"slider": true,
"min": 1,
"max": 10,
"step": 1,
"placeholder": "1",
"unit": "replicas"
}
}
]
}
]
}
+132
View File
@@ -0,0 +1,132 @@
---
image:
repository: docker.io/netboxcommunity/netbox
tag: v4.5.10
pullPolicy: IfNotPresent
replicaCount: 1
superuser:
name: << netbox_superuser_name >>
email: << netbox_superuser_email >>
password: << netbox_superuser_password >>
apiToken: << netbox_superuser_api_token >>
allowedHosts:
- "<< netbox_allowed_hosts >>"
<%- if database_external %>
postgresql:
enabled: false
externalDatabase:
host: << database_host >>
port: << database_port >>
database: << database_name >>
username: << database_user >>
password: << database_password >>
<%- else %>
postgresql:
enabled: true
auth:
database: << database_name >>
username: << database_user >>
password: << database_password >>
<%- endif %>
<%- if redis_external %>
redis:
enabled: false
externalRedis:
host: << redis_host >>
port: 6379
database: 0
password: << redis_password >>
tasksRedis:
host: << redis_host >>
port: 6379
database: 0
password: << redis_password >>
cachingRedis:
host: << redis_cache_host >>
port: 6379
database: 1
password: << redis_password >>
<%- else %>
redis:
enabled: true
architecture: standalone
auth:
enabled: true
password: << redis_password >>
<%- endif %>
secretKey: << netbox_secret_key >>
<%- if email_enabled %>
email:
server: << email_host >>
port: << email_port >>
username: << email_username >>
password: << email_password >>
from: << email_from >>
useSSL: << email_use_ssl | lower >>
useTLS: << email_use_tls | lower >>
<%- endif %>
<%- if netbox_cors_enabled %>
cors:
originAllowAll: true
originWhitelist:
- << netbox_cors_origins >>
<%- endif %>
<%- if netbox_metrics_enabled %>
metrics:
enabled: true
serviceMonitor:
enabled: false
<%- endif %>
service:
type: << network_mode >>
<%- if traefik_enabled %>
ingress:
enabled: true
className: traefik
<%- if traefik_tls_enabled and traefik_tls_certmanager %>
annotations:
cert-manager.io/cluster-issuer: << certmanager_issuer >>
<%- endif %>
hosts:
- host: << traefik_host >>
paths:
- path: /
pathType: Prefix
<%- if traefik_tls_enabled %>
tls:
- secretName: << traefik_tls_secret >>
hosts:
- << traefik_host >>
<%- endif %>
<%- endif %>
persistence:
enabled: true
<%- if volumes_mode == 'existing-pvc' %>
existingClaim: << volumes_pvc_name >>
<%- else %>
storageClass: ""
size: 10Gi
<%- endif %>
worker:
enabled: true
replicaCount: 1
housekeeping:
enabled: true
+418
View File
@@ -0,0 +1,418 @@
{
"slug": "netbox-helm",
"kind": "helm",
"metadata": {
"name": "NetBox",
"description": "Helm chart for NetBox, an open-source network infrastructure management (IPAM/DCIM) solution and network automation source of truth.",
"tags": [],
"icon": {
"provider": "selfhst",
"id": "netbox"
},
"draft": false,
"version": {
"name": "v4.5.10",
"source_dep_name": "docker.io/netboxcommunity/netbox",
"source_dep_version": "v4.5.10"
}
},
"variables": [
{
"title": "Database Configuration",
"name": "database",
"items": [
{
"name": "database_external",
"type": "bool",
"title": "External Database",
"required": false,
"default": false
},
{
"name": "database_host",
"type": "str",
"title": "Database host",
"required": false,
"default": "netbox-postgresql",
"needs": [
"database_external=true"
],
"config": {
"placeholder": "netbox-postgresql"
}
},
{
"name": "database_port",
"type": "int",
"title": "Database port",
"required": false,
"default": 5432,
"needs": [
"database_external=true"
],
"config": {
"placeholder": "5432"
}
},
{
"name": "database_name",
"type": "str",
"title": "Database name",
"required": false,
"default": "netbox",
"config": {
"placeholder": "netbox"
}
},
{
"name": "database_user",
"type": "str",
"title": "Database user",
"required": false,
"default": "netbox",
"config": {
"placeholder": "netbox"
}
},
{
"name": "database_password",
"type": "secret",
"title": "Database password",
"required": false,
"config": {
"autogenerated": {
"length": 32
}
}
}
]
},
{
"title": "Networking Configuration",
"name": "networking",
"items": [
{
"name": "network_mode",
"type": "str",
"title": "Network Mode",
"required": false,
"default": "ClusterIP",
"config": {
"placeholder": "ClusterIP"
}
}
]
},
{
"title": "Redis Configuration",
"name": "redis",
"items": [
{
"name": "redis_external",
"type": "bool",
"title": "External Redis",
"required": false,
"default": false
},
{
"name": "redis_host",
"type": "str",
"title": "Redis Host",
"required": false,
"default": "netbox-redis-master",
"needs": [
"redis_external=true"
],
"config": {
"placeholder": "netbox-redis-master"
}
},
{
"name": "redis_cache_host",
"type": "str",
"title": "Cache Host",
"required": false,
"default": "netbox-redis-master",
"needs": [
"redis_external=true"
],
"config": {
"placeholder": "netbox-redis-master"
}
},
{
"name": "redis_password",
"type": "secret",
"title": "Redis password",
"required": false,
"config": {
"autogenerated": {
"length": 32
}
}
}
]
},
{
"title": "Email Configuration",
"name": "email",
"items": [
{
"name": "email_enabled",
"type": "bool",
"title": "Email",
"required": false,
"default": false
},
{
"name": "email_host",
"type": "str",
"title": "SMTP server hostname",
"required": false,
"config": {
"placeholder": "smtp.home.arpa"
}
},
{
"name": "email_port",
"type": "int",
"title": "SMTP server port",
"required": false,
"default": 587,
"config": {
"placeholder": "587"
}
},
{
"name": "email_username",
"type": "str",
"title": "SMTP username",
"required": false,
"default": "",
"config": {
"placeholder": "user@example.com"
}
},
{
"name": "email_password",
"type": "secret",
"title": "SMTP password",
"required": false,
"needs": [
"email_enabled=true"
]
},
{
"name": "email_from",
"type": "str",
"title": "From email address",
"required": false,
"config": {
"placeholder": "netbox@home.arpa"
}
},
{
"name": "email_use_tls",
"type": "bool",
"title": "SMTP TLS",
"required": false,
"default": true
},
{
"name": "email_use_ssl",
"type": "bool",
"title": "SMTP SSL",
"required": false,
"default": false
}
]
},
{
"title": "Traefik Configuration",
"name": "traefik",
"items": [
{
"name": "traefik_enabled",
"type": "bool",
"title": "Traefik",
"required": false,
"default": false
},
{
"name": "traefik_host",
"type": "str",
"title": "Traefik hostname",
"required": true,
"config": {
"placeholder": "netbox.home.arpa"
}
},
{
"name": "traefik_tls_enabled",
"type": "bool",
"title": "TLS",
"required": false,
"default": false
},
{
"name": "traefik_tls_secret",
"type": "str",
"title": "TLS Secret",
"required": false,
"default": "netbox-tls",
"config": {
"placeholder": "netbox-tls"
}
},
{
"name": "traefik_tls_certmanager",
"type": "bool",
"title": "Cert Manager",
"required": false,
"default": false
},
{
"name": "certmanager_issuer",
"type": "str",
"title": "Issuer",
"required": false,
"default": "letsencrypt-prod",
"needs": [
"traefik_tls_certmanager=true"
],
"config": {
"placeholder": "letsencrypt-prod"
}
}
]
},
{
"title": "Volume Configuration",
"name": "volumes",
"items": [
{
"name": "volumes_mode",
"type": "enum",
"title": "Persistence mode",
"required": false,
"default": "chart-managed",
"config": {
"options": [
"chart-managed",
"existing-pvc"
]
}
},
{
"name": "volumes_pvc_name",
"type": "str",
"title": "PVC Name",
"required": false,
"default": "netbox-data",
"needs": [
"volumes_mode=existing-pvc"
],
"config": {
"placeholder": "netbox-data"
}
}
]
},
{
"title": "NetBox Configuration",
"name": "netbox",
"items": [
{
"name": "netbox_secret_key",
"type": "secret",
"title": "Secret Key",
"required": false,
"config": {
"autogenerated": {
"length": 50
}
}
},
{
"name": "netbox_superuser_name",
"type": "str",
"title": "Initial superuser username",
"required": false,
"default": "admin",
"config": {
"placeholder": "admin"
}
},
{
"name": "netbox_superuser_email",
"type": "str",
"title": "Initial superuser email",
"required": true,
"config": {
"placeholder": "admin@home.arpa"
}
},
{
"name": "netbox_superuser_password",
"type": "secret",
"title": "Initial superuser password",
"required": false,
"config": {
"autogenerated": {
"length": 32
}
}
},
{
"name": "netbox_superuser_api_token",
"type": "secret",
"title": "API Token",
"required": false,
"config": {
"autogenerated": {
"length": 40
}
}
},
{
"name": "netbox_allowed_hosts",
"type": "str",
"title": "Allowed Hosts",
"required": false,
"default": "*",
"description": "Allowed hosts (comma-separated)",
"config": {
"placeholder": "*"
}
},
{
"name": "netbox_metrics_enabled",
"type": "bool",
"title": "Metrics",
"required": false,
"default": false
},
{
"name": "netbox_cors_enabled",
"type": "bool",
"title": "CORS",
"required": false,
"default": false
},
{
"name": "netbox_cors_origins",
"type": "str",
"title": "Allowed CORS origins",
"required": false,
"default": "https://home.arpa",
"needs": [
"netbox_cors_enabled=true"
],
"config": {
"placeholder": "https://home.arpa"
}
}
]
}
]
}
+29
View File
@@ -0,0 +1,29 @@
---
image:
repository: portainer/portainer-ce
tag: 2.41.0
pullPolicy: IfNotPresent
service:
type: << network_mode >>
<%- if traefik_enabled %>
ingress:
enabled: true
hosts:
- host: << traefik_host >>
paths:
- path: /
port: "9000"
<%- if traefik_tls_enabled %>
tls:
- secretName: << traefik_tls_secret >>
hosts:
- << traefik_host >>
<%- endif %>
<%- endif %>
<%- if volumes_mode == 'existing-pvc' %>
persistence:
existingClaim: << volumes_pvc_name >>
<%- endif %>
+108
View File
@@ -0,0 +1,108 @@
{
"slug": "portainer-helm",
"kind": "helm",
"metadata": {
"name": "Portainer CE",
"description": "Helm chart for Portainer Community Edition, a web-based container management platform for Docker and Kubernetes environments.",
"tags": [],
"icon": {
"provider": "selfhst",
"id": "portainer"
},
"draft": false,
"version": {
"name": "2.41.0",
"source_dep_name": "portainer/portainer-ce",
"source_dep_version": "2.41.0"
}
},
"variables": [
{
"title": "Networking",
"name": "networking",
"items": [
{
"name": "network_mode",
"type": "str",
"title": "Network Mode",
"required": false,
"default": "ClusterIP",
"config": {
"placeholder": "ClusterIP"
}
}
]
},
{
"title": "Traefik Configuration",
"name": "traefik",
"items": [
{
"name": "traefik_enabled",
"type": "bool",
"title": "Traefik",
"required": false,
"default": false
},
{
"name": "traefik_host",
"type": "str",
"title": "Traefik hostname",
"required": true,
"config": {
"placeholder": "portainer.home.arpa"
}
},
{
"name": "traefik_tls_enabled",
"type": "bool",
"title": "TLS",
"required": false,
"default": false
},
{
"name": "traefik_tls_secret",
"type": "str",
"title": "TLS Secret",
"required": false,
"default": "portainer-tls",
"config": {
"placeholder": "portainer-tls"
}
}
]
},
{
"title": "Volume Configuration",
"name": "volumes",
"items": [
{
"name": "volumes_mode",
"type": "enum",
"title": "Persistence mode",
"required": false,
"default": "chart-managed",
"config": {
"options": [
"chart-managed",
"existing-pvc"
]
}
},
{
"name": "volumes_pvc_name",
"type": "str",
"title": "PVC Name",
"required": false,
"default": "portainer",
"needs": [
"volumes_mode=existing-pvc"
],
"config": {
"placeholder": "portainer"
}
}
]
}
]
}
+41
View File
@@ -0,0 +1,41 @@
---
image:
repository: traefik
tag: v3.7.1
pullPolicy: IfNotPresent
<%- if http_redirect_enabled %>
ports:
web:
redirections:
entryPoint:
to: websecure
scheme: https
permanent: << http_redirect_permanent | lower >>
<%- endif %>
<%- if dashboard_enabled or accesslog_enabled or prometheus_enabled %>
additionalArguments:
<%- if dashboard_enabled %>
- "--api.dashboard=true"
<%- endif %>
<%- if accesslog_enabled %>
- "--accesslog=true"
<%- endif %>
<%- if prometheus_enabled %>
- "--metrics.prometheus=true"
<%- endif %>
<%- endif %>
<%- if dashboard_ingressroute_enabled %>
ingressRoute:
dashboard:
enabled: true
entryPoints:
- websecure
matchRule: Host(`<< dashboard_host >>`)
middlewares:
- name: << dashboard_middleware >>
tls:
secretName: << dashboard_tls_secret >>
<%- endif %>
+123
View File
@@ -0,0 +1,123 @@
{
"slug": "traefik-helm",
"kind": "helm",
"metadata": {
"name": "Traefik Ingress Controller",
"description": "Helm chart for Traefik v3, a modern HTTP reverse proxy and load balancer designed for microservices and Kubernetes environments.",
"tags": [],
"icon": {
"provider": "selfhst",
"id": "traefik"
},
"draft": false,
"version": {
"name": "v3.7.1",
"source_dep_name": "traefik",
"source_dep_version": "v3.7.1"
}
},
"variables": [
{
"title": "Dashboard IngressRoute",
"name": "dashboard",
"items": [
{
"name": "dashboard_host",
"type": "str",
"title": "Dashboard Host",
"required": false,
"description": "FQDN for the Traefik dashboard",
"needs": [
"dashboard_ingressroute_enabled=true"
]
},
{
"name": "dashboard_ingressroute_enabled",
"type": "bool",
"title": "IngressRoute",
"required": false,
"default": false,
"description": "Create IngressRoute for Traefik dashboard"
},
{
"name": "dashboard_middleware",
"type": "str",
"title": "Middleware",
"required": false,
"default": "traefik-dashboard-auth",
"description": "Authentication middleware name for dashboard protection",
"needs": [
"dashboard_ingressroute_enabled=true"
],
"config": {
"placeholder": "traefik-dashboard-auth"
}
},
{
"name": "dashboard_tls_secret",
"type": "str",
"title": "TLS Secret",
"required": false,
"default": "traefik-dashboard-tls",
"needs": [
"dashboard_ingressroute_enabled=true"
],
"config": {
"placeholder": "traefik-dashboard-tls"
}
}
]
},
{
"title": "Redirect",
"name": "http-redirect",
"items": [
{
"name": "http_redirect_enabled",
"type": "bool",
"title": "HTTP Redirect",
"required": false,
"default": true,
"description": "Automatically redirect HTTP traffic to HTTPS"
},
{
"name": "http_redirect_permanent",
"type": "bool",
"title": "Permanent Redirect",
"required": false,
"default": true,
"needs": [
"http_redirect_enabled=true"
]
}
]
},
{
"title": "Traefik Settings",
"name": "traefik-config",
"items": [
{
"name": "accesslog_enabled",
"type": "bool",
"title": "Access Log",
"required": false,
"default": false
},
{
"name": "dashboard_enabled",
"type": "bool",
"title": "Dashboard",
"required": false,
"default": false
},
{
"name": "prometheus_enabled",
"type": "bool",
"title": "Prometheus",
"required": false,
"default": false
}
]
}
]
}