Skip to content

kehralexander/kitchenowl-chart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KitchenOwl Helm Charts

This repository contains a Helm chart to deploy KitchenOwl to a Kubernetes cluster. It provisions the KitchenOwl backend API and web frontend, along with optional ingress, persistence, and monitoring resources.

  • Chart name: kitchenowl
  • Chart type: application
  • Chart version: 0.1.0
  • App version: v0.7.3

Prerequisites

  • Kubernetes 1.23+
  • Helm 3.8+
  • A container registry with network access from your cluster (public images by default)
  • Optional: An Ingress controller if using ingress
  • Optional: Prometheus Operator if using ServiceMonitor

Quick start

Install the chart into a new namespace:

helm install kitchenowl ./kitchenowl \
  --namespace kitchenowl \
  --create-namespace

Wait for the pods to be ready:

kubectl -n kitchenowl get pods

Port-forward to try it locally (if no ingress configured):

# Web frontend
kubectl -n kitchenowl port-forward svc/kitchenowl-web 8080:80
# Backend API (optional)
kubectl -n kitchenowl port-forward svc/kitchenowl-backend 8081:80

Then open http://localhost:8080

Upgrading

helm upgrade kitchenowl ./kitchenowl -n kitchenowl

Uninstall

helm uninstall kitchenowl -n kitchenowl
kubectl delete namespace kitchenowl # optional

Configuration

You can customize the deployment via values.yaml or --set flags. Below is a summary of commonly used values. See kitchenowl/values.yaml for the full list and defaults.

  • backend.
    • replicaCount: number of backend replicas
    • image.repository: container repo (default tombursch/kitchenowl-backend)
    • image.tag: image tag (default: chart appVersion if empty)
    • service.type: ClusterIP/NodePort/LoadBalancer
    • service.port: backend service port
    • resources: resource requests/limits
    • env: additional env vars (map)
    • volumes / volumeMounts: additional volumes and mounts
    • livenessProbe / readinessProbe: HTTP probe settings
  • web.
    • replicaCount: number of frontend replicas
    • image.repository: container repo (default tombursch/kitchenowl-web)
    • image.tag: image tag (default: chart appVersion if empty)
    • service.type: ClusterIP/NodePort/LoadBalancer
    • service.port: web service port
    • resources: resource requests/limits
    • env: additional env vars (map)
    • livenessProbe / readinessProbe: HTTP probe settings
  • imagePullSecrets: list for private registries
  • nameOverride / fullnameOverride: override release naming
  • podAnnotations / podLabels: extra annotations/labels for pods
  • podSecurityContext / securityContext: pod & container security settings
  • ingress.
    • enabled: enable Ingress
    • className: ingress class name
    • annotations: additional annotations
    • hosts: list of host rules with paths
    • tls: TLS secrets and hosts
  • persistence.
    • enabled: enable PVC for backend storage
    • size: PVC size (e.g., 1Gi)
    • storageClass: storage class name
    • accessMode: PVC access mode (e.g., ReadWriteOnce)
  • monitoring.
    • enabled: create a basic auth secret for monitoring endpoints
    • auth.username / auth.password: credentials for the above
    • servicemonitor.enabled: create a ServiceMonitor (Prometheus Operator)
  • nodeSelector / tolerations / affinity: scheduling controls

Examples

Enable ingress (HTTP)

# values-ingress.yaml
ingress:
  enabled: true
  className: "nginx"
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "32m"
  hosts:
    - host: kitchenowl.example.com
      paths:
        - path: /
          pathType: ImplementationSpecific

Apply:

helm upgrade --install kitchenowl ./kitchenowl \
  -n kitchenowl \
  -f values-ingress.yaml

Enable persistence

# values-persistence.yaml
persistence:
  enabled: true
  size: 5Gi
  storageClass: "standard"
  accessMode: ReadWriteOnce

Apply:

helm upgrade --install kitchenowl ./kitchenowl \
  -n kitchenowl \
  -f values-persistence.yaml

Enable ServiceMonitor and basic auth for monitoring

# values-monitoring.yaml
monitoring:
  enabled: true
  auth:
    username: kitchenowl
    password: strong-password
  servicemonitor:
    enabled: true

Apply:

helm upgrade --install kitchenowl ./kitchenowl \
  -n kitchenowl \
  -f values-monitoring.yaml

Chart structure

kitchenowl/
  Chart.yaml
  values.yaml
  templates/
    backend-deployment.yaml
    backend-service.yaml
    backend-secret.yaml
    web-deployment.yaml
    web-service.yaml
    ingress.yaml
    pvc.yaml
    servicemonitor.yaml
    monitoring-auth-secret.yaml
    _helpers.tpl
    NOTES.txt

Development

  • Validate rendering:
helm template kitchenowl ./kitchenowl -n kitchenowl
  • Use the provided test values for local checks:
helm template kitchenowl ./kitchenowl -n kitchenowl -f test/values.yaml
  • Lint the chart:
helm lint ./kitchenowl

Security notes

  • If using private images, configure imagePullSecrets.
  • Review and harden securityContext and podSecurityContext as needed.

License

This chart is provided as-is. Refer to KitchenOwl’s upstream project for application licensing details. If this repository includes a specific LICENSE file, it takes precedence.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages