diff --git a/charts/pixelfed/Chart.yaml b/charts/pixelfed/Chart.yaml index 840151f..7cccd03 100644 --- a/charts/pixelfed/Chart.yaml +++ b/charts/pixelfed/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.6.0 +version: 0.7.0 # This is the version number of the application being deployed. # renovate:image=ghcr.io/mattlqx/docker-pixelfed diff --git a/charts/pixelfed/README.md b/charts/pixelfed/README.md index 5389b43..b7d04b9 100644 --- a/charts/pixelfed/README.md +++ b/charts/pixelfed/README.md @@ -1,6 +1,6 @@ # pixelfed -![Version: 0.6.0](https://img.shields.io/badge/Version-0.6.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.12.3-nginx](https://img.shields.io/badge/AppVersion-v0.12.3--nginx-informational?style=flat-square) +![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.12.3-nginx](https://img.shields.io/badge/AppVersion-v0.12.3--nginx-informational?style=flat-square) A Helm chart for deploying Pixelfed on Kubernetes @@ -26,7 +26,6 @@ A Helm chart for deploying Pixelfed on Kubernetes | autoscaling.maxReplicas | int | `100` | | | autoscaling.minReplicas | int | `1` | | | autoscaling.targetCPUUtilizationPercentage | int | `80` | | -| externalDatabase.connection | string | `"pgsql"` | options: sqlite mysql pgsql sqlsrv | | externalDatabase.database | string | `"pixelfed"` | | | externalDatabase.enabled | bool | `false` | enable using an external mysql or postgresql cluster | | externalDatabase.existingSecret | string | `""` | get database credentials from an existing Kubernetes Secret | @@ -77,7 +76,8 @@ A Helm chart for deploying Pixelfed on Kubernetes | pixelfed.app.name | string | `"Pixelfed"` | The name of your server/instance | | pixelfed.app.url | string | `"https://localhost"` | change this to the domain of your pixelfed instance | | pixelfed.atom_feeds | string | `"true"` | https://docs.pixelfed.org/technical-documentation/config/#atom_feeds | -| pixelfed.db_apply_new_migrations_automatically | bool | `false` | | +| pixelfed.db.apply_new_migrations_automatically | bool | `false` | | +| pixelfed.db.connection | string | `"pgsql"` | options: sqlite mysql pgsql sqlsrv | | pixelfed.enable_config_cache | bool | `true` | Enable the config cache to allow you to manage settings via the admin dashboard | | pixelfed.enforce_email_verification | bool | `true` | Enforce email verification | | pixelfed.exp_emc | bool | `true` | Experimental Configuration | @@ -192,4 +192,4 @@ A Helm chart for deploying Pixelfed on Kubernetes | volumes | list | `[]` | Additional volumes on the output Deployment definition. | ---------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) \ No newline at end of file +Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) diff --git a/charts/pixelfed/templates/configmap-env.yaml b/charts/pixelfed/templates/configmap-env.yaml new file mode 100644 index 0000000..91dca77 --- /dev/null +++ b/charts/pixelfed/templates/configmap-env.yaml @@ -0,0 +1,92 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "pixelfed.fullname" . }}-env +data: + # app data + APP_NAME: {{ .Values.pixelfed.app.name }} + APP_ENV: {{ .Values.pixelfed.app.env }} + APP_PORT: {{ .Values.service.targetPort | quote}} + APP_URL: {{ .Values.pixelfed.app.url }} + APP_LOCALE: {{ .Values.pixelfed.app.locale }} + {{- with .Values.pixelfed.app.domain }} + APP_DOMAIN: {{ . }} + {{- end }} + + # registration related + OPEN_REGISTRATION: {{ .Values.pixelfed.open_registration | quote }} + ENFORCE_EMAIL_VERIFICATION: {{ .Values.pixelfed.enforce_email_verification | quote }} + IMAGE_QUALITY: {{ .Values.pixelfed.image_quality | quote }} + ACCOUNT_DELETION: {{ .Values.pixelfed.account_deletion | quote }} + OAUTH_ENABLED: {{ .Values.pixelfed.oauth_enabled | quote }} + + # limits + MIN_PASSWORD_LENGTH: {{ .Values.pixelfed.min_password_length | quote }} + MAX_ACCOUNT_SIZE: {{ .Values.pixelfed.max_account_size | quote }} + MAX_PHOTO_SIZE: {{ .Values.pixelfed.max_photo_size | quote }} + MAX_AVATAR_SIZE: {{ .Values.pixelfed.max_avatar_size | quote }} + MAX_CAPTION_LENGTH: {{ .Values.pixelfed.max_caption_length | quote }} + MAX_BIO_LENGTH: {{ .Values.pixelfed.max_bio_length | quote }} + MAX_NAME_LENGTH: {{ .Values.pixelfed.max_name_length | quote }} + MAX_ALBUM_LENGTH: {{ .Values.pixelfed.max_album_length | quote }} + FORCE_HTTPS_URLS: {{ .Values.pixelfed.force_https_urls | quote }} + STORIES_ENABLED: {{ .Values.pixelfed.stories_enabled | quote }} + ENABLE_CONFIG_CACHE: {{ .Values.pixelfed.enable_config_cache | quote }} + + # instance config + INSTANCE_DESCRIPTION: {{ .Values.pixelfed.instance.description | quote }} + INSTANCE_CONTACT_FORM: {{ .Values.pixelfed.instance.contact_form | quote }} + INSTANCE_DISCOVER_PUBLIC: {{ .Values.pixelfed.instance.discover_public | quote }} + INSTANCE_PUBLIC_HASHTAGS: {{ .Values.pixelfed.instance.public_hashtags | quote }} + {{- with .Values.pixelfed.instance.contact_email }} + INSTANCE_CONTACT_EMAIL: {{ .Values.pixelfed.instance.contact_email }} + {{- end }} + INSTANCE_PROFILE_EMBEDS: {{ .Values.pixelfed.instance.profile_embeds | quote }} + INSTANCE_POST_EMBEDS: {{ .Values.pixelfed.instance.post_embeds | quote }} + INSTANCE_REPORTS_EMAIL_ENABLED: {{ .Values.pixelfed.instance.reports.email_enabled | quote }} + {{- with .Values.pixelfed.instance.reports.email_addresses }} + INSTANCE_REPORTS_EMAIL_ADDRESSES: {{ join "," . }} + {{- end }} + INSTANCE_REPORTS_EMAIL_AUTOSPAM: {{ .Values.pixelfed.instance.reports.email_autospam | quote }} + INSTANCE_LANDING_SHOW_DIRECTORY: {{ .Values.pixelfed.instance.landing.show_directory | quote }} + INSTANCE_LANDING_SHOW_EXPLORE: {{ .Values.pixelfed.instance.landing.show_explore | quote }} + INSTANCE_CUR_REG: {{ .Values.pixelfed.instance.cur_reg | quote }} + INSTANCE_SHOW_PEERS: {{ .Values.pixelfed.instance.show_peers | quote }} + + # public feed + PF_HIDE_NSFW_ON_PUBLIC_FEEDS: {{ .Values.pixelfed.pf.hide_nsfw_on_public_feeds | quote }} + PF_LOCAL_AVATAR_TO_CLOUD: {{ .Values.pixelfed.pf.local_avatar_to_cloud | quote }} + PF_ADMIN_INVITES_ENABLED: {{ .Values.pixelfed.pf.admin_invites_enabled | quote }} + PF_MAX_USER_BLOCKS: {{ .Values.pixelfed.pf.max_user_blocks | quote }} + PF_MAX_USER_MUTES: {{ .Values.pixelfed.pf.max_user_mutes | quote }} + PF_MAX_DOMAIN_BLOCKS: {{ .Values.pixelfed.pf.max_domain_blocks | quote }} + PF_ENABLE_CLOUD: {{ .Values.pixelfed.pf.enable_cloud | quote }} + PF_MAX_USERS: {{ .Values.pixelfed.pf.max_users | quote }} + PF_ENFORCE_MAX_USERS: {{ .Values.pixelfed.pf.enforce_max_users | quote }} + PF_OPTIMIZE_IMAGES: {{ .Values.pixelfed.pf.optimize_images | quote }} + PF_OPTIMIZE_VIDEOS: {{ .Values.pixelfed.pf.optimize_videos | quote }} + PF_MAX_COLLECTION_LENGTH: {{ .Values.pixelfed.pf.max_collection_length | quote }} + + # Laravel Configuration + SESSION_DRIVER: "database" + CACHE_DRIVER: "redis" + QUEUE_DRIVER: "redis" + BROADCAST_DRIVER: "log" + LOG_CHANNEL: {{ .Values.pixelfed.laravel.log_channel }} + HORIZON_PREFIX: "horizon-" + + # activity pub + ACTIVITY_PUB: {{ .Values.pixelfed.activity_pub.enabled | quote }} + AP_REMOTE_FOLLOW: {{ .Values.pixelfed.activity_pub.remote_follow | quote }} + AP_SHAREDINBOX: {{ .Values.pixelfed.activity_pub.sharedinbox | quote }} + AP_INBOX: {{ .Values.pixelfed.activity_pub.inbox | quote }} + AP_OUTBOX: {{ .Values.pixelfed.activity_pub.outbox | quote }} + + # mail + MAIL_DRIVER: "{{ .Values.pixelfed.mail.driver }}" + MAIL_ENCRYPTION: "{{ .Values.pixelfed.mail.encryption }}" + + # database configuration + DB_CONNECTION: {{ .Values.pixelfed.db.connection }} + DB_APPLY_NEW_MIGRATIONS_AUTOMATICALLY: "{{ .Values.pixelfed.db.apply_new_migrations_automatically }}" diff --git a/charts/pixelfed/templates/deployment.yaml b/charts/pixelfed/templates/deployment.yaml index 0656378..edd8ffa 100644 --- a/charts/pixelfed/templates/deployment.yaml +++ b/charts/pixelfed/templates/deployment.yaml @@ -40,145 +40,10 @@ spec: - name: http containerPort: {{ .Values.service.targetPort }} protocol: TCP + envFrom: + - configMapRef: + name: {{ include "pixelfed.fullname" . }}-env env: - # app data - - name: APP_NAME - value: {{ .Values.pixelfed.app.name }} - - name: APP_ENV - value: {{ .Values.pixelfed.app.env }} - - name: APP_PORT - value: {{ .Values.service.targetPort | quote}} - - name: APP_URL - value: {{ .Values.pixelfed.app.url }} - - name: APP_LOCALE - value: {{ .Values.pixelfed.app.locale }} - {{- with .Values.pixelfed.app.domain }} - - name: APP_DOMAIN - value: {{ . }} - {{- end }} - - # registration related - - name: OPEN_REGISTRATION - value: {{ .Values.pixelfed.open_registration | quote }} - - name: ENFORCE_EMAIL_VERIFICATION - value: {{ .Values.pixelfed.enforce_email_verification | quote }} - - name: IMAGE_QUALITY - value: {{ .Values.pixelfed.image_quality | quote }} - - name: ACCOUNT_DELETION - value: {{ .Values.pixelfed.account_deletion | quote }} - - name: OAUTH_ENABLED - value: {{ .Values.pixelfed.oauth_enabled | quote }} - - # limits - - name: MIN_PASSWORD_LENGTH - value: {{ .Values.pixelfed.min_password_length | quote }} - - name: MAX_ACCOUNT_SIZE - value: {{ .Values.pixelfed.max_account_size | quote }} - - name: MAX_PHOTO_SIZE - value: {{ .Values.pixelfed.max_photo_size | quote }} - - name: MAX_AVATAR_SIZE - value: {{ .Values.pixelfed.max_avatar_size | quote }} - - name: MAX_CAPTION_LENGTH - value: {{ .Values.pixelfed.max_caption_length | quote }} - - name: MAX_BIO_LENGTH - value: {{ .Values.pixelfed.max_bio_length | quote }} - - name: MAX_NAME_LENGTH - value: {{ .Values.pixelfed.max_name_length | quote }} - - name: MAX_ALBUM_LENGTH - value: {{ .Values.pixelfed.max_album_length | quote }} - - name: FORCE_HTTPS_URLS - value: {{ .Values.pixelfed.force_https_urls | quote }} - - name: STORIES_ENABLED - value: {{ .Values.pixelfed.stories_enabled | quote }} - - name: ENABLE_CONFIG_CACHE - value: {{ .Values.pixelfed.enable_config_cache | quote }} - - # instance config - - name: INSTANCE_DESCRIPTION - value: {{ .Values.pixelfed.instance.description | quote }} - - name: INSTANCE_CONTACT_FORM - value: {{ .Values.pixelfed.instance.contact_form | quote }} - - name: INSTANCE_DISCOVER_PUBLIC - value: {{ .Values.pixelfed.instance.discover_public | quote }} - - name: INSTANCE_PUBLIC_HASHTAGS - value: {{ .Values.pixelfed.instance.public_hashtags | quote }} - {{- with .Values.pixelfed.instance.contact_email }} - - name: INSTANCE_CONTACT_EMAIL - value: {{ .Values.pixelfed.instance.contact_email }} - {{- end }} - - name: INSTANCE_PROFILE_EMBEDS - value: {{ .Values.pixelfed.instance.profile_embeds | quote }} - - name: INSTANCE_POST_EMBEDS - value: {{ .Values.pixelfed.instance.post_embeds | quote }} - - name: INSTANCE_REPORTS_EMAIL_ENABLED - value: {{ .Values.pixelfed.instance.reports.email_enabled | quote }} - {{- with .Values.pixelfed.instance.reports.email_addresses }} - - name: INSTANCE_REPORTS_EMAIL_ADDRESSES - value: {{ join "," . }} - {{- end }} - - name: INSTANCE_REPORTS_EMAIL_AUTOSPAM - value: {{ .Values.pixelfed.instance.reports.email_autospam | quote }} - - name: INSTANCE_LANDING_SHOW_DIRECTORY - value: {{ .Values.pixelfed.instance.landing.show_directory | quote }} - - name: INSTANCE_LANDING_SHOW_EXPLORE - value: {{ .Values.pixelfed.instance.landing.show_explore | quote }} - - name: INSTANCE_CUR_REG - value: {{ .Values.pixelfed.instance.cur_reg | quote }} - - name: INSTANCE_SHOW_PEERS - value: {{ .Values.pixelfed.instance.show_peers | quote }} - - # public feed - - name: PF_HIDE_NSFW_ON_PUBLIC_FEEDS - value: {{ .Values.pixelfed.pf.hide_nsfw_on_public_feeds | quote }} - - name: PF_LOCAL_AVATAR_TO_CLOUD - value: {{ .Values.pixelfed.pf.local_avatar_to_cloud | quote }} - - name: PF_ADMIN_INVITES_ENABLED - value: {{ .Values.pixelfed.pf.admin_invites_enabled | quote }} - - name: PF_MAX_USER_BLOCKS - value: {{ .Values.pixelfed.pf.max_user_blocks | quote }} - - name: PF_MAX_USER_MUTES - value: {{ .Values.pixelfed.pf.max_user_mutes | quote }} - - name: PF_MAX_DOMAIN_BLOCKS - value: {{ .Values.pixelfed.pf.max_domain_blocks | quote }} - - name: PF_ENABLE_CLOUD - value: {{ .Values.pixelfed.pf.enable_cloud | quote }} - - name: PF_MAX_USERS - value: {{ .Values.pixelfed.pf.max_users | quote }} - - name: PF_ENFORCE_MAX_USERS - value: {{ .Values.pixelfed.pf.enforce_max_users | quote }} - - name: PF_OPTIMIZE_IMAGES - value: {{ .Values.pixelfed.pf.optimize_images | quote }} - - name: PF_OPTIMIZE_VIDEOS - value: {{ .Values.pixelfed.pf.optimize_videos | quote }} - - name: PF_MAX_COLLECTION_LENGTH - value: {{ .Values.pixelfed.pf.max_collection_length | quote }} - - # Laravel Configuration - - name: SESSION_DRIVER - value: "database" - - name: CACHE_DRIVER - value: "redis" - - name: QUEUE_DRIVER - value: "redis" - - name: BROADCAST_DRIVER - value: "log" - - name: LOG_CHANNEL - value: {{ .Values.pixelfed.laravel.log_channel }} - - name: HORIZON_PREFIX - value: "horizon-" - - # activity pub - - name: ACTIVITY_PUB - value: {{ .Values.pixelfed.activity_pub.enabled | quote }} - - name: AP_REMOTE_FOLLOW - value: {{ .Values.pixelfed.activity_pub.remote_follow | quote }} - - name: AP_SHAREDINBOX - value: {{ .Values.pixelfed.activity_pub.sharedinbox | quote }} - - name: AP_INBOX - value: {{ .Values.pixelfed.activity_pub.inbox | quote }} - - name: AP_OUTBOX - value: {{ .Values.pixelfed.activity_pub.outbox | quote }} - # redis - name: REDIS_HOST {{- if .Values.externalValkey.existingSecret }} @@ -217,8 +82,6 @@ spec: {{- end }} # mail - - name: MAIL_DRIVER - value: "{{ .Values.pixelfed.mail.driver }}" - name: MAIL_HOST valueFrom: secretKeyRef: @@ -263,12 +126,8 @@ spec: name: pixelfed-mail key: password {{- end }} - - name: MAIL_ENCRYPTION - value: "{{ .Values.pixelfed.mail.encryption }}" # database configuration - - name: DB_CONNECTION - value: {{ .Values.externalDatabase.connection }} - name: DB_HOST {{- if and .Values.externalDatabase.enabled .Values.externalDatabase.existingSecret }} valueFrom: @@ -332,8 +191,6 @@ spec: {{- else }} value: {{ .Values.postgresql.primary.service.ports.postgresql | quote }} {{- end }} - - name: DB_APPLY_NEW_MIGRATIONS_AUTOMATICALLY - value: "{{ .Values.pixelfed.db_apply_new_migrations_automatically }}" {{- with .Values.livenessProbe }} livenessProbe: diff --git a/charts/pixelfed/values.yaml b/charts/pixelfed/values.yaml index 48d0c36..b7b06cf 100644 --- a/charts/pixelfed/values.yaml +++ b/charts/pixelfed/values.yaml @@ -132,8 +132,6 @@ affinity: {} externalDatabase: # -- enable using an external mysql or postgresql cluster enabled: false - # -- options: sqlite mysql pgsql sqlsrv - connection: pgsql host: "" port: 3306 database: pixelfed @@ -241,8 +239,11 @@ postgresql: storageClass: "" pixelfed: - # -- Automatically run [artisan migrate --force] if new migrations are detected. - db_apply_new_migrations_automatically: false + db: + # -- options: sqlite mysql pgsql sqlsrv + connection: pgsql + # -- Automatically run [artisan migrate --force] if new migrations are detected. + apply_new_migrations_automatically: false # -- timezone for docker container timezone: "europe/amsterdam"