Installs Firefly III Homepage: https://www.firefly-iii.org/
| Name | Url | |
|---|---|---|
| morremeyer | firefly-iii@mor.re |
This enables a simplified syntax to set envirnoment variables from a ConfigMap or Secret:
envValueFrom:
USER:
secretKeyRef:
name: secret-name
key: userWhen a release introduces breaking changes, this section outlines the manual actions that need to be taken.
This version bump is a full rework of the chart to be in line with current helm best practices and to add configurability. See the subsections for all changes.
A cronjob has been added to support Firefly III features that need it. It is disabled by default, set cronjob.enabled to true to enable it. Please note that you need to specify cronjob.auth.token or cronjob.auth.existingSecret so that the job is actually deployed an can run. If you specify an existingSecret, it needs to have the token in the field token.
The PVC has been renamed. You therefore need to manually back up and restore the upload data or retain and reclaim the PV with the new PVC. As this is highly dependant on your Kubernetes distribution and provider, instructions for the latter can't be generalized.
To backup and restore your files easily, use kubectl cp $FIREFLY_POD_NAME:/var/www/html/storage/upload $LOCAL_BACKUP_DIR, apply the changes and then reverse the process by running kubectl cp "${LOCAL_BACKUP_DIR}/*" $FIREFLY_POD_NAME:/var/www/html/storage/upload/.
The configuration has changed as follows:
storagehas been moved topersistence. There's a newpersistence.enabledvalue that istrueby default.storage.dataSizehas been moved topersistence.storage.hostNamehas moved to a list iningress.hosts- The ingress is disabled by default. Set
ingress.enabledtotrueto enable it configshas moved toconfig.env- A new key
config.existingSecrethas been added. It references a secret where you can store Firefly III configuration environment variables. Environment variables specified in the secret override the ones inconfig.env.
The pod label keys have changed as follows:
apphas been replaced byapp.kubernetes.io/namecharthas been replaced byhelm.sh/chartreleasehas been replaced byapp.kubernetes.io/instanceheritagehas been replaced byapp.kubernetes.io/managed-by
The storage class and access modes have been changed to match more setups without the need for configuration. If you want to keep the old settings, set the following values:
storage:
class: nfs-client
accessModes: ReadWriteManyThe Ingress annotations have been made configurable. To keep the annotations set in 0.0.2, add the following to your values:
ingress:
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/proxy-buffer-size: "16k"| Key | Type | Default | Description |
|---|---|---|---|
| affinity | object | {} |
|
| autoscaling.enabled | bool | false |
|
| autoscaling.maxReplicas | int | 100 |
|
| autoscaling.minReplicas | int | 1 |
|
| autoscaling.targetCPUUtilizationPercentage | int | 80 |
|
| config | object | {"env":{"DB_HOST":"firefly-db","DEFAULT_LANGUAGE":"en_US","DEFAULT_LOCALE":"equal","TRUSTED_PROXIES":"**","TZ":"Europe/Amsterdam"},"envValueFrom":{},"existingSecret":""} |
Environment variables for Firefly III. See docs at: https://github.com/firefly-iii/firefly-iii/blob/main/.env.example |
| config.env | object | {"DB_HOST":"firefly-db","DEFAULT_LANGUAGE":"en_US","DEFAULT_LOCALE":"equal","TRUSTED_PROXIES":"**","TZ":"Europe/Amsterdam"} |
Directly defined environment variables. Use this for non-secret configuration values. |
| config.envValueFrom | object | {} |
Set environment variables from configMaps or Secrets |
| config.existingSecret | string | "" |
Set this to the name of a secret to load environment variables from. If defined, values in the secret will override values in config.env |
| cronjob | object | {"affinity":{},"annotations":{},"auth":{"existingSecret":"","secretKey":"token","token":""},"enabled":false,"failedJobsHistoryLimit":1,"image":{"pullPolicy":"IfNotPresent","repository":"curlimages/curl","tag":"7.81.0"},"imagePullSecrets":[],"nodeSelector":{},"podAnnotations":{},"podSecurityContext":{},"resources":{},"restartPolicy":"OnFailure","schedule":"0 3 * * *","securityContext":{},"successfulJobsHistoryLimit":3,"tolerations":[]} |
A cronjob for recurring Firefly III tasks. |
| cronjob.annotations | object | {} |
Annotations for the CronJob |
| cronjob.auth | object | {"existingSecret":"","secretKey":"token","token":""} |
Authorization for the CronJob. See https://docs.firefly-iii.org/firefly-iii/advanced-installation/cron/#request-a-page-over-the-web |
| cronjob.auth.existingSecret | string | "" |
The name of a secret containing a data.token field with the cronjob token |
| cronjob.auth.secretKey | string | "token" |
The name of the key in the existing secret to get the cronjob token from |
| cronjob.auth.token | string | "" |
The token in plain text |
| cronjob.enabled | bool | false |
Set to true to enable the CronJob. Note that you need to specify either cronjob.auth.existingSecret or cronjob.auth.token for it to actually be deployed. |
| cronjob.failedJobsHistoryLimit | int | 1 |
How many pods to keep around for failed jobs |
| cronjob.restartPolicy | string | "OnFailure" |
How to treat failed jobs |
| cronjob.schedule | string | "0 3 * * *" |
When to run the CronJob. Defaults to 03:00 as this is when Firefly III executes regular tasks. |
| cronjob.successfulJobsHistoryLimit | int | 3 |
How many pods to keep around for successful jobs |
| deploymentStrategyType | string | "RollingUpdate" |
|
| extraVolumeMounts | list | [] |
|
| extraVolumes | list | [] |
|
| fullnameOverride | string | "" |
|
| image.pullPolicy | string | "IfNotPresent" |
|
| image.repository | string | "fireflyiii/core" |
|
| image.tag | string | "version-6.1.1" |
|
| imagePullSecrets | list | [] |
|
| ingress.annotations | object | {} |
|
| ingress.className | string | "" |
|
| ingress.enabled | bool | false |
|
| ingress.hosts[0] | string | "chart-example.local" |
|
| ingress.tls | list | [] |
|
| nameOverride | string | "" |
|
| nodeSelector | object | {} |
|
| persistence.accessModes | string | "ReadWriteOnce" |
|
| persistence.enabled | bool | true |
If you set this to false, uploaded attachments are not stored persistently and will be lost with every restart of the pod |
| persistence.existingClaim | string | "" |
If you want to use an existing claim, set it here |
| persistence.storage | string | "1Gi" |
|
| persistence.storageClassName | string | "" |
|
| podAnnotations | object | {} |
|
| podSecurityContext | object | {} |
|
| replicaCount | int | 1 |
|
| resources | object | {} |
|
| secrets | object | {"env":{"APP_PASSWORD":"CHANGE_ENCRYPT_ME","DB_PASSWORD":"CHANGE_ENCRYPT_ME"}} |
Create a new Secret from values file to store sensitive environment variables. Make sure to keep your secrets encrypted in the repository! For example, you can use the 'helm secrets' plugin (https://github.com/jkroepke/helm-secrets) to encrypt and manage secrets. If the 'config.existingSecret' value is set, a new Secret will not be created. |
| securityContext | object | {} |
|
| service.port | int | 80 |
|
| service.type | string | "ClusterIP" |
|
| tolerations | list | [] |