Compare commits

..
Author SHA1 Message Date
Gitea Actions Bot 75db626903 Auto-update README with current k8s applications
Keycloak Terraform / Terraform (pull_request) Failing after 32s
Generated by CI/CD workflow on 2026-06-29 17:46:46

This PR updates the README.md file with the current list of applications found in the k8s/ directory structure.
2026-06-29 17:46:46 +00:00
19 changed files with 22 additions and 404 deletions
-1
View File
@@ -44,7 +44,6 @@ ArgoCD homelab project
| :--- | :---: |
| **amnezia** | [![amnezia](https://ag.hexor.cy/api/badge?name=amnezia&revision=true)](https://ag.hexor.cy/applications/argocd/amnezia) |
| **comfyui** | [![comfyui](https://ag.hexor.cy/api/badge?name=comfyui&revision=true)](https://ag.hexor.cy/applications/argocd/comfyui) |
| **doka2-lobby-list** | [![doka2-lobby-list](https://ag.hexor.cy/api/badge?name=doka2-lobby-list&revision=true)](https://ag.hexor.cy/applications/argocd/doka2-lobby-list) |
| **furumi** | [![furumi](https://ag.hexor.cy/api/badge?name=furumi&revision=true)](https://ag.hexor.cy/applications/argocd/furumi) |
| **gitea** | [![gitea](https://ag.hexor.cy/api/badge?name=gitea&revision=true)](https://ag.hexor.cy/applications/argocd/gitea) |
| **greece-notifier** | [![greece-notifier](https://ag.hexor.cy/api/badge?name=greece-notifier&revision=true)](https://ag.hexor.cy/applications/argocd/greece-notifier) |
+1 -57
View File
@@ -126,7 +126,7 @@ data:
set -euo pipefail
SERVER_CONFIG="/etc/amnezia/server/awg0.conf"
CLIENTS_DIR="${AMNEZIAWG_CLIENTS_DIR:-/run/amnezia/clients}"
CLIENTS_DIR="/etc/amnezia/clients"
RUNTIME_CONFIG="/run/amnezia/awg0.conf"
SYNC_CONFIG="/run/amnezia/awg0.sync.conf"
STATUS_FILE="/run/amnezia/reload-status"
@@ -229,62 +229,6 @@ data:
write_reload_status applied "${initial_hash}"
watch_client_config "${initial_hash}"
client-secret-sync.sh: |
#!/usr/bin/env bash
set -euo pipefail
CLIENT_SECRET="${AMNEZIAWG_CLIENT_SECRET:-amneziawg-clients}"
CLIENT_SECRET_KEY="${AMNEZIAWG_CLIENT_SECRET_KEY:-peers.conf}"
CLIENTS_DIR="${AMNEZIAWG_CLIENTS_DIR:-/run/amnezia/clients}"
PEERS_FILE="${CLIENTS_DIR}/peers.conf"
SYNC_INTERVAL="${AMNEZIAWG_CLIENT_SECRET_SYNC_INTERVAL:-5}"
NAMESPACE="${POD_NAMESPACE:-$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)}"
write_empty_once() {
mkdir -p "${CLIENTS_DIR}"
if [ ! -f "${PEERS_FILE}" ]; then
: > "${PEERS_FILE}"
chmod 0600 "${PEERS_FILE}"
fi
}
sync_once() {
mkdir -p "${CLIENTS_DIR}"
local tmp_file="${PEERS_FILE}.tmp"
local encoded=""
if ! encoded="$(kubectl get secret "${CLIENT_SECRET}" -n "${NAMESPACE}" -o "go-template={{ index .data \"${CLIENT_SECRET_KEY}\" }}" 2>/dev/null)"; then
echo "WARN: failed to read Secret ${NAMESPACE}/${CLIENT_SECRET}; keeping current peers" >&2
write_empty_once
return 0
fi
if [ -n "${encoded}" ]; then
printf '%s' "${encoded}" | base64 -d > "${tmp_file}"
else
: > "${tmp_file}"
fi
chmod 0600 "${tmp_file}"
if [ -f "${PEERS_FILE}" ] && cmp -s "${tmp_file}" "${PEERS_FILE}"; then
rm -f "${tmp_file}"
return 0
fi
mv "${tmp_file}" "${PEERS_FILE}"
echo "Synced AmneziaWG client peers from Secret ${NAMESPACE}/${CLIENT_SECRET}:${CLIENT_SECRET_KEY}"
}
if [ "${1:-}" = "once" ]; then
sync_once
exit 0
fi
while true; do
sync_once || true
sleep "${SYNC_INTERVAL}"
done
status-patch.sh: |
#!/usr/bin/env bash
set -euo pipefail
+10 -52
View File
@@ -6,9 +6,8 @@ metadata:
labels:
app: amneziawg
annotations:
reloader.stakater.com/auto: "false"
secret.reloader.stakater.com/reload: "amneziawg-server"
configmap.reloader.stakater.com/reload: "amneziawg-scripts,amneziawg-exporter-redis"
configmap.reloader.stakater.com/reload: "amneziawg-scripts"
spec:
selector:
matchLabels:
@@ -37,9 +36,7 @@ spec:
- |
set -euo pipefail
cp /usr/bin/awg /shared-bin/awg
cp /lib/ld-musl-x86_64.so.1 /shared-bin/ld-musl-x86_64.so.1
cp /lib/ld-musl-x86_64.so.1 /shared-bin/libc.musl-x86_64.so.1
chmod 0755 /shared-bin/awg /shared-bin/ld-musl-x86_64.so.1 /shared-bin/libc.musl-x86_64.so.1
chmod 0755 /shared-bin/awg
volumeMounts:
- name: awg-bin
mountPath: /shared-bin
@@ -81,26 +78,6 @@ spec:
kubectl create secret generic amneziawg-endpoints -n "${NAMESPACE}" \
--from-literal="${NODE_NAME}=${VALUE}"
fi
- name: sync-client-secret
image: bitnami/kubectl:latest
imagePullPolicy: IfNotPresent
command:
- /bin/bash
- /scripts/client-secret-sync.sh
- once
resources:
requests:
memory: "32Mi"
cpu: "10m"
limits:
memory: "128Mi"
cpu: "100m"
volumeMounts:
- name: scripts
mountPath: /scripts
readOnly: true
- name: runtime-config
mountPath: /run/amnezia
containers:
- name: amneziawg
image: amneziavpn/amneziawg-go:latest
@@ -149,6 +126,9 @@ spec:
- name: server-config
mountPath: /etc/amnezia/server
readOnly: true
- name: client-config
mountPath: /etc/amnezia/clients
readOnly: true
- name: scripts
mountPath: /scripts
readOnly: true
@@ -180,25 +160,6 @@ spec:
readOnly: true
- name: runtime-config
mountPath: /run/amnezia
- name: client-secret-sync
image: bitnami/kubectl:latest
imagePullPolicy: IfNotPresent
command:
- /bin/bash
- /scripts/client-secret-sync.sh
resources:
requests:
memory: "32Mi"
cpu: "10m"
limits:
memory: "128Mi"
cpu: "100m"
volumeMounts:
- name: scripts
mountPath: /scripts
readOnly: true
- name: runtime-config
mountPath: /run/amnezia
- name: amneziawg-exporter-redis
image: redis:alpine
imagePullPolicy: IfNotPresent
@@ -250,14 +211,6 @@ spec:
mountPath: /usr/bin/awg
subPath: awg
readOnly: true
- name: awg-bin
mountPath: /lib/ld-musl-x86_64.so.1
subPath: ld-musl-x86_64.so.1
readOnly: true
- name: awg-bin
mountPath: /lib/libc.musl-x86_64.so.1
subPath: libc.musl-x86_64.so.1
readOnly: true
volumes:
- name: server-config
secret:
@@ -266,6 +219,11 @@ spec:
items:
- key: awg0.conf
path: awg0.conf
- name: client-config
secret:
secretName: amneziawg-clients
optional: true
defaultMode: 0600
- name: scripts
configMap:
name: amneziawg-scripts
@@ -8,8 +8,8 @@ metadata:
component: exporter
data:
redis.conf: |
bind 127.0.0.1
protected-mode yes
bind 0.0.0.0
protected-mode no
port 6379
tcp-backlog 511
timeout 0
@@ -21,12 +21,8 @@ data:
databases 16
always-show-logo no
set-proc-title no
save ""
appendonly no
save 3600 1
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
dir /data
rename-command CONFIG ""
rename-command SAVE ""
rename-command BGSAVE ""
-29
View File
@@ -48,32 +48,3 @@ spec:
remoteRef:
key: 3092dc7c-41dd-461a-9f7a-377727f47e93
property: fields[1].value
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: amnezia-fellow
spec:
target:
name: amnezia-fellow
deletionPolicy: Delete
template:
engineVersion: v2
type: Opaque
data:
database-url: |-
postgresql://amnezia_fellow:{{ .amnezia_fellow | urlquery }}@psql.psql.svc:5432/amnezia_fellow
postgres-password: |-
{{ .amnezia_fellow }}
data:
- secretKey: amnezia_fellow
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[19].value
+8 -6
View File
@@ -5,8 +5,6 @@ metadata:
name: amnezia-fellow
labels:
app: amnezia-fellow
annotations:
secret.reloader.stakater.com/reload: "amnezia-fellow"
spec:
replicas: 1
strategy:
@@ -33,10 +31,7 @@ spec:
protocol: TCP
env:
- name: AMNEZIA_FELLOW_DATABASE_URL
valueFrom:
secretKeyRef:
name: amnezia-fellow
key: database-url
value: "sqlite:///data/amnezia-fellow.sqlite3?mode=rwc"
- name: AMNEZIA_FELLOW_K8S_NAMESPACE
value: "amnezia"
- name: AMNEZIA_FELLOW_K8S_CLIENTS_SECRET
@@ -70,3 +65,10 @@ spec:
limits:
cpu: "500m"
memory: "512Mi"
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: amnezia-fellow-data
-20
View File
@@ -1,20 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: doka2-lobby-list
namespace: argocd
spec:
project: apps
destination:
namespace: doka2-lobby-list
server: https://kubernetes.default.svc
source:
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
targetRevision: HEAD
path: k8s/apps/doka2-lobby-list
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
-54
View File
@@ -1,54 +0,0 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: doka2-lobby-list
labels:
app: doka2-lobby-list
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: doka2-lobby-list
template:
metadata:
labels:
app: doka2-lobby-list
spec:
nodeSelector:
kubernetes.io/os: linux
securityContext:
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
volumes:
- name: creds
persistentVolumeClaim:
claimName: doka2-lobby-list-creds
containers:
- name: doka2-lobby-list
image: ultradesu/doka2-lobby-list:latest
imagePullPolicy: Always
ports:
- name: http
containerPort: 3000
protocol: TCP
env:
- name: ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: doka2-lobby-list-secrets
key: ADMIN_PASSWORD
- name: CREDS_DIR
value: /data
volumeMounts:
- name: creds
mountPath: /data
resources:
requests:
cpu: "50m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
@@ -1,26 +0,0 @@
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: doka2-lobby-list-secrets
spec:
target:
name: doka2-lobby-list-secrets
deletionPolicy: Delete
template:
type: Opaque
data:
ADMIN_PASSWORD: |-
{{ .admin_password | trim }}
data:
- secretKey: admin_password
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: af4618dd-6431-4b20-b617-c00bae9ceff6
property: login.password
-26
View File
@@ -1,26 +0,0 @@
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: doka2-lobby-list-tls-ingress
annotations:
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:
ingressClassName: traefik
rules:
- host: doka.hexor.cy
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: doka2-lobby-list
port:
number: 80
tls:
- secretName: doka2-lobby-list-tls
hosts:
- doka.hexor.cy
@@ -1,10 +0,0 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- app.yaml
- deployment.yaml
- external-secrets.yaml
- service.yaml
- ingress.yaml
- storage.yaml
-16
View File
@@ -1,16 +0,0 @@
---
apiVersion: v1
kind: Service
metadata:
name: doka2-lobby-list
labels:
app: doka2-lobby-list
spec:
type: ClusterIP
selector:
app: doka2-lobby-list
ports:
- port: 80
targetPort: http
protocol: TCP
name: http
-14
View File
@@ -1,14 +0,0 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: doka2-lobby-list-creds
labels:
app: doka2-lobby-list
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 1Gi
-5
View File
@@ -45,11 +45,6 @@ spec:
value: "info"
- name: WEB_PETTING_DEBUG
value: "false"
- name: WEB_PETTING_DATABASE_URL
valueFrom:
secretKeyRef:
name: web-petting-secrets
key: WEB_PETTING_DATABASE_URL
resources:
requests:
memory: "256Mi"
@@ -1,26 +0,0 @@
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: web-petting-secrets
spec:
target:
name: web-petting-secrets
deletionPolicy: Delete
template:
type: Opaque
data:
WEB_PETTING_DATABASE_URL: |-
postgresql://web_petting:{{ .web_petting }}@psql.psql.svc:5432/web_petting
data:
- secretKey: web_petting
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[20].value
-1
View File
@@ -4,7 +4,6 @@ kind: Kustomization
resources:
- app.yaml
- deployment.yaml
- external-secrets.yaml
- service.yaml
- ingress.yaml
- storage.yaml
-26
View File
@@ -1,26 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: argocd-dex-server
namespace: argocd
spec:
template:
spec:
containers:
- name: dex-server
readinessProbe:
tcpSocket:
port: 5556
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
livenessProbe:
tcpSocket:
port: 5556
initialDelaySeconds: 10
periodSeconds: 30
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
-2
View File
@@ -16,5 +16,3 @@ helmCharts:
valuesFile: values.yaml
includeCRDs: true
patches:
- path: dex-probes-patch.yaml
-26
View File
@@ -140,10 +140,6 @@ spec:
{{ .furumi_dev }}
USER_keycloak: |-
{{ .keycloak }}
USER_amnezia_fellow: |-
{{ .amnezia_fellow }}
USER_web_petting: |-
{{ .web_petting }}
data:
- secretKey: authentik
sourceRef:
@@ -343,25 +339,3 @@ spec:
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[18].value
- secretKey: amnezia_fellow
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[19].value
- secretKey: web_petting
sourceRef:
storeRef:
name: vaultwarden-login
kind: ClusterSecretStore
remoteRef:
conversionStrategy: Default
decodingStrategy: None
metadataPolicy: None
key: 2a9deb39-ef22-433e-a1be-df1555625e22
property: fields[20].value