feat(n8n/weblate): move to stable (#1815)

* feat(n8n): Move to stable

* chore(strapi): bump to 1.0.0 as it moved to stable

* feat(weblate): move to stable

* bump

* typo
This commit is contained in:
Stavros Kois
2022-01-31 08:46:17 +01:00
committed by GitHub
parent 0200d38a1c
commit ff841e65df
21 changed files with 4 additions and 4 deletions
+36
View File
@@ -0,0 +1,36 @@
# Changelog<br>
<a name="n8n-0.0.4"></a>
### [n8n-0.0.4](https://github.com/truecharts/apps/compare/n8n-0.0.3...n8n-0.0.4) (2022-01-30)
#### Fix
* Fix permissions and add healthcheck path ([#1809](https://github.com/truecharts/apps/issues/1809))
<a name="n8n-0.0.3"></a>
### [n8n-0.0.3](https://github.com/truecharts/apps/compare/n8n-0.0.2...n8n-0.0.3) (2022-01-28)
#### Fix
* Fix default value on some lists ([#1806](https://github.com/truecharts/apps/issues/1806))
<a name="n8n-0.0.2"></a>
### [n8n-0.0.2](https://github.com/truecharts/apps/compare/n8n-0.0.1...n8n-0.0.2) (2022-01-28)
#### Fix
* quote values on configmap ([#1802](https://github.com/truecharts/apps/issues/1802))
<a name="n8n-0.0.1"></a>
### n8n-0.0.1 (2022-01-27)
#### Feat
* Add n8n ([#1797](https://github.com/truecharts/apps/issues/1797))
+8
View File
@@ -0,0 +1,8 @@
# Configuration Options
##### Connecting to other apps
If you need to connect this App to other Apps on TrueNAS SCALE, please refer to our "Linking Apps Internally" quick-start guide:
https://truecharts.org/manual/Quick-Start%20Guides/14-linking-apps/
##### Available config options
In the future this page is going to contain an automated list of options available in the installation/edit UI.
+36
View File
@@ -0,0 +1,36 @@
apiVersion: v2
appVersion: "0.160.0"
dependencies:
- name: common
repository: https://truecharts.org
version: 8.14.2
- condition: postgresql.enabled
name: postgresql
repository: https://truecharts.org/
version: 6.0.58
- condition: redis.enabled
name: redis
repository: https://truecharts.org
version: 1.0.63
description: n8n is an extendable workflow automation tool.
home: https://github.com/truecharts/apps/tree/master/charts/stable/n8n
icon: https://truecharts.org/_static/img/appicons/n8n-icon.png
keywords:
- workflows
- automation
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: n8n
sources:
- https://docs.n8n.io/
- https://github.com/n8n-io/n8n
- https://hub.docker.com/r/n8nio/n8n
version: 1.0.0
annotations:
truecharts.org/catagories: |
- media
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+41
View File
@@ -0,0 +1,41 @@
# Introduction
n8n is an extendable workflow automation tool.
TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation.
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)**
## Source Code
* <https://docs.n8n.io/>
* <https://github.com/n8n-io/n8n>
* <https://hub.docker.com/r/n8nio/n8n>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://truecharts.org/ | postgresql | 6.0.58 |
| https://truecharts.org | common | 8.14.2 |
| https://truecharts.org | redis | 1.0.63 |
## Installing the Chart
To install this App on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/03-Installing-an-App/).
## Uninstalling the Chart
To remove this App from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/manual/Quick-Start%20Guides/07-Deleting-an-App/).
## Support
- Please check our [quick-start guides](https://truecharts.org/manual/Quick-Start%20Guides/01-Open-Apps/) first.
- See the [Wiki](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
---
All Rights Reserved - The TrueCharts Project
+59
View File
@@ -0,0 +1,59 @@
# Default Helm-Values
TrueCharts is primarily build to supply TrueNAS SCALE Apps.
However, we also supply all Apps as standard Helm-Charts. In this document we aim to document the default values in our values.yaml file.
Most of our Apps also consume our "common" Helm Chart.
If this is the case, this means that all values.yaml values are set to the common chart values.yaml by default. This values.yaml file will only contain values that deviate from the common chart.
You will, however, be able to use all values referenced in the common chart here, besides the values listed in this document.
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| credentials | object | `{}` | |
| deployment.N8N_HOST | string | `"localhost"` | |
| endpoints | object | `{}` | |
| env.DB_POSTGRESDB_DATABASE | string | `"{{ .Values.postgresql.postgresqlDatabase }}"` | |
| env.DB_POSTGRESDB_PORT | int | `5432` | |
| env.DB_POSTGRESDB_USER | string | `"{{ .Values.postgresql.postgresqlUsername }}"` | |
| env.DB_TYPE | string | `"postgresdb"` | |
| env.GENERIC_TIMEZONE | string | `"{{ .Values.env.TZ }}"` | |
| env.N8N_USER_FOLDER | string | `"/data"` | |
| env.QUEUE_BULL_REDIS_PORT | int | `6379` | |
| env.TZ | string | `"UTC"` | |
| envFrom[0].configMapRef.name | string | `"n8n-config"` | |
| envValueFrom.DB_POSTGRESDB_HOST.secretKeyRef.key | string | `"plainhost"` | |
| envValueFrom.DB_POSTGRESDB_HOST.secretKeyRef.name | string | `"dbcreds"` | |
| envValueFrom.DB_POSTGRESDB_PASSWORD.secretKeyRef.key | string | `"postgresql-password"` | |
| envValueFrom.DB_POSTGRESDB_PASSWORD.secretKeyRef.name | string | `"dbcreds"` | |
| envValueFrom.QUEUE_BULL_REDIS_HOST.secretKeyRef.key | string | `"plainhost"` | |
| envValueFrom.QUEUE_BULL_REDIS_HOST.secretKeyRef.name | string | `"rediscreds"` | |
| envValueFrom.QUEUE_BULL_REDIS_PASSWORD.secretKeyRef.key | string | `"redis-password"` | |
| envValueFrom.QUEUE_BULL_REDIS_PASSWORD.secretKeyRef.name | string | `"rediscreds"` | |
| executions | object | `{}` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"tccr.io/truecharts/n8n"` | |
| image.tag | string | `"v0.160.0@sha256:2141ab9bb8e8a820fa07a20ae9bdd1a7c5f2102926238ab7f3aa4a3c9e175ebe"` | |
| logs.N8N_LOG_FILE_LOCATION | string | `"/data/logs"` | |
| persistence.data.enabled | bool | `true` | |
| persistence.data.mountPath | string | `"/data"` | |
| podSecurityContext.fsGroup | int | `1000` | |
| podSecurityContext.runAsUser | int | `0` | |
| postgresql.enabled | bool | `true` | |
| postgresql.existingSecret | string | `"dbcreds"` | |
| postgresql.postgresqlDatabase | string | `"n8n"` | |
| postgresql.postgresqlUsername | string | `"n8n"` | |
| probes.liveness.path | string | `"/healthz"` | |
| probes.readiness.path | string | `"/healthz"` | |
| probes.startup.path | string | `"/healthz"` | |
| redis.enabled | bool | `true` | |
| redis.existingSecret | string | `"rediscreds"` | |
| security | object | `{}` | |
| securityContext.readOnlyRootFilesystem | bool | `false` | |
| securityContext.runAsNonRoot | bool | `false` | |
| service.main.ports.main.port | int | `5678` | |
| service.main.ports.main.targetPort | int | `5678` | |
| workflows | object | `{}` | |
All Rights Reserved - The TrueCharts Project
+699
View File
@@ -0,0 +1,699 @@
# Include{groups}
portals:
web_portal:
protocols:
- "$kubernetes-resource_configmap_portal_protocol"
host:
- "$kubernetes-resource_configmap_portal_host"
ports:
- "$kubernetes-resource_configmap_portal_port"
questions:
- variable: portal
group: "Container Image"
label: "Configure Portal Button"
schema:
type: dict
hidden: true
attrs:
- variable: enabled
label: "Enable"
description: "enable the portal button"
schema:
hidden: true
editable: false
type: boolean
default: true
# Include{global}
- variable: controller
group: "Controller"
label: ""
schema:
additional_attrs: true
type: dict
attrs:
- variable: advanced
label: "Show Advanced Controller Settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
description: "Please specify type of workload to deploy"
label: "(Advanced) Controller Type"
schema:
type: string
default: "deployment"
required: true
enum:
- value: "deployment"
description: "Deployment"
- value: "statefulset"
description: "Statefulset"
- value: "daemonset"
description: "Daemonset"
- variable: replicas
description: "Number of desired pod replicas"
label: "Desired Replicas"
schema:
type: int
default: 1
required: true
- variable: strategy
description: "Please specify type of workload to deploy"
label: "(Advanced) Update Strategy"
schema:
type: string
default: "Recreate"
required: true
enum:
- value: "Recreate"
description: "Recreate: Kill existing pods before creating new ones"
- value: "RollingUpdate"
description: "RollingUpdate: Create new pods and then kill old ones"
- value: "OnDelete"
description: "(Legacy) OnDelete: ignore .spec.template changes"
# Include{controllerExpert}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
# Include{fixedEnv}
- variable: deployment
group: "Container Configuration"
label: "Deployment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: N8N_HOST
label: "Host"
description: "Host name where n8n can be reached."
schema:
type: string
required: true
default: ""
- variable: N8N_CONFIG_FILES
label: "Config Files (Leave empty for default)"
description: "Use to provide the path to any JSON configuration file(s)"
schema:
type: string
default: ""
- variable: N8N_DISABLE_UI
label: "Disable UI"
description: "Whether the UI should be disabled"
schema:
type: boolean
default: false
- variable: N8N_ENCRYPTION_KEY
label: "Encryption Key (Leave empty for default)"
description: "Provide a custom key used to encrypt credentials in the n8n database. By default a random key is generated on first launch"
schema:
type: string
default: ""
- variable: N8N_PERSONALIZATION_ENABLED
label: "Enable Personalization"
description: "Whether to ask users personalisation questions and then customise n8n accordingly"
schema:
type: boolean
default: true
- variable: N8N_VERSION_NOTIFICATIONS_ENABLED
label: "Enable Version Notifications"
description: "When enabled, notifications of new versions and security updates are provided"
schema:
type: boolean
default: true
- variable: N8N_DIAGNOSTICS_ENABLED
label: "Enable Diagnostics"
description: "Whether to share selected, anonymous telemetry with n8n"
schema:
type: boolean
default: false
- variable: workflows
group: "Container Configuration"
label: "Workflows"
schema:
additional_attrs: true
type: dict
attrs:
- variable: WORKFLOWS_DEFAULT_NAME
label: "Workflows Default Name (Leave empty for default)"
description: "The default name used for new workflows"
schema:
type: string
default: ""
- variable: executions
group: "Container Configuration"
label: "Executions"
schema:
additional_attrs: true
type: dict
attrs:
- variable: EXECUTIONS_PROCESS
label: "Execution Process"
description: "Whether processes are executed in their own process or the main process"
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "main"
description: "Main"
- value: "own"
description: "Own"
- variable: EXECUTIONS_MODE
label: "Execution Mode"
description: "Whether processes should run directly or via queue"
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "regular"
description: "Regular"
- value: "queue"
description: "Queue"
- variable: EXECUTIONS_TIMEOUT
label: "Execution Timeout (Leave empty for default)"
description: "The max run time (in seconds) before stopping a workflow execution"
schema:
type: int
- variable: EXECUTIONS_TIMEOUT_MAX
label: "Max Execution Timeout (Leave empty for default)"
description: "The max execution time (in seconds) that can be set for a workflow individually"
schema:
type: int
- variable: EXECUTIONS_DATA_SAVE_ON_ERROR
label: "Execution Data Save on Error"
description: "Whether execution data is saved on error"
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "all"
description: "All"
- value: "none"
description: "None"
- variable: EXECUTIONS_DATA_SAVE_ON_SUCCESS
label: "Execution Data Save on Success"
description: "Whether execution data is saved on success"
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "all"
description: "All"
- value: "none"
description: "None"
- variable: EXECUTIONS_DATA_SAVE_ON_PROGRESS
label: "Execution Data Save on Progress"
description: "Whether to save progress for each node executed"
schema:
type: boolean
default: false
- variable: EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS
label: "Execution Data Save on Manual Executions"
description: "Whether to save data of executions when started manually"
schema:
type: boolean
default: false
- variable: EXECUTIONS_DATA_PRUNE
label: "Execution Data Prune"
description: "Whether to delete data of past executions on a rolling basis"
schema:
type: boolean
default: false
- variable: EXECUTIONS_DATA_MAX_AGE
label: "Execution Data Max Age (Leave empty for default)"
description: "The execution age (in hours) before it is deleted"
schema:
type: int
- variable: EXECUTIONS_DATA_PRUNE_TIMEOUT
label: "Data Prune Timeout (Leave empty for default)"
description: "The timeout (in seconds) after execution data has been pruned"
schema:
type: int
- variable: security
group: "Container Configuration"
label: "Security"
schema:
additional_attrs: true
type: dict
attrs:
- variable: N8N_AUTH_EXCLUDE_ENDPOINTS
label: "Additional Endpoints to Exclude Auth Checks (Leave empty for default)"
description: 'Additional endpoints to exclude auth checks. Multiple endpoints can be provided separated by a colon (":"). The endpoints should not start with a forward slash ("/")'
schema:
type: string
default: ""
- variable: N8N_BASIC_AUTH_ACTIVE
label: "Enable Basic Auth"
description: "Whether basic auth should be activated for editor and REST-API access"
schema:
type: boolean
default: false
- variable: N8N_BASIC_AUTH_USER
label: "Basic Auth User (Leave empty for default)"
description: "The name of the n8n user for basic authentication"
schema:
type: string
default: ""
- variable: N8N_BASIC_AUTH_PASSWORD
label: "Basic Auth Password (Leave empty for default)"
description: "The password of the n8n user for basic authentication"
schema:
type: string
default: ""
- variable: N8N_BASIC_AUTH_HASH
label: "Enable Basic Auth Hash"
description: "Whether the basic authentication password is hashed"
schema:
type: boolean
default: false
- variable: N8N_JWT_AUTH_ACTIVE
label: "Enable JWT Auth"
description: "Whether JWT authentication should be activated for editor and REST-API access"
schema:
type: boolean
default: false
- variable: N8N_JWT_AUTH_HEADER
label: "JWT Auth Header (Leave empty for default)"
description: "The request header containing a signed JWT"
schema:
type: string
default: ""
- variable: N8N_JWT_AUTH_HEADER_VALUE_PREFIX
label: "JWT Auth Header Prefix to strip (Leave empty for default)"
description: "Optional. The request header value prefix to strip"
schema:
type: string
default: ""
- variable: N8N_JWKS_URI
label: "JWT Set URI (Leave empty for default)"
description: "The URI to fetch JWK Set for JWT authentication"
schema:
type: string
default: ""
- variable: N8N_JWT_ISSUER
label: "JWT Issuer (Leave empty for default)"
description: "Optional. The expected JWT issuer"
schema:
type: string
default: ""
- variable: N8N_JWT_NAMESPACE
label: "JWT Namespace (Leave empty for default)"
description: "Optional. The expected JWT namespace"
schema:
type: string
default: ""
- variable: N8N_JWT_ALLOWED_TENANT
label: "JWT Allowed Tenant (Leave empty for default)"
description: "Optional. The allowed JWT tenant"
schema:
type: string
default: ""
- variable: N8N_JWT_ALLOWED_TENANT_KEY
label: "JWT Allowed Tenant Key (Leave empty for default)"
description: "Optional. The JWT tenant key name to inspect within the JWT namespace"
schema:
type: string
default: ""
- variable: endpoints
group: "Container Configuration"
label: "Endpoints"
schema:
additional_attrs: true
type: dict
attrs:
- variable: WEBHOOK_URL
label: "Webhook URL"
description: "Used to manually provide the Webhook URL when running n8n behind a reverse proxy"
schema:
type: string
default: ""
- variable: N8N_PAYLOAD_SIZE_MAX
label: "Max Payload Size (Leave empty for default)"
description: "The maximum payload size in MB"
schema:
type: int
- variable: N8N_METRICS
label: "Enable Metrics endpoint"
description: "Whether to enable the metrics endpoint"
schema:
type: boolean
default: false
- variable: N8N_METRICS_PREFIX
label: "Metrics Prefix (Leave empty for default)"
description: "Optional prefix to be used for metrics names"
schema:
type: string
default: ""
- variable: N8N_ENDPOINT_REST
label: "Rest Endpoint Path (Leave empty for default)"
description: "The path used for REST endpoint"
schema:
type: string
default: ""
- variable: N8N_ENDPOINT_WEBHOOK
label: "Webhook Endpoint Path (Leave empty for default)"
description: "The path used for webhook endpoint"
schema:
type: string
default: ""
- variable: N8N_ENDPOINT_WEBHOOK_TEST
label: "Test-Webhook Endpoint Path (Leave empty for default)"
description: "The path used for test-webhook endpoin"
schema:
type: string
default: ""
- variable: N8N_ENDPOINT_WEBHOOK_WAIT
label: "Waiting-Webhook Endpoint Path (Leave empty for default)"
description: "The path used for waiting-webhook endpoint"
schema:
type: string
default: ""
- variable: N8N_DISABLE_PRODUCTION_MAIN_PROCESS
label: "Disable Production Webhooks"
description: "Disable production webhooks from main process. This helps ensures no HTTP traffic load to main process when using webhook-specific processes"
schema:
type: boolean
default: false
- variable: N8N_SKIP_WEBHOOK_DEREGISTRATION_SHUTDOWN
label: "Deregister External Webhooks"
description: "Deregister webhooks on external services only when workflows are deactivated"
schema:
type: boolean
default: false
- variable: credentials
group: "Container Configuration"
label: "Credentials"
schema:
additional_attrs: true
type: dict
attrs:
- variable: CREDENTIALS_OVERWRITE_DATA
label: "Credentianls Overwrites (Leave empty for default)"
description: "Overwrites for credentials"
schema:
type: string
default: ""
- variable: CREDENTIALS_OVERWRITE_ENDPOINT
label: "Credentials Overwrite Endpoint (Leave empty for default)"
description: "The API endpoint to fetch credentials"
schema:
type: string
default: ""
- variable: CREDENTIALS_DEFAULT_NAME
label: "Credentials Default Name (Leave empty for default)"
description: "The default name for credentials"
schema:
type: string
default: ""
- variable: logs
group: "Container Configuration"
label: "Logs"
schema:
additional_attrs: true
type: dict
attrs:
- variable: N8N_LOG_LEVEL
label: "Log Level"
description: "Log output level"
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "info"
description: "Info"
- value: "warn"
description: "Warn"
- value: "error"
description: "Error"
- value: "verbose"
description: "Verbose"
- value: "debug"
description: "Debug"
- variable: N8N_LOG_OUTPUT
label: "Log Output"
description: "Where to output logs"
schema:
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "console"
description: "Console"
- value: "file"
description: "File"
- value: "console,file"
description: "Console and File"
- variable: N8N_LOG_FILE_COUNT_MAX
label: "Max Log File Count (Leave empty for default)"
description: "Max number of log files to keep"
schema:
type: int
- variable: N8N_LOG_FILE_SIZE_MAX
label: "Max Log File Size (Leave empty for default)"
description: "Max size of each log file in MB"
schema:
type: int
# Include{containerConfig}
- variable: service
group: "Networking and Services"
label: "Configure Service(s)"
schema:
additional_attrs: true
type: dict
attrs:
- variable: main
label: "Main Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 5678
required: true
- variable: advanced
label: "Show Advanced settings"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- value: TCP
description: "TCP"
- value: "UDP"
description: "UDP"
- variable: nodePort
label: "Node Port (Optional)"
description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer"
schema:
type: int
min: 9000
max: 65535
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 5678
- variable: serviceexpert
group: "Networking and Services"
label: "Show Expert Config"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostNetwork
group: "Networking and Services"
label: "Host-Networking (Complicated)"
schema:
type: boolean
default: false
# Include{serviceExpert}
# Include{serviceList}
- variable: persistence
label: "Integrated Persistent Storage"
description: "Integrated Persistent Storage"
group: "Storage and Persistence"
schema:
additional_attrs: true
type: dict
attrs:
- variable: data
label: "App Data Storage"
description: "Stores the Application Data."
schema:
additional_attrs: true
type: dict
attrs:
- variable: type
label: "Type of Storage"
description: "Sets the persistence type, Anything other than PVC could break rollback!"
schema:
type: string
default: "simplePVC"
enum:
- value: "simplePVC"
description: "PVC (simple)"
- value: "simpleHP"
description: "HostPath (simple)"
- value: "emptyDir"
description: "emptyDir"
- value: "pvc"
description: "pvc"
- value: "hostPath"
description: "hostPath"
# Include{persistenceBasic}
- variable: hostPath
label: "hostPath"
description: "Path inside the container the storage is mounted"
schema:
show_if: [["type", "=", "hostPath"]]
type: hostpath
- variable: medium
label: "EmptyDir Medium"
schema:
show_if: [["type", "=", "emptyDir"]]
type: string
default: ""
enum:
- value: ""
description: "Default"
- value: "Memory"
description: "Memory"
# Include{persistenceAdvanced}
# Include{persistenceList}
- variable: ingress
label: ""
group: "Ingress"
schema:
additional_attrs: true
type: dict
attrs:
- variable: main
label: "Main Ingress"
schema:
additional_attrs: true
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
- variable: advancedSecurity
label: "Show Advanced Security Settings"
group: "Security and Permissions"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: securityContext
label: "Security Context"
schema:
additional_attrs: true
type: dict
attrs:
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
- variable: podSecurityContext
group: "Security and Permissions"
label: "Pod Security Context"
schema:
additional_attrs: true
type: dict
attrs:
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 568
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 1000
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
File diff suppressed because one or more lines are too long
+166
View File
@@ -0,0 +1,166 @@
{{/* Define the configmap */}}
{{- define "n8n.configmap" -}}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: n8n-config
data:
{{/* Workflows */}}
{{- if .Values.workflows.WORKFLOWS_DEFAULT_NAME }}
WORKFLOWS_DEFAULT_NAME: {{ .Values.workflows.WORKFLOWS_DEFAULT_NAME | quote }}
{{- end }}
{{/* Security */}}
{{- if .Values.security.N8N_AUTH_EXCLUDE_ENDPOINTS }}
N8N_AUTH_EXCLUDE_ENDPOINTS: {{ .Values.security.N8N_AUTH_EXCLUDE_ENDPOINTS | quote }}
{{- end }}
{{- if .Values.security.N8N_BASIC_AUTH_ACTIVE }}
N8N_BASIC_AUTH_ACTIVE: {{ .Values.security.N8N_BASIC_AUTH_ACTIVE | quote }}
{{- end }}
{{- if .Values.security.N8N_BASIC_AUTH_USER }}
N8N_BASIC_AUTH_USER: {{ .Values.security.N8N_BASIC_AUTH_USER | quote }}
{{- end }}
{{- if .Values.security.N8N_BASIC_AUTH_PASSWORD }}
N8N_BASIC_AUTH_PASSWORD: {{ .Values.security.N8N_BASIC_AUTH_PASSWORD | quote }}
{{- end }}
{{- if .Values.security.N8N_BASIC_AUTH_HASH }}
N8N_BASIC_AUTH_HASH: {{ .Values.security.N8N_BASIC_AUTH_HASH | quote }}
{{- end }}
{{- if .Values.security.N8N_JWT_AUTH_ACTIVE }}
N8N_JWT_AUTH_ACTIVE: {{ .Values.security.N8N_JWT_AUTH_ACTIVE | quote }}
{{- end }}
{{- if .Values.security.N8N_JWT_AUTH_HEADER }}
N8N_JWT_AUTH_HEADER: {{ .Values.security.N8N_JWT_AUTH_HEADER | quote }}
{{- end }}
{{- if .Values.security.N8N_JWT_AUTH_HEADER_VALUE_PREFIX }}
N8N_JWT_AUTH_HEADER_VALUE_PREFIX: {{ .Values.security.N8N_JWT_AUTH_HEADER_VALUE_PREFIX | quote }}
{{- end }}
{{- if .Values.security.N8N_JWKS_URI }}
N8N_JWKS_URI: {{ .Values.security.N8N_JWKS_URI | quote }}
{{- end }}
{{- if .Values.security.N8N_JWT_ISSUER }}
N8N_JWT_ISSUER: {{ .Values.security.N8N_JWT_ISSUER | quote }}
{{- end }}
{{- if .Values.security.N8N_JWT_NAMESPACE }}
N8N_JWT_NAMESPACE: {{ .Values.security.N8N_JWT_NAMESPACE | quote }}
{{- end }}
{{- if .Values.security.N8N_JWT_ALLOWED_TENANT }}
N8N_JWT_ALLOWED_TENANT: {{ .Values.security.N8N_JWT_ALLOWED_TENANT | quote }}
{{- end }}
{{- if .Values.security.N8N_JWT_ALLOWED_TENANT_KEY }}
N8N_JWT_ALLOWED_TENANT_KEY: {{ .Values.security.N8N_JWT_ALLOWED_TENANT_KEY | quote }}
{{- end }}
{{/* Logs */}}
{{- if .Values.logs.N8N_LOG_LEVEL }}
N8N_LOG_LEVEL: {{ .Values.logs.N8N_LOG_LEVEL | quote }}
{{- end }}
{{- if .Values.logs.N8N_LOG_OUTPUT }}
N8N_LOG_OUTPUT: {{ .Values.logs.N8N_LOG_OUTPUT | quote }}
{{- end }}
{{- if .Values.logs.N8N_LOG_FILE_COUNT_MAX }}
N8N_LOG_FILE_COUNT_MAX: {{ .Values.logs.N8N_LOG_FILE_COUNT_MAX | quote }}
{{- end }}
{{- if .Values.logs.N8N_LOG_FILE_SIZE_MAX }}
N8N_LOG_FILE_SIZE_MAX: {{ .Values.logs.N8N_LOG_FILE_SIZE_MAX | quote }}
{{- end }}
{{- if .Values.logs.N8N_LOG_FILE_LOCATION }}
N8N_LOG_FILE_LOCATION: {{ .Values.logs.N8N_LOG_FILE_LOCATION | quote }}
{{- end }}
{{/* Executions */}}
{{- if .Values.executions.EXECUTIONS_PROCESS }}
EXECUTIONS_PROCESS: {{ .Values.executions.EXECUTIONS_PROCESS | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_MODE }}
EXECUTIONS_MODE: {{ .Values.executions.EXECUTIONS_MODE | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_TIMEOUT }}
EXECUTIONS_TIMEOUT: {{ .Values.executions.EXECUTIONS_TIMEOUT | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_TIMEOUT_MAX }}
EXECUTIONS_TIMEOUT_MAX: {{ .Values.executions.EXECUTIONS_TIMEOUT_MAX | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_DATA_SAVE_ON_ERROR }}
EXECUTIONS_DATA_SAVE_ON_ERROR: {{ .Values.executions.EXECUTIONS_DATA_SAVE_ON_ERROR | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_DATA_SAVE_ON_SUCCESS }}
EXECUTIONS_DATA_SAVE_ON_SUCCESS: {{ .Values.executions.EXECUTIONS_DATA_SAVE_ON_SUCCESS | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_DATA_SAVE_ON_PROGRESS }}
EXECUTIONS_DATA_SAVE_ON_PROGRESS: {{ .Values.executions.EXECUTIONS_DATA_SAVE_ON_PROGRESS | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS }}
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS: {{ .Values.executions.EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_DATA_PRUNE }}
EXECUTIONS_DATA_PRUNE: {{ .Values.executions.EXECUTIONS_DATA_PRUNE | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_DATA_MAX_AGE }}
EXECUTIONS_DATA_MAX_AGE: {{ .Values.executions.EXECUTIONS_DATA_MAX_AGE | quote }}
{{- end }}
{{- if .Values.executions.EXECUTIONS_DATA_PRUNE_TIMEOUT }}
EXECUTIONS_DATA_PRUNE_TIMEOUT: {{ .Values.executions.EXECUTIONS_DATA_PRUNE_TIMEOUT | quote }}
{{- end }}
{{/* Endpoints */}}
{{- if .Values.endpoints.WEBHOOK_URL }}
WEBHOOK_URL: {{ .Values.endpoints.WEBHOOK_URL | quote }}
{{- end }}
{{- if .Values.endpoints.N8N_PAYLOAD_SIZE_MAX }}
N8N_PAYLOAD_SIZE_MAX: {{ .Values.endpoints.N8N_PAYLOAD_SIZE_MAX | quote }}
{{- end }}
{{- if .Values.endpoints.N8N_METRICS }}
N8N_METRICS: {{ .Values.endpoints.N8N_METRICS | quote }}
{{- end }}
{{- if .Values.endpoints.N8N_METRICS_PREFIX }}
N8N_METRICS_PREFIX: {{ .Values.endpoints.N8N_METRICS_PREFIX | quote }}
{{- end }}
{{- if .Values.endpoints.N8N_ENDPOINT_REST }}
N8N_ENDPOINT_REST: {{ .Values.endpoints.N8N_ENDPOINT_REST | quote }}
{{- end }}
{{- if .Values.endpoints.N8N_ENDPOINT_WEBHOOK }}
N8N_ENDPOINT_WEBHOOK: {{ .Values.endpoints.N8N_ENDPOINT_WEBHOOK | quote }}
{{- end }}
{{- if .Values.endpoints.N8N_ENDPOINT_WEBHOOK_TEST }}
N8N_ENDPOINT_WEBHOOK_TEST: {{ .Values.endpoints.N8N_ENDPOINT_WEBHOOK_TEST | quote }}
{{- end }}
{{- if .Values.endpoints.N8N_ENDPOINT_WEBHOOK_WAIT }}
N8N_ENDPOINT_WEBHOOK_WAIT: {{ .Values.endpoints.N8N_ENDPOINT_WEBHOOK_WAIT | quote }}
{{- end }}
{{- if .Values.endpoints.N8N_DISABLE_PRODUCTION_MAIN_PROCESS }}
N8N_DISABLE_PRODUCTION_MAIN_PROCESS: {{ .Values.endpoints.N8N_DISABLE_PRODUCTION_MAIN_PROCESS | quote }}
{{- end }}
{{- if .Values.endpoints.N8N_SKIP_WEBHOOK_DEREGISTRATION_SHUTDOWN }}
N8N_SKIP_WEBHOOK_DEREGISTRATION_SHUTDOWN: {{ .Values.endpoints.N8N_SKIP_WEBHOOK_DEREGISTRATION_SHUTDOWN | quote }}
{{- end }}
{{/* Credentials */}}
{{- if .Values.credentials.CREDENTIALS_OVERWRITE_DATA }}
CREDENTIALS_OVERWRITE_DATA: {{ .Values.credentials.CREDENTIALS_OVERWRITE_DATA | quote }}
{{- end }}
{{- if .Values.credentials.CREDENTIALS_OVERWRITE_ENDPOINT }}
CREDENTIALS_OVERWRITE_ENDPOINT: {{ .Values.credentials.CREDENTIALS_OVERWRITE_ENDPOINT | quote }}
{{- end }}
{{- if .Values.credentials.CREDENTIALS_DEFAULT_NAME }}
CREDENTIALS_DEFAULT_NAME: {{ .Values.credentials.CREDENTIALS_DEFAULT_NAME | quote }}
{{- end }}
{{/* Deployment */}}
{{- if .Values.deployment.N8N_HOST }}
N8N_HOST: {{ .Values.deployment.N8N_HOST | quote }}
{{- end }}
{{- if .Values.deployment.N8N_CONFIG_FILES }}
N8N_CONFIG_FILES: {{ .Values.deployment.N8N_CONFIG_FILES | quote }}
{{- end }}
{{- if .Values.deployment.N8N_DISABLE_UI }}
N8N_DISABLE_UI: {{ .Values.deployment.N8N_DISABLE_UI | quote }}
{{- end }}
{{- if .Values.deployment.N8N_ENCRYPTION_KEY }}
N8N_ENCRYPTION_KEY: {{ .Values.deployment.N8N_ENCRYPTION_KEY | quote }}
{{- end }}
{{- if .Values.deployment.N8N_PERSONALIZATION_ENABLED }}
N8N_PERSONALIZATION_ENABLED: {{ .Values.deployment.N8N_PERSONALIZATION_ENABLED | quote }}
{{- end }}
{{- if .Values.deployment.N8N_VERSION_NOTIFICATIONS_ENABLED }}
N8N_VERSION_NOTIFICATIONS_ENABLED: {{ .Values.deployment.N8N_VERSION_NOTIFICATIONS_ENABLED | quote }}
{{- end }}
{{- if .Values.deployment.N8N_DIAGNOSTICS_ENABLED }}
N8N_DIAGNOSTICS_ENABLED: {{ .Values.deployment.N8N_DIAGNOSTICS_ENABLED | quote }}
{{- end }}
{{- end -}}
+9
View File
@@ -0,0 +1,9 @@
{{/* Make sure all variables are set properly */}}
{{- include "common.setup" . }}
{{/* Render configmap for n8n */}}
{{- include "n8n.configmap" . }}
{{/* Render the templates */}}
{{ include "common.postSetup" . }}
+134
View File
@@ -0,0 +1,134 @@
image:
repository: tccr.io/truecharts/n8n
tag: v0.160.0@sha256:2141ab9bb8e8a820fa07a20ae9bdd1a7c5f2102926238ab7f3aa4a3c9e175ebe
pullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
podSecurityContext:
runAsUser: 0
fsGroup: 1000
env:
TZ: UTC
GENERIC_TIMEZONE: "{{ .Values.env.TZ }}"
DB_TYPE: "postgresdb"
DB_POSTGRESDB_USER: "{{ .Values.postgresql.postgresqlUsername }}"
DB_POSTGRESDB_DATABASE: "{{ .Values.postgresql.postgresqlDatabase }}"
DB_POSTGRESDB_PORT: 5432
QUEUE_BULL_REDIS_PORT: 6379
N8N_USER_FOLDER: "/data"
probes:
liveness:
path: "/healthz"
readiness:
path: "/healthz"
startup:
path: "/healthz"
credentials: {}
# CREDENTIALS_OVERWRITE_DATA: ""
# CREDENTIALS_OVERWRITE_ENDPOINT: ""
# CREDENTIALS_DEFAULT_NAME: "My credentials"
deployment:
N8N_HOST: "localhost"
# N8N_CONFIG_FILES: ""
# N8N_ENCRYPTION_KEY: ""
# N8N_DIAGNOSTICS_ENABLED: true
# N8N_DISABLE_UI: false
# N8N_PERSONALIZATION_ENABLED: true
# N8N_VERSION_NOTIFICATIONS_ENABLED: true
endpoints: {}
# WEBHOOK_URL: ""
# N8N_PAYLOAD_SIZE_MAX: 16
# N8N_METRICS: false
# N8N_METRICS_PREFIX: "n8n_"
# N8N_ENDPOINT_REST: "rest"
# N8N_ENDPOINT_WEBHOOK: "webhook"
# N8N_ENDPOINT_WEBHOOK_TEST: "webhook-test"
# N8N_ENDPOINT_WEBHOOK_WAIT: "webhook-waiting"
# N8N_DISABLE_PRODUCTION_MAIN_PROCESS: false
# N8N_SKIP_WEBHOOK_DEREGISTRATION_SHUTDOWN: false
executions: {}
# EXECUTIONS_PROCESS: "own"
# EXECUTIONS_MODE: "regular"
# EXECUTIONS_TIMEOUT: "-1"
# EXECUTIONS_TIMEOUT_MAX: 3600
# EXECUTIONS_DATA_SAVE_ON_ERROR: "all"
# EXECUTIONS_DATA_SAVE_ON_SUCCESS: "all"
# EXECUTIONS_DATA_SAVE_ON_PROGRESS: false
# EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS: false
# EXECUTIONS_DATA_PRUNE: false
# EXECUTIONS_DATA_MAX_AGE: 336
# EXECUTIONS_DATA_PRUNE_TIMEOUT: 3600
logs:
# N8N_LOG_LEVEL: "info"
# N8N_LOG_OUTPUT: "console"
# N8N_LOG_FILE_COUNT_MAX: 100
# N8N_LOG_FILE_SIZE_MAX: 16
N8N_LOG_FILE_LOCATION: "/data/logs"
security: {}
# N8N_AUTH_EXCLUDE_ENDPOINTS: ""
# N8N_BASIC_AUTH_ACTIVE: false
# N8N_BASIC_AUTH_USER: ""
# N8N_BASIC_AUTH_PASSWORD: ""
# N8N_BASIC_AUTH_HASH: false
# N8N_JWT_AUTH_ACTIVE: false
# N8N_JWT_AUTH_HEADER: ""
# N8N_JWT_AUTH_HEADER_VALUE_PREFIX: ""
# N8N_JWKS_URI: ""
# N8N_JWT_ISSUER: ""
# N8N_JWT_NAMESPACE: ""
# N8N_JWT_ALLOWED_TENANT: ""
# N8N_JWT_ALLOWED_TENANT_KEY: ""
workflows: {}
# WORKFLOWS_DEFAULT_NAME: "My workflow"
envFrom:
- configMapRef:
name: n8n-config
envValueFrom:
DB_POSTGRESDB_HOST:
secretKeyRef:
name: dbcreds
key: plainhost
DB_POSTGRESDB_PASSWORD:
secretKeyRef:
name: dbcreds
key: postgresql-password
QUEUE_BULL_REDIS_HOST:
secretKeyRef:
name: rediscreds
key: plainhost
QUEUE_BULL_REDIS_PASSWORD:
secretKeyRef:
name: rediscreds
key: redis-password
service:
main:
ports:
main:
port: 5678
targetPort: 5678
persistence:
data:
enabled: true
mountPath: "/data"
# Enabled redis
redis:
enabled: true
existingSecret: "rediscreds"
# Enabled postgres
postgresql:
enabled: true
existingSecret: "dbcreds"
postgresqlUsername: n8n
postgresqlDatabase: n8n