Compare commits
4
Commits
15c597406a
...
cf4757909f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf4757909f | ||
|
|
03dc4a385f | ||
|
|
460978c537 | ||
|
|
ba60c2d7f4 |
@@ -1,5 +1,6 @@
|
|||||||
media/
|
media/
|
||||||
default/*tt*
|
default/*tt*
|
||||||
|
default/havenllo*
|
||||||
certs/ca*
|
certs/ca*
|
||||||
|
|
||||||
lab/*
|
lab/*
|
||||||
|
|||||||
@@ -46,10 +46,30 @@ spec:
|
|||||||
value: '{"invalidate_digital_signatures": true}'
|
value: '{"invalidate_digital_signatures": true}'
|
||||||
- name: PAPERLESS_DBHOST
|
- name: PAPERLESS_DBHOST
|
||||||
value: postgresql.haven
|
value: postgresql.haven
|
||||||
|
- name: PAPERLESS_DBNAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: paperless-secret
|
||||||
|
key: PAPERLESS_DBNAME
|
||||||
|
- name: PAPERLESS_DBUSER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: paperless-secret
|
||||||
|
key: PAPERLESS_DBUSER
|
||||||
|
- name: PAPERLESS_DBPASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: paperless-secret
|
||||||
|
key: PAPERLESS_DBPASSWORD
|
||||||
- name: PAPERLESS_REDIS
|
- name: PAPERLESS_REDIS
|
||||||
value: "redis://redis.haven:6379"
|
value: "redis://redis.haven:6379"
|
||||||
- name: PAPERLESS_PORT
|
- name: PAPERLESS_PORT
|
||||||
value: "8000"
|
value: "8000"
|
||||||
|
- name: PAPERLESS_SECRET_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: paperless-secret
|
||||||
|
key: PAPERLESS_SECRET_KEY
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
name: paperless-port
|
name: paperless-port
|
||||||
|
|||||||
+21
-14
@@ -14,18 +14,25 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
containers:
|
containers:
|
||||||
- env:
|
- env:
|
||||||
- name: PORT
|
- name: PORT
|
||||||
value: "45876"
|
value: "45876"
|
||||||
- name: KEY
|
- name: KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: beszel-key
|
name: beszel-key
|
||||||
key: SECRET-KEY
|
key: SECRET-KEY
|
||||||
image: henrygd/beszel-agent:0.17.0
|
image: henrygd/beszel-agent:0.18.7
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
name: beszel-agent
|
name: beszel-agent
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 45876
|
- containerPort: 45876
|
||||||
hostPort: 45876
|
hostPort: 45876
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "64Mi"
|
||||||
|
cpu: "50m"
|
||||||
|
limits:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "200m"
|
||||||
restartPolicy: Always
|
restartPolicy: Always
|
||||||
+13
-6
@@ -19,18 +19,25 @@ spec:
|
|||||||
nodeAffinity:
|
nodeAffinity:
|
||||||
requiredDuringSchedulingIgnoredDuringExecution:
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
nodeSelectorTerms:
|
nodeSelectorTerms:
|
||||||
- matchExpressions:
|
- matchExpressions:
|
||||||
- key: kubernetes.io/arch
|
- key: kubernetes.io/arch
|
||||||
operator: In
|
operator: In
|
||||||
values:
|
values:
|
||||||
- amd64
|
- amd64
|
||||||
containers:
|
containers:
|
||||||
- name: beszel
|
- name: beszel
|
||||||
image: ghcr.io/henrygd/beszel/beszel:0.17.0
|
image: ghcr.io/henrygd/beszel/beszel:0.18.7
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8090
|
- containerPort: 8090
|
||||||
name: beszel-port
|
name: beszel-port
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "512Mi"
|
||||||
|
cpu: "500m"
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: beszel-config
|
- name: beszel-config
|
||||||
mountPath: /beszel_data
|
mountPath: /beszel_data
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ spec:
|
|||||||
cpu: 200m
|
cpu: 200m
|
||||||
limits:
|
limits:
|
||||||
memory: 1Gi
|
memory: 1Gi
|
||||||
cpu: 500m
|
cpu: 2000m
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8443
|
- containerPort: 8443
|
||||||
name: code-port
|
name: code-port
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: bitwarden-cli
|
app.kubernetes.io/name: bitwarden-cli
|
||||||
spec:
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/arch: amd64
|
||||||
containers:
|
containers:
|
||||||
- name: bitwarden-cli
|
- name: bitwarden-cli
|
||||||
image: ghcr.io/charlesthomas/bitwarden-cli:2026.3.0
|
image: ghcr.io/charlesthomas/bitwarden-cli:2026.3.0
|
||||||
|
|||||||
@@ -2,11 +2,16 @@ apiVersion: apps/v1
|
|||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: haven-notify
|
name: haven-notify
|
||||||
namespace: default
|
namespace: infra
|
||||||
labels:
|
labels:
|
||||||
app: haven-notify
|
app: haven-notify
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 2
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
rollingUpdate:
|
||||||
|
maxSurge: 1
|
||||||
|
maxUnavailable: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: haven-notify
|
app: haven-notify
|
||||||
@@ -52,7 +57,7 @@ apiVersion: v1
|
|||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: haven-notify
|
name: haven-notify
|
||||||
namespace: default
|
namespace: infra
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app: haven-notify
|
app: haven-notify
|
||||||
@@ -65,7 +70,7 @@ apiVersion: networking.k8s.io/v1
|
|||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: haven-notify
|
name: haven-notify
|
||||||
namespace: default
|
namespace: infra
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
+3
-3
@@ -78,9 +78,9 @@ spec:
|
|||||||
limits:
|
limits:
|
||||||
cpu: 2000m
|
cpu: 2000m
|
||||||
memory: 1Gi
|
memory: 1Gi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: wg-easy-volume
|
- name: wg-easy-volume
|
||||||
mountPath: /etc/wireguard
|
mountPath: /etc/wireguard
|
||||||
restartPolicy: Always
|
restartPolicy: Always
|
||||||
volumes:
|
volumes:
|
||||||
- name: wg-easy-volume
|
- name: wg-easy-volume
|
||||||
|
|||||||
@@ -3,55 +3,51 @@ kind: ServiceAccount
|
|||||||
metadata:
|
metadata:
|
||||||
name: kube-state-metrics
|
name: kube-state-metrics
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
|
labels:
|
||||||
|
app: kube-state-metrics
|
||||||
|
app.kubernetes.io/component: exporter
|
||||||
|
app.kubernetes.io/name: kube-state-metrics
|
||||||
|
app.kubernetes.io/version: 2.19.1
|
||||||
|
automountServiceAccountToken: false
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
metadata:
|
metadata:
|
||||||
name: kube-state-metrics
|
name: kube-state-metrics
|
||||||
|
labels:
|
||||||
|
app: kube-state-metrics
|
||||||
|
app.kubernetes.io/component: exporter
|
||||||
|
app.kubernetes.io/name: kube-state-metrics
|
||||||
|
app.kubernetes.io/version: 2.19.1
|
||||||
rules:
|
rules:
|
||||||
- apiGroups: [""]
|
- apiGroups: [""]
|
||||||
resources:
|
resources:
|
||||||
- nodes
|
- nodes
|
||||||
- pods
|
- pods
|
||||||
- services
|
- persistentvolumeclaims
|
||||||
- endpoints
|
|
||||||
- namespaces
|
|
||||||
- replicationcontrollers
|
|
||||||
verbs: ["list", "watch"]
|
verbs: ["list", "watch"]
|
||||||
- apiGroups: ["extensions", "apps"]
|
- apiGroups: ["apps"]
|
||||||
resources:
|
resources:
|
||||||
|
- statefulsets
|
||||||
- daemonsets
|
- daemonsets
|
||||||
- deployments
|
- deployments
|
||||||
- replicasets
|
- replicasets
|
||||||
- statefulsets
|
|
||||||
verbs: ["list", "watch"]
|
verbs: ["list", "watch"]
|
||||||
- apiGroups: ["batch"]
|
- apiGroups: ["batch"]
|
||||||
resources:
|
resources:
|
||||||
- cronjobs
|
- cronjobs
|
||||||
- jobs
|
- jobs
|
||||||
verbs: ["list", "watch"]
|
verbs: ["list", "watch"]
|
||||||
- apiGroups: ["autoscaling"]
|
|
||||||
resources:
|
|
||||||
- horizontalpodautoscalers
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
- apiGroups: ["policy"]
|
|
||||||
resources:
|
|
||||||
- poddisruptionbudgets
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
- apiGroups: ["storage.k8s.io"]
|
|
||||||
resources:
|
|
||||||
- storageclasses
|
|
||||||
- volumeattachments
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
- apiGroups: ["apps"]
|
|
||||||
resources:
|
|
||||||
- replicasets
|
|
||||||
verbs: ["list", "watch"]
|
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRoleBinding
|
kind: ClusterRoleBinding
|
||||||
metadata:
|
metadata:
|
||||||
name: kube-state-metrics
|
name: kube-state-metrics
|
||||||
|
labels:
|
||||||
|
app: kube-state-metrics
|
||||||
|
app.kubernetes.io/component: exporter
|
||||||
|
app.kubernetes.io/name: kube-state-metrics
|
||||||
|
app.kubernetes.io/version: 2.19.1
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
@@ -68,6 +64,9 @@ metadata:
|
|||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
labels:
|
labels:
|
||||||
app: kube-state-metrics
|
app: kube-state-metrics
|
||||||
|
app.kubernetes.io/component: exporter
|
||||||
|
app.kubernetes.io/name: kube-state-metrics
|
||||||
|
app.kubernetes.io/version: 2.19.1
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
@@ -77,14 +76,46 @@ spec:
|
|||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: kube-state-metrics
|
app: kube-state-metrics
|
||||||
|
app.kubernetes.io/component: exporter
|
||||||
|
app.kubernetes.io/name: kube-state-metrics
|
||||||
|
app.kubernetes.io/version: 2.19.1
|
||||||
spec:
|
spec:
|
||||||
|
automountServiceAccountToken: true
|
||||||
serviceAccountName: kube-state-metrics
|
serviceAccountName: kube-state-metrics
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
containers:
|
containers:
|
||||||
- name: kube-state-metrics
|
- name: kube-state-metrics
|
||||||
image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.13.0
|
image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.19.1
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
args:
|
||||||
|
- --resources=cronjobs,daemonsets,deployments,jobs,nodes,persistentvolumeclaims,pods,replicasets,statefulsets
|
||||||
ports:
|
ports:
|
||||||
- name: http-metrics
|
- name: http-metrics
|
||||||
containerPort: 8080
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /livez
|
||||||
|
port: http-metrics
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
timeoutSeconds: 5
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /readyz
|
||||||
|
port: 8081
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
timeoutSeconds: 5
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 65534
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 50m
|
cpu: 50m
|
||||||
@@ -100,10 +131,15 @@ metadata:
|
|||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
labels:
|
labels:
|
||||||
app: kube-state-metrics
|
app: kube-state-metrics
|
||||||
|
app.kubernetes.io/component: exporter
|
||||||
|
app.kubernetes.io/name: kube-state-metrics
|
||||||
|
app.kubernetes.io/version: 2.19.1
|
||||||
spec:
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
selector:
|
||||||
|
app: kube-state-metrics
|
||||||
ports:
|
ports:
|
||||||
- name: http-metrics
|
- name: http-metrics
|
||||||
port: 8080
|
port: 8080
|
||||||
targetPort: http-metrics
|
targetPort: http-metrics
|
||||||
selector:
|
protocol: TCP
|
||||||
app: kube-state-metrics
|
|
||||||
|
|||||||
@@ -24,6 +24,13 @@ spec:
|
|||||||
mountPath: /etc/loki/config
|
mountPath: /etc/loki/config
|
||||||
- name: loki-storage
|
- name: loki-storage
|
||||||
mountPath: /tmp/loki
|
mountPath: /tmp/loki
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 1Gi
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 1Gi
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
configMap:
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata: { name: discord-webhook, namespace: infra }
|
||||||
|
spec:
|
||||||
|
refreshInterval: 1h
|
||||||
|
target:
|
||||||
|
name: discord-webhook
|
||||||
|
deletionPolicy: Retain
|
||||||
|
template:
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
HAVEN_WEBHOOK_URL: "{{ .HAVEN_WEBHOOK_URL }}"
|
||||||
|
data:
|
||||||
|
- secretKey: HAVEN_WEBHOOK_URL
|
||||||
|
remoteRef:
|
||||||
|
{
|
||||||
|
key: afd065bd-be8f-4e3c-a06e-e9d3089cb8f7,
|
||||||
|
property: HAVEN_WEBHOOK_URL,
|
||||||
|
}
|
||||||
|
sourceRef:
|
||||||
|
{ storeRef: { name: bitwarden-fields, kind: ClusterSecretStore } }
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata: { name: kasbot, namespace: default }
|
||||||
|
spec:
|
||||||
|
refreshInterval: 1h
|
||||||
|
target:
|
||||||
|
name: kasbot-secrets
|
||||||
|
deletionPolicy: Retain
|
||||||
|
template:
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
KASBOT_TOKEN: "{{ .KASBOT_TOKEN }}"
|
||||||
|
data:
|
||||||
|
- secretKey: KASBOT_TOKEN
|
||||||
|
remoteRef:
|
||||||
|
{ key: 885a7d90-95be-494f-af88-300ac6a7e210, property: KASBOT_TOKEN }
|
||||||
|
sourceRef:
|
||||||
|
{ storeRef: { name: bitwarden-fields, kind: ClusterSecretStore } }
|
||||||
@@ -12,6 +12,7 @@ spec:
|
|||||||
PAPERLESS_DBNAME: "{{ .PAPERLESS_DBNAME }}"
|
PAPERLESS_DBNAME: "{{ .PAPERLESS_DBNAME }}"
|
||||||
PAPERLESS_DBUSER: "{{ .PAPERLESS_DBUSER }}"
|
PAPERLESS_DBUSER: "{{ .PAPERLESS_DBUSER }}"
|
||||||
PAPERLESS_DBPASSWORD: "{{ .PAPERLESS_DBPASSWORD }}"
|
PAPERLESS_DBPASSWORD: "{{ .PAPERLESS_DBPASSWORD }}"
|
||||||
|
PAPERLESS_SECRET_KEY: "{{ .PAPERLESS_SECRET_KEY }}"
|
||||||
data:
|
data:
|
||||||
- secretKey: PAPERLESS_DBNAME
|
- secretKey: PAPERLESS_DBNAME
|
||||||
remoteRef:
|
remoteRef:
|
||||||
@@ -37,3 +38,11 @@ spec:
|
|||||||
}
|
}
|
||||||
sourceRef:
|
sourceRef:
|
||||||
{ storeRef: { name: bitwarden-fields, kind: ClusterSecretStore } }
|
{ storeRef: { name: bitwarden-fields, kind: ClusterSecretStore } }
|
||||||
|
- secretKey: PAPERLESS_SECRET_KEY
|
||||||
|
remoteRef:
|
||||||
|
{
|
||||||
|
key: 05426e55-fe04-4c16-8697-8a258928257a,
|
||||||
|
property: PAPERLESS_SECRET_KEY,
|
||||||
|
}
|
||||||
|
sourceRef:
|
||||||
|
{ storeRef: { name: bitwarden-fields, kind: ClusterSecretStore } }
|
||||||
|
|||||||
Reference in New Issue
Block a user