Skip to content

Commit 61ff732

Browse files
authored
Merge pull request #19 from small-hack/move-base-config-to-configmap
move base config options to ConfigMap and move db migration/connection parameters to pixelfed.db section
2 parents 08a083b + 8ffc5bb commit 61ff732

File tree

5 files changed

+105
-155
lines changed

5 files changed

+105
-155
lines changed

charts/pixelfed/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 0.6.0
18+
version: 0.7.0
1919

2020
# This is the version number of the application being deployed.
2121
# renovate:image=ghcr.io/mattlqx/docker-pixelfed

charts/pixelfed/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# pixelfed
22

3-
![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)
3+
![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)
44

55
A Helm chart for deploying Pixelfed on Kubernetes
66

@@ -26,7 +26,6 @@ A Helm chart for deploying Pixelfed on Kubernetes
2626
| autoscaling.maxReplicas | int | `100` | |
2727
| autoscaling.minReplicas | int | `1` | |
2828
| autoscaling.targetCPUUtilizationPercentage | int | `80` | |
29-
| externalDatabase.connection | string | `"pgsql"` | options: sqlite mysql pgsql sqlsrv |
3029
| externalDatabase.database | string | `"pixelfed"` | |
3130
| externalDatabase.enabled | bool | `false` | enable using an external mysql or postgresql cluster |
3231
| externalDatabase.existingSecret | string | `""` | get database credentials from an existing Kubernetes Secret |
@@ -77,7 +76,8 @@ A Helm chart for deploying Pixelfed on Kubernetes
7776
| pixelfed.app.name | string | `"Pixelfed"` | The name of your server/instance |
7877
| pixelfed.app.url | string | `"https://localhost"` | change this to the domain of your pixelfed instance |
7978
| pixelfed.atom_feeds | string | `"true"` | https://docs.pixelfed.org/technical-documentation/config/#atom_feeds |
80-
| pixelfed.db_apply_new_migrations_automatically | bool | `false` | |
79+
| pixelfed.db.apply_new_migrations_automatically | bool | `false` | |
80+
| pixelfed.db.connection | string | `"pgsql"` | options: sqlite mysql pgsql sqlsrv |
8181
| pixelfed.enable_config_cache | bool | `true` | Enable the config cache to allow you to manage settings via the admin dashboard |
8282
| pixelfed.enforce_email_verification | bool | `true` | Enforce email verification |
8383
| pixelfed.exp_emc | bool | `true` | Experimental Configuration |
@@ -192,4 +192,4 @@ A Helm chart for deploying Pixelfed on Kubernetes
192192
| volumes | list | `[]` | Additional volumes on the output Deployment definition. |
193193

194194
----------------------------------------------
195-
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
195+
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: {{ include "pixelfed.fullname" . }}-env
6+
data:
7+
# app data
8+
APP_NAME: {{ .Values.pixelfed.app.name }}
9+
APP_ENV: {{ .Values.pixelfed.app.env }}
10+
APP_PORT: {{ .Values.service.targetPort | quote}}
11+
APP_URL: {{ .Values.pixelfed.app.url }}
12+
APP_LOCALE: {{ .Values.pixelfed.app.locale }}
13+
{{- with .Values.pixelfed.app.domain }}
14+
APP_DOMAIN: {{ . }}
15+
{{- end }}
16+
17+
# registration related
18+
OPEN_REGISTRATION: {{ .Values.pixelfed.open_registration | quote }}
19+
ENFORCE_EMAIL_VERIFICATION: {{ .Values.pixelfed.enforce_email_verification | quote }}
20+
IMAGE_QUALITY: {{ .Values.pixelfed.image_quality | quote }}
21+
ACCOUNT_DELETION: {{ .Values.pixelfed.account_deletion | quote }}
22+
OAUTH_ENABLED: {{ .Values.pixelfed.oauth_enabled | quote }}
23+
24+
# limits
25+
MIN_PASSWORD_LENGTH: {{ .Values.pixelfed.min_password_length | quote }}
26+
MAX_ACCOUNT_SIZE: {{ .Values.pixelfed.max_account_size | quote }}
27+
MAX_PHOTO_SIZE: {{ .Values.pixelfed.max_photo_size | quote }}
28+
MAX_AVATAR_SIZE: {{ .Values.pixelfed.max_avatar_size | quote }}
29+
MAX_CAPTION_LENGTH: {{ .Values.pixelfed.max_caption_length | quote }}
30+
MAX_BIO_LENGTH: {{ .Values.pixelfed.max_bio_length | quote }}
31+
MAX_NAME_LENGTH: {{ .Values.pixelfed.max_name_length | quote }}
32+
MAX_ALBUM_LENGTH: {{ .Values.pixelfed.max_album_length | quote }}
33+
FORCE_HTTPS_URLS: {{ .Values.pixelfed.force_https_urls | quote }}
34+
STORIES_ENABLED: {{ .Values.pixelfed.stories_enabled | quote }}
35+
ENABLE_CONFIG_CACHE: {{ .Values.pixelfed.enable_config_cache | quote }}
36+
37+
# instance config
38+
INSTANCE_DESCRIPTION: {{ .Values.pixelfed.instance.description | quote }}
39+
INSTANCE_CONTACT_FORM: {{ .Values.pixelfed.instance.contact_form | quote }}
40+
INSTANCE_DISCOVER_PUBLIC: {{ .Values.pixelfed.instance.discover_public | quote }}
41+
INSTANCE_PUBLIC_HASHTAGS: {{ .Values.pixelfed.instance.public_hashtags | quote }}
42+
{{- with .Values.pixelfed.instance.contact_email }}
43+
INSTANCE_CONTACT_EMAIL: {{ .Values.pixelfed.instance.contact_email }}
44+
{{- end }}
45+
INSTANCE_PROFILE_EMBEDS: {{ .Values.pixelfed.instance.profile_embeds | quote }}
46+
INSTANCE_POST_EMBEDS: {{ .Values.pixelfed.instance.post_embeds | quote }}
47+
INSTANCE_REPORTS_EMAIL_ENABLED: {{ .Values.pixelfed.instance.reports.email_enabled | quote }}
48+
{{- with .Values.pixelfed.instance.reports.email_addresses }}
49+
INSTANCE_REPORTS_EMAIL_ADDRESSES: {{ join "," . }}
50+
{{- end }}
51+
INSTANCE_REPORTS_EMAIL_AUTOSPAM: {{ .Values.pixelfed.instance.reports.email_autospam | quote }}
52+
INSTANCE_LANDING_SHOW_DIRECTORY: {{ .Values.pixelfed.instance.landing.show_directory | quote }}
53+
INSTANCE_LANDING_SHOW_EXPLORE: {{ .Values.pixelfed.instance.landing.show_explore | quote }}
54+
INSTANCE_CUR_REG: {{ .Values.pixelfed.instance.cur_reg | quote }}
55+
INSTANCE_SHOW_PEERS: {{ .Values.pixelfed.instance.show_peers | quote }}
56+
57+
# public feed
58+
PF_HIDE_NSFW_ON_PUBLIC_FEEDS: {{ .Values.pixelfed.pf.hide_nsfw_on_public_feeds | quote }}
59+
PF_LOCAL_AVATAR_TO_CLOUD: {{ .Values.pixelfed.pf.local_avatar_to_cloud | quote }}
60+
PF_ADMIN_INVITES_ENABLED: {{ .Values.pixelfed.pf.admin_invites_enabled | quote }}
61+
PF_MAX_USER_BLOCKS: {{ .Values.pixelfed.pf.max_user_blocks | quote }}
62+
PF_MAX_USER_MUTES: {{ .Values.pixelfed.pf.max_user_mutes | quote }}
63+
PF_MAX_DOMAIN_BLOCKS: {{ .Values.pixelfed.pf.max_domain_blocks | quote }}
64+
PF_ENABLE_CLOUD: {{ .Values.pixelfed.pf.enable_cloud | quote }}
65+
PF_MAX_USERS: {{ .Values.pixelfed.pf.max_users | quote }}
66+
PF_ENFORCE_MAX_USERS: {{ .Values.pixelfed.pf.enforce_max_users | quote }}
67+
PF_OPTIMIZE_IMAGES: {{ .Values.pixelfed.pf.optimize_images | quote }}
68+
PF_OPTIMIZE_VIDEOS: {{ .Values.pixelfed.pf.optimize_videos | quote }}
69+
PF_MAX_COLLECTION_LENGTH: {{ .Values.pixelfed.pf.max_collection_length | quote }}
70+
71+
# Laravel Configuration
72+
SESSION_DRIVER: "database"
73+
CACHE_DRIVER: "redis"
74+
QUEUE_DRIVER: "redis"
75+
BROADCAST_DRIVER: "log"
76+
LOG_CHANNEL: {{ .Values.pixelfed.laravel.log_channel }}
77+
HORIZON_PREFIX: "horizon-"
78+
79+
# activity pub
80+
ACTIVITY_PUB: {{ .Values.pixelfed.activity_pub.enabled | quote }}
81+
AP_REMOTE_FOLLOW: {{ .Values.pixelfed.activity_pub.remote_follow | quote }}
82+
AP_SHAREDINBOX: {{ .Values.pixelfed.activity_pub.sharedinbox | quote }}
83+
AP_INBOX: {{ .Values.pixelfed.activity_pub.inbox | quote }}
84+
AP_OUTBOX: {{ .Values.pixelfed.activity_pub.outbox | quote }}
85+
86+
# mail
87+
MAIL_DRIVER: "{{ .Values.pixelfed.mail.driver }}"
88+
MAIL_ENCRYPTION: "{{ .Values.pixelfed.mail.encryption }}"
89+
90+
# database configuration
91+
DB_CONNECTION: {{ .Values.pixelfed.db.connection }}
92+
DB_APPLY_NEW_MIGRATIONS_AUTOMATICALLY: "{{ .Values.pixelfed.db.apply_new_migrations_automatically }}"

charts/pixelfed/templates/deployment.yaml

Lines changed: 3 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -40,145 +40,10 @@ spec:
4040
- name: http
4141
containerPort: {{ .Values.service.targetPort }}
4242
protocol: TCP
43+
envFrom:
44+
- configMapRef:
45+
name: {{ include "pixelfed.fullname" . }}-env
4346
env:
44-
# app data
45-
- name: APP_NAME
46-
value: {{ .Values.pixelfed.app.name }}
47-
- name: APP_ENV
48-
value: {{ .Values.pixelfed.app.env }}
49-
- name: APP_PORT
50-
value: {{ .Values.service.targetPort | quote}}
51-
- name: APP_URL
52-
value: {{ .Values.pixelfed.app.url }}
53-
- name: APP_LOCALE
54-
value: {{ .Values.pixelfed.app.locale }}
55-
{{- with .Values.pixelfed.app.domain }}
56-
- name: APP_DOMAIN
57-
value: {{ . }}
58-
{{- end }}
59-
60-
# registration related
61-
- name: OPEN_REGISTRATION
62-
value: {{ .Values.pixelfed.open_registration | quote }}
63-
- name: ENFORCE_EMAIL_VERIFICATION
64-
value: {{ .Values.pixelfed.enforce_email_verification | quote }}
65-
- name: IMAGE_QUALITY
66-
value: {{ .Values.pixelfed.image_quality | quote }}
67-
- name: ACCOUNT_DELETION
68-
value: {{ .Values.pixelfed.account_deletion | quote }}
69-
- name: OAUTH_ENABLED
70-
value: {{ .Values.pixelfed.oauth_enabled | quote }}
71-
72-
# limits
73-
- name: MIN_PASSWORD_LENGTH
74-
value: {{ .Values.pixelfed.min_password_length | quote }}
75-
- name: MAX_ACCOUNT_SIZE
76-
value: {{ .Values.pixelfed.max_account_size | quote }}
77-
- name: MAX_PHOTO_SIZE
78-
value: {{ .Values.pixelfed.max_photo_size | quote }}
79-
- name: MAX_AVATAR_SIZE
80-
value: {{ .Values.pixelfed.max_avatar_size | quote }}
81-
- name: MAX_CAPTION_LENGTH
82-
value: {{ .Values.pixelfed.max_caption_length | quote }}
83-
- name: MAX_BIO_LENGTH
84-
value: {{ .Values.pixelfed.max_bio_length | quote }}
85-
- name: MAX_NAME_LENGTH
86-
value: {{ .Values.pixelfed.max_name_length | quote }}
87-
- name: MAX_ALBUM_LENGTH
88-
value: {{ .Values.pixelfed.max_album_length | quote }}
89-
- name: FORCE_HTTPS_URLS
90-
value: {{ .Values.pixelfed.force_https_urls | quote }}
91-
- name: STORIES_ENABLED
92-
value: {{ .Values.pixelfed.stories_enabled | quote }}
93-
- name: ENABLE_CONFIG_CACHE
94-
value: {{ .Values.pixelfed.enable_config_cache | quote }}
95-
96-
# instance config
97-
- name: INSTANCE_DESCRIPTION
98-
value: {{ .Values.pixelfed.instance.description | quote }}
99-
- name: INSTANCE_CONTACT_FORM
100-
value: {{ .Values.pixelfed.instance.contact_form | quote }}
101-
- name: INSTANCE_DISCOVER_PUBLIC
102-
value: {{ .Values.pixelfed.instance.discover_public | quote }}
103-
- name: INSTANCE_PUBLIC_HASHTAGS
104-
value: {{ .Values.pixelfed.instance.public_hashtags | quote }}
105-
{{- with .Values.pixelfed.instance.contact_email }}
106-
- name: INSTANCE_CONTACT_EMAIL
107-
value: {{ .Values.pixelfed.instance.contact_email }}
108-
{{- end }}
109-
- name: INSTANCE_PROFILE_EMBEDS
110-
value: {{ .Values.pixelfed.instance.profile_embeds | quote }}
111-
- name: INSTANCE_POST_EMBEDS
112-
value: {{ .Values.pixelfed.instance.post_embeds | quote }}
113-
- name: INSTANCE_REPORTS_EMAIL_ENABLED
114-
value: {{ .Values.pixelfed.instance.reports.email_enabled | quote }}
115-
{{- with .Values.pixelfed.instance.reports.email_addresses }}
116-
- name: INSTANCE_REPORTS_EMAIL_ADDRESSES
117-
value: {{ join "," . }}
118-
{{- end }}
119-
- name: INSTANCE_REPORTS_EMAIL_AUTOSPAM
120-
value: {{ .Values.pixelfed.instance.reports.email_autospam | quote }}
121-
- name: INSTANCE_LANDING_SHOW_DIRECTORY
122-
value: {{ .Values.pixelfed.instance.landing.show_directory | quote }}
123-
- name: INSTANCE_LANDING_SHOW_EXPLORE
124-
value: {{ .Values.pixelfed.instance.landing.show_explore | quote }}
125-
- name: INSTANCE_CUR_REG
126-
value: {{ .Values.pixelfed.instance.cur_reg | quote }}
127-
- name: INSTANCE_SHOW_PEERS
128-
value: {{ .Values.pixelfed.instance.show_peers | quote }}
129-
130-
# public feed
131-
- name: PF_HIDE_NSFW_ON_PUBLIC_FEEDS
132-
value: {{ .Values.pixelfed.pf.hide_nsfw_on_public_feeds | quote }}
133-
- name: PF_LOCAL_AVATAR_TO_CLOUD
134-
value: {{ .Values.pixelfed.pf.local_avatar_to_cloud | quote }}
135-
- name: PF_ADMIN_INVITES_ENABLED
136-
value: {{ .Values.pixelfed.pf.admin_invites_enabled | quote }}
137-
- name: PF_MAX_USER_BLOCKS
138-
value: {{ .Values.pixelfed.pf.max_user_blocks | quote }}
139-
- name: PF_MAX_USER_MUTES
140-
value: {{ .Values.pixelfed.pf.max_user_mutes | quote }}
141-
- name: PF_MAX_DOMAIN_BLOCKS
142-
value: {{ .Values.pixelfed.pf.max_domain_blocks | quote }}
143-
- name: PF_ENABLE_CLOUD
144-
value: {{ .Values.pixelfed.pf.enable_cloud | quote }}
145-
- name: PF_MAX_USERS
146-
value: {{ .Values.pixelfed.pf.max_users | quote }}
147-
- name: PF_ENFORCE_MAX_USERS
148-
value: {{ .Values.pixelfed.pf.enforce_max_users | quote }}
149-
- name: PF_OPTIMIZE_IMAGES
150-
value: {{ .Values.pixelfed.pf.optimize_images | quote }}
151-
- name: PF_OPTIMIZE_VIDEOS
152-
value: {{ .Values.pixelfed.pf.optimize_videos | quote }}
153-
- name: PF_MAX_COLLECTION_LENGTH
154-
value: {{ .Values.pixelfed.pf.max_collection_length | quote }}
155-
156-
# Laravel Configuration
157-
- name: SESSION_DRIVER
158-
value: "database"
159-
- name: CACHE_DRIVER
160-
value: "redis"
161-
- name: QUEUE_DRIVER
162-
value: "redis"
163-
- name: BROADCAST_DRIVER
164-
value: "log"
165-
- name: LOG_CHANNEL
166-
value: {{ .Values.pixelfed.laravel.log_channel }}
167-
- name: HORIZON_PREFIX
168-
value: "horizon-"
169-
170-
# activity pub
171-
- name: ACTIVITY_PUB
172-
value: {{ .Values.pixelfed.activity_pub.enabled | quote }}
173-
- name: AP_REMOTE_FOLLOW
174-
value: {{ .Values.pixelfed.activity_pub.remote_follow | quote }}
175-
- name: AP_SHAREDINBOX
176-
value: {{ .Values.pixelfed.activity_pub.sharedinbox | quote }}
177-
- name: AP_INBOX
178-
value: {{ .Values.pixelfed.activity_pub.inbox | quote }}
179-
- name: AP_OUTBOX
180-
value: {{ .Values.pixelfed.activity_pub.outbox | quote }}
181-
18247
# redis
18348
- name: REDIS_HOST
18449
{{- if .Values.externalValkey.existingSecret }}
@@ -217,8 +82,6 @@ spec:
21782
{{- end }}
21883

21984
# mail
220-
- name: MAIL_DRIVER
221-
value: "{{ .Values.pixelfed.mail.driver }}"
22285
- name: MAIL_HOST
22386
valueFrom:
22487
secretKeyRef:
@@ -263,12 +126,8 @@ spec:
263126
name: pixelfed-mail
264127
key: password
265128
{{- end }}
266-
- name: MAIL_ENCRYPTION
267-
value: "{{ .Values.pixelfed.mail.encryption }}"
268129

269130
# database configuration
270-
- name: DB_CONNECTION
271-
value: {{ .Values.externalDatabase.connection }}
272131
- name: DB_HOST
273132
{{- if and .Values.externalDatabase.enabled .Values.externalDatabase.existingSecret }}
274133
valueFrom:
@@ -332,8 +191,6 @@ spec:
332191
{{- else }}
333192
value: {{ .Values.postgresql.primary.service.ports.postgresql | quote }}
334193
{{- end }}
335-
- name: DB_APPLY_NEW_MIGRATIONS_AUTOMATICALLY
336-
value: "{{ .Values.pixelfed.db_apply_new_migrations_automatically }}"
337194

338195
{{- with .Values.livenessProbe }}
339196
livenessProbe:

charts/pixelfed/values.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,6 @@ affinity: {}
132132
externalDatabase:
133133
# -- enable using an external mysql or postgresql cluster
134134
enabled: false
135-
# -- options: sqlite mysql pgsql sqlsrv
136-
connection: pgsql
137135
host: ""
138136
port: 3306
139137
database: pixelfed
@@ -241,8 +239,11 @@ postgresql:
241239
storageClass: ""
242240

243241
pixelfed:
244-
# -- Automatically run [artisan migrate --force] if new migrations are detected.
245-
db_apply_new_migrations_automatically: false
242+
db:
243+
# -- options: sqlite mysql pgsql sqlsrv
244+
connection: pgsql
245+
# -- Automatically run [artisan migrate --force] if new migrations are detected.
246+
apply_new_migrations_automatically: false
246247

247248
# -- timezone for docker container
248249
timezone: "europe/amsterdam"

0 commit comments

Comments
 (0)