Add healthchecks and email functionality
This commit is contained in:
parent
5aedf5396a
commit
71b2d94392
4 changed files with 192 additions and 0 deletions
113
namespaces/monitoring/healthchecks/kustomization.yaml
Normal file
113
namespaces/monitoring/healthchecks/kustomization.yaml
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
transformers:
|
||||||
|
- |-
|
||||||
|
apiVersion: builtin
|
||||||
|
kind: NamespaceTransformer
|
||||||
|
metadata:
|
||||||
|
name: notImportantHere
|
||||||
|
namespace: monitoring
|
||||||
|
unsetOnly: true
|
||||||
|
|
||||||
|
namePrefix: healthchecks-
|
||||||
|
resources:
|
||||||
|
- ../../../kustomize/deployment/
|
||||||
|
|
||||||
|
replacements:
|
||||||
|
- source:
|
||||||
|
kind: Service
|
||||||
|
name: svc
|
||||||
|
targets:
|
||||||
|
- select:
|
||||||
|
kind: HTTPRoute
|
||||||
|
options:
|
||||||
|
create: true
|
||||||
|
fieldPaths:
|
||||||
|
- spec.rules.0.backendRefs.0.name
|
||||||
|
- source:
|
||||||
|
kind: Deployment
|
||||||
|
name: app
|
||||||
|
fieldPath: metadata.labels.[app.kubernetes.io/appName]
|
||||||
|
targets:
|
||||||
|
- select:
|
||||||
|
kind: HTTPRoute
|
||||||
|
options:
|
||||||
|
create: true
|
||||||
|
delimiter: "."
|
||||||
|
index: 0
|
||||||
|
fieldPaths:
|
||||||
|
- spec.hostnames.0
|
||||||
|
- select:
|
||||||
|
kind: InfisicalSecret
|
||||||
|
options:
|
||||||
|
delimiter: "-"
|
||||||
|
index: 0
|
||||||
|
fieldPaths:
|
||||||
|
- spec.managedSecretReference.secretName
|
||||||
|
- select:
|
||||||
|
kind: InfisicalSecret
|
||||||
|
options:
|
||||||
|
delimiter: "/"
|
||||||
|
index: 2
|
||||||
|
fieldPaths:
|
||||||
|
- spec.authentication.universalAuth.secretsScope.secretsPath
|
||||||
|
- select:
|
||||||
|
kind: Service
|
||||||
|
fieldPaths:
|
||||||
|
- spec.ports.0.name
|
||||||
|
- spec.ports.0.targetPort
|
||||||
|
- source:
|
||||||
|
kind: Deployment
|
||||||
|
name: app
|
||||||
|
fieldPath: metadata.labels.[app.kubernetes.io/appNamespace]
|
||||||
|
targets:
|
||||||
|
- select:
|
||||||
|
kind: InfisicalSecret
|
||||||
|
fieldPaths:
|
||||||
|
- spec.managedSecretReference.secretNamespace
|
||||||
|
- select:
|
||||||
|
kind: InfisicalSecret
|
||||||
|
options:
|
||||||
|
delimiter: "/"
|
||||||
|
index: 1
|
||||||
|
fieldPaths:
|
||||||
|
- spec.authentication.universalAuth.secretsScope.secretsPath
|
||||||
|
|
||||||
|
patches:
|
||||||
|
- path: patches/deployment.yaml
|
||||||
|
target:
|
||||||
|
kind: Deployment
|
||||||
|
name: app
|
||||||
|
- path: patches/delete-pvc.yaml
|
||||||
|
target:
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
name: pvc
|
||||||
|
|
||||||
|
labels:
|
||||||
|
- includeSelectors: true
|
||||||
|
pairs:
|
||||||
|
app.kubernetes.io/appName: healthchecks
|
||||||
|
- pairs:
|
||||||
|
app.kubernetes.io/appNamespace: monitoring
|
||||||
|
|
||||||
|
configMapGenerator:
|
||||||
|
- name: config
|
||||||
|
literals:
|
||||||
|
- ADMINS=jonathan@leechpepin.com
|
||||||
|
- DB=postgres
|
||||||
|
- DB_HOST=postgres.core.svc.cluster.local
|
||||||
|
- DB_NAME=hc
|
||||||
|
- DB_PORT=5432
|
||||||
|
- DB_USER=hc
|
||||||
|
- DEFAULT_FROM_EMAIL=homelab@leechpepin.com
|
||||||
|
- EMAIL_HOST=blizzard.mxrouting.net
|
||||||
|
- EMAIL_HOST_USER=homelab@leechpepin.com
|
||||||
|
- EMAIL_PORT=465
|
||||||
|
- EMAIL_USE_SSL=True
|
||||||
|
- EMAIL_USE_TLS=False
|
||||||
|
- INTEGRATION_ALLOW_PRIVATE_IPS=True
|
||||||
|
- SITE_NAME=JLP Healthchecks
|
||||||
|
- SITE_ROOT=https://healthchecks.leechpepin.com
|
||||||
|
- DEBUG=False
|
||||||
|
- REMOTE_USER_HEADER=HTTP_X_AUTHENTIK_EMAIL
|
|
@ -0,0 +1,5 @@
|
||||||
|
$patch: delete
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: pvc
|
47
namespaces/monitoring/healthchecks/patches/deployment.yaml
Normal file
47
namespaces/monitoring/healthchecks/patches/deployment.yaml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: app
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
tolerations:
|
||||||
|
- key: "public"
|
||||||
|
operator: "Equal"
|
||||||
|
value: "true"
|
||||||
|
effect: "NoSchedule"
|
||||||
|
affinity:
|
||||||
|
nodeAffinity:
|
||||||
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
- weight: 100
|
||||||
|
preference:
|
||||||
|
matchExpressions:
|
||||||
|
- key: public
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- "true"
|
||||||
|
containers:
|
||||||
|
- name: healthchecks
|
||||||
|
image: healthchecks/healthchecks:latest
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: healthchecks-config
|
||||||
|
env:
|
||||||
|
- name: SECRET_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: healthchecks-secrets
|
||||||
|
key: HC_SECRET_KEY
|
||||||
|
- name: DB_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: healthchecks-secrets
|
||||||
|
key: HC_DB_PASSWORD
|
||||||
|
- name: EMAIL_HOST_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: smtp-secrets
|
||||||
|
key: SMTP_PASSWORD
|
||||||
|
ports:
|
||||||
|
- containerPort: 8000
|
||||||
|
name: healthchecks
|
27
namespaces/monitoring/smtp-secrets.yaml
Normal file
27
namespaces/monitoring/smtp-secrets.yaml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
apiVersion: secrets.infisical.com/v1alpha1
|
||||||
|
kind: InfisicalSecret
|
||||||
|
metadata:
|
||||||
|
name: smtp-secrets
|
||||||
|
namespace: infisical
|
||||||
|
labels:
|
||||||
|
label-to-be-passed-to-managed-secret: homelab
|
||||||
|
annotations:
|
||||||
|
example.com/annotation-to-be-passed-to-managed-secret: "homelab"
|
||||||
|
spec:
|
||||||
|
hostAPI: https://app.infisical.com/api
|
||||||
|
resyncInterval: 10
|
||||||
|
authentication:
|
||||||
|
# Universal Auth
|
||||||
|
universalAuth:
|
||||||
|
secretsScope:
|
||||||
|
projectSlug: homelab-n-f-yj
|
||||||
|
envSlug: prod
|
||||||
|
secretsPath: "/" # Root is "/"
|
||||||
|
recursive: false # Whether or not to use recursive mode (Fetches all secrets in an environment from a given secret path, and all folders inside the path) / defaults to false
|
||||||
|
credentialsRef:
|
||||||
|
secretName: universal-auth-credentials
|
||||||
|
secretNamespace: infisical
|
||||||
|
managedSecretReference:
|
||||||
|
secretName: smtp-secrets
|
||||||
|
secretNamespace: monitoring
|
||||||
|
creationPolicy: "Orphan" ## Owner | Orphan
|
Loading…
Add table
Reference in a new issue