From d74174a63448a363db79924f90abee7f81c79dfe Mon Sep 17 00:00:00 2001 From: Xstar97 Date: Mon, 26 Dec 2022 15:44:39 -0500 Subject: [PATCH] feat(plik) add plik (#5528) * feat(plik) add plik * update tag * Update charts/incubator/plik/Chart.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * plik secret * secretName * UI * integer? * typo * fix config * whoops * don't set defaultMode * Apply suggestions from code review Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Co-authored-by: Stavros kois --- charts/incubator/plik/.helmignore | 30 + charts/incubator/plik/CHANGELOG.md | 1 + charts/incubator/plik/Chart.yaml | 33 ++ charts/incubator/plik/README.md | 1 + charts/incubator/plik/icon.png | Bin 0 -> 11664 bytes charts/incubator/plik/questions.yaml | 608 ++++++++++++++++++++ charts/incubator/plik/templates/_config.tpl | 113 ++++ charts/incubator/plik/templates/common.yaml | 7 + charts/incubator/plik/values.yaml | 96 ++++ 9 files changed, 889 insertions(+) create mode 100644 charts/incubator/plik/.helmignore create mode 100644 charts/incubator/plik/CHANGELOG.md create mode 100644 charts/incubator/plik/Chart.yaml create mode 100644 charts/incubator/plik/README.md create mode 100644 charts/incubator/plik/icon.png create mode 100644 charts/incubator/plik/questions.yaml create mode 100644 charts/incubator/plik/templates/_config.tpl create mode 100644 charts/incubator/plik/templates/common.yaml create mode 100644 charts/incubator/plik/values.yaml diff --git a/charts/incubator/plik/.helmignore b/charts/incubator/plik/.helmignore new file mode 100644 index 00000000000..77ca5567b26 --- /dev/null +++ b/charts/incubator/plik/.helmignore @@ -0,0 +1,30 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png diff --git a/charts/incubator/plik/CHANGELOG.md b/charts/incubator/plik/CHANGELOG.md new file mode 100644 index 00000000000..825c32f0d03 --- /dev/null +++ b/charts/incubator/plik/CHANGELOG.md @@ -0,0 +1 @@ +# Changelog diff --git a/charts/incubator/plik/Chart.yaml b/charts/incubator/plik/Chart.yaml new file mode 100644 index 00000000000..10871b5ce62 --- /dev/null +++ b/charts/incubator/plik/Chart.yaml @@ -0,0 +1,33 @@ +apiVersion: v2 +appVersion: "1.3.6" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 11.1.1 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.truecharts.org/ + version: 11.0.16 +deprecated: false +description: A scalable file uploading system with multiple backends. +home: https://truecharts.org/docs/charts/stable/plik +icon: https://truecharts.org/img/hotlink-ok/chart-icons/plik.png +keywords: + - plik + - files +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: plik +sources: + - https://github.com/truecharts/charts/tree/master/charts/stable/plik + - https://github.com/root-gg/plik +type: application +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - files + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/plik/README.md b/charts/incubator/plik/README.md new file mode 100644 index 00000000000..302dae09867 --- /dev/null +++ b/charts/incubator/plik/README.md @@ -0,0 +1 @@ +# plik diff --git a/charts/incubator/plik/icon.png b/charts/incubator/plik/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..93e7cd920dafd31132c42362764425c199642dc3 GIT binary patch literal 11664 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°*28^;eZqV{0d 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 literal 0 HcmV?d00001 diff --git a/charts/incubator/plik/questions.yaml b/charts/incubator/plik/questions.yaml new file mode 100644 index 00000000000..7390af9e415 --- /dev/null +++ b/charts/incubator/plik/questions.yaml @@ -0,0 +1,608 @@ +# Include{groups} +portals: + open: +# Include{portalLink} +questions: +# Include{global} +# Include{controller} +# Include{replicas} +# Include{replica1} +# Include{controllerExpertExtraArgs} + - variable: plik + group: App Configuration + label: Plik Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: general + label: General + schema: + additional_attrs: true + type: dict + attrs: + - variable: debug + label: Debug + description: Enable debug mode + schema: + type: boolean + default: false + - variable: debug_requests + label: Debug Requests + description: Log HTTP request and responses + schema: + type: boolean + default: false + - variable: log_level + label: Log Level + description: Log Level + schema: + type: string + required: true + default: INFO + enum: + - value: INFO + description: Info + - value: DEBUG + description: Debug + - value: WARNING + description: Warning + - value: CRITICAL + description: Critical + - variable: abuse_contact + label: Abuse Contact + description: Abuse contact to be displayed in the footer of the webapp (email address) + schema: + type: string + default: "" + - variable: network + label: Network + schema: + additional_attrs: true + type: dict + attrs: + - variable: download_domain + label: Download Domain + description: Enforce download domain (eg https://dl.plik.root.gg). Necessary for quick upload to work. + schema: + type: string + required: true + default: "" + - variable: download_domain_alias + label: Download Domain Alias + description: Set download domain aliases + schema: + type: list + show_if: [["download_domain", "!=", ""]] + default: [] + items: + - variable: alias + label: Alias Entry + description: + schema: + type: string + required: true + default: "" + - variable: enhanced_web_security + label: Enhanced Web Security + description: Enable additional security headers (X-Content-Type-Options, X-XSS-Protection, X-Frame-Options, Content-Security-Policy, Secure Cookies, ...) + schema: + type: boolean + default: false + - variable: session_timeout + label: Session Timeout + description: Web UI authentication session timeout + schema: + type: string + required: true + default: 365d + - variable: source_ip_header + label: Source IP Header + description: If behind reverse proxy (eg X-FORWARDED-FOR) + schema: + type: string + default: "" + - variable: upload_whitelist + label: Upload Whitelist + description: Restrict upload ans user creation to one or more IP range (CIDR notation, /32 can be omitted) + schema: + type: list + default: [] + items: + - variable: ip + label: IP Entry + description: + schema: + type: string + required: true + default: "" + - variable: files + label: Files + schema: + additional_attrs: true + type: dict + attrs: + - variable: max_file_size + label: Max File Size + schema: + type: string + required: true + default: 10GB + - variable: max_files_per_upload + label: Max Files Per Upload + schema: + type: int + required: true + default: 1000 + - variable: default_ttl + label: Default TTL + schema: + type: string + required: true + default: 30d + - variable: max_ttl + label: Max TTL + schema: + type: string + required: true + default: 30d + - variable: data_backend + label: Data Backend + schema: + type: string + required: true + default: file + enum: + - value: file + description: File + - value: s3 + description: S3 + - value: gcs + description: Google Cloud Storage + - value: swift + description: Swift + - variable: gcs + label: Google Cloud Storage + schema: + additional_attrs: true + show_if: [["data_backend", "=", "gcs"]] + type: dict + attrs: + - variable: bucket + label: Bucket + schema: + type: string + required: true + default: "" + - variable: folder + label: Folder + schema: + type: string + required: true + default: "" + - variable: s3 + label: S3 + schema: + additional_attrs: true + show_if: [["data_backend", "=", "s3"]] + type: dict + attrs: + - variable: bucket + label: Bucket + schema: + type: string + required: true + default: "" + - variable: endpoint + label: Endpoint + schema: + type: string + required: true + default: "" + - variable: access_key_id + label: Access Key ID + schema: + type: string + required: true + private: true + default: "" + - variable: secret_access_key + label: Secret Access Key + schema: + type: string + required: true + private: true + default: "" + - variable: location + label: Location + schema: + type: string + required: true + default: "" + - variable: prefix + label: Prefix + schema: + type: string + required: true + default: "" + - variable: use_ssl + label: Use SSL + schema: + type: boolean + default: true + - variable: part_size + label: Part Size + description: Chunk size when file size is not known. Multiply by 10000 to get the max upload file size. + schema: + type: int + required: true + default: 16000000 + - variable: sse + label: SSE + description: SSE-C - Server-Side-Encryption with customer provided keys (Managed by Plik) / S3 - Server-Side-Encryption using S3 storage encryption (Managed by S3 Backend) + schema: + type: string + default: "" + enum: + - value: "" + description: None + - value: SSE-C + description: SSE-C + - value: S3 + description: S3 + - variable: swift + label: Swift + schema: + additional_attrs: true + show_if: [["data_backend", "=", "swift"]] + type: dict + attrs: + - variable: container + label: Container + schema: + type: string + required: true + default: "" + - variable: auth_url + label: Auth URL + schema: + type: string + required: true + default: https://auth.swiftauthapi.xxx/v2.0/ + - variable: username + label: Username + schema: + type: string + required: true + default: "" + - variable: api_key + label: API Key + schema: + type: string + required: true + private: true + default: "" + - variable: domain + label: Domain + description: Name of the domain (v3 auth only) + schema: + type: string + default: "" + - variable: tenant + description: Name of the tenant (v2 auth only) + label: Tenant + schema: + type: string + default: "" + - variable: features + label: Features + schema: + additional_attrs: true + type: dict + attrs: + - variable: authentication + label: Authentication + description: disabled -> no authentication / forced -> no anonymous upload / default -> enabled + schema: + type: string + required: true + default: disabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: one_shot + label: One Shot + description: Upload with files that are automatically deleted after the first download + schema: + type: string + required: true + default: enabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: removable + label: Removable + description: Upload with files that anybody can delete + schema: + type: string + required: true + default: enabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: stream + label: Stream + description: Upload with files that are not stored on the server + schema: + type: string + required: true + default: enabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: password + label: Password + description: Upload that are protected by HTTP basic auth login/password + schema: + type: string + required: true + default: enabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: comments + label: Comments + description: Upload with markdown comments / forced -> default + schema: + type: string + required: true + default: enabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: set_ttl + label: Set TTL + description: When disabled upload TTL is always set to DefaultTTL + schema: + type: string + required: true + default: enabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: extend_ttl + label: Extend TTL + description: Extend upload expiration date by TTL each time it is accessed + schema: + type: string + required: true + default: disabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: clients + label: Clients + description: Display the clients download button in the web UI + schema: + type: string + required: true + default: enabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: github + label: Github + description: Display the source code link in the web UI + schema: + type: string + required: true + default: enabled + enum: + - value: disabled + description: Disabled - Feature is always off + - value: enabled + description: Enabled - Feature is opt-in + - value: default + description: Default - Feature is opt-out + - value: forced + description: Forced - Feature is always on + - variable: third_party + label: Third Party + schema: + additional_attrs: true + type: dict + attrs: + - variable: google_api_client_id + label: Google API Client ID + schema: + type: string + private: true + default: "" + - variable: google_api_secret + label: Google API Secret + schema: + type: string + private: true + default: "" + - variable: google_valid_domains + label: Google Valid Domains + description: List of acceptable email domains for users + schema: + type: list + default: [] + items: + - variable: domain + label: Domain Entry + description: + schema: + type: string + required: true + default: "" + - variable: ovh_api_key + label: OVH API Key + schema: + type: string + private: true + default: "" + - variable: ovh_api_secret + label: OVH API Secret + schema: + type: string + private: true + default: "" + - variable: ovh_api_endpoint + label: OVH API Secret + schema: + type: string + default: https://eu.api.ovh.com/1.0 +# Include{containerConfig} +# Include{serviceRoot} + - variable: main + label: Main Service + description: The Primary service on which the healthcheck runs, often the webUI + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelectorLoadBalancer} +# Include{serviceSelectorExtras} + - 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: 10599 + required: true +# Include{serviceExpertRoot} + default: false +# Include{serviceExpert} +# Include{serviceList} +# Include{persistenceRoot} + - variable: data + label: App Data Storage + description: Stores the Application Data. + schema: + additional_attrs: true + type: dict + attrs: +# Include{persistenceBasic} +# Include{persistenceList} +# Include{ingressRoot} + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} +# Include{ingressTLS} +# Include{ingressTraefik} +# Include{ingressList} +# Include{security} +# Include{securityContextAdvancedRoot} + - 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: true +# Include{podSecurityContextRoot} + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 568 + - variable: runAsGroup + label: runAsGroup + description: The groupID this App of the user running the application + schema: + type: int + default: 568 + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 +# Include{podSecurityContextAdvanced} +# Include{resources} +# Include{advanced} +# Include{addons} +# Include{codeserver} +# Include{vpn} +# Include{documentation} diff --git a/charts/incubator/plik/templates/_config.tpl b/charts/incubator/plik/templates/_config.tpl new file mode 100644 index 00000000000..1c4680a25c3 --- /dev/null +++ b/charts/incubator/plik/templates/_config.tpl @@ -0,0 +1,113 @@ +{{- define "plik.secret" -}} + +{{- $secretName := printf "%s-plik-secret" (include "tc.common.names.fullname" .) }} +--- +apiVersion: v1 +kind: Secret +type: Opaque +metadata: + name: {{ $secretName }} + labels: + {{- include "tc.common.labels" . | nindent 4 }} +stringData: + plikd.cfg: | + ListenPort = {{ .Values.service.main.ports.main.port }} + ListenAddress = "0.0.0.0" + Path = "" + SslEnabled = false + SslCert = "plik.crt" + SslKey = "plik.key" + NoWebInterface = false + WebappDirectory = "../webapp/dist" + ClientsDirectory = "../clients" + ChangelogDirectory = "../changelog" + Debug = {{ .Values.plik.general.debug }} + DebugRequests = {{ .Values.plik.general.debug_requests }} + LogLevel = {{ .Values.plik.general.log_level | quote }} + AbuseContact = {{ .Values.plik.general.abuse_contact | quote }} + DownloadDomain = {{ .Values.plik.network.download_domain | quote }} + {{- with .Values.plik.network.download_domain_alias }} + DownloadDomainAlias = [ + {{- range $alias := initial . }} + {{- $alias | quote | nindent 6 }}, + {{- end -}} + {{- last . | quote | nindent 6 }} + ] + {{- else }} + DownloadDomainAlias = [] + {{- end }} + EnhancedWebSecurity = {{ .Values.plik.network.enhanced_web_security }} + SessionTimeout = {{ .Values.plik.network.session_timeout | quote }} + SourceIpHeader = {{ .Values.plik.network.source_ip_header | quote }} + {{- with .Values.plik.network.upload_whitelist }} + UploadWhitelist = [ + {{- range $ip := initial . }} + {{- $ip | quote | nindent 6 }}, + {{- end -}} + {{- last . | quote | nindent 6 }} + ] + {{- else }} + UploadWhitelist = [] + {{- end }} + MaxFileSizeStr = {{ .Values.plik.files.max_file_size | quote }} + MaxFilePerUpload = {{ .Values.plik.files.max_files_per_upload }} + DefaultTTLStr = {{ .Values.plik.files.default_ttl | quote }} + MaxTTLStr = {{ .Values.plik.files.max_ttl | quote }} + + FeatureAuthentication = {{ .Values.plik.features.authentication | quote }} + FeatureOneShot = {{ .Values.plik.features.one_shot | quote }} + FeatureRemovable = {{ .Values.plik.features.removable | quote }} + FeatureStream = {{ .Values.plik.features.stream | quote }} + FeaturePassword = {{ .Values.plik.features.password | quote }} + FeatureComments = {{ .Values.plik.features.comments | quote }} + FeatureSetTTL = {{ .Values.plik.features.set_ttl | quote }} + FeatureExtendTTL = {{ .Values.plik.features.extend_ttl | quote }} + FeatureClients = {{ .Values.plik.features.clients | quote }} + FeatureGithub = {{ .Values.plik.features.github | quote }} + GoogleApiClientID = {{ .Values.plik.third_party.google_api_client_id | quote }} + GoogleApiSecret = {{ .Values.plik.third_party.google_api_secret | quote }} + {{- with .Values.plik.third_party.google_valid_domains }} + GoogleValidDomains = [ + {{- range $domain := initial . }} + {{- $domain | quote | nindent 6 }}, + {{- end -}} + {{- last . | quote | nindent 6 }} + ] + {{- else }} + GoogleValidDomains = [] + {{- end }} + OvhApiKey = {{ .Values.plik.third_party.ovh_api_key | quote }} + OvhApiSecret = {{ .Values.plik.third_party.ovh_api_secret | quote }} + OvhApiEndpoint = {{ .Values.plik.third_party.ovh_api_endpoint | quote }} + + {{- $backend := .Values.plik.files.data_backend }} + DataBackend = {{ $backend | quote }} + [MetadataBackendConfig] + Driver = "postgres" + ConnectionString = {{ .Values.postgresql.url.complete | trimAll "\"" | quote }} + Debug = {{ .Values.plik.general.debug }} + [DataBackendConfig] + {{- if eq $backend "file" }} + Directory = {{ .Values.persistence.data.mountPath | quote }} + {{- else if eq $backend "gcs" }} + Bucket = {{ .Values.plik.files.gcs.bucket | quote }} + Folder = {{ .Values.plik.files.gcs.folder | quote }} + {{- else if eq $backend "s3" }} + Endpoint = {{ .Values.plik.files.s3.endpoint | quote }} + AccessKeyID = {{ .Values.plik.files.s3.access_key_id | quote }} + SecretAccessKey = {{ .Values.plik.files.s3.secret_access_key | quote }} + Bucket = {{ .Values.plik.files.s3.bucket | quote }} + Location = {{ .Values.plik.files.s3.location | quote }} + Prefix = {{ .Values.plik.files.s3.prefix | quote }} + UseSSL = {{ .Values.plik.files.s3.use_ssl }} + PartSize = {{ .Values.plik.files.s3.part_size | int }} + SSE = {{ .Values.plik.files.s3.sse | quote }} + {{- else if eq $backend "swift" }} + Container = {{ .Values.plik.files.swift.container | quote }} + AuthUrl = {{ .Values.plik.files.swift.auth_url | quote }} + UserName = {{ .Values.plik.files.swift.username | quote }} + ApiKey = {{ .Values.plik.files.swift.api_key | quote }} + Domain = {{ .Values.plik.files.swift.domain | quote }} + Tenant = {{ .Values.plik.files.swift.tenant | quote }} + {{- end -}} +{{- end -}} diff --git a/charts/incubator/plik/templates/common.yaml b/charts/incubator/plik/templates/common.yaml new file mode 100644 index 00000000000..dd0ea023884 --- /dev/null +++ b/charts/incubator/plik/templates/common.yaml @@ -0,0 +1,7 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.common.loader.init" . }} + +{{/* Render config */}} +{{- include "plik.secret" . }} + +{{ include "tc.common.loader.apply" . }} diff --git a/charts/incubator/plik/values.yaml b/charts/incubator/plik/values.yaml new file mode 100644 index 00000000000..97124f6c353 --- /dev/null +++ b/charts/incubator/plik/values.yaml @@ -0,0 +1,96 @@ +image: + repository: tccr.io/truecharts/plik + pullPolicy: IfNotPresent + tag: 1.3.6@sha256:f9c31219bfb0793c3b9ce4ec304cd52c4dfef106ae452ab0f6a57a0a0b575fbd + +# securityContext: +# readOnlyRootFilesystem: false + +plik: + general: + debug: false + debug_requests: false + log_level: INFO + abuse_contact: "" + network: + download_domain: "something" + download_domain_alias: [] + enhanced_web_security: false + session_timeout: 365d + source_ip_header: "" + upload_whitelist: [] + files: + max_file_size: 10GB + max_files_per_upload: 1000 + default_ttl: 30d + max_ttl: 30d + # file | gcs | s3 | swift + data_backend: file + gcs: + bucket: "" + folder: "" + s3: + bucket: "" + endpoint: "" + access_key_id: "" + secret_access_key: "" + location: "" + prefix: "" + use_ssl: true + part_size: 16000000 + sse: "" + swift: + container: "" + auth_url: https://auth.swiftauthapi.xxx/v2.0/ + username: "" + api_key: "" + domain: "" + tenant: "" + features: + authentication: disabled + one_shot: enabled + removable: enabled + stream: enabled + password: enabled + comments: enabled + set_ttl: enabled + extend_ttl: disabled + clients: enabled + github: enabled + third_party: + google_api_client_id: "" + google_api_secret: "" + google_valid_domains: [] + ovh_api_key: "" + ovh_api_secret: "" + ovh_api_endpoint: https://eu.api.ovh.com/1.0 + +service: + main: + ports: + main: + protocol: HTTP + port: 10599 + +persistence: + data: + enabled: true + mountPath: /data + plikd-config: + enabled: true + mountPath: /home/plik/server/plikd.cfg + subPath: plikd.cfg + type: custom + readOnly: true + volumeSpec: + secret: + secretName: '{{ include "tc.common.names.fullname" . }}-plik-secret' + +postgresql: + enabled: true + existingSecret: dbcreds + postgresqlUsername: plik + postgresqlDatabase: plik + +portal: + enabled: true