First iteration of farmos helm chart.

This commit is contained in:
2025-08-23 13:59:39 +12:00
parent 45141753ee
commit 801aa5c694
6 changed files with 102 additions and 0 deletions

7
farmos/Chart.yaml Normal file
View File

@ -0,0 +1,7 @@
---
apiVersion: v2
appVersion: 3.4.5
description: FarmOS Helm chart for Kubernetes
name: farmos
type: application
version: "0.1.0"

26
farmos/README.org Normal file
View File

@ -0,0 +1,26 @@
#+TITLE: Farmos farm management
#+AUTHOR: James Blair
#+EMAIL: mail@jamesblair.net
#+DATE: <2025-08-23 Sat>
[[https://github.com/farmos/farmos][FarmOS]] is a self hosted farm management service.
I created this simplified helm chart for self-hosting farmos in a container on kubernetes. Complete the steps below to deploy this chart.
#+NAME: Deploy gitea via helm
#+begin_src tmux
# Ensure gitea namespace exists
sudo kubectl create namespace jamma-farmos
# Create directories if they don't already exist
mkdir --parent "/home/${USER}/Services/farmos"
# Clone charts repository
cd "/home/${USER}/Services/gitea" && git clone https://gitea.jamma.life/jmhbnz/charts.git
# Ensure the repository is up to date
cd charts/farmos && git pull
# Install the chart
helm upgrade --install -n jamma-farmos jamma-farmos .
#+end_src

View File

@ -0,0 +1,32 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: farmos
labels:
app: farmos
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: farmos
template:
metadata:
labels:
app: farmos
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: "always"
ports:
- name: http
containerPort: 80
protocol: TCP
volumeMounts:
- name: data
mountPath: /opt/drupal/web/sites
volumes:
- name: data
persistentVolumeClaim:
claimName: farmos

15
farmos/templates/pvc.yaml Normal file
View File

@ -0,0 +1,15 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: farmos
name: farmos
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: local-path
volumeMode: Filesystem

View File

@ -0,0 +1,16 @@
---
apiVersion: v1
kind: Service
metadata:
name: farmos
labels:
app: farmos
spec:
type: ClusterIP
ports:
- port: 80
targetPort: http
protocol: TCP
name: http
selector:
app: farmos

6
farmos/values.yaml Normal file
View File

@ -0,0 +1,6 @@
---
replicaCount: 1
image:
repository: docker.io/farmos/farmos
tag: "3.4.5"