diff --git a/incubator/docspell/0.0.1/CHANGELOG.md b/incubator/docspell/0.0.1/CHANGELOG.md new file mode 100644 index 0000000000..cc1f27955f --- /dev/null +++ b/incubator/docspell/0.0.1/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + + + +## [docspell-0.0.1]docspell-0.0.1 (2022-10-08) + +### Feat + +- add docspell ([#3999](https://github.com/truecharts/charts/issues/3999)) + + \ No newline at end of file diff --git a/incubator/docspell/0.0.1/Chart.lock b/incubator/docspell/0.0.1/Chart.lock new file mode 100644 index 0000000000..c38131cfc0 --- /dev/null +++ b/incubator/docspell/0.0.1/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.6.11 +- name: postgresql + repository: https://charts.truecharts.org/ + version: 8.0.88 +- name: solr + repository: https://charts.truecharts.org/ + version: 0.0.59 +digest: sha256:9b1c35e1dc3de9b02f7e706340458fa08c5a8b6846b2ff07f68ac91382febeed +generated: "2022-10-08T23:47:00.352656045Z" diff --git a/incubator/docspell/0.0.1/Chart.yaml b/incubator/docspell/0.0.1/Chart.yaml new file mode 100644 index 0000000000..9de7885140 --- /dev/null +++ b/incubator/docspell/0.0.1/Chart.yaml @@ -0,0 +1,36 @@ +apiVersion: v2 +appVersion: "0.38.0" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.6.11 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.truecharts.org/ + version: 8.0.88 + - condition: solr.enabled + name: solr + repository: https://charts.truecharts.org/ + version: 0.0.59 +description: Docspell is a personal document organizer. +home: https://truecharts.org/docs/charts/incubator/docspell +icon: https://truecharts.org/img/hotlink-ok/chart-icons/docspell.png +keywords: + - docs +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: docspell +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/docspell + - https://github.com/eikek/docspell + - https://docspell.org/docs/install/docker/ + - https://docspell.org/docs/configure/defaults/ +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - productivity + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/incubator/docspell/0.0.1/README.md b/incubator/docspell/0.0.1/README.md new file mode 100644 index 0000000000..ee15515f29 --- /dev/null +++ b/incubator/docspell/0.0.1/README.md @@ -0,0 +1,110 @@ +# docspell + +Docspell is a personal document organizer. + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [docspell](https://truecharts.org/docs/charts/incubator/docspell) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.truecharts.org/ | postgresql | 8.0.88 | +| https://charts.truecharts.org/ | solr | 0.0.59 | +| https://library-charts.truecharts.org | common | 10.6.11 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `docspell` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install docspell TrueCharts/docspell +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `docspell` deployment + +```console +helm uninstall docspell +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install docspell \ + --set env.TZ="America/New York" \ + TrueCharts/docspell +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install docspell TrueCharts/docspell -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +--- + +All Rights Reserved - The TrueCharts Project diff --git a/incubator/docspell/0.0.1/app-readme.md b/incubator/docspell/0.0.1/app-readme.md new file mode 100644 index 0000000000..a8f9f267d8 --- /dev/null +++ b/incubator/docspell/0.0.1/app-readme.md @@ -0,0 +1,8 @@ +Docspell is a personal document organizer. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/incubator/docspell](https://truecharts.org/docs/charts/incubator/docspell) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/incubator/docspell/0.0.1/charts/common-10.6.11.tgz b/incubator/docspell/0.0.1/charts/common-10.6.11.tgz new file mode 100644 index 0000000000..4fa62b15b1 Binary files /dev/null and b/incubator/docspell/0.0.1/charts/common-10.6.11.tgz differ diff --git a/incubator/docspell/0.0.1/charts/postgresql-8.0.88.tgz b/incubator/docspell/0.0.1/charts/postgresql-8.0.88.tgz new file mode 100644 index 0000000000..f2b0731118 Binary files /dev/null and b/incubator/docspell/0.0.1/charts/postgresql-8.0.88.tgz differ diff --git a/incubator/docspell/0.0.1/charts/solr-0.0.59.tgz b/incubator/docspell/0.0.1/charts/solr-0.0.59.tgz new file mode 100644 index 0000000000..c680ea9827 Binary files /dev/null and b/incubator/docspell/0.0.1/charts/solr-0.0.59.tgz differ diff --git a/incubator/docspell/0.0.1/ix_values.yaml b/incubator/docspell/0.0.1/ix_values.yaml new file mode 100644 index 0000000000..f1a8eee382 --- /dev/null +++ b/incubator/docspell/0.0.1/ix_values.yaml @@ -0,0 +1,539 @@ +image: + repository: tccr.io/truecharts/docspell-server + tag: v0.38.0@sha256:bcd3f651f83fc482a0bd8bb2606870146376656a438e7b8fe051f3496d405f3d + pullPolicy: IfNotPresent + +joexImage: + repository: tccr.io/truecharts/docspell-joex + tag: v0.38.0@sha256:16f2c2e32d8b20f8cdd1b62ae458ded2bbb16ed7bdc2727dc4a7624298ef7021 + pullPolicy: IfNotPresent + +dscImage: + repository: tccr.io/truecharts/docspell-dsc + tag: v0.38.0@sha256:86c8100df78f47f00291de0c2395917427f6caacbf896691559296c0a805a7a9 + pullPolicy: IfNotPresent + +args: + - /opt/server.conf + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +dsc: + # -- You need to enable integration endpoint with HTTP Header in rest server + # -- If you enable allowed IPs you also need 127.0.0.1 as an entry there + enabled: false + # move | delete + imported_action: move + not_match_glob: "**/.*" + match_glob: "" + language: "" + tag: "" + +rest_server: + # -- App name, shows on the top right corner + app_name: Docspell + base_url: "" + logging: + # -- The format for the log messages. Can be one of: + # -- Json | Logfmt | Fancy | Plain + format: Fancy + # -- The minimum level to log. From lowest to highest: + # -- Trace | Debug | Info | Warn | Error + minimum_level: Warn + levels: + # -- Override the log level of specific loggers + docspell: Info + flywaydb: Info + binny: Info + http4s: Info + server_opts: + # -- Enable HTTP2 + enable_http2: false + # -- Maximum allowed connections + max_connections: 1024 + # -- Timeout for waiting for the first output of the response + response_timeout: 45s + # -- This is a hard limit to restrict the size of a batch that is returned when searching for items. + max_item_page_size: 200 + # -- The number of characters to return for each item notes when searching. + max_note_length: 180 + # -- This defines whether the classification form in the collective settings is displayed or not. + show_classification_settings: true + auth: + # -- How long a authentication token is valid + session_valid: 5 minutes + remember_me: + enabled: true + # -- How long the remember me cookie/token is valid. + valid: 30 days + download_all: + # -- How many files to allow in a zip. + max_files: 500 + # -- The maximum (uncompressed) size of the zip file contents. + max_size: 1400M + openid: + - enabled: false + display: Keycloak + provider: + provider_id: keycloak + client_id: docspell + client_secret: example-secret-439e-bf06-911e4cdd56a6 + scope: profile + authorize_url: http://localhost:8080/auth/realms/home/protocol/openid-connect/auth + token_url: http://localhost:8080/auth/realms/home/protocol/openid-connect/token + user_url: "" + logout_url: http://localhost:8080/auth/realms/home/protocol/openid-connect/logout + sign_key: b64:anVzdC1hLXRlc3Q= + sig_algo: RS512 + collective_key: lookup:docspell_collective + user_key: preferred_username + - enabled: false + display: Github + provider: + provider_id: github + client_id: + client_secret: + scope: "" + authorize_url: https://github.com/login/oauth/authorize + token_url: https://github.com/login/oauth/access_token + user_url: https://api.github.com/user + logout_url: "" + sign_key: "" + sig_algo: RS256 + collective_key: fixed:demo + user_key: login + oidc_auto_redirect: true + integration_endpoint: + enabled: false + # -- The priority to use when submitting files through this endpoint. + # low | high + priority: low + # -- The name used for the item "source" property when uploaded through this endpoint. + source_name: integration + allowed_ips: + enabled: false + ips: + - "127.0.0.1" + http_basic_auth: + enabled: false + realm: Docspell Integration + user: docspell-int + password: docspell-int + http_header: + enabled: false + header_name: Docspell-Integration + header_value: some-secret + admin_endpoint: + # -- Disables endpoint if empty + secret: "" + full_text_search: + solr: + # -- Used to tell solr when to commit the data + commit_within: 1000 + # -- If true, logs request and response bodies + log_verbose: false + def_type: lucene + # -- The default combiner for tokens. One of AND | OR + q_op: OR + backend: + # -- Enable or disable debugging for e-mail related functionality + mail_debug: false + database_schema: + # -- Whether to run main database migrations. + run_main_migrations: true + # -- Whether to run the fixup migrations. + run_fixup_migrations: true + # -- Use with care. This repairs all migrations in the database by updating their checksums and removing failed migrations. + repair_schema: false + signup: + # -- The mode defines if new users can signup or not. + # open | invite | closed + mode: open + # -- This is the period an invitation token is considered valid. + invite_time: 3 days + files: + # -- Defines the chunk size (in bytes) used to store the files. + chunk_size: 524288 + # -- The file content types that are considered valid. + valid_mime_types: [] + # database | minio | filesystem + default_store: database + stores: + database: + enabled: true + minio: + enabled: false + endpoint: http://localhost:9000 + access_key: access_key + secret_key: secret_key + bucket: docspell + # -- Highly NOT recommended + filesystem: + enabled: false + directory: /documents + addons: + # TODO: Check how exactly addons work. There are mentions of docker daemon + enabled: false + # -- Whether installing addons requiring network should be allowed or not. + allow_impure: true + # -- Define patterns of urls that are allowed to install addons from. + allowed_urls: + - "*" + # -- Define patterns of urls that are denied to install addons from. + denied_urls: [] + +joex: + logging: + # -- The format for the log messages. Can be one of: + # -- Json | Logfmt | Fancy | Plain + format: Fancy + # -- The minimum level to log. From lowest to highest: + # -- Trace | Debug | Info | Warn | Error + minimum_level: Warn + levels: + # -- Override the log level of specific loggers + docspell: Info + flywaydb: Info + binny: Info + http4s: Info + database_schema: + # -- Whether to run main database migrations. + run_main_migrations: false + # -- Whether to run the fixup migrations. + run_fixup_migrations: true + # -- Use with care. This repairs all migrations in the database by updating their checksums and removing failed migrations. + repair_schema: false + # -- Enable or disable debugging for e-mail related functionality. This applies to both sending and receiving mails. + mail_debug: false + send_mail: + # -- This is used as the List-Id e-mail header when mails are sent from docspell to its users + list_id: "" + scheduler: + # -- Number of processing allowed in parallel. + pool_size: 1 + # -- A counting scheme determines the ratio of how high and low priority jobs are run. + counting_scheme: 4,1 + # -- How many times a failed job should be retried until it enters failed state. + retries: 2 + # -- The delay until the next try is performed for a failed job. + retry_delay: 1 minute + # -- The queue size of log statements from a job. + log_buffer_size: 500 + # -- If no job is left in the queue, the scheduler will wait until a notify is requested. + wakeup_period: 30 minutes + periodic_scheduler: + # -- A fallback to start looking for due periodic tasks regularly. + wakeup_period: 10 minutes + user_tasks: + scan_mailbox: + # -- A limit of how many folders to scan through. + max_folders: 50 + # -- How many mails (headers only) to retrieve in one chunk. + mail_chunk_size: 50 + # -- A limit on how many mails to process in one job run. + max_mails: 500 + house_keeping: + # -- When the house keeping tasks execute. + schedule: Sun *-*-* 00:00:00 UTC + # -- This task removes invitation keys that have been created but not used. + cleanup_invites: + # -- Whether this task is enabled. + enabled: true + # -- The minimum age of invites to be deleted. + older_than: 30 days + # -- This task removes expired remember-me tokens. + cleanup_remember_me: + # -- Whether this task is enabled. + enabled: true + # -- The minimum age of tokens to be deleted. + older_than: 30 days + # -- Jobs store their log output in the database. + cleanup_jobs: + # -- Whether this task is enabled. + enabled: true + # -- The minimum age of jobs to delete. + older_than: 30 days + # -- This defines how many jobs are deleted in one transaction. + delete_batch: 100 + # -- Zip files created for downloading multiple files are cached and can be cleared periodically. + cleanup_downloads: + # -- Whether this task is enabled. + enabled: true + # -- The minimum age of a download file to be deleted. + older_than: 14 days + # -- Removes node entries that are not reachable anymore. + check_nodes: + # -- Whether this task is enabled. + enabled: true + # -- How often the node must be unreachable, before it is removed. + min_not_found: 2 + # -- Checks all files against their checksum + integrity_check: + enabled: true + # -- A periodic task to check for new releases of docspell. + update_check: + # -- Whether to enable this task + enabled: false + # -- Sends the mail without checking the latest release. + test_run: false + # -- When the update check should execute. + schedule: "Sun *-*-* 00:00:00 UTC" + # -- An account id in form of `collective/user` + sender_account: "" + # -- The SMTP connection id that should be used for sending the mail. + smtp_id: "" + # -- A list of recipient e-mail addresses. + recipients: [] + # -- The subject of the mail. + subject: Docspell {{ latestVersion }} is available + # -- The body of the mail. + body: | + Hello, + + You are currently running Docspell {{ currentVersion }}. Version *{{ latestVersion }}* + is now available, which was released on {{ releasedAt }}. Check the release page at + + + + Have a nice day! + + Docspell Update Check + # -- Configuration of text extraction + extraction: + pdf: + min_text_length: 500 + preview: + # -- When rendering a pdf page, use this dpi. + dpi: 32 + ocr: + # -- Images greater than this size are skipped. + max_image_size: 14000000 + page_range: + # -- Defines what pages to process. + begin: 10 + # -- The ghostscript command. + ghostscript: + command: + program: gs + args: + - -dNOPAUSE + - -dBATCH + - -dSAFER + - -sDEVICE=tiffscaled8 + - "-sOutputFile={{outfile}}" + - "{{infile}}" + timeout: 5 minutes + working_dir: /tmp/docspell-extraction + # -- The unpaper command. + unpaper: + command: + program: unpaper + args: + - "{{infile}}" + - "{{outfile}}" + timeout: 5 minutes + # -- The tesseract command. + tesseract: + command: + program: tesseract + args: + - "{{file}}" + - stdout + - -l + - "{{lang}}" + timeout: 5 minutes + text_analysis: + # -- Maximum length of text to be analyzed. + max_length: 0 + working_dir: /tmp/docspell-analysis + nlp: + # -- The mode for configuring NLP models + # -- full | basic | regexonly | disabled + mode: full + clear_interval: 15 minutes + # -- Restricts proposals for due dates. + max_due_date_years: 10 + regex_ner: + # -- Whether to enable custom NER annotation. + max_entries: 1000 + file_cache_time: 1 minute + classification: + # -- Whether to enable classification globally. + enabled: true + # -- This limit and `text-analysis.max-length` define how much memory is required. + item_count: 600 + # -- Enclose regexps in triple quotes. + classifiers: + useSplitWords: true + splitWordsTokenizerRegexp: '"""[\p{L}][\p{L}0-9]*|(?:\$ ?)?[0-9]+(?:\.[0-9]{2})?%?|\s+|."""' + splitWordsIgnoreRegexp: '"""\s+"""' + useSplitPrefixSuffixNGrams: true + maxNGramLeng: 4 + minNGramLeng: 1 + splitWordShape: chris4 + intern: true + # -- Configuration for converting files into PDFs. + convert: + # -- The chunk size used when storing files. + chunk_size: 524288 + # -- A string used to change the filename of the converted pdf file. + converted_filename_part: converted + # -- When reading images, this is the maximum size. + max_image_size: 14000000 + markdown: + # -- The CSS that is used to style the resulting HTML. + internal_css: "body { padding: 2em 5em; }" + wkhtmlpdf: + command: + program: wkhtmltopdf + args: + - -s + - A4 + - --encoding + - "{{enconding}}" + - --load-error-handling + - ignore + - --load-media-error-handling + - ignore + - "-" + - "{{outfile}}" + timeout: 2 minutes + working_dir: /tmp/docspell-convert + tesseract: + command: + program: tesseract + args: + - "{{infile}}" + - out + - -l + - "{{lang}}" + - pdf + - txt + timeout: 5 minutes + working_dir: /tmp/docspell-convert + unoconv: + command: + program: unoconv + args: + - -f + - pdf + - -o + - "{{outfile}}" + - "{{infile}}" + timeout: 5 minutes + working_dir: /tmp/docspell-convert + ocrmypdf: + enabled: true + command: + program: ocrmypdf + args: + - -l + - "{{lang}}" + - --skip-text + - --deskew + - -j + - "1" + - "{{infile}}" + - "{{outfile}}" + timeout: 5 minutes + working_dir: /tmp/docspell-convert + decrypt_pdf: + enabled: true + passwords: [] + files: + # -- Defines the chunk size (in bytes) used to store the files. + chunk_size: 524288 + # -- The file content types that are considered valid. + valid_mime_types: [] + # database | minio | filesystem + default_store: database + stores: + database: + enabled: true + minio: + enabled: false + endpoint: http://localhost:9000 + access_key: access_key + secret_key: secret_key + bucket: docspell + # -- Highly NOT recommended + filesystem: + enabled: false + directory: /documents + full_text_search: + solr: + # -- Used to tell solr when to commit the data + commit_within: 1000 + # -- If true, logs request and response bodies + log_verbose: false + def_type: lucene + # -- The default combiner for tokens. One of AND | OR + q_op: OR + migration: + index_all_chunk: 10 + addons: + # TODO: Check TODO above for addons + working_dir: /tmp/docspell-addons + cache_dir: /tmp/docspell-addons-cache + executor_config: + runner: trivial + fail_fast: true + run_timeout: 15 minutes + +service: + main: + ports: + main: + port: 10320 + protocol: HTTP + joex: + enabled: true + type: ClusterIP + ports: + joex: + enabled: true + port: 10321 + protocol: HTTP + +persistence: + server: + enabled: true + type: secret + readOnly: true + defaultMode: "0600" + objectName: '{{ include "tc.common.names.fullname" . }}-server-secret' + mountPath: /opt/server.conf + subPath: server.conf + joex: + enabled: true + type: secret + noMount: true + readOnly: true + defaultMode: "0600" + objectName: '{{ include "tc.common.names.fullname" . }}-joex-secret' + mountPath: /opt/joex.conf + subPath: joex.conf + import: + enabled: true + noMount: true + mountPath: /import +postgresql: + enabled: true + existingSecret: dbcreds + postgresqlUsername: docspell + postgresqlDatabase: docspell + +solr: + enabled: true + existingSecret: solrcreds + solrCores: docspell + solrUsername: docspell + +portal: + enabled: true diff --git a/incubator/docspell/0.0.1/questions.yaml b/incubator/docspell/0.0.1/questions.yaml new file mode 100644 index 0000000000..d2b9eea192 --- /dev/null +++ b/incubator/docspell/0.0.1/questions.yaml @@ -0,0 +1,3364 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - 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 + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + 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" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: dsc + group: Container Configuration + label: DSC Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable DSC (Document Importer) + description: You need to enable integration endpoint with HTTP header as well in Rest Server configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: imported_action + label: Action to perform on imported documents + schema: + type: string + default: move + enum: + - value: move + description: move + - value: delete + description: delete + - variable: not_match_glob + label: Not match glob pattern + schema: + type: string + default: "**/.*" + - variable: match_glob + label: Match glob pattern + schema: + type: string + default: "" + - variable: language + label: Language + schema: + type: string + default: "" + - variable: tag + label: Tag + schema: + type: string + default: "" + - variable: rest_server + group: Container Configuration + label: Rest Server Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: app_name + label: App Name + description: App name, shows on the top right corner + schema: + type: string + default: Docspell + - variable: base_url + label: Base URL + description: This is the base URL this application is deployed to. + schema: + type: string + default: "" + - variable: server_opts + label: Server Options + schema: + additional_attrs: true + type: dict + attrs: + - variable: enable_http2 + label: Enable HTTP2 + schema: + type: boolean + default: false + - variable: max_connections + label: Max Connections + schema: + type: int + default: 1024 + - variable: response_timeout + label: Response Timeout + schema: + type: string + default: 45s + - variable: max_item_page_size + label: Max Item Page Size + description: This is a hard limit to restrict the size of a batch that is returned when searching for items. + schema: + type: int + default: 200 + - variable: max_note_length + label: Max Note Length + description: The number of characters to return for each item notes when searching. + schema: + type: int + default: 180 + - variable: show_classification_settings + label: Show Classification Settings + description: This defines whether the classification form in the collective settings is displayed or not. + schema: + type: boolean + default: true + - variable: auth + label: Auth + schema: + additional_attrs: true + type: dict + attrs: + - variable: session_valid + label: Session Valid + description: How long a authentication token is valid + schema: + type: string + default: 5 minutes + - variable: remember_me + label: Remember Me + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Remember Me + schema: + type: boolean + default: true + - variable: valid + label: Valid + description: How long the remember me cookie/token is valid. + schema: + type: string + default: 30 days + - variable: download_all + label: Download + schema: + additional_attrs: true + type: dict + attrs: + - variable: max_files + label: Max Files + description: How many files to allow in a zip + schema: + type: int + default: 500 + - variable: max_size + label: Max Size + description: The maximum (uncompressed) size of the zip file contents. + schema: + type: string + default: 1400M + - variable: integration_endpoint + label: Integration Endpoint + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Integration Endpoint + schema: + type: boolean + default: false + - variable: priority + label: Priority + description: The priority to use when submitting files through this endpoint. + schema: + type: string + default: low + enum: + - value: low + description: low + - value: high + description: high + - variable: source_name + label: Source Name + description: The name used for the item "source" property when uploaded through this endpoint. + schema: + type: string + default: integration + - variable: allowed_ips + label: Allowed IPS + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Allowed IPs + schema: + type: boolean + default: false + - variable: ips + label: IPs + schema: + type: list + # TODO: Check how it's rendered on GUI + default: ["127.0.0.1"] + items: + - variable: ipEntry + label: IP Entry + schema: + type: string + required: true + default: "" + - variable: http_basic_auth + label: HTTP Basic Auth + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable HTTP Basic Auth + schema: + type: boolean + default: false + - variable: realm + label: Realm + schema: + type: string + default: "" + - variable: user + label: User + schema: + type: string + default: "" + - variable: password + label: Password + schema: + type: string + private: true + default: "" + - variable: http_header + label: HTTP Header + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable HTTP Header + schema: + type: boolean + default: false + - variable: header_name + label: Header Name + schema: + type: string + default: Docspell-Integration + - variable: header_value + label: Header Value + schema: + type: string + private: true + default: some-secret + - variable: admin_endpoint + label: Admin Endpoint + schema: + additional_attrs: true + type: dict + attrs: + - variable: secret + label: Secret + description: Disables endpoint if empty + schema: + type: string + private: true + default: "" + - variable: backend + label: Backend + schema: + additional_attrs: true + type: dict + attrs: + - variable: mail_debug + label: Mail Debug + description: Enable or disable debugging for e-mail related functionality + schema: + type: boolean + default: false + - variable: database_schema + label: Database Schema + schema: + additional_attrs: true + type: dict + attrs: + - variable: run_main_migrations + label: Run Main Migrations + description: Whether to run main database migrations. + schema: + type: boolean + default: true + - variable: run_fixup_migrations + label: Run Fixup Migrations + description: Whether to run fixup database migrations. + schema: + type: boolean + default: true + - variable: repair_schema + label: Repair Schema + description: Use with care. This repairs all migrations in the database by updating their checksums and removing failed migrations. + schema: + type: boolean + default: false + - variable: signup + label: Signup + schema: + additional_attrs: true + type: dict + attrs: + - variable: mode + label: Mode + description: The mode defines if new users can signup or not. + schema: + type: string + default: open + enum: + - value: open + description: open + - value: invite + description: invite + - value: closed + description: closed + - variable: invite_time + label: Invite Time + description: This is the period an invitation token is considered valid. + schema: + type: string + default: 3 days + - variable: joex + group: Container Configuration + label: Job Executor Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: database_schema + label: Database Schema + schema: + additional_attrs: true + type: dict + attrs: + - variable: run_main_migrations + label: Run Main Migrations + description: Whether to run main database migrations. + schema: + type: boolean + default: true + - variable: run_fixup_migrations + label: Run Fixup Migrations + description: Whether to run fixup database migrations. + schema: + type: boolean + default: true + - variable: repair_schema + label: Repair Schema + description: Use with care. This repairs all migrations in the database by updating their checksums and removing failed migrations. + schema: + type: boolean + default: false + - variable: mail_debug + label: Mail Debug + description: Enable or disable debugging for e-mail related functionality. This applies to both sending and receiving mails. + schema: + type: boolean + default: false + - variable: send_mail + label: Send Mail + schema: + additional_attrs: true + type: dict + attrs: + - variable: list_id + label: List ID + description: Enable or disable debugging for e-mail related functionality. This applies to both sending and receiving mails. + schema: + type: string + default: "" + - variable: scheduler + label: Scheduler + schema: + additional_attrs: true + type: dict + attrs: + - variable: pool_size + label: Pool Size + description: Number of processing allowed in parallel. + schema: + type: int + default: 1 + - variable: counting_scheme + label: Counting Scheme + description: A counting scheme determines the ratio of how high and low priority jobs are run. + schema: + type: string + default: 4,1 + - variable: retries + label: Retries + description: How many times a failed job should be retried until it enters failed state. + schema: + type: int + default: 2 + - variable: retry_delay + label: Retry Delay + description: The delay until the next try is performed for a failed job. + schema: + type: string + default: 1 minute + - variable: log_buffer_size + label: Log Buffer Size + description: The queue size of log statements from a job. + schema: + type: int + default: 500 + - variable: wakeup_period + label: Wakeup Period + description: If no job is left in the queue, the scheduler will wait until a notify is requested. + schema: + type: string + default: 30 minutes + - variable: periodic_scheduler + label: Periodic Scheduler + schema: + additional_attrs: true + type: dict + attrs: + - variable: wakeup_period + label: Wakeup Period + description: A fallback to start looking for due periodic tasks regularly. + schema: + type: string + default: 10 minutes + - variable: user_tasks + label: User Tasks + schema: + additional_attrs: true + type: dict + attrs: + - variable: scan_mailbox + label: Scan Mailbox + schema: + additional_attrs: true + type: dict + attrs: + - variable: max_folders + label: Max Folders + description: A limit of how many folders to scan through. + schema: + type: int + default: 50 + - variable: mail_chunk_size + label: Mail Chunk Size + description: How many mails (headers only) to retrieve in one chunk. + schema: + type: int + default: 50 + - variable: max_mails + label: Max Mails + description: A limit on how many mails to process in one job run. + schema: + type: int + default: 500 + - variable: house_keeping + label: House Keeping + schema: + additional_attrs: true + type: dict + attrs: + - variable: schedule + label: Schedule + description: When the house keeping tasks execute. + schema: + type: string + default: Sun *-*-* 00:00:00 UTC + - variable: cleanup_invites + label: Cleanup Invites + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Invite Cleanup + schema: + type: boolean + default: true + - variable: older_than + label: Older Than + description: The minimum age of invites to be deleted. + schema: + type: string + default: 30 days + - variable: cleanup_remember_me + label: Cleanup Remember Me + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Remember Me Cleanup + schema: + type: boolean + default: true + - variable: older_than + label: Older Than + description: The minimum age of tokens to be deleted. + schema: + type: string + default: 30 days + - variable: cleanup_jobs + label: Cleanup Jobs + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Jobs Cleanup + schema: + type: boolean + default: true + - variable: older_than + label: Older Than + description: The minimum age of jobs to delete. + schema: + type: string + default: 30 days + - variable: delete_batch + label: Delete Batch + description: This defines how many jobs are deleted in one transaction. + schema: + type: int + default: 100 + - variable: cleanup_downloads + label: Cleanup Downloads + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Downloads Cleanup + schema: + type: boolean + default: true + - variable: older_than + label: Older Than + description: The minimum age of a download file to be deleted. + schema: + type: string + default: 14 days + - variable: check_nodes + label: Check Nodes + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Check Nodes + schema: + type: boolean + default: true + - variable: min_not_found + label: Min Not Found + description: How often the node must be unreachable, before it is removed. + schema: + type: int + default: 2 + - variable: integrity_check + label: Integrity Check + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Integrity Check + schema: + type: boolean + default: true + - variable: TZ + label: Timezone + group: Container Configuration + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + group: Container Configuration + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - 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: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - 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: 10320 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - 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: 10320 + - variable: joex + label: Joex Service + description: Joex Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: ClusterIP + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: joex + label: Joex 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: 10321 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - 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: 10321 + - 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 + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: ClusterFirstWithHostNet + description: ClusterFirstWithHostNet + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: TCP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: import + label: Import Storage + description: Mounted to DSC container at /import + 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: Host Path (simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + 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 + - variable: size + label: Size quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) hostPath Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) storageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "002" + - 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 + - variable: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: 0 + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + + - variable: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 10m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 50Mi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: hostPath + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: horizontalPodAutoscaler + group: Advanced + label: (Advanced) Horizontal Pod Autoscaler + schema: + type: list + default: [] + items: + - variable: hpaEntry + label: HPA Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: Target + description: Deployment name, Defaults to Main Deployment + schema: + type: string + default: "" + - variable: minReplicas + label: Minimum Replicas + schema: + type: int + default: 1 + - variable: maxReplicas + label: Maximum Replicas + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: Target CPU Utilization Percentage + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: Target Memory Utilization Percentage + schema: + type: int + default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: Sock5 Server + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + default: "" + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/incubator/docspell/0.0.1/templates/_dsc.tpl b/incubator/docspell/0.0.1/templates/_dsc.tpl new file mode 100644 index 0000000000..8fbfe5080f --- /dev/null +++ b/incubator/docspell/0.0.1/templates/_dsc.tpl @@ -0,0 +1,41 @@ +{{/* Define the dsc container */}} +{{- define "docspell.dsc" -}} +image: {{ .Values.dscImage.repository }}:{{ .Values.dscImage.tag }} +imagePullPolicy: {{ .Values.dscImage.pullPolicy }} +securityContext: + runAsUser: {{ .Values.podSecurityContext.runAsUser }} + runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} + readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }} + runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} +volumeMounts: + - name: import + mountPath: /import +command: + - dsc + - {{ printf "%v:%v" "http://localhost" .Values.service.main.ports.main.port | quote }} + - watch + - --recursive + - --integration + - --header + - {{ printf "%v:%v" .Values.rest_server.integration_endpoint.http_header.header_name .Values.rest_server.integration_endpoint.http_header.header_value | quote }} + {{- if .Values.dsc.language }} + - --language {{ .Values.dsc.language }} + {{- end }} + {{- if .Values.dsc.tag }} + - --tag {{ .Values.dsc.tag }} + {{- end }} + {{- if .Values.dsc.not_match_glob }} + - --not-matches + - {{ .Values.dsc.not_match_glob | quote }} + {{- end }} + {{- if .Values.dsc.match_glob }} + - --matches + - {{ .Values.dsc.match_glob | quote }} + {{- end }} + {{- if eq .Values.dsc.imported_action "delete" }} + - --delete + {{- else if eq .Values.dsc.imported_action "move" }} + - --move {{ .Values.persistence.import.mountPath }}/imported + {{- end }} + - {{ .Values.persistence.import.mountPath }}/docs +{{- end -}} diff --git a/incubator/docspell/0.0.1/templates/_joex.tpl b/incubator/docspell/0.0.1/templates/_joex.tpl new file mode 100644 index 0000000000..38ed233eda --- /dev/null +++ b/incubator/docspell/0.0.1/templates/_joex.tpl @@ -0,0 +1,46 @@ +{{/* Define the joex container */}} +{{- define "docspell.joex" -}} +image: {{ .Values.joexImage.repository }}:{{ .Values.joexImage.tag }} +imagePullPolicy: {{ .Values.joexImage.pullPolicy }} +securityContext: + runAsUser: {{ .Values.podSecurityContext.runAsUser }} + runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} + readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }} + runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} +args: + - /opt/joex.conf +volumeMounts: + - name: joex + mountPath: /opt/joex.conf + subPath: joex.conf + readOnly: true +ports: + - containerPort: {{ .Values.service.joex.ports.joex.port }} + name: joex +{{/* TODO: Find out a path for healthchecks and come back to enable probes +readinessProbe: + httpGet: + path: / + port: {{ .Values.service.joex.ports.joex.port }} + initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }} +livenessProbe: + httpGet: + path: / + port: {{ .Values.service.joex.ports.joex.port }} + initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }} +startupProbe: + httpGet: + path: / + port: {{ .Values.service.joex.ports.joex.port }} + initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }} + timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }} + periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }} + failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }} +*/}} +{{- end -}} diff --git a/incubator/docspell/0.0.1/templates/_secret.tpl b/incubator/docspell/0.0.1/templates/_secret.tpl new file mode 100644 index 0000000000..14be9d97e8 --- /dev/null +++ b/incubator/docspell/0.0.1/templates/_secret.tpl @@ -0,0 +1,616 @@ +{{/* Define the secret */}} +{{- define "docspell.secret" -}} + +{{- $serverSecretName := printf "%s-server-secret" (include "tc.common.names.fullname" .) }} +{{- $joexSecretName := printf "%s-joex-secret" (include "tc.common.names.fullname" .) }} +{{- $storeSecretName := printf "%s-store-secret" (include "tc.common.names.fullname" .) }} + +{{- $server := .Values.rest_server -}} +{{- $serverID := printf "server-%v" (randAlphaNum 10) -}} + +{{- $joex := .Values.joex -}} +{{- $joexID := printf "joex-%v" (randAlphaNum 10) -}} + +{{- $server_secret := "" }} +{{- with (lookup "v1" "Secret" .Release.Namespace $storeSecretName) }} +{{- $server_secret = (index .data "server_secret") }} +{{- else }} +{{- $server_secret = printf "b64:%v" (randAlphaNum 32 | b64enc) }} +{{- end }} + +{{- $new_invite_password := "" }} +{{- with (lookup "v1" "Secret" .Release.Namespace $storeSecretName) }} +{{- $new_invite_password = (index .data "new_invite_password") }} +{{- else }} +{{- $new_invite_password = randAlphaNum 32 | b64enc }} +{{- end }} + +--- + +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ $storeSecretName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +stringData: + server_secret: {{ $server_secret }} + new_invite_password: {{ $new_invite_password }} +--- +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ $serverSecretName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +stringData: + server.conf: | + docspell.server { + app-name = {{ $server.app_name | quote }} + app-id = {{ $serverID | quote }} + base-url = {{ $server.base_url | default (printf "%v:%v" "http://localhost" .Values.service.main.ports.main.port) | quote }} + internal-url = {{ printf "%v:%v" "http://localhost" .Values.service.main.ports.main.port | quote }} + {{- $logging := $server.logging }} + logging { + format = {{ $logging.format | quote }} + minimum-level = {{ $logging.minimum_level | quote }} + levels = { + "docspell" = {{ $logging.levels.docspell | quote }} + "org.flywaydb" = {{ $logging.levels.flywaydb | quote }} + "binny" = {{ $logging.levels.binny | quote }} + "org.http4s" = {{ $logging.levels.http4s | quote }} + } + } + bind { + address = "0.0.0.0" + port = {{ .Values.service.main.ports.main.port }} + } + {{- $server_opts := $server.server_opts }} + server-options { + enable-http-2 = {{ $server_opts.enable_http2 }} + max-connections = {{ $server_opts.max_connections }} + response-timeout = {{ $server_opts.response_timeout }} + } + max-item-page-size = {{ $server.max_item_page_size }} + max-note-length = {{ $server.max_note_length }} + show-classification-settings = {{ $server.show_classification_settings }} + {{- $auth := $server.auth }} + auth { + server-secret = {{ $server_secret | quote }} + session-valid = {{ $auth.session_valid | quote }} + remember-me { + enabled = {{ $auth.remember_me.enabled }} + valid = {{ $auth.remember_me.valid | quote }} + } + } + {{- $download_all := $server.download_all }} + download-all { + max-files = {{ $download_all.max_files }} + max-size = {{ $download_all.max_size }} + } + {{- $openid := $server.openid }} + openid = + [ + {{- range initial $openid }} + { + enabled = {{ .enabled }}, + display = {{ .display | quote }} + provider = { + provider-id = {{ .provider.provider_id | quote }}, + client-id = {{ .provider.client_id | quote }}, + client-secret = {{ .provider.client_secret | quote }}, + scope = {{ .provider.scope | quote }}, + authorize-url = {{ .provider.authorize_url | quote }}, + token-url = {{ .provider.token_url | quote }}, + {{- with .provider.user_url }} + user-url = {{ . | quote }}, + {{- end }} + {{- with .provider.logout_url }} + logout-url = {{ . | quote }}, + {{- end }} + sign-key = {{ .provider.sign_key | quote }}, + sig-algo = {{ .provider.sig_algo | quote }} + }, + collective-key = {{ .collective_key | quote }}, + user-key = {{ .user_key | quote }} + }, + {{- end }} + {{- with last $openid }} + { + enabled = {{ .enabled }}, + display = {{ .display | quote }} + provider = { + provider-id = {{ .provider.provider_id | quote }}, + client-id = {{ .provider.client_id | quote }}, + client-secret = {{ .provider.client_secret | quote }}, + scope = {{ .provider.scope | quote }}, + authorize-url = {{ .provider.authorize_url | quote }}, + token-url = {{ .provider.token_url | quote }}, + {{- with .provider.user_url }} + user-url = {{ . | quote }}, + {{- end }} + {{- with .provider.logout_url }} + logout-url = {{ . | quote }}, + {{- end }} + sign-key = {{ .provider.sign_key | quote }}, + sig-algo = {{ .provider.sig_algo | quote }} + }, + collective-key = {{ .collective_key | quote }}, + user-key = {{ .user_key | quote }} + } + {{- end }} + ] + oidc-auto-redirect = {{ $server.oidc_auto_redirect }} + {{- $integration_endpoint := $server.integration_endpoint }} + integration-endpoint { + enabled = {{ $integration_endpoint.enabled }} + priority = {{ $integration_endpoint.priority | quote }} + source-name = {{ $integration_endpoint.source_name | quote }} + allowed-ips { + enabled = {{ $integration_endpoint.allowed_ips.enabled }} + ips = [ + {{- range initial $integration_endpoint.allowed_ips.ips }} + {{ . | quote }}, + {{- end }} + {{ last $integration_endpoint.allowed_ips.ips | quote }} + ] + } + http-basic { + enabled = {{ $integration_endpoint.http_basic_auth.enabled }} + realm = {{ $integration_endpoint.http_basic_auth.realm | quote }} + user = {{ $integration_endpoint.http_basic_auth.user | quote }} + password = {{ $integration_endpoint.http_basic_auth.password | quote }} + } + http-header { + enabled = {{ $integration_endpoint.http_header.enabled }} + header-name = {{ $integration_endpoint.http_header.header_name | quote }} + header-value = {{ $integration_endpoint.http_header.header_value | quote }} + } + } + admin-endpoint { + secret = {{ $server.admin_endpoint.secret | quote }} + } + {{- $full_text_search := $server.full_text_search }} + full-text-search { + enabled = true + backend = "solr" + solr = { + url = {{ printf "http://%v:%v@%v-solr:8983/%v" .Values.solr.solrUsername (.Values.solr.solrPassword | trimAll "\"") .Release.Name .Values.solr.solrCores | quote }} + commit-within = {{ $full_text_search.solr.commit_within }} + log-verbose = {{ $full_text_search.solr.log_verbose }} + def-type = {{ $full_text_search.solr.def_type | quote }} + q-op = {{ $full_text_search.solr.q_op | quote }} + } + postgresql = { + use-default-connection = false + jdbc { + url = {{ printf "jdbc:postgresql://%v-%v:5432/%v" .Release.Name "postgresql" .Values.postgresql.postgresqlDatabase | quote }} + user = {{ .Values.postgresql.postgresqlUsername | quote }} + password = {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | quote }} + } + pg-config = { + } + pg-query-parser = "websearch_to_tsquery" + pg-rank-normalization = [ 4 ] + } + } + {{- $backend := $server.backend }} + backend { + mail-debug = {{ $backend.mail_debug }} + jdbc { + url = {{ printf "jdbc:postgresql://%v-%v:5432/%v" .Release.Name "postgresql" .Values.postgresql.postgresqlDatabase | quote }} + user = {{ .Values.postgresql.postgresqlUsername | quote }} + password = {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | quote }} + } + {{- $database_schema := $server.backend.database_schema }} + database-schema = { + run-main-migrations = {{ $database_schema.run_main_migrations }} + run-fixup-migrations = {{ $database_schema.run_fixup_migrations }} + repair-schema = {{ $database_schema.repair_schema }} + } + {{- $signup := $server.backend.signup }} + signup { + mode = {{ $signup.mode | quote }} + new-invite-password = {{ $new_invite_password | quote }} + invite-time = {{ $signup.invite_time | quote }} + } + + {{- $files := $server.backend.files }} + files { + chunk-size = {{ $files.chunk_size }} + valid-mime-types = [ + {{- range initial $files.valid_mime_types }} + {{ . | quote }}, + {{- end }} + {{ last $files.valid_mime_types | quote }} + ] + default-store = {{ $files.default_store | quote }} + stores = { + database = { + enabled = {{ $files.stores.database.enabled }} + type = "default-database" + } + filesystem = { + enabled = {{ $files.stores.filesystem.enabled }} + type = "file-system" + directory = {{ $files.stores.filesystem.directory | quote }} + } + minio = { + enabled = {{ $files.stores.minio.enabled }} + type = "s3" + endpoint = {{ $files.stores.minio.endpoint | quote }} + access-key = {{ $files.stores.minio.access_key | quote }} + secret-key = {{ $files.stores.minio.secret_key | quote }} + bucket = {{ $files.stores.minio.bucket | quote }} + } + } + } + {{- $addons := $server.addons }} + addons = { + enabled = {{ $addons.enabled }} + allow-impure = {{ $addons.allow_impure }} + allowed-urls = [ + {{- range initial $addons.allowed_urls }} + {{ . | quote }}, + {{- end }} + {{ last $addons.allowed_urls | quote }} + ] + denied-urls = [ + {{- range initial $addons.denied_urls }} + {{ . | quote }}, + {{- end }} + {{ last $addons.denied_urls | quote }} + ] + } + } + } +--- +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ $joexSecretName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +stringData: + joex.conf: | + docspell.joex { + app-id = {{ $joexID | quote }} + base-url = {{ printf "%v:%v" "http://localhost" .Values.service.joex.ports.joex.port | quote }} + bind { + address = "0.0.0.0" + port = {{ .Values.service.joex.ports.joex.port }} + } + {{- $logging := $joex.logging }} + logging { + format = {{ $logging.format | quote }} + minimum-level = {{ $logging.minimum_level | quote }} + levels = { + "docspell" = {{ $logging.levels.docspell | quote }} + "org.flywaydb" = {{ $logging.levels.flywaydb | quote }} + "binny" = {{ $logging.levels.binny | quote }} + "org.http4s" = {{ $logging.levels.http4s | quote }} + } + } + jdbc { + url = {{ printf "jdbc:postgresql://%v-%v:5432/%v" .Release.Name "postgresql" .Values.postgresql.postgresqlDatabase | quote }} + user = {{ .Values.postgresql.postgresqlUsername | quote }} + password = {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | quote }} + } + {{- $database_schema := $joex.database_schema }} + database-schema = { + run-main-migrations = {{ $database_schema.run_main_migrations }} + run-fixup-migrations = {{ $database_schema.run_fixup_migrations }} + repair-schema = {{ $database_schema.repair_schema }} + } + mail-debug = {{ $joex.mail_debug }} + send-mail { + list-id = {{ $joex.send_mail.list_id | quote }} + } + {{- $scheduler := $joex.scheduler }} + scheduler { + name = {{ $joexID | quote }} + pool-size = {{ $scheduler.pool_size }} + counting-scheme = {{ $scheduler.counting_scheme | quote }} + retries = {{ $scheduler.retries }} + retry-delay = {{ $scheduler.retry_delay | quote }} + log-buffer-size = {{ $scheduler.log_buffer_size }} + wakeup-period = {{ $scheduler.wakeup_period | quote }} + } + {{- $periodic_scheduler := $joex.periodic_scheduler }} + periodic-scheduler { + name = {{ $joexID | quote }} + wakeup-period = {{ $periodic_scheduler.wakeup_period | quote }} + } + {{- $user_tasks := $joex.user_tasks }} + user-tasks { + scan-mailbox { + max-folders = {{ $user_tasks.scan_mailbox.max_folders }} + mail-chunk-size = {{ $user_tasks.scan_mailbox.mail_chunk_size }} + max-mails = {{ $user_tasks.scan_mailbox.max_mails }} + } + } + {{- $house_keeping := $joex.house_keeping }} + house-keeping { + schedule = {{ $house_keeping.schedule | quote }} + cleanup-invites = { + enabled = {{ $house_keeping.cleanup_invites.enabled }} + older-than = {{ $house_keeping.cleanup_invites.older_than | quote }} + } + cleanup-remember-me = { + enabled = {{ $house_keeping.cleanup_remember_me.enabled }} + older-than = {{ $house_keeping.cleanup_remember_me.older_than | quote }} + } + cleanup-jobs = { + enabled = {{ $house_keeping.cleanup_jobs.enabled }} + older-than = {{ $house_keeping.cleanup_jobs.older_than | quote }} + delete-batch = {{ $house_keeping.cleanup_jobs.delete_batch | quote }} + } + cleanup-downloads = { + enabled = {{ $house_keeping.cleanup_downloads.enabled }} + older-than = {{ $house_keeping.cleanup_downloads.older_than | quote }} + } + check-nodes { + enabled = {{ $house_keeping.check_nodes.enabled }} + min-not-found = {{ $house_keeping.check_nodes.min_not_found }} + } + integrity-check { + enabled = {{ $house_keeping.integrity_check.enabled }} + } + } + update-check { + enabled = {{ $house_keeping.update_check.enabled }} + test-run = {{ $house_keeping.update_check.test_run }} + schedule = {{ $house_keeping.update_check.schedule | quote }} + sender-account = {{ $house_keeping.update_check.sender_account | quote }} + smtp-id = {{ $house_keeping.update_check.smtp_id | quote }} + recipients = [ + {{- range initial $house_keeping.update_check.recipients }} + {{ . | quote }}, + {{- end }} + {{ last $house_keeping.update_check.recipients | quote }} + ] + subject = {{ $house_keeping.update_check.subject | quote }} + body = {{ $house_keeping.update_check.body | quote }} + } + {{- $extraction := $joex.extraction }} + extraction { + pdf { + min-text-len = {{ $extraction.pdf.min_text_length }} + } + preview { + dpi = {{ $extraction.preview.dpi }} + } + ocr { + max-image-size = {{ $extraction.ocr.max_image_size }} + page-range { + begin = {{ $extraction.ocr.page_range.begin }} + } + ghostscript { + command { + program = {{ $extraction.ghostscript.command.program | quote }} + args = [ + {{- range initial $extraction.ghostscript.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $extraction.ghostscript.command.args | quote }} + ] + timeout = {{ $extraction.ghostscript.command.timeout | quote }} + } + working-dir = {{ $extraction.ghostscript.working_dir | quote }} + } + unpaper { + command { + program = {{ $extraction.unpaper.command.program | quote }} + args = [ + {{- range initial $extraction.unpaper.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $extraction.unpaper.command.args | quote }} + ] + timeout = {{ $extraction.unpaper.command.timeout | quote }} + } + } + tesseract { + command { + program = {{ $extraction.tesseract.command.program | quote }} + args = [ + {{- range initial $extraction.tesseract.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $extraction.tesseract.command.args | quote }} + ] + timeout = {{ $extraction.tesseract.command.timeout | quote }} + } + } + } + } + {{- $text_analysis := $joex.text_analysis }} + text-analysis { + max-length = {{ $text_analysis.max_length }} + working-dir = {{ $text_analysis.working_dir | quote }} + nlp { + mode = {{ $text_analysis.nlp.mode }} + clear-interval = {{ $text_analysis.nlp.clear_interval | quote }} + max-due-date-years = {{ $text_analysis.nlp.max_due_date_years }} + regex-ner { + max-entries = {{ $text_analysis.nlp.regex_ner.max_entries }} + file-cache-time = {{ $text_analysis.nlp.regex_ner.file_cache_time }} + } + } + {{- $classification := $joex.classification }} + classification { + enabled = {{ $classification.enabled }} + item-count = {{ $classification.item_count }} + classifiers = [ + { + "useSplitWords" = "{{ $classification.classifiers.useSplitWords }}" + "splitWordsTokenizerRegexp" = {{ $classification.classifiers.splitWordsTokenizerRegexp }} + "splitWordsIgnoreRegexp" = {{ $classification.classifiers.splitWordsIgnoreRegexp }} + "useSplitPrefixSuffixNGrams" = "{{ $classification.classifiers.useSplitPrefixSuffixNGrams }}" + "maxNGramLeng" = "{{ $classification.classifiers.maxNGramLeng }}" + "minNGramLeng" = "{{ $classification.classifiers.minNGramLeng }}" + "splitWordShape" = "{{ $classification.classifiers.intern }}" + "intern" = "{{ $classification.classifiers.intern }}" + } + ] + } + } + {{- $convert := $joex.convert }} + convert { + chunk-size = {{ $convert.chunk_size }} + converted-filename-part = {{ $convert.converted_filename_part }} + max-image-size = {{ $convert.max_image_size }} + markdown { + internal-css = """ + {{ $convert.markdown.internal_css | quote }} + """ + } + wkhtmlpdf { + command = { + program = {{ $convert.wkhtmlpdf.command.program | quote }} + args = [ + {{- range initial $convert.wkhtmlpdf.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $convert.wkhtmlpdf.command.args | quote }} + ] + timeout = {{ $convert.wkhtmlpdf.command.timeout | quote }} + } + working-dir = {{ $convert.wkhtmlpdf.working_dir | quote }} + } + tesseract = { + command = { + program = {{ $convert.tesseract.command.program | quote }} + args = [ + {{- range initial $convert.tesseract.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $convert.tesseract.command.args | quote }} + ] + timeout = {{ $convert.tesseract.command.timeout | quote }} + } + working-dir = {{ $convert.tesseract.working_dir | quote }} + } + unoconv = { + command = { + program = {{ $convert.unoconv.command.program | quote }} + args = [ + {{- range initial $convert.unoconv.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $convert.unoconv.command.args | quote }} + ] + timeout = {{ $convert.tesseract.command.timeout | quote }} + } + working-dir = {{ $convert.unoconv.working_dir | quote }} + } + ocrmypdf = { + enabled = {{ $convert.ocrmypdf.enabled }} + command = { + program = {{ $convert.ocrmypdf.command.program | quote }} + args = [ + {{- range initial $convert.ocrmypdf.command.args }} + {{ . | quote }}, + {{- end }} + {{ last $convert.ocrmypdf.command.args | quote }} + ] + timeout = {{ $convert.ocrmypdf.command.timeout | quote }} + } + working-dir = {{ $convert.ocrmypdf.working_dir | quote }} + } + decrypt-pdf = { + enabled = {{ $convert.decrypt_pdf.enabled }} + passwords = [ + {{- range initial $convert.decrypt_pdf.passwords }} + {{ . | quote }}, + {{- end }} + {{ last $convert.decrypt_pdf.passwords | quote }} + ] + } + } + {{ $files := $joex.files }} + files { + chunk-size = {{ $files.chunk_size }} + valid-mime-types = [ + {{- range initial $files.valid_mime_types }} + {{ . | quote }}, + {{- end }} + {{ last $files.valid_mime_types | quote }} + ] + default-store = {{ $files.default_store | quote }} + stores = { + database = { + enabled = {{ $files.stores.database.enabled }} + type = "default-database" + } + filesystem = { + enabled = {{ $files.stores.filesystem.enabled }} + type = "file-system" + directory = {{ $files.stores.filesystem.directory | quote }} + } + minio = { + enabled = {{ $files.stores.minio.enabled }} + type = "s3" + endpoint = {{ $files.stores.minio.endpoint | quote }} + access-key = {{ $files.stores.minio.access_key | quote }} + secret-key = {{ $files.stores.minio.secret_key | quote }} + bucket = {{ $files.stores.minio.bucket | quote }} + } + } + } + {{- $full_text_search := $joex.full_text_search }} + full-text-search { + enabled = true + backend = "solr" + solr = { + url = {{ printf "http://%v:%v@%v-solr:8983/%v" .Values.solr.solrUsername (.Values.solr.solrPassword | trimAll "\"") .Release.Name .Values.solr.solrCores | quote }} + commit-within = {{ $full_text_search.solr.commit_within }} + log-verbose = {{ $full_text_search.solr.log_verbose }} + def-type = {{ $full_text_search.solr.def_type | quote }} + q-op = {{ $full_text_search.solr.q_op | quote }} + } + postgresql = { + use-default-connection = false + jdbc { + url = {{ printf "jdbc:postgresql://%v-%v:5432/%v" .Release.Name "postgresql" .Values.postgresql.postgresqlDatabase | quote }} + user = {{ .Values.postgresql.postgresqlUsername | quote }} + password = {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | quote }} + } + pg-config = { + } + pg-query-parser = "websearch_to_tsquery" + pg-rank-normalization = [ 4 ] + } + migration = { + index-all-chunk = {{ $full_text_search.migration.index_all_chunk }} + } + } + {{- $addons := $joex.addons }} + addons { + working-dir = {{ $addons.working_dir }} + cache-dir = {{ $addons.cache_dir }} + executor-config { + runner = {{ $addons.executor_config.runner }} + nspawn = { + enabled = false + sudo-binary = "sudo" + nspawn-binary = "systemd-nspawn" + container-wait = "100 millis" + } + fail-fast = {{ $addons.executor_config.fail_fast }} + run-timeout = {{ $addons.executor_config.run_timeout | quote }} + nix-runner { + nix-binary = "nix" + build-timeout = "15 minutes" + } + docker-runner { + docker-binary = "docker" + build-timeout = "15 minutes" + } + } + } + } +{{- end -}} diff --git a/incubator/docspell/0.0.1/templates/common.yaml b/incubator/docspell/0.0.1/templates/common.yaml new file mode 100644 index 0000000000..b04640b855 --- /dev/null +++ b/incubator/docspell/0.0.1/templates/common.yaml @@ -0,0 +1,13 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.common.loader.init" . }} + +{{/* Render secret */}} +{{- include "docspell.secret" . }} + +{{- $_ := set .Values.additionalContainers "joex" (include "docspell.joex" . | fromYaml) -}} +{{- if and .Values.dsc.enabled .Values.rest_server.integration_endpoint.enabled -}} +{{- $_ := set .Values.additionalContainers "dsc" (include "docspell.dsc" . | fromYaml) -}} +{{- end -}} + +{{/* Render the templates */}} +{{ include "tc.common.loader.apply" . }} diff --git a/incubator/docspell/0.0.1/values.yaml b/incubator/docspell/0.0.1/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/docspell/item.yaml b/incubator/docspell/item.yaml new file mode 100644 index 0000000000..1ecb286203 --- /dev/null +++ b/incubator/docspell/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/docspell.png +categories: +- productivity + diff --git a/incubator/fireflyiii-data-importer/0.0.1/CHANGELOG.md b/incubator/fireflyiii-data-importer/0.0.1/CHANGELOG.md new file mode 100644 index 0000000000..eada120c71 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/CHANGELOG.md @@ -0,0 +1,6 @@ +# Changelog + + + +## [fireflyiii-data-importer-0.0.1]fireflyiii-data-importer-0.0.1 (2022-10-08) + diff --git a/incubator/fireflyiii-data-importer/0.0.1/Chart.lock b/incubator/fireflyiii-data-importer/0.0.1/Chart.lock new file mode 100644 index 0000000000..f45803bd4d --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 10.6.11 +digest: sha256:b4a28b7604b153caed40b6ad96692b5ebcaac53d09ce9e190691162b59ce25c3 +generated: "2022-10-08T23:46:49.437496812Z" diff --git a/incubator/fireflyiii-data-importer/0.0.1/Chart.yaml b/incubator/fireflyiii-data-importer/0.0.1/Chart.yaml new file mode 100644 index 0000000000..7d2ad01ce7 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/Chart.yaml @@ -0,0 +1,34 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: fireflyiii-data-importer +version: 0.0.1 +appVersion: "0.9.16" +description: Firefly III Data Importer. +type: application +deprecated: false +home: https://truecharts.org/docs/charts/incubator/fireflyiii-data-importer +icon: https://truecharts.org/img/hotlink-ok/chart-icons/fireflyiii-data-importer.png +keywords: + - fireflyiii-data-importer + - data + - tool +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/fireflyiii-data-importer + - https://docs.firefly-iii.org/data-importer/install/configure/ + - https://hub.docker.com/r/fireflyiii/data-importer + - https://github.com/firefly-iii/data-importer +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 10.6.11 +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - financial + - tool + - data + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/incubator/fireflyiii-data-importer/0.0.1/README.md b/incubator/fireflyiii-data-importer/0.0.1/README.md new file mode 100644 index 0000000000..7e34c492b4 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/README.md @@ -0,0 +1,108 @@ +# fireflyiii-data-importer + +Firefly III Data Importer. + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. + +This readme is just an automatically generated general guide on installing our Helm Charts and Apps. +For more information, please click here: [fireflyiii-data-importer](https://truecharts.org/docs/charts/incubator/fireflyiii-data-importer) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Source Code + +* +* +* +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.truecharts.org | common | 10.6.11 | + +## Installing the Chart + +### TrueNAS SCALE + +To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App). + +### Helm + +To install the chart with the release name `fireflyiii-data-importer` + +```console +helm repo add TrueCharts https://charts.truecharts.org +helm repo update +helm install fireflyiii-data-importer TrueCharts/fireflyiii-data-importer +``` + +## Uninstall + +### TrueNAS SCALE + +**Upgrading, Rolling Back and Uninstalling the Chart** + +To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App). + +### Helm + +To uninstall the `fireflyiii-data-importer` deployment + +```console +helm uninstall fireflyiii-data-importer +``` + +## Configuration + +### Helm + +#### Available Settings + +Read through the values.yaml file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). + +#### Configure using the command line + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install fireflyiii-data-importer \ + --set env.TZ="America/New York" \ + TrueCharts/fireflyiii-data-importer +``` + +#### Configure using a yaml file + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install fireflyiii-data-importer TrueCharts/fireflyiii-data-importer -f values.yaml +``` + +#### Connecting to other charts + +If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide. + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/apps/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +--- + +All Rights Reserved - The TrueCharts Project diff --git a/incubator/fireflyiii-data-importer/0.0.1/app-readme.md b/incubator/fireflyiii-data-importer/0.0.1/app-readme.md new file mode 100644 index 0000000000..e99be46504 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/app-readme.md @@ -0,0 +1,8 @@ +Firefly III Data Importer. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/incubator/fireflyiii-data-importer](https://truecharts.org/docs/charts/incubator/fireflyiii-data-importer) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can! diff --git a/incubator/fireflyiii-data-importer/0.0.1/charts/common-10.6.11.tgz b/incubator/fireflyiii-data-importer/0.0.1/charts/common-10.6.11.tgz new file mode 100644 index 0000000000..4fa62b15b1 Binary files /dev/null and b/incubator/fireflyiii-data-importer/0.0.1/charts/common-10.6.11.tgz differ diff --git a/incubator/fireflyiii-data-importer/0.0.1/ix_values.yaml b/incubator/fireflyiii-data-importer/0.0.1/ix_values.yaml new file mode 100644 index 0000000000..fe501656b4 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/ix_values.yaml @@ -0,0 +1,36 @@ +image: + repository: tccr.io/truecharts/fireflyiii-fidi + pullPolicy: IfNotPresent + tag: 0.9.16@sha256:53462b22258af5dabe98919f6c0c4ebaf7bc22c597ba840320fc208f13c3a745 + +securityContext: + readOnlyRootFilesystem: false + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +secretEnv: + # User Defined + FIREFLY_III_ACCESS_TOKEN: "" + NORDIGEN_ID: "" + NORDIGEN_KEY: "" + SPECTRE_APP_ID: "" + SPECTRE_SECRET: "" + +env: + # User Defined + FIREFLY_III_URL: "" + VANITY_URL: "" + +service: + main: + ports: + main: + port: 10580 + protocol: HTTP + targetPort: 8080 + +portal: + enabled: true diff --git a/incubator/fireflyiii-data-importer/0.0.1/questions.yaml b/incubator/fireflyiii-data-importer/0.0.1/questions.yaml new file mode 100644 index 0000000000..adaed7abc8 --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/questions.yaml @@ -0,0 +1,2445 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: Controller + description: Configure Workload Deployment + - name: Container Configuration + description: Additional Container Configuration + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Documentation + description: Documentation +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: global + label: Global Settings + group: Controller + schema: + type: dict + hidden: true + attrs: + - variable: isSCALE + label: Flag this is SCALE + schema: + type: boolean + default: true + hidden: true + - 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 + required: true + enum: + - value: deployment + description: Deployment + - value: statefulset + description: Statefulset + - value: daemonset + description: Daemonset + default: deployment + - variable: replicas + description: Number of desired pod replicas + label: Desired Replicas + schema: + type: int + required: true + default: 1 + - variable: strategy + description: Please specify type of workload to deploy + label: (Advanced) Update Strategy + schema: + type: string + 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" + default: Recreate + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Controller Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Controller Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: customextraargs + group: Controller + label: "Extra Args" + description: "Do not click this unless you know what you are doing" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + - variable: TZ + label: Timezone + group: Container Configuration + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + group: Container Configuration + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: expertpodconf + group: Container Configuration + label: Show Expert Configuration + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: tty + label: Enable TTY + description: Determines whether containers in a pod runs with TTY enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: stdin + label: Enable STDIN + description: Determines whether containers in a pod runs with stdin enabled. By default pod has it disabled. + group: Workload Details + schema: + type: boolean + default: false + - variable: termination + group: Container Configuration + label: Termination settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: gracePeriodSeconds + label: Grace Period Seconds + schema: + type: int + default: 10 + - variable: podLabelsList + group: Container Configuration + label: Pod Labels + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: podAnnotationsList + group: Container Configuration + label: Pod Annotations + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: secretEnv + group: Container Configuration + label: Image Secrets + schema: + additional_attrs: true + type: dict + attrs: + - variable: FIREFLY_III_ACCESS_TOKEN + label: Firefly III Access Token + description: Access Token for Firefly III. + schema: + type: string + required: true + default: "" + - variable: NORDIGEN_ID + label: Nordigen ID + description: Your Nordigen Client ID. + schema: + type: string + default: "" + - variable: NORDIGEN_KEY + label: Nordigen Key + description: Your Nordigen Client SECRET. + schema: + type: string + private: true + default: "" + - variable: SPECTRE_APP_ID + label: Spectre App ID + description: Your Spectre / Salt Edge Client ID. + schema: + type: string + default: "" + - variable: SPECTRE_SECRET + label: Spectre Secret + description: Is your Spectre / Salt Edge Client secret. + schema: + type: string + private: true + default: "" + - variable: env + group: Container Configuration + label: Image Environment + schema: + additional_attrs: true + type: dict + attrs: + - variable: FIREFLY_III_URL + label: Firefly III URL + description: "Internal URL for Firefly III. `http(s)://` is needed." + schema: + type: string + required: true + default: "" + - variable: VANITY_URL + label: Vanity URL + description: "External URL for Firefly III. `http(s)://` is needed." + schema: + type: string + required: true + default: "" + - 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: + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - 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: 10580 + required: true + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: Enable the Port + schema: + type: boolean + hidden: true + default: true + - 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: 8080 + - 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 + - variable: externalInterfaces + description: Add External Interfaces + label: Add external Interfaces + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + show_subquestions_if: static + subquestions: + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + - variable: dnsPolicy + group: Networking and Services + label: dnsPolicy + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ClusterFirst + description: ClusterFirst + - value: ClusterFirstWithHostNet + description: ClusterFirstWithHostNet + - value: None + description: None + - variable: dnsConfig + label: DNS Configuration + group: Networking and Services + description: Specify custom DNS configuration which will be applied to the pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: nameservers + label: Name Servers + schema: + default: [] + type: list + items: + - variable: nameserver + label: Name Server + schema: + type: string + - variable: options + label: Options + schema: + default: [] + type: list + items: + - variable: option + label: Option Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: searches + label: Searches + schema: + default: [] + type: list + items: + - variable: search + label: Search Entry + schema: + type: string + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: TCP + enum: + - value: HTTP + description: HTTP + - value: HTTPS + description: HTTPS + - value: TCP + description: TCP + - value: UDP + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name (Optional) + description: "Not required, please set to config when mounting /config or temp when mounting /tmp" + schema: + type: string + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: simpleHP + enum: + - value: simplePVC + description: PVC (Simple) + - value: simpleHP + description: Host Path (Simple) + - value: emptyDir + description: emptyDir + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: setPermissionsSimple + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "simpleHP"]] + type: boolean + default: false + - variable: setPermissions + label: Automatic Permissions + description: Automatically set permissions on install + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPathSimple + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "simpleHP"]] + type: hostpath + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: hostPathType + label: (Advanced) Host Path Type + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: DirectoryOrCreate + description: DirectoryOrCreate + - value: Directory + description: Directory + - value: FileOrCreate + description: FileOrCreate + - value: File + description: File + - value: Socket + description: Socket + - value: CharDevice + description: CharDevice + - value: BlockDevice + description: BlockDevice + - variable: storageClass + label: (Advanced) StorageClass + description: "Warning: Anything other than SCALE-ZFS or empty will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: SCALE-ZFS + - variable: accessMode + label: (Advanced) Access Mode + description: Allow or disallow multiple PVC's writhing to the same PV + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: ReadWriteOnce + enum: + - value: ReadWriteOnce + description: ReadWriteOnce + - value: ReadOnlyMany + description: ReadOnlyMany + - value: ReadWriteMany + description: ReadWriteMany + - variable: advanced + label: Show Advanced Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: (Advanced) Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: expert + label: Show Expert Configuration Options + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enableFixedMiddlewares + description: These middlewares enforce a number of best practices. + label: Enable Default Middlewares + schema: + type: boolean + default: true + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: labelsList + label: Labels + schema: + type: list + default: [] + items: + - variable: labelItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: annotationsList + label: Annotations + schema: + type: list + default: [] + items: + - variable: annotationItem + label: Label + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: service + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: Select TrueNAS SCALE Certificate + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: Traefik Entrypoint + description: Entrypoint used by Traefik when using Traefik as Ingress Provider + schema: + type: string + default: websecure + required: true + - variable: middlewares + label: Traefik Middlewares + description: Add previously created Traefik Middlewares to this Ingress + schema: + type: list + default: [] + items: + - variable: name + label: Name + schema: + type: string + default: "" + required: true + - variable: security + label: Container Security Settings + group: Security and Permissions + schema: + type: dict + additional_attrs: true + attrs: + - variable: editsecurity + label: Change PUID / UMASK values + description: By enabling this you override default set values. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "002" + - 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 + - variable: capabilities + label: Capabilities + schema: + additional_attrs: true + type: dict + attrs: + - variable: drop + label: Drop Capability + schema: + type: list + default: [] + items: + - variable: dropEntry + label: "" + schema: + type: string + - variable: add + label: Add Capability + schema: + type: list + default: [] + items: + - variable: addEntry + label: "" + schema: + type: string + - 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: 0 + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + + - variable: advancedresources + label: Set Custom Resource Limits/Requests (Advanced) + group: Resources and Devices + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: resources + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 10m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/docs/manual/SCALE%20Apps/indepth/validation" + schema: + type: string + default: 50Mi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: hostPath + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + # Specify GPU configuration + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: horizontalPodAutoscaler + group: Advanced + label: (Advanced) Horizontal Pod Autoscaler + schema: + type: list + default: [] + items: + - variable: hpaEntry + label: HPA Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: target + label: Target + description: Deployment name, Defaults to Main Deployment + schema: + type: string + default: "" + - variable: minReplicas + label: Minimum Replicas + schema: + type: int + default: 1 + - variable: maxReplicas + label: Maximum Replicas + schema: + type: int + default: 5 + - variable: targetCPUUtilizationPercentage + label: Target CPU Utilization Percentage + schema: + type: int + default: 80 + - variable: targetMemoryUtilizationPercentage + label: Target Memory Utilization Percentage + schema: + type: int + default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: git + label: Git Settings + schema: + additional_attrs: true + type: dict + attrs: + - variable: deployKey + description: Raw SSH Private Key + label: Deploy Key + schema: + type: string + - variable: deployKeyBase64 + description: Base64-encoded SSH private key. When both variables are set, the raw SSH key takes precedence + label: Deploy Key Base64 + schema: + type: string + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: nodePort + description: Leave Empty to Disable + label: nodePort DEPRECATED + schema: + type: int + default: 36107 + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: promtail + label: Promtail + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: loki + label: Loki URL + schema: + type: string + required: true + - variable: logs + label: Log Paths + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: path + label: Path + schema: + type: string + required: true + - variable: args + label: Promtail Command Line Arguments + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + required: true + - variable: envList + label: Promtail Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: openvpn + description: OpenVPN + - value: wireguard + description: Wireguard + - value: tailscale + description: Tailscale + - variable: openvpn + label: OpenVPN Settings + schema: + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: Sock5 Server + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: dict + show_if: [["type", "!=", "disabled"]] + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type + schema: + type: string + default: hostPath + hidden: true + - variable: hostPathType + label: hostPathType + schema: + type: string + default: File + hidden: true + - variable: noMount + label: noMount + schema: + type: boolean + default: true + hidden: true + - variable: hostPath + label: Full Path to File + description: "Path to your local VPN config file for example: /mnt/tank/vpn.conf or /mnt/tank/vpn.ovpn" + schema: + type: string + default: "" + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/incubator/fireflyiii-data-importer/0.0.1/templates/common.yaml b/incubator/fireflyiii-data-importer/0.0.1/templates/common.yaml new file mode 100644 index 0000000000..c1a366e1cf --- /dev/null +++ b/incubator/fireflyiii-data-importer/0.0.1/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/incubator/fireflyiii-data-importer/0.0.1/values.yaml b/incubator/fireflyiii-data-importer/0.0.1/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/incubator/fireflyiii-data-importer/item.yaml b/incubator/fireflyiii-data-importer/item.yaml new file mode 100644 index 0000000000..c991e775a8 --- /dev/null +++ b/incubator/fireflyiii-data-importer/item.yaml @@ -0,0 +1,6 @@ +icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/fireflyiii-data-importer.png +categories: +- financial +- tool +- data +