feat(penpot): move to stable (#5844)

* feat(penpot): move to stable

* bump
This commit is contained in:
Stavros Kois
2022-12-26 21:41:42 +00:00
committed by GitHub
parent ba535493d6
commit ec5e4201ac
13 changed files with 14 additions and 6 deletions
+30
View File
@@ -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
+40
View File
@@ -0,0 +1,40 @@
apiVersion: v2
appVersion: "1.16.2"
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
- condition: redis.enabled
name: redis
repository: https://charts.truecharts.org
version: 5.0.20
deprecated: false
description: Open Source design and prototyping platform.
home: https://truecharts.org/charts/incubator/penpot
icon: https://truecharts.org/img/hotlink-ok/chart-icons/penpot.png
keywords:
- penpot
- media
- design
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: penpot
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/penpot
- https://github.com/penpot/penpot
- https://hub.docker.com/r/penpotapp/frontend
- https://hub.docker.com/r/penpotapp/backend
type: application
version: 2.0.0
annotations:
truecharts.org/catagories: |
- media
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
+27
View File
@@ -0,0 +1,27 @@
# README
## General Info
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
However only installations using the TrueNAS SCALE Apps system are supported.
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/docs/charts/incubator/)
**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)**
## 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*
Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

+467
View File
@@ -0,0 +1,467 @@
# Include{groups}
portals:
open:
# Include{portalLink}
questions:
# Include{global}
# Include{controller}
# Include{replicas}
# Include{replica1}
# Include{controllerExpertExtraArgs}
- variable: penpot
group: App Configuration
label: Penpot Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: public_uri
label: Public URI
description: Public URI.
schema:
type: string
required: true
default: ""
- variable: telemetry_enabled
label: Telemetry Enabled
description: Telemetry Enabled.
schema:
type: boolean
default: false
- variable: flags
label: Flags
description: Feature flags
schema:
additional_attrs: true
type: dict
required: true
attrs:
- variable: registration
label: Registration
description: Enables or disables, the registration process
schema:
type: boolean
default: true
- variable: insecure_register
label: Insecure Register
description: Enables or disables, the insecure process of profile registration deactivating the email verification process
schema:
type: boolean
default: false
- variable: login
label: Login
description: Enables or disables, the password based login form
schema:
type: boolean
default: true
- variable: demo_users
label: Demo Users
description: Enables or disables, the creation of demo users without the need of a registration process.
schema:
type: boolean
default: false
- variable: demo_warning
label: Demo Warning
description: Enables or disables, demo warning in the register and login page saying that this is a demonstration purpose instance
schema:
type: boolean
default: false
- variable: user_feedback
label: User Feedback
description: Enables or disables, the feedback form at the dashboard
schema:
type: boolean
default: false
- variable: mail_verification
label: Mail Verification
description: Enables or disables, mail verification
schema:
type: boolean
default: true
- variable: log_invitation_token
label: Log Invitation Token
description: Enables or disables, invitation token logging in console
schema:
type: boolean
default: false
- variable: log_emails
label: Log Emails
description: Enables or disables, email logging in console. This only works if smtp is not enabled.
schema:
type: boolean
default: false
- variable: secure_session_cookies
label: Secure Session Cookies
description: Enables or disables, the secure flag on cookies
schema:
type: boolean
default: true
- variable: cors
label: CORS
description: Enables or disables, the default cors configuration that allows all domains
schema:
type: boolean
default: false
- variable: backend_api_doc
label: API Docs
description: Enables or disables, /api/_doc endpoint that lists all rpc methods available on backend.
schema:
type: boolean
default: false
- variable: registration_domain_whitelist
label: Registration Domain Whitelist
description: Registration Domain Whitelist
schema:
type: list
required: true
default: []
items:
- variable: domain_whitelist
label: Domain Whitelist Entry
schema:
type: string
required: true
default: ""
- variable: smtp
group: App Configuration
label: SMTP Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Enable SMTP
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: default_from
label: Default From
schema:
type: string
required: true
default: ""
- variable: default_reply_to
label: Default Reply To
schema:
type: string
required: true
default: ""
- variable: smtp_host
label: SMTP Host
schema:
type: string
required: true
default: ""
- variable: smtp_port
label: SMTP Port
schema:
type: int
required: true
default: 587
- variable: smtp_user
label: SMTP User
schema:
type: string
required: true
default: ""
- variable: smtp_pass
label: SMTP Pass
schema:
type: string
required: true
private: true
default: ""
- variable: identity_providers
group: App Configuration
label: Identity Providers Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: google
label: Google Identity Provider
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Show Google Settings
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: client_id
label: Client ID
schema:
type: string
required: true
default: ""
- variable: client_secret
label: Client Secret
schema:
type: string
private: true
required: true
default: ""
- variable: github
label: Github Identity Provider
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Show Github Settings
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: client_id
label: Client ID
schema:
type: string
required: true
default: ""
- variable: client_secret
label: Client Secret
schema:
type: string
private: true
required: true
default: ""
- variable: gitlab
label: Gitlab Identity Provider
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Show Gitlab Settings
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: base_uri
label: Base URI
schema:
type: string
required: true
default: "https://gitlab.com"
- variable: client_id
label: Client ID
schema:
type: string
required: true
default: ""
- variable: client_secret
label: Client Secret
schema:
type: string
private: true
required: true
default: ""
- variable: oidc
label: OIDC Identity Provider
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Show OIDC Settings
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: base_uri
label: Base URI
schema:
type: string
required: true
default: ""
- variable: client_id
label: Client ID
schema:
type: string
required: true
default: ""
- variable: client_secret
label: Client Secret
schema:
type: string
private: true
required: true
default: ""
- variable: ldap
label: LDAP Identity Provider
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Show LDAP Settings
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: host
label: Host
schema:
type: string
required: true
default: ""
- variable: port
label: Port
schema:
type: int
required: true
default: 587
- variable: ssl
label: SSL
schema:
type: boolean
default: false
- variable: starttls
label: StartTLS
schema:
type: boolean
default: false
- variable: base_dn
label: Base DN
schema:
type: string
required: true
default: ""
- variable: bind_dn
label: Bind DN
schema:
type: string
required: true
default: ""
- variable: bind_pass
label: Bind Pass
schema:
type: string
private: true
required: true
default: ""
- variable: attrs_username
label: ATTRS Username
schema:
type: string
rquired: true
default: ""
- variable: attrs_email
label: ATTRS Email
schema:
type: string
required: true
default: ""
- variable: attrs_fullname
label: ATTRS Fullname
schema:
type: string
required: true
default: ""
# 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: 10592
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: false
# Include{podSecurityContextRoot}
- 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
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{codeserver}
# Include{vpn}
# Include{documentation}
@@ -0,0 +1,39 @@
{{/* Define the backend container */}}
{{- define "penpot.backend" -}}
image: {{ .Values.backendImage.repository }}:{{ .Values.backendImage.tag }}
imagePullPolicy: '{{ .Values.backendImage.pullPolicy }}'
securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }}
runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
volumeMounts:
- name: data
mountPath: {{ .Values.persistence.data.mountPath }}
envFrom:
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-common-secret'
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-backend-exporter-secret'
readinessProbe:
tcpSocket:
port: 6060
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:
tcpSocket:
port: 6060
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:
tcpSocket:
port: 6060
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 }}
@@ -0,0 +1,39 @@
{{/* Define the exporter container */}}
{{- define "penpot.exporter" -}}
image: {{ .Values.exporterImage.repository }}:{{ .Values.exporterImage.tag }}
imagePullPolicy: '{{ .Values.exporterImage.pullPolicy }}'
securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }}
runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
envFrom:
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-common-secret'
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-exporter-secret'
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-backend-exporter-secret'
readinessProbe:
tcpSocket:
port: 6061
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:
tcpSocket:
port: 6061
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:
tcpSocket:
port: 6061
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 }}
+132
View File
@@ -0,0 +1,132 @@
{{/* Define the secret */}}
{{- define "penpot.secret" -}}
{{- $commonSecretName := printf "%s-common-secret" (include "tc.common.names.fullname" .) }}
{{- $exporterSecretName := printf "%s-exporter-secret" (include "tc.common.names.fullname" .) }}
{{- $frontendSecretName := printf "%s-frontend-secret" (include "tc.common.names.fullname" .) }}
{{- $backendAndExporterSecretName := printf "%s-backend-exporter-secret" (include "tc.common.names.fullname" .) }}
{{- $backendFlags := list }}
{{- $backendFlags = mustAppend $backendFlags (printf "%s-smtp" (ternary "enable" "disable" .Values.penpot.smtp.enabled)) }}
{{- $backendFlags = mustAppend $backendFlags (printf "%s-email-verification" (ternary "enable" "disable" .Values.penpot.flags.mail_verification)) }}
{{- $backendFlags = mustAppend $backendFlags (printf "%s-log-invitation-tokens" (ternary "enable" "disable" .Values.penpot.flags.log_invitation_token)) }}
{{- $backendFlags = mustAppend $backendFlags (printf "%s-log-emails" (ternary "enable" "disable" (and .Values.penpot.flags.log_emails (not .Values.penpot.smtp.enabled)))) }}
{{- $backendFlags = mustAppend $backendFlags (printf "%s-secure-session-cookies" (ternary "enable" "disable" .Values.penpot.flags.secure_session_cookies)) }}
{{- $backendFlags = mustAppend $backendFlags (printf "%s-insecure-register" (ternary "enable" "disable" .Values.penpot.flags.insecure_register)) }}
{{- $backendFlags = mustAppend $backendFlags (printf "%s-cors" (ternary "enable" "disable" .Values.penpot.flags.backend_api_doc)) }}
{{- $backendFlags = mustAppend $backendFlags (printf "%s-backend-api-doc" (ternary "enable" "disable" .Values.penpot.flags.backend_api_doc)) }}
{{- $frontendFlags := list }}
{{- $frontendFlags = mustAppend $frontendFlags (printf "%s-demo-warning" (ternary "enable" "disable" .Values.penpot.flags.demo_warning)) }}
{{- $commonFlags := list }}
{{- $commonFlags = mustAppend $commonFlags (printf "%s-login" (ternary "enable" "disable" .Values.penpot.flags.login)) }}
{{- $commonFlags = mustAppend $commonFlags (printf "%s-registration" (ternary "enable" "disable" .Values.penpot.flags.registration)) }}
{{- $commonFlags = mustAppend $commonFlags (printf "%s-demo-users" (ternary "enable" "disable" .Values.penpot.flags.demo_users)) }}
{{- $commonFlags = mustAppend $commonFlags (printf "%s-user-feedback" (ternary "enable" "disable" .Values.penpot.flags.user_feedback)) }}
{{- $commonFlags = mustAppend $commonFlags (printf "%s-login-with-google" (ternary "enable" "disable" .Values.penpot.identity_providers.google.enabled)) }}
{{- $commonFlags = mustAppend $commonFlags (printf "%s-login-with-github" (ternary "enable" "disable" .Values.penpot.identity_providers.github.enabled)) }}
{{- $commonFlags = mustAppend $commonFlags (printf "%s-login-with-gitlab" (ternary "enable" "disable" .Values.penpot.identity_providers.gitlab.enabled)) }}
{{- $commonFlags = mustAppend $commonFlags (printf "%s-login-with-oidc" (ternary "enable" "disable" .Values.penpot.identity_providers.oidc.enabled)) }}
{{- $commonFlags = mustAppend $commonFlags (printf "%s-login-with-ldap" (ternary "enable" "disable" .Values.penpot.identity_providers.ldap.enabled)) }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $commonSecretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
stringData:
PENPOT_TELEMETRY_ENABLED: {{ .Values.penpot.telemetry_enabled | quote }}
{{- with .Values.penpot.registration_domain_whitelist }}
PENPOT_REGISTRATION_DOMAIN_WHITELIST: {{ join "," . }}
{{- end }}
{{- if .Values.penpot.identity_providers.google.enabled }}
PENPOT_GOOGLE_CLIENT_ID: {{ .Values.penpot.identity_providers.google.client_id | quote }}
PENPOT_GOOGLE_CLIENT_SECRET: {{ .Values.penpot.identity_providers.google.client_secret | quote }}
{{- end }}
{{- if .Values.penpot.identity_providers.github.enabled }}
PENPOT_GITHUB_CLIENT_ID: {{ .Values.penpot.identity_providers.github.client_id | quote }}
PENPOT_GITHUB_CLIENT_ID: {{ .Values.penpot.identity_providers.github.client_secret | quote }}
{{- end }}
{{- if .Values.penpot.identity_providers.gitlab.enabled }}
PENPOT_GITLAB_BASE_URI: {{ .Values.penpot.identity_providers.gitlab.base_uri | quote }}
PENPOT_GITLAB_CLIENT_ID: {{ .Values.penpot.identity_providers.gitlab.client_id | quote }}
PENPOT_GITLAB_CLIENT_SECRET: {{ .Values.penpot.identity_providers.gitlab.client_secret | quote }}
{{- end }}
{{- if .Values.penpot.identity_providers.oidc.enabled }}
PENPOT_OIDC_BASE_URI: {{ .Values.penpot.identity_providers.oidc.base_uri | quote }}
PENPOT_OIDC_CLIENT_ID: {{ .Values.penpot.identity_providers.oidc.client_id | quote }}
PENPOT_OIDC_CLIENT_SECRET: {{ .Values.penpot.identity_providers.oidc.client_secret | quote }}
{{- end }}
{{- if .Values.penpot.identity_providers.ldap.enabled }}
PENPOT_LDAP_HOST: {{ .Values.penpot.identity_providers.ldap.host | quote }}
PENPOT_LDAP_PORT: {{ .Values.penpot.identity_providers.ldap.port | quote }}
PENPOT_LDAP_SSL: {{ .Values.penpot.identity_providers.ldap.ssl | quote }}
PENPOT_LDAP_STARTTLS: {{ .Values.penpot.identity_providers.ldap.starttls | quote }}
PENPOT_LDAP_BASE_DN: {{ .Values.penpot.identity_providers.ldap.base_dn | quote }}
PENPOT_LDAP_BIND_DN: {{ .Values.penpot.identity_providers.ldap.bind_dn | quote }}
PENPOT_LDAP_BIND_PASSWORD: {{ .Values.penpot.identity_providers.ldap.bind_pass | quote }}
PENPOT_LDAP_ATTRS_USERNAME: {{ .Values.penpot.identity_providers.ldap.attrs_username | quote }}
PENPOT_LDAP_ATTRS_EMAIL: {{ .Values.penpot.identity_providers.ldap.attrs_email | quote }}
PENPOT_LDAP_ATTRS_FULLNAME: {{ .Values.penpot.identity_providers.ldap.attrs_fullname | quote }}
{{- end }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $exporterSecretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
stringData:
PENPOT_PUBLIC_URI: http://penpot-frontend:{{ .Values.service.main.ports.main.targetPort }}
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $backendAndExporterSecretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
stringData:
PENPOT_FLAGS: {{ join " " (concat $commonFlags $backendFlags) | quote }}
PENPOT_PUBLIC_URI: {{ .Values.penpot.public_uri | quote }}
{{- with (lookup "v1" "Secret" .Release.Namespace $backendAndExporterSecretName) }}
PENPOT_SECRET_KEY: {{ index .data "PENPOT_SECRET_KEY" }}
{{- else }}
PENPOT_SECRET_KEY: {{ randAlphaNum 32 | b64enc }}
{{- end }}
{{/* Dependencies */}}
PENPOT_DATABASE_URI: {{ printf "postgresql://%v/%v" (.Values.postgresql.url.plainport | trimAll "\"") .Values.postgresql.postgresqlDatabase }}
PENPOT_DATABASE_USERNAME: {{ .Values.postgresql.postgresqlUsername }}
PENPOT_DATABASE_PASSWORD: {{ .Values.postgresql.postgresqlPassword | trimAll "\"" }}
PENPOT_REDIS_URI: {{ printf "redis://%v:%v@%v/%v" "default" (.Values.redis.redisPassword | trimAll "\"") (.Values.redis.url.plainport | trimAll "\"") "0" }}
{{/* Penpot */}}
{{- if .Values.penpot.smtp.enabled }}
PENPOT_SMTP_DEFAULT_FROM: {{ .Values.penpot.smtp.default_from | quote }}
PENPOT_SMTP_DEFAULT_REPLY_TO: {{ .Values.penpot.smtp.default_reply_to | quote }}
PENPOT_SMTP_HOST: {{ .Values.penpot.smtp.host | quote }}
PENPOT_SMTP_PORT: {{ .Values.penpot.smtp.port | quote }}
PENPOT_SMTP_USERNAME: {{ .Values.penpot.smtp.user | quote }}
PENPOT_SMTP_PASSWORD: {{ .Values.penpot.smtp.pass | quote }}
PENPOT_SMTP_TLS: {{ .Values.penpot.smtp.tls | quote }}
PENPOT_SMTP_SSL: {{ .Values.penpot.smtp.ssl | quote }}
{{- end }}
PENPOT_STORAGE_ASSETS_FS_DIRECTORY: {{ .Values.persistence.assets.mountPath }}
PENPOT_ASSETS_STORAGE_BACKEND: assets-fs
PENPOT_HTTP_SERVER_HOST: "0.0.0.0"
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $frontendSecretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
stringData:
PENPOT_PUBLIC_URI: {{ .Values.penpot.public_uri | quote }}
PENPOT_FLAGS: {{ join " " (concat $commonFlags $frontendFlags) | quote }}
{{- end }}
@@ -0,0 +1,10 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.common.loader.init" . }}
{{- include "penpot.secret" . -}}
{{- $_ := set .Values.additionalContainers "backend" (include "penpot.backend" . | fromYaml) -}}
{{- $_ := set .Values.additionalContainers "exporter" (include "penpot.exporter" . | fromYaml) -}}
{{/* Render the templates */}}
{{ include "tc.common.loader.apply" . }}
+136
View File
@@ -0,0 +1,136 @@
image:
repository: tccr.io/truecharts/penpot-frontend
pullPolicy: IfNotPresent
tag: 1.16.2@sha256:c41349dcd43eccf1bf61809e9d46d54dcb22bfbd31c6fb199630e2fbec54d628
backendImage:
repository: tccr.io/truecharts/penpot-backend
pullPolicy: IfNotPresent
tag: 1.16.2@sha256:99997f7640b27274f0b1570cd8c839266661e54a3314dd1f1caf4dd1220de752
exporterImage:
repository: tccr.io/truecharts/penpot-exporter
pullPolicy: IfNotPresent
tag: 1.16.2@sha256:8104c3dd90001ca94023b4e0f6a47bdd3868610a31f25fb2aa9e61d2f10130b3
securityContext:
runAsNonRoot: false
readOnlyRootFilesystem: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
hostAliases:
- ip: 127.0.0.1
hostnames:
- penpot-backend
- penpot-exporter
- penpot-frontend
penpot:
public_uri: "http://localhost:{{ .Values.service.main.ports.main.port }}"
flags:
registration: true
insecure_register: false
login: true
demo_users: false
demo_warning: false
user_feedback: false
mail_verification: true
log_invitation_token: false
log_emails: false
secure_session_cookies: true
cors: false
backend_api_doc: false
telemetry_enabled: false
registration_domain_whitelist: []
smtp:
enabled: false
default_from: "no-reply@example.com"
default_reply_to: "no-reply@example.com"
tls: true
ssl: false
host: ""
port: 587
user: ""
pass: ""
identity_providers:
google:
enabled: false
client_id: ""
client_secret: ""
github:
enabled: false
client_id: ""
client_secret: ""
gitlab:
enabled: false
base_uri: ""
client_id: ""
client_secret: ""
oidc:
enabled: false
base_uri: ""
client_id: ""
client_secret: ""
ldap:
enabled: false
host: ""
port: 10389
ssl: false
starttls: false
base_dn: ""
bind_dn: ""
bind_pass: ""
attrs_username: ""
attrs_email: ""
attrs_fullname: ""
envFrom:
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-common-secret'
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-frontend-secret'
probes:
liveness:
type: HTTP
path: /
readiness:
type: HTTP
path: /
startup:
type: HTTP
path: /
service:
main:
ports:
main:
protocol: HTTP
targetPort: 80
port: 10592
persistence:
data:
enabled: true
mountPath: /opt/data
noMount: true
assets:
enabled: true
mountPath: /opt/data/assets
postgresql:
enabled: true
existingSecret: dbcreds
postgresqlDatabase: penpot
postgresqlUsername: penpot
redis:
enabled: true
existingSecret: rediscreds
redisUsername: penpot
portal:
enabled: true