mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-17 18:24:14 +02:00
feat: mosquitto
This commit is contained in:
@@ -10,3 +10,4 @@ resources:
|
|||||||
- ./dragonfly/ks.yaml
|
- ./dragonfly/ks.yaml
|
||||||
- ./emqx/ks.yaml
|
- ./emqx/ks.yaml
|
||||||
- ./influx/ks.yaml
|
- ./influx/ks.yaml
|
||||||
|
- ./mosquitto/ks.yaml
|
||||||
|
102
kubernetes/apps/database/mosquitto/app/helmrelease.yaml
Normal file
102
kubernetes/apps/database/mosquitto/app/helmrelease.yaml
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s-labs/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: &app mosquitto
|
||||||
|
spec:
|
||||||
|
chartRef:
|
||||||
|
kind: OCIRepository
|
||||||
|
name: app-template
|
||||||
|
namespace: flux-system
|
||||||
|
interval: 30m
|
||||||
|
values:
|
||||||
|
configMaps:
|
||||||
|
config:
|
||||||
|
data:
|
||||||
|
mosquitto-0.conf: |
|
||||||
|
listener 1883
|
||||||
|
allow_anonymous true
|
||||||
|
log_type error
|
||||||
|
log_type warning
|
||||||
|
mosquitto-1.conf: |
|
||||||
|
listener 1883
|
||||||
|
allow_anonymous true
|
||||||
|
log_type error
|
||||||
|
log_type warning
|
||||||
|
connection mosquitto-bridge
|
||||||
|
address mosquitto-0.mosquitto.database.svc.cluster.local:1883
|
||||||
|
clientid mosquitto-bridge
|
||||||
|
topic # both 0
|
||||||
|
|
||||||
|
controllers:
|
||||||
|
mosquitto:
|
||||||
|
type: statefulset
|
||||||
|
replicas: 2
|
||||||
|
pod:
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 2000
|
||||||
|
runAsGroup: 2000
|
||||||
|
runAsNonRoot: true
|
||||||
|
fsGroup: 2000
|
||||||
|
containers:
|
||||||
|
app:
|
||||||
|
image:
|
||||||
|
repository: public.ecr.aws/docker/library/eclipse-mosquitto
|
||||||
|
tag: 2.0.21
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
args:
|
||||||
|
- exec mosquitto -c "/config/$(hostname).conf"
|
||||||
|
probes:
|
||||||
|
liveness:
|
||||||
|
enabled: true
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- >-
|
||||||
|
/usr/bin/mosquitto_pub -h localhost -p 1883 -t mosquitto/healthcheck/$(hostname)/liveness -m "ok $(date)" -r -q 0
|
||||||
|
readiness:
|
||||||
|
enabled: true
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 256Mi
|
||||||
|
requests:
|
||||||
|
cpu: 2m
|
||||||
|
memory: 16Mi
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
config:
|
||||||
|
type: configMap
|
||||||
|
identifier: config
|
||||||
|
globalMounts:
|
||||||
|
- path: /config
|
||||||
|
|
||||||
|
service:
|
||||||
|
app:
|
||||||
|
controller: *app
|
||||||
|
type: LoadBalancer
|
||||||
|
loadBalancerIP: 192.168.169.123
|
||||||
|
externalTrafficPolicy: Local
|
||||||
|
ports:
|
||||||
|
mqtt:
|
||||||
|
port: 1883
|
||||||
|
mosquitto:
|
||||||
|
controller: *app
|
||||||
|
type: LoadBalancer
|
||||||
|
externalTrafficPolicy: Local
|
||||||
|
annotations:
|
||||||
|
external-dns.alpha.kubernetes.io/hostname: "mqtt.${SECRET_PUBLIC_DOMAIN}."
|
||||||
|
ports:
|
||||||
|
mqtt:
|
||||||
|
port: 1883
|
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ./helmrelease.yaml
|
27
kubernetes/apps/database/mosquitto/ks.yaml
Normal file
27
kubernetes/apps/database/mosquitto/ks.yaml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: &app mosquitto
|
||||||
|
namespace: &namespace database
|
||||||
|
spec:
|
||||||
|
commonMetadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: *app
|
||||||
|
components:
|
||||||
|
- ../../../../components/gatus/guarded
|
||||||
|
interval: 1h
|
||||||
|
path: ./kubernetes/apps/database/mosquitto/app
|
||||||
|
postBuild:
|
||||||
|
substitute:
|
||||||
|
APP: *app
|
||||||
|
prune: true
|
||||||
|
retryInterval: 2m
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: home-ops-kubernetes
|
||||||
|
namespace: flux-system
|
||||||
|
targetNamespace: *namespace
|
||||||
|
timeout: 5m
|
||||||
|
wait: false
|
@@ -69,22 +69,33 @@ spec:
|
|||||||
ports:
|
ports:
|
||||||
http:
|
http:
|
||||||
port: *port
|
port: *port
|
||||||
ingress:
|
route:
|
||||||
app:
|
main:
|
||||||
enabled: true
|
hostnames: ["sh.${SECRET_EXTERNAL_DOMAIN}"]
|
||||||
className: internal
|
parentRefs:
|
||||||
annotations:
|
- name: internal
|
||||||
hajimari.io/icon: mdi:powershell
|
namespace: network
|
||||||
hosts:
|
port: 443
|
||||||
- host: &host "sh.${SECRET_EXTERNAL_DOMAIN}"
|
rules:
|
||||||
paths:
|
- backendRefs:
|
||||||
- path: /
|
- name: qbittorrent
|
||||||
service:
|
port: *port
|
||||||
identifier: app
|
# ingress:
|
||||||
port: http
|
# app:
|
||||||
tls:
|
# enabled: true
|
||||||
- hosts:
|
# className: internal
|
||||||
- *host
|
# annotations:
|
||||||
|
# hajimari.io/icon: mdi:powershell
|
||||||
|
# hosts:
|
||||||
|
# - host: &host "sh.${SECRET_EXTERNAL_DOMAIN}"
|
||||||
|
# paths:
|
||||||
|
# - path: /
|
||||||
|
# service:
|
||||||
|
# identifier: app
|
||||||
|
# port: http
|
||||||
|
# tls:
|
||||||
|
# - hosts:
|
||||||
|
# - *host
|
||||||
persistence:
|
persistence:
|
||||||
config:
|
config:
|
||||||
existingClaim: atuin
|
existingClaim: atuin
|
||||||
|
@@ -29,6 +29,7 @@ data:
|
|||||||
CLUSTER_LB_NGINX_EXTERNAL: 192.168.169.120
|
CLUSTER_LB_NGINX_EXTERNAL: 192.168.169.120
|
||||||
CLUSTER_LB_ENVOY_INTERNAL: 192.168.169.121
|
CLUSTER_LB_ENVOY_INTERNAL: 192.168.169.121
|
||||||
CLUSTER_LB_ENVOY_EXTERNAL: 192.168.169.122
|
CLUSTER_LB_ENVOY_EXTERNAL: 192.168.169.122
|
||||||
|
CLUSTER_LB_MOQUITTO: 192.168.169.123
|
||||||
LOCAL_LAN: 192.168.8.0/22
|
LOCAL_LAN: 192.168.8.0/22
|
||||||
LOCAL_LAN_OPNSENSE: 192.168.8.1
|
LOCAL_LAN_OPNSENSE: 192.168.8.1
|
||||||
LOCAL_LAN_TRUENAS: 192.168.9.10
|
LOCAL_LAN_TRUENAS: 192.168.9.10
|
||||||
|
Reference in New Issue
Block a user