Go to file
perf3ct a748fcdb8f
continuous-integration/drone/pr Build is passing Details
update frontend env values
2023-10-05 15:31:06 -07:00
templates set the primary frontend service to be the primary frontend service 2023-10-05 08:57:11 -07:00
.drone.yml fix(ci): use correct path to packaged helm repo 2023-07-03 20:55:28 +02:00
.gitignore working api configmap 2023-10-04 14:31:06 -07:00
.helmignore v0.1.2 2023-02-21 15:44:51 +02:00
Chart.lock update Redis chart version 2023-10-05 15:14:58 -07:00
Chart.yaml cool 2023-09-28 18:55:27 -07:00
LICENSE Added first version of the chart 2023-01-31 09:43:51 +02:00
README.md Merge branch 'main' into new-helm-chart 2023-10-05 14:12:25 -07:00
icon.png Added first version of the chart 2023-01-31 09:43:51 +02:00
values.yaml update frontend env values 2023-10-05 15:31:06 -07:00

README.md

Vikunja Helm Chart

Deployes both frontend and api. Also, you can deploy bitnami's PostgreSQL and Redis as subcharts if you want.

Requirements

  • Kubernetes >= 1.19
  • Helm >= 3

Quickstart

The majority of default values defined in values.yaml should be compatible for your deployment. Additionally, if you utilize an Ingress for both the API and Frontend, you will be able to access the frontend out of the box. However, it won't have any default credentials, you will need to either enable registration, or execute /bin/sh on the API container and run the following command:

./vikunja user create --email <user@email.com> --user <user1> --password <password123>

If you do not wish to execute the above command in order to create a new user, you'll need to enable registration by appending

api:
  configMaps:
    config:
      enabled: true
      data:
        config.yml:
          service:
            enableregistration: true

Once you've registered your user, feel free to disable registration if you don't wish for other users to register.

Modifying Resources

Often times, modifications need to be made to a Helm chart to allow it to operate in your Kubernetes cluster. By utilizing bjw-s's common library, there are quite a few options that can be easily modified.

Anything you see here, including the top-level keys, can be added and subtracted from this chart's values.yaml, underneath the api, frontend, and (optionally) typesense key.

For example, if you wished to create a serviceAccount as can be seen here for the api pod:

api:
  serviceAccount: 
    create: true

Then, (for some reason), if you wished to deploy the frontend as a DaemonSet (as can be seen here), you could do the following:

frontend:
  controller:
    type: daemonset

Use an existing file volume claim

In the values.yaml file, you can either define your own existing Persistent Volume Claim (PVC) or have the chart create one on your behalf.

To have the chart use your pre-existing PVC:

api:
  persistence:
    data:
      enabled: true
      existingClaim: <your-claim>

To have the chart create one on your behalf:

# You can find the default values 
api:
  enabled: true
  persistence:
    data:
      enabled: true
      accessMode: ReadWriteOnce
      size: 10Gi
      storageClass: storage-class

Publishing

The following steps are automatically performed when a git tag for a new version is pushed to the repository. They are only listed here for reference.

  1. Pull all dependencies before packaging.
helm dependency update
  1. In order to publish the chart, you have to either use curl or helm cm-push.
helm package .
curl --user '<username>:<password>' -X POST --upload-file './<archive>.tgz' https://kolaente.dev/api/packages/vikunja/helm/api/charts
helm package .
helm repo add --username '<username>' --password '<password>' vikunja https://kolaente.dev/api/packages/vikunja/helm
helm cm-push './<archive>.tgz' vikunja

As you can see, you do not have to specify the name of the repository, just the name of the organization.