diff --git a/kubernetes/apps/observability/keda/app.ks.yaml b/kubernetes/apps/observability/keda/app.ks.yaml new file mode 100644 index 0000000..ae6e651 --- /dev/null +++ b/kubernetes/apps/observability/keda/app.ks.yaml @@ -0,0 +1,16 @@ +--- +# yaml-language-server: $schema=https://schemas.tholinka.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: keda + namespace: &namespace observability +spec: + interval: 1h + path: ./kubernetes/apps/observability/keda/app + prune: true + sourceRef: + kind: GitRepository + name: flux-system + namespace: flux-system + targetNamespace: *namespace diff --git a/kubernetes/apps/observability/keda/app/grafanadashboard.yaml b/kubernetes/apps/observability/keda/app/grafanadashboard.yaml new file mode 100644 index 0000000..69ad2e6 --- /dev/null +++ b/kubernetes/apps/observability/keda/app/grafanadashboard.yaml @@ -0,0 +1,15 @@ +--- +# yaml-language-server: $schema=https://schemas.tholinka.dev/grafana.integreatly.org/grafanadashboard_v1beta1.json +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + name: keda +spec: + allowCrossNamespaceImport: true + instanceSelector: + matchLabels: + grafana.internal/instance: grafana + datasources: + - datasourceName: prometheus + inputName: DS_PROMETHEUS + url: https://raw.githubusercontent.com/kedacore/keda/refs/heads/main/config/grafana/keda-dashboard.json diff --git a/kubernetes/apps/observability/keda/app/helmrelease.yaml b/kubernetes/apps/observability/keda/app/helmrelease.yaml new file mode 100644 index 0000000..b33a1be --- /dev/null +++ b/kubernetes/apps/observability/keda/app/helmrelease.yaml @@ -0,0 +1,26 @@ +--- +# yaml-language-server: $schema=https://schemas.tholinka.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: keda +spec: + interval: 1h + chartRef: + kind: OCIRepository + name: keda + values: + enableServiceLinks: false + prometheus: + metricServer: + enabled: true + serviceMonitor: + enabled: true + operator: + enabled: true + serviceMonitor: + enabled: true + webhooks: + enabled: true + serviceMonitor: + enabled: true diff --git a/kubernetes/apps/observability/keda/app/kustomization.yaml b/kubernetes/apps/observability/keda/app/kustomization.yaml new file mode 100644 index 0000000..177fc92 --- /dev/null +++ b/kubernetes/apps/observability/keda/app/kustomization.yaml @@ -0,0 +1,8 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./grafanadashboard.yaml + - ./helmrelease.yaml + - ./ocirepository.yaml diff --git a/kubernetes/apps/observability/keda/app/ocirepository.yaml b/kubernetes/apps/observability/keda/app/ocirepository.yaml new file mode 100644 index 0000000..50025cf --- /dev/null +++ b/kubernetes/apps/observability/keda/app/ocirepository.yaml @@ -0,0 +1,14 @@ +--- +# yaml-language-server: $schema=https://schemas.tholinka.dev/source.toolkit.fluxcd.io/ocirepository_v1.json +apiVersion: source.toolkit.fluxcd.io/v1 +kind: OCIRepository +metadata: + name: keda +spec: + interval: 1h + layerSelector: + mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip + operation: copy + ref: + tag: 2.19.0 + url: oci://ghcr.io/home-operations/charts-mirror/keda diff --git a/kubernetes/apps/observability/keda/kustomization.yaml b/kubernetes/apps/observability/keda/kustomization.yaml new file mode 100644 index 0000000..e69de29 diff --git a/kubernetes/apps/observability/kustomization.yaml b/kubernetes/apps/observability/kustomization.yaml index 9f8428f..9856022 100644 --- a/kubernetes/apps/observability/kustomization.yaml +++ b/kubernetes/apps/observability/kustomization.yaml @@ -13,3 +13,4 @@ resources: - ./grafana - ./victoria-logs - ./kube-prometheus-stack + - ./keda