Files
Sebastian Jäger 5060d9f565 use RollingUpdate
2024-02-14 18:05:05 +01:00
..
2024-02-14 18:04:40 +01:00
2024-02-14 18:05:05 +01:00

Deployment using Helm

Helm chart to self-host Omnivore.

Notes and General Information

This helm chart uses docker images from sejaeger/omnivore-*. If you want to use the Web-UI or build your own images, checkout ../.build-and-push-images.sh. You will find some hard-coded environment variables (e.g., PG_DB or PG_USER), please don't change them! Those are also hard-coded in the code base and changing them will likely cause problems. Please have a look at the values file and change it accordingly to your setup, especially: postgres hostname, omnivore URL.

Omnivore requires Postgres (+vector extension!) to store its information. Please make sure to have it up and running. Using the bitnami Helm charts works perfectly fine but you need to use a custom built image that contains the vector extension: See this descriptions for more information or simply use sejaeger/postgres-vector from docker hub.

This setup uses a couple of secrets to safely store passwords, tokens and private information. It's your responsibility to generate them and create the following secretes accordingly.

  • omnivore-image-proxy-secret
    • IMAGE_PROXY_SECRET
  • omnivore-jwt-secret
    • JWT_SECRET
  • omnivore-sso-jwt-secret
    • SSO_JWT_SECRET
  • omnivore-pg-password
    • PG_PASSWORD
  • postgres-admin-user-and-password
    • PGPASSWORD
    • POSTGRES_USER
  • omnivore-content-fetch-verification-token
    • VERIFICATION_TOKEN

Deployment

helm repo add bjw-s https://bjw-s.github.io/helm-charts
helm repo update

In order to deploy the manifest for this example, issue the following command:

helm install omnivore bjw-s/app-template --values values.yaml

This will apply the rendered manifest(s) to your cluster.

RSS Subscriptions

Currently, handling RSS subscriptions are not supported for self-hosted instances. However, you can use this simple tool for this: https://github.com/se-jaeger/omnivore-rss-handler-hack.

Adding the following controller and persistence information triggers the rss-handler hourly.

controllers:
  rss-handler-hack:
    type: cronjob
    cronjob:
      schedule: "*/60 * * * *"
      failedJobsHistoryLimit: 1
      successfulJobsHistoryLimit: 3
      concurrencyPolicy: Forbid
    containers:
      rss-handler-hack:
        image:
          repository: sejaeger/omnivore-rss-handler-hack
          tag: v0.2
          imagePullPolicy: IfNotPresent
        env:
          API_URL: "http://omnivore-omnivore-api:8080/api/graphql"
          CACHE_FILE: "/home/cache.json"
          FEEDS_FILE: "/home/feeds.json"
        envFrom:
          - secretRef:
              name: omnivore-api-token

persistence:
  rss-handler-hack:
    type: persistentVolumeClaim
    existingClaim: omnivore-pvc
    advancedMounts:
      rss-handler-hack: # controller name
        rss-handler-hack: # container name
          - path: /home

FEEDS_FILE is used to define the subscriptions:

{
  "blog": "https://blog.example/feed",
  "another-blog": "https://another-blog.example/rss.xml",
}

omnivore-api-token secret contains a single key API_TOKEN, which can be generated using the Omnivore Web-UI.

Currently not Implemented

  • health checks
  • resource limits