--- # Source: shelly-plug/charts/shelly-plug/templates/common.yaml --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: shelly-plug labels: app.kubernetes.io/instance: shelly-plug app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: shelly-plug helm.sh/chart: shelly-plug-4.4.0 annotations: helm.sh/resource-policy: keep namespace: shelly-plug spec: accessModes: - "ReadWriteOnce" resources: requests: storage: "1Gi" storageClassName: "ceph-block" --- # Source: shelly-plug/charts/shelly-plug/templates/common.yaml apiVersion: v1 kind: Service metadata: name: shelly-plug labels: app.kubernetes.io/instance: shelly-plug app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: shelly-plug app.kubernetes.io/service: shelly-plug helm.sh/chart: shelly-plug-4.4.0 namespace: shelly-plug spec: type: ClusterIP ports: - port: 80 targetPort: 80 protocol: TCP name: metrics selector: app.kubernetes.io/controller: main app.kubernetes.io/instance: shelly-plug app.kubernetes.io/name: shelly-plug --- # Source: shelly-plug/charts/shelly-plug/templates/common.yaml apiVersion: apps/v1 kind: Deployment metadata: name: shelly-plug labels: app.kubernetes.io/controller: main app.kubernetes.io/instance: shelly-plug app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: shelly-plug helm.sh/chart: shelly-plug-4.4.0 namespace: shelly-plug spec: revisionHistoryLimit: 3 replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/controller: main app.kubernetes.io/name: shelly-plug app.kubernetes.io/instance: shelly-plug template: metadata: labels: app.kubernetes.io/controller: main app.kubernetes.io/instance: shelly-plug app.kubernetes.io/name: shelly-plug spec: enableServiceLinks: false serviceAccountName: default automountServiceAccountToken: true hostIPC: false hostNetwork: false hostPID: false dnsPolicy: ClusterFirst initContainers: - command: - /bin/sh - -ec - | cd /var/www/html if [ -d ".git" ]; then echo "Git repository found. Pulling latest changes..." git pull else echo "Not a git repository. Initializing ..." git init git remote add origin https://github.com/geerlingguy/shelly-plug-prometheus.git git fetch origin git checkout origin/master -ft fi image: alpine/git:latest imagePullPolicy: IfNotPresent name: init-fetch-repo resources: requests: cpu: 10m memory: 128Mi securityContext: runAsUser: 0 volumeMounts: - mountPath: /var/www/html name: script containers: - env: - name: SHELLY_HOSTNAME value: it05sp.alexlebens.net - name: SHELLY_GENERATION value: "2" envFrom: - secretRef: name: shelly-plug-config-secret image: php:8.4.15-apache-bookworm imagePullPolicy: IfNotPresent name: main resources: requests: cpu: 10m memory: 64Mi volumeMounts: - mountPath: /var/www/html name: script volumes: - name: script persistentVolumeClaim: claimName: shelly-plug --- # Source: shelly-plug/templates/external-secret.yaml apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: shelly-plug-config-secret namespace: shelly-plug labels: app.kubernetes.io/name: shelly-plug-config-secret app.kubernetes.io/instance: shelly-plug app.kubernetes.io/part-of: shelly-plug spec: secretStoreRef: kind: ClusterSecretStore name: vault data: - secretKey: SHELLY_HTTP_USERNAME remoteRef: conversionStrategy: Default decodingStrategy: None key: /shelly-plug/auth/it05sp metadataPolicy: None property: SHELLY_HTTP_USERNAME - secretKey: SHELLY_HTTP_PASSWORD remoteRef: conversionStrategy: Default decodingStrategy: None key: /shelly-plug/auth/it05sp metadataPolicy: None property: SHELLY_HTTP_PASSWORD --- # Source: shelly-plug/templates/service-monitor.yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: shelly-plug namespace: shelly-plug labels: app.kubernetes.io/name: shelly-plug app.kubernetes.io/instance: shelly-plug app.kubernetes.io/part-of: shelly-plug spec: selector: matchLabels: app.kubernetes.io/name: shelly-plug app.kubernetes.io/instance: shelly-plug endpoints: - port: metrics interval: 30s scrapeTimeout: 10s path: /metrics