Added xandikos calendar
All checks were successful
Update Kubernetes Services Wiki / Generate and Update K8s Wiki (push) Successful in 9s
Check with kubeconform / lint (push) Successful in 12s
Auto-update README / Generate README and Create MR (push) Successful in 7s

This commit is contained in:
2025-12-23 01:07:31 +00:00
parent 01df6841a5
commit a541b2567c
5 changed files with 157 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: xandikos
namespace: argocd
spec:
project: apps
destination:
namespace: xandikos
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/xandikos
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,70 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: xandikos
labels:
app: xandikos
spec:
selector:
matchLabels:
app: xandikos
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: xandikos
spec:
nodeSelector:
kubernetes.io/hostname: master.tail2fe2d.ts.net
volumes:
- name: storage
hostPath:
path: /k8s/xandikos
type: Directory
containers:
- name: xandikos
image: ghcr.io/jelmer/xandikos:latest
imagePullPolicy: Always
command:
- "python3"
- "-m"
- "xandikos.web"
- "--port=8081"
- "-d/data"
- "--defaults"
- "--listen-address=0.0.0.0"
- "--route-prefix=/dav"
resources:
requests:
memory: "64Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "1000m"
livenessProbe:
httpGet:
path: /health
port: 8081
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /health
port: 8081
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 3
ports:
- name: http
containerPort: 8081
protocol: TCP
volumeMounts:
- name: storage
mountPath: /data

View File

@@ -0,0 +1,40 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: xandikos
annotations:
ingressClassName: traefik
cert-manager.io/cluster-issuer: letsencrypt
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
acme.cert-manager.io/http01-edit-in-place: "true"
spec:
rules:
- host: cal.hexor.cy
http:
paths:
- path: /dav
pathType: Prefix
backend:
service:
name: xandikos
port:
number: 8081
- path: /.well-known/carddav
pathType: Exact
backend:
service:
name: xandikos
port:
number: 8081
- path: /.well-known/caldav
pathType: Exact
backend:
service:
name: xandikos
port:
number: 8081
tls:
- secretName: xandikos-tls
hosts:
- cal.hexor.cy

View File

@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- deployment.yaml
- service.yaml
- ingress.yaml

View File

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