Compare commits
15 Commits
auto-updat
...
auto-updat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
39ec3cc87c | ||
| bd997082e9 | |||
| 0689b6abc8 | |||
| bbeac646e9 | |||
| 5d4d620681 | |||
| 5cf2a32ca0 | |||
| 35c072471a | |||
| 9c0458c020 | |||
| 28d5bcfabd | |||
| 65b2aaa91d | |||
| 50e54e5692 | |||
| b79aa17856 | |||
| d91b0928b7 | |||
| 97001813be | |||
| ebd2ed0b71 |
@@ -56,6 +56,7 @@ ArgoCD homelab project
|
|||||||
| **tg-bots** | [](https://ag.hexor.cy/applications/argocd/tg-bots) |
|
| **tg-bots** | [](https://ag.hexor.cy/applications/argocd/tg-bots) |
|
||||||
| **vaultwarden** | [](https://ag.hexor.cy/applications/argocd/vaultwarden) |
|
| **vaultwarden** | [](https://ag.hexor.cy/applications/argocd/vaultwarden) |
|
||||||
| **vpn** | [](https://ag.hexor.cy/applications/argocd/vpn) |
|
| **vpn** | [](https://ag.hexor.cy/applications/argocd/vpn) |
|
||||||
|
| **xandikos** | [](https://ag.hexor.cy/applications/argocd/xandikos) |
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -49,14 +49,14 @@ spec:
|
|||||||
cpu: "1000m"
|
cpu: "1000m"
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /dav
|
path: /
|
||||||
port: 8081
|
port: 8081
|
||||||
initialDelaySeconds: 30
|
initialDelaySeconds: 30
|
||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /dav
|
path: /
|
||||||
port: 8081
|
port: 8081
|
||||||
initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
periodSeconds: 5
|
periodSeconds: 5
|
||||||
|
|||||||
31
k8s/apps/xandikos/external-secrets.yaml
Normal file
31
k8s/apps/xandikos/external-secrets.yaml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: mmdl-secrets
|
||||||
|
spec:
|
||||||
|
target:
|
||||||
|
name: mmdl-secrets
|
||||||
|
deletionPolicy: Delete
|
||||||
|
template:
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
DB_DIALECT: 'postgres'
|
||||||
|
DB_HOST: psql.psql.svc
|
||||||
|
DB_USER: mmdl
|
||||||
|
DB_NAME: mmdl
|
||||||
|
DB_PORT: "5432"
|
||||||
|
DB_PASS: |-
|
||||||
|
{{ .pg_pass }}
|
||||||
|
AES_PASSWORD: |-
|
||||||
|
{{ .pg_pass }}
|
||||||
|
|
||||||
|
data:
|
||||||
|
- secretKey: pg_pass
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: 2a9deb39-ef22-433e-a1be-df1555625e22
|
||||||
|
property: fields[12].value
|
||||||
@@ -13,6 +13,13 @@ spec:
|
|||||||
- host: cal.hexor.cy
|
- host: cal.hexor.cy
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: mmdl
|
||||||
|
port:
|
||||||
|
number: 3000
|
||||||
- path: /dav
|
- path: /dav
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
backend:
|
backend:
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ kind: Kustomization
|
|||||||
resources:
|
resources:
|
||||||
- deployment.yaml
|
- deployment.yaml
|
||||||
- service.yaml
|
- service.yaml
|
||||||
|
- mmdl-deployment.yaml
|
||||||
|
- mmdl-service.yaml
|
||||||
- ingress.yaml
|
- ingress.yaml
|
||||||
|
- external-secrets.yaml
|
||||||
|
|
||||||
|
|||||||
61
k8s/apps/xandikos/mmdl-deployment.yaml
Normal file
61
k8s/apps/xandikos/mmdl-deployment.yaml
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: mmdl
|
||||||
|
labels:
|
||||||
|
app: mmdl
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: mmdl
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
rollingUpdate:
|
||||||
|
maxSurge: 1
|
||||||
|
maxUnavailable: 0
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: mmdl
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||||
|
containers:
|
||||||
|
- name: mmdl
|
||||||
|
image: intriin/mmdl:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: mmdl-secrets
|
||||||
|
env:
|
||||||
|
- name: NEXTAUTH_URL
|
||||||
|
value: "https://cal.hexor.cy"
|
||||||
|
- name: CALDAV_SERVER_URL
|
||||||
|
value: "https://cal.hexor.cy/dav"
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "512Mi"
|
||||||
|
cpu: "1000m"
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 3000
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 3000
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 5
|
||||||
|
timeoutSeconds: 3
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 3000
|
||||||
|
protocol: TCP
|
||||||
14
k8s/apps/xandikos/mmdl-service.yaml
Normal file
14
k8s/apps/xandikos/mmdl-service.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: mmdl
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: mmdl
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 3000
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 3000
|
||||||
@@ -47,3 +47,20 @@ spec:
|
|||||||
server: https://kubernetes.default.svc
|
server: https://kubernetes.default.svc
|
||||||
sourceRepos:
|
sourceRepos:
|
||||||
- ssh://git@gt.hexor.cy:30022/ab/homelab.git
|
- ssh://git@gt.hexor.cy:30022/ab/homelab.git
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: AppProject
|
||||||
|
metadata:
|
||||||
|
name: desktop
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
clusterResourceWhitelist:
|
||||||
|
- group: '*'
|
||||||
|
kind: '*'
|
||||||
|
description: Hexor Home Lab Desktop Apps
|
||||||
|
destinations:
|
||||||
|
- namespace: '*'
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
sourceRepos:
|
||||||
|
- ssh://git@gt.hexor.cy:30022/ab/homelab.git
|
||||||
|
|||||||
@@ -123,6 +123,8 @@ spec:
|
|||||||
{{ .remnawave }}
|
{{ .remnawave }}
|
||||||
USER_umami: |-
|
USER_umami: |-
|
||||||
{{ .umami }}
|
{{ .umami }}
|
||||||
|
USER_mmdl: |-
|
||||||
|
{{ .mmdl }}
|
||||||
data:
|
data:
|
||||||
- secretKey: authentik
|
- secretKey: authentik
|
||||||
sourceRef:
|
sourceRef:
|
||||||
@@ -245,3 +247,14 @@ spec:
|
|||||||
metadataPolicy: None
|
metadataPolicy: None
|
||||||
key: 2a9deb39-ef22-433e-a1be-df1555625e22
|
key: 2a9deb39-ef22-433e-a1be-df1555625e22
|
||||||
property: fields[11].value
|
property: fields[11].value
|
||||||
|
- secretKey: mmdl
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
metadataPolicy: None
|
||||||
|
key: 2a9deb39-ef22-433e-a1be-df1555625e22
|
||||||
|
property: fields[12].value
|
||||||
|
|||||||
18
k8s/desktop/khm/app.yaml
Normal file
18
k8s/desktop/khm/app.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: khm-client
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: desktop
|
||||||
|
destination:
|
||||||
|
namespace: khm
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: k8s/desktop/khm
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
selfHeal: true
|
||||||
|
prune: true
|
||||||
33
k8s/desktop/khm/external-secrets.yaml
Normal file
33
k8s/desktop/khm/external-secrets.yaml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: khm-client-creds
|
||||||
|
spec:
|
||||||
|
target:
|
||||||
|
name: khm-client-creds
|
||||||
|
deletionPolicy: Delete
|
||||||
|
template:
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
USERNAME: |-
|
||||||
|
{{ .username }}
|
||||||
|
PASSWORD: |-
|
||||||
|
{{ .password }}
|
||||||
|
data:
|
||||||
|
- secretKey: username
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: 19c06480-0814-4d1f-aa80-710105989188
|
||||||
|
property: login.username
|
||||||
|
- secretKey: password
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: 19c06480-0814-4d1f-aa80-710105989188
|
||||||
|
property: login.password
|
||||||
73
k8s/desktop/khm/khm-client-cronjob.yaml
Normal file
73
k8s/desktop/khm/khm-client-cronjob.yaml
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
apiVersion: batch/v1
|
||||||
|
kind: CronJob
|
||||||
|
metadata:
|
||||||
|
name: khm-client
|
||||||
|
labels:
|
||||||
|
app: khm-client
|
||||||
|
spec:
|
||||||
|
schedule: "* * * * *"
|
||||||
|
concurrencyPolicy: Forbid
|
||||||
|
successfulJobsHistoryLimit: 3
|
||||||
|
failedJobsHistoryLimit: 3
|
||||||
|
jobTemplate:
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: khm-client
|
||||||
|
spec:
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
nodeSelector:
|
||||||
|
node-role.kubernetes.io/desktop: ""
|
||||||
|
tolerations:
|
||||||
|
- key: workload
|
||||||
|
operator: Equal
|
||||||
|
value: desktop
|
||||||
|
effect: NoSchedule
|
||||||
|
containers:
|
||||||
|
- name: khm-client
|
||||||
|
image: 'ultradesu/khm:latest'
|
||||||
|
imagePullPolicy: Always
|
||||||
|
securityContext:
|
||||||
|
privileged: false
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "64Mi"
|
||||||
|
cpu: "50m"
|
||||||
|
limits:
|
||||||
|
memory: "256Mi"
|
||||||
|
cpu: "200m"
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
hostname "$NODE_NAME"
|
||||||
|
/usr/local/bin/khm \
|
||||||
|
--known-hosts /host-ssh/known_hosts \
|
||||||
|
--host https://khm.hexor.cy \
|
||||||
|
--flow=private \
|
||||||
|
--basic-auth="${USERNAME}:${PASSWORD}" \
|
||||||
|
--in-place
|
||||||
|
env:
|
||||||
|
- name: NODE_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: spec.nodeName
|
||||||
|
- name: USERNAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: khm-client-creds
|
||||||
|
key: USERNAME
|
||||||
|
- name: PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: khm-client-creds
|
||||||
|
key: PASSWORD
|
||||||
|
volumeMounts:
|
||||||
|
- name: known-hosts
|
||||||
|
mountPath: /host-ssh/known_hosts
|
||||||
|
volumes:
|
||||||
|
- name: known-hosts
|
||||||
|
hostPath:
|
||||||
|
path: /home/ab/.ssh/known_hosts
|
||||||
6
k8s/desktop/khm/kustomization.yaml
Normal file
6
k8s/desktop/khm/kustomization.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- external-secrets.yaml
|
||||||
|
- khm-client-cronjob.yaml
|
||||||
Reference in New Issue
Block a user