diff --git a/charts/stable/gatus/Chart.yaml b/charts/stable/gatus/Chart.yaml index 990401c7ec4..d44e96abc13 100644 --- a/charts/stable/gatus/Chart.yaml +++ b/charts/stable/gatus/Chart.yaml @@ -35,7 +35,9 @@ name: gatus sources: - https://ghcr.io/twin/gatus - https://github.com/TwiN/gatus + - https://ghcr.io/home-operations/gatus-sidecar + - https://github.com/home-operations/gatus-sidecar - https://github.com/trueforge-org/truecharts/tree/master/charts/stable/gatus type: application -version: 2.27.7 +version: 3.0.0 diff --git a/charts/stable/gatus/ci/sidecar_disable-values.yaml b/charts/stable/gatus/ci/sidecar_disable-values.yaml new file mode 100644 index 00000000000..53918c4b56a --- /dev/null +++ b/charts/stable/gatus/ci/sidecar_disable-values.yaml @@ -0,0 +1,8 @@ +sidecar: + enable: false + enableService: false + enableIngress: false + enableHttproute: false + autoService: false + autoIngress: false + autoHttproute: false diff --git a/charts/stable/gatus/ci/sidecar_enable-values.yaml b/charts/stable/gatus/ci/sidecar_enable-values.yaml new file mode 100644 index 00000000000..64b984c00b9 --- /dev/null +++ b/charts/stable/gatus/ci/sidecar_enable-values.yaml @@ -0,0 +1,8 @@ +sidecar: + enable: true + enableService: true + enableIngress: true + enableHttproute: false + autoService: true + autoIngress: true + autoHttproute: false diff --git a/charts/stable/gatus/docs/Gatus-Sidecar Example.md b/charts/stable/gatus/docs/Gatus-Sidecar Example.md new file mode 100644 index 00000000000..962830baeca --- /dev/null +++ b/charts/stable/gatus/docs/Gatus-Sidecar Example.md @@ -0,0 +1,115 @@ +--- +title: Gatus Sidecar and Ingress Inheritance +--- + +As you can read in the upstream [docs](https://github.com/home-operations/gatus-sidecar) Gatus Sidecar implemented Ingress Inheritance. + +## Example Values Ingress NGINX + +**nginx-internal** + +```yaml +// values.yaml + controller: + ingressClassResource: + name: internal + annotations: + gatus.home-operations.com/endpoint: | + group: internal + client: + dns-resolver: "tcp://blocky-dns.blocky.svc.cluster.local:53" + ui: + hide-url: true + hide-hostname: true +``` + +**nginx-external** +```yaml +// values.yaml + controller: + ingressClassResource: + name: internal + annotations: + gatus.home-operations.com/endpoint: | + group: external + client: + dns-resolver: "tcp://1.1.1.1:53" +``` + +### IngressClass result + +The IngressClass will be: +```yaml +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + name: internal + annotations: + gatus.home-operations.com/endpoint: | + group: internal + client: + dns-resolver: "tcp://blocky-dns.blocky.svc.cluster.local:53" + ui: + hide-url: true + hide-hostname: true" +spec: + # ... IngressClass spec +--- +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + name: external + annotations: + gatus.home-operations.com/endpoint: | + group: external + client: + dns-resolver: "tcp://1.1.1.1:53" +spec: + # ... IngressClass spec +``` + +## Example with Plex NO extra Annotations + +Consider in this example Plex defined with an Internal IngressClass. +No extra Annotations are given in the Helm Ingress Values of Plex. +The generated endpoint by Gatus Sidecar will be: +```yaml + - name: plex + group: internal + url: https://plex.truecharts.com + conditions: + - '[STATUS] == 200' + interval: 1m0s + client: + dns-resolver: tcp://blocky-dns.blocky.svc.cluster.local:53 + ui: + hide-hostname: true + hide-url: true +``` +*note:* as you can see standard conditions are added by Gatus itself. + +## Example with Plex with extra Annotations +```yaml + ingress: + main: + enabled: true + ingressClassName: internal + annotations: + gatus.home-operations.com/endpoint: |- + conditions: ["[STATUS] == 401"] +``` +The generated endpoint by Gatus Sidecar will be: +```yaml + - name: plex + group: internal + url: https://plex.truecharts.com + conditions: + - '[STATUS] == 401' + interval: 1m0s + client: + dns-resolver: tcp://blocky-dns.blocky.svc.cluster.local:53 + ui: + hide-hostname: true + hide-url: true +``` +*note:* as you can see **Ingress Class** Annotation is merged with **Ingress** Annotation. diff --git a/charts/stable/gatus/values.yaml b/charts/stable/gatus/values.yaml index 2f6c0363ada..dfb0aeb6161 100644 --- a/charts/stable/gatus/values.yaml +++ b/charts/stable/gatus/values.yaml @@ -3,6 +3,23 @@ image: pullPolicy: IfNotPresent tag: v5.33.1@sha256:7121b5916c069eac6e266875d4984ec9262d84bd1274963939b358b32476d25b +sidecarImage: + repository: ghcr.io/home-operations/gatus-sidecar + pullPolicy: IfNotPresent + tag: 0.0.12@sha256:83bf82d422e9b0529a8076cb584d557a12158d9d8a4c373b4d27afcb87a17569 + +sidecar: + enable: false + enableService: false + enableIngress: false + enableHttproute: false + autoService: false + autoIngress: false + autoHttproute: false + namespace: "" # Namespace to watch (empty for all namespaces), only one namespace is supported (string) + ingressClass: "" # Ingress class to filter Ingresses, only one ingress class is supported (string) + gatewayName: "" # Gateway name to filter HTTPRoutes, only one gateway name is supported (string) + service: main: ports: @@ -11,6 +28,11 @@ service: targetPort: 8080 persistence: + configmain: + enabled: "{{ .Values.sidecar.enable }}" + mountPath: /config + readOnly: false + targetSelectAll: true config: enabled: true mountPath: /config/config.yaml @@ -38,8 +60,91 @@ configmap: - "[STATUS] == 200" - "[BODY] == pat(*