From cead8dd1f89792371a4be822489b36f73ddb9262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Sat, 17 Jan 2026 23:19:59 +0100 Subject: [PATCH 01/13] wip --- argocd/kustomization.yaml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/argocd/kustomization.yaml b/argocd/kustomization.yaml index ed291e4..6f380cf 100644 --- a/argocd/kustomization.yaml +++ b/argocd/kustomization.yaml @@ -6,4 +6,37 @@ resources: # automatically to the latest commit of the `stable` branch - https://github.com/argoproj/argo-cd//manifests/cluster-install?ref=stable +patches: +# GROUP 1: Heavy Components +# (Repo Server, API Server, App Controller need more RAM/CPU) +- target: + kind: (Deployment|StatefulSet) + name: (argocd-repo-server|argocd-server|argocd-application-controller) + patch: |- + - op: add + path: /spec/template/spec/containers/0/resources + value: + requests: + cpu: "50m" + memory: "128Mi" + limits: + cpu: "1000m" + memory: "1Gi" + +# GROUP 2: Light Components +# (Redis, Dex, Notifications, AppSet need very little) +- target: + kind: Deployment + name: (argocd-redis|argocd-dex-server|argocd-notifications-controller|argocd-applicationset-controller) + patch: |- + - op: add + path: /spec/template/spec/containers/0/resources + value: + requests: + cpu: "10m" + memory: "64Mi" + limits: + cpu: "200m" + memory: "256Mi" + namespace: argocd From 61819460921cefdee646048dacd40cc79685d009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 15:34:19 +0100 Subject: [PATCH 02/13] we ball --- .gitignore | 1 + application-set/application-set.yaml | 30 +++++++++++++++++++ kustomization.yaml | 16 ---------- lgtm/application.yaml | 35 ---------------------- metrics-server/application.yaml | 23 --------------- opentelemetry-operator/application.yaml | 22 -------------- opentelemetry-operator/kustomization.yaml | 2 -- prometheus/application.yaml | 22 -------------- prometheus/kustomization.yaml | 2 -- signoz/application.yaml | 36 ----------------------- vcluster/application.yaml | 33 --------------------- 11 files changed, 31 insertions(+), 191 deletions(-) create mode 100644 .gitignore create mode 100644 application-set/application-set.yaml delete mode 100644 kustomization.yaml delete mode 100644 lgtm/application.yaml delete mode 100644 metrics-server/application.yaml delete mode 100644 opentelemetry-operator/application.yaml delete mode 100644 opentelemetry-operator/kustomization.yaml delete mode 100644 prometheus/application.yaml delete mode 100644 prometheus/kustomization.yaml delete mode 100644 signoz/application.yaml delete mode 100644 vcluster/application.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/application-set/application-set.yaml b/application-set/application-set.yaml new file mode 100644 index 0000000..13313fd --- /dev/null +++ b/application-set/application-set.yaml @@ -0,0 +1,30 @@ +kind: ApplicationSet +apiVersion: argoproj.io/v1alpha1 +metadata: + name: apps + namespace: argocd +spec: + goTemplate: true + goTemplateOptions: ["missingkey=error"] + generators: + - git: + repoURL: https://github.com/albi005/k8s + revision: HEAD + directories: + - path: "*" + template: + metadata: + name: '{{.path.basename}}' + spec: + project: default + source: + repoURL: https://github.com/albi005/k8s + path: '{{.path.path}}' + destination: + name: in-cluster + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - ServerSideApply=true diff --git a/kustomization.yaml b/kustomization.yaml deleted file mode 100644 index 734cfa0..0000000 --- a/kustomization.yaml +++ /dev/null @@ -1,16 +0,0 @@ -resources: - - argocd/application.yaml - - cert-manager/application.yaml - - cnpg-barman-cloud-plugin/application.yaml - - cnpg/application.yaml - - kube-prometheus-stack/application.yaml - - loki/application.yaml - # - metrics-server/application.yaml - # - opentelemetry-operator/application.yaml - - startsch/application.yaml - # - prometheus/application.yaml - - tempo/application.yaml - - opentelemetry-collector/application.yaml - # - lgtm/application.yaml - # - signoz/application.yaml - # - vcluster/application.yaml diff --git a/lgtm/application.yaml b/lgtm/application.yaml deleted file mode 100644 index ddc78e2..0000000 --- a/lgtm/application.yaml +++ /dev/null @@ -1,35 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: lgtm - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://grafana.github.io/helm-charts - chart: lgtm-distributed - targetRevision: 2.1.0 - helm: - parameters: - - name: installCRDs - value: "true" - destination: - name: in-cluster - namespace: lgtm - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - ServerSideApply=true - - CreateNamespace=true - ignoreDifferences: - # k8s automatically adds these fields causing a desync. ignore - - group: apps - kind: StatefulSet - jsonPointers: - - /spec/volumeClaimTemplates/0/apiVersion - - /spec/volumeClaimTemplates/0/kind diff --git a/metrics-server/application.yaml b/metrics-server/application.yaml deleted file mode 100644 index 60bb8a5..0000000 --- a/metrics-server/application.yaml +++ /dev/null @@ -1,23 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: metrics-server - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://kubernetes-sigs.github.io/metrics-server/ - chart: metrics-server - targetRevision: 3.13.0 - destination: - name: in-cluster - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/opentelemetry-operator/application.yaml b/opentelemetry-operator/application.yaml deleted file mode 100644 index 8b89f26..0000000 --- a/opentelemetry-operator/application.yaml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: opentelemetry-operator - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://github.com/albi005/k8s - path: opentelemetry-operator - destination: - name: in-cluster - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/opentelemetry-operator/kustomization.yaml b/opentelemetry-operator/kustomization.yaml deleted file mode 100644 index 7341a06..0000000 --- a/opentelemetry-operator/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: - - https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml diff --git a/prometheus/application.yaml b/prometheus/application.yaml deleted file mode 100644 index b8ae2ed..0000000 --- a/prometheus/application.yaml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: prometheus - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://github.com/albi005/k8s - path: prometheus - destination: - name: in-cluster - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/prometheus/kustomization.yaml b/prometheus/kustomization.yaml deleted file mode 100644 index 430851c..0000000 --- a/prometheus/kustomization.yaml +++ /dev/null @@ -1,2 +0,0 @@ -resources: - - https://github.com/prometheus-operator/prometheus-operator/releases/download/v0.87.1/bundle.yaml diff --git a/signoz/application.yaml b/signoz/application.yaml deleted file mode 100644 index 9685db2..0000000 --- a/signoz/application.yaml +++ /dev/null @@ -1,36 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: signoz - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://charts.signoz.io - targetRevision: 0.105.2 - chart: signoz - destination: - name: in-cluster - namespace: signoz - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - ignoreDifferences: - # k8s automatically adds these fields causing a desync. ignore - - group: apps - kind: StatefulSet - jsonPointers: - - /spec/volumeClaimTemplates/0/apiVersion - - /spec/volumeClaimTemplates/0/kind - - group: apps - kind: Deployment - name: signoz-clickhouse-operator - jqPathExpressions: - - .spec.template.spec.containers[].env[].valueFrom.resourceFieldRef.divisor diff --git a/vcluster/application.yaml b/vcluster/application.yaml deleted file mode 100644 index 4b3fd95..0000000 --- a/vcluster/application.yaml +++ /dev/null @@ -1,33 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: my-vcluster - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - chart: vcluster - repoURL: https://charts.loft.sh - targetRevision: 0.30.4 - helm: - releaseName: vcluster-1 - destination: - name: in-cluster - namespace: vcluster-1 - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true - ignoreDifferences: - # k8s automatically adds these fields causing a desync. ignore - - group: apps - kind: StatefulSet - jsonPointers: - - /spec/volumeClaimTemplates/0/apiVersion - - /spec/volumeClaimTemplates/0/kind From 39e7a83c43ca3de053bc2e3a0a54610b47fb1dd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 15:52:08 +0100 Subject: [PATCH 03/13] wip --- README.md | 6 +- argocd/application.yaml | 20 ---- cert-manager/application.yaml | 31 ------- cnpg-barman-cloud-plugin/application.yaml | 22 ----- cnpg/application.yaml | 30 ------ kube-prometheus-stack/application.yaml | 39 -------- loki/application.yaml | 106 ---------------------- opentelemetry-collector/application.yaml | 72 --------------- startsch/application.yaml | 22 ----- tempo/application.yaml | 35 ------- 10 files changed, 4 insertions(+), 379 deletions(-) delete mode 100644 argocd/application.yaml delete mode 100644 cert-manager/application.yaml delete mode 100644 cnpg-barman-cloud-plugin/application.yaml delete mode 100644 cnpg/application.yaml delete mode 100644 kube-prometheus-stack/application.yaml delete mode 100644 loki/application.yaml delete mode 100644 opentelemetry-collector/application.yaml delete mode 100644 startsch/application.yaml delete mode 100644 tempo/application.yaml diff --git a/README.md b/README.md index 3693e17..6c2a42a 100644 --- a/README.md +++ b/README.md @@ -3,18 +3,20 @@ ## Bootstrapping ```bash +# Create a cluster k3d cluster create mycluster --image rancher/k3s:v1.29.6-k3s1 +# (Optional) Create a vcluster inside it vcluster create vc-1 git clone https://github.com/kir-dev/k8s cd k8s # Install ArgoCD into the Kubernetes cluster -kubectl apply --kustomize argocd +kubectl apply --kustomize argocd/ # Install this repo as an ArgoCD Application -kubectl apply -f application.yaml +kubectl apply -f application-set/ ``` ## Documentation diff --git a/argocd/application.yaml b/argocd/application.yaml deleted file mode 100644 index 585529e..0000000 --- a/argocd/application.yaml +++ /dev/null @@ -1,20 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: argocd - namespace: argocd -spec: - project: default - source: - repoURL: https://github.com/albi005/k8s - path: argocd - destination: - name: in-cluster - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/cert-manager/application.yaml b/cert-manager/application.yaml deleted file mode 100644 index f00c42c..0000000 --- a/cert-manager/application.yaml +++ /dev/null @@ -1,31 +0,0 @@ - -# https://cert-manager.io/docs/installation/helm/#installing-from-the-oci-registry - -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: cert-manager - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: quay.io/jetstack/charts - chart: cert-manager - targetRevision: v1.19.2 - helm: - parameters: - - name: installCRDs - value: "true" - destination: - name: in-cluster - namespace: cert-manager - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/cnpg-barman-cloud-plugin/application.yaml b/cnpg-barman-cloud-plugin/application.yaml deleted file mode 100644 index 2c6ab6c..0000000 --- a/cnpg-barman-cloud-plugin/application.yaml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: cnpg-barman-cloud-plugin - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://github.com/albi005/k8s - path: cnpg-barman-cloud-plugin - destination: - name: in-cluster - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/cnpg/application.yaml b/cnpg/application.yaml deleted file mode 100644 index 37084a2..0000000 --- a/cnpg/application.yaml +++ /dev/null @@ -1,30 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: cnpg - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - # https://argo-cd.readthedocs.io/en/stable/user-guide/helm/ - # https://artifacthub.io/packages/helm/cloudnative-pg/cloudnative-pg - repoURL: https://cloudnative-pg.github.io/charts - chart: cloudnative-pg - targetRevision: 0.27.0 - helm: - # https://argo-cd.readthedocs.io/en/stable/user-guide/helm/#values - valuesObject: {} - # CNPG operator Helm chart values here - destination: - name: in-cluster - namespace: cnpg-system - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/kube-prometheus-stack/application.yaml b/kube-prometheus-stack/application.yaml deleted file mode 100644 index 7d662fc..0000000 --- a/kube-prometheus-stack/application.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: kube-prom-stack - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://prometheus-community.github.io/helm-charts - chart: kube-prometheus-stack - targetRevision: 80.13.3 - helm: - valuesObject: - grafana: - additionalDataSources: - - name: Loki - type: loki - url: http://loki-gateway.monitoring.svc.cluster.local - - name: Tempo - type: tempo - url: http://tempo.monitoring.svc.cluster.local:3200 - prometheus: - prometheusSpec: - # Allow Prometheus to scrape ServiceMonitors in ANY namespace - serviceMonitorSelectorNilUsesHelmValues: false - selector: {} - destination: - name: in-cluster - namespace: monitoring - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/loki/application.yaml b/loki/application.yaml deleted file mode 100644 index 0218f19..0000000 --- a/loki/application.yaml +++ /dev/null @@ -1,106 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: loki - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://grafana.github.io/helm-charts - chart: loki - targetRevision: 6.49.0 - helm: - valuesObject: - # https://github.com/grafana/loki/blob/533b1f0ae8696a6d2b7f83e65e90337ac862f77c/production/helm/loki/single-binary-values.yaml - loki: - auth_enabled: false - commonConfig: - replication_factor: 1 - schemaConfig: - configs: - - from: "2024-04-01" - store: tsdb - object_store: s3 - schema: v13 - index: - prefix: loki_index_ - period: 24h - ingester: - chunk_encoding: snappy - tracing: - enabled: true - querier: - # Default is 4, if you have enough memory and CPU you can increase, reduce if OOMing - max_concurrent: 2 - - #gateway: - # ingress: - # enabled: true - # hosts: - # - host: FIXME - # paths: - # - path: / - # pathType: Prefix - - deploymentMode: SingleBinary - singleBinary: - replicas: 1 - resources: - limits: - cpu: 3 - memory: 4Gi - requests: - cpu: 2 - memory: 2Gi - extraEnv: - # Keep a little bit lower than memory limits - - name: GOMEMLIMIT - value: 3750MiB - - chunksCache: - # default is 500MB, with limited memory keep this smaller - writebackSizeLimit: 10MB - - # Enable minio for storage - minio: - enabled: true - - # Zero out replica counts of other deployment modes - backend: - replicas: 0 - read: - replicas: 0 - write: - replicas: 0 - - ingester: - replicas: 0 - querier: - replicas: 0 - queryFrontend: - replicas: 0 - queryScheduler: - replicas: 0 - distributor: - replicas: 0 - compactor: - replicas: 0 - indexGateway: - replicas: 0 - bloomCompactor: - replicas: 0 - bloomGateway: - replicas: 0 - destination: - name: in-cluster - namespace: monitoring - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/opentelemetry-collector/application.yaml b/opentelemetry-collector/application.yaml deleted file mode 100644 index 4c3534d..0000000 --- a/opentelemetry-collector/application.yaml +++ /dev/null @@ -1,72 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: otel-collector - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://open-telemetry.github.io/opentelemetry-helm-charts - chart: opentelemetry-collector - targetRevision: 0.143.0 - helm: - valuesObject: - mode: deployment - image: - repository: otel/opentelemetry-collector-contrib - config: - receivers: - otlp: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - http: - endpoint: 0.0.0.0:4318 - - processors: - batch: {} - - exporters: - # 1. Traces -> Tempo - otlp/tempo: - endpoint: tempo.monitoring.svc.cluster.local:4317 - tls: - insecure: true - - # 2. Logs -> Loki - otlphttp/loki: - endpoint: http://loki.monitoring.svc.cluster.local:3100/otlp - tls: - insecure: true - - # 3. Metrics -> Prometheus (Remote Write is easiest) - prometheusremotewrite: - endpoint: http://kube-prom-stack-prometheus.monitoring.svc.cluster.local:9090/api/v1/write - - service: - pipelines: - traces: - receivers: [otlp] - processors: [batch] - exporters: [otlp/tempo] - metrics: - receivers: [otlp] - processors: [batch] - exporters: [prometheusremotewrite] - logs: - receivers: [otlp] - processors: [batch] - exporters: [otlphttp/loki] - destination: - name: in-cluster - namespace: monitoring - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/startsch/application.yaml b/startsch/application.yaml deleted file mode 100644 index 4f80b52..0000000 --- a/startsch/application.yaml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: startsch - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://github.com/albi005/k8s - path: startsch - destination: - name: in-cluster - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true diff --git a/tempo/application.yaml b/tempo/application.yaml deleted file mode 100644 index d57522d..0000000 --- a/tempo/application.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: tempo - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io -spec: - project: default - source: - repoURL: https://grafana.github.io/helm-charts - chart: tempo - targetRevision: 1.24.1 - helm: - valuesObject: - tempo: - repository: grafana/tempo - tag: latest - # Minimal storage config for local running - storage: - trace: - backend: local - local: - path: /var/tempo/traces - destination: - name: in-cluster - namespace: monitoring - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - CreateNamespace=true - - ServerSideApply=true From 0635f545726b1d407159e1568f62db2c8ebc8847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 15:54:06 +0100 Subject: [PATCH 04/13] wip --- application-set/application-set.yaml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/application-set/application-set.yaml b/application-set/application-set.yaml index 13313fd..8a21e43 100644 --- a/application-set/application-set.yaml +++ b/application-set/application-set.yaml @@ -7,19 +7,21 @@ spec: goTemplate: true goTemplateOptions: ["missingkey=error"] generators: - - git: - repoURL: https://github.com/albi005/k8s - revision: HEAD - directories: - - path: "*" + - git: + repoURL: https://github.com/albi005/k8s + revision: HEAD + directories: + - path: "*" template: metadata: - name: '{{.path.basename}}' + name: "{{.path.basename}}" + finalizers: + - resources-finalizer.argocd.argoproj.io spec: project: default source: repoURL: https://github.com/albi005/k8s - path: '{{.path.path}}' + path: "{{.path.path}}" destination: name: in-cluster syncPolicy: @@ -27,4 +29,4 @@ spec: prune: true selfHeal: true syncOptions: - - ServerSideApply=true + - ServerSideApply=true From 0090dab456350eb6a0facfb647b66e1c68b05b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 16:09:35 +0100 Subject: [PATCH 05/13] wip --- application.yaml | 19 -------- cert-manager/Chart.yaml | 8 ++++ cert-manager/values.yaml | 2 + cnpg/Chart.yaml | 8 ++++ cnpg/values.yaml | 1 + kube-prometheus-stack/Chart.yaml | 8 ++++ kube-prometheus-stack/values.yaml | 14 ++++++ loki/Chart.yaml | 8 ++++ loki/values.yaml | 71 +++++++++++++++++++++++++++++ opentelemetry-collector/Chart.yaml | 8 ++++ opentelemetry-collector/values.yaml | 47 +++++++++++++++++++ tempo/Chart.yaml | 8 ++++ tempo/values.yaml | 10 ++++ 13 files changed, 193 insertions(+), 19 deletions(-) delete mode 100644 application.yaml create mode 100644 cert-manager/Chart.yaml create mode 100644 cert-manager/values.yaml create mode 100644 cnpg/Chart.yaml create mode 100644 cnpg/values.yaml create mode 100644 kube-prometheus-stack/Chart.yaml create mode 100644 kube-prometheus-stack/values.yaml create mode 100644 loki/Chart.yaml create mode 100644 loki/values.yaml create mode 100644 opentelemetry-collector/Chart.yaml create mode 100644 opentelemetry-collector/values.yaml create mode 100644 tempo/Chart.yaml create mode 100644 tempo/values.yaml diff --git a/application.yaml b/application.yaml deleted file mode 100644 index 6b1f599..0000000 --- a/application.yaml +++ /dev/null @@ -1,19 +0,0 @@ -kind: Application -apiVersion: argoproj.io/v1alpha1 -metadata: - name: applications - namespace: argocd -spec: - project: default - source: - repoURL: https://github.com/albi005/k8s - path: . - destination: - name: in-cluster - syncPolicy: - automated: - prune: true - selfHeal: true - enabled: true - syncOptions: - - ServerSideApply=true diff --git a/cert-manager/Chart.yaml b/cert-manager/Chart.yaml new file mode 100644 index 0000000..93df733 --- /dev/null +++ b/cert-manager/Chart.yaml @@ -0,0 +1,8 @@ +apiVersion: v2 +name: cert-manager +description: A Helm chart for cert-manager +version: 0.1.0 +dependencies: + - name: cert-manager + version: v1.19.2 + repository: oci://quay.io/jetstack/charts diff --git a/cert-manager/values.yaml b/cert-manager/values.yaml new file mode 100644 index 0000000..0b21fc9 --- /dev/null +++ b/cert-manager/values.yaml @@ -0,0 +1,2 @@ +cert-manager: + installCRDs: true diff --git a/cnpg/Chart.yaml b/cnpg/Chart.yaml new file mode 100644 index 0000000..c344284 --- /dev/null +++ b/cnpg/Chart.yaml @@ -0,0 +1,8 @@ +apiVersion: v2 +name: cnpg +description: A Helm chart for CloudNativePG +version: 0.1.0 +dependencies: + - name: cloudnative-pg + version: 0.27.0 + repository: https://cloudnative-pg.github.io/charts diff --git a/cnpg/values.yaml b/cnpg/values.yaml new file mode 100644 index 0000000..2c3dbb2 --- /dev/null +++ b/cnpg/values.yaml @@ -0,0 +1 @@ +cloudnative-pg: {} diff --git a/kube-prometheus-stack/Chart.yaml b/kube-prometheus-stack/Chart.yaml new file mode 100644 index 0000000..83ab6a4 --- /dev/null +++ b/kube-prometheus-stack/Chart.yaml @@ -0,0 +1,8 @@ +apiVersion: v2 +name: kube-prometheus-stack +description: A Helm chart for kube-prometheus-stack +version: 0.1.0 +dependencies: + - name: kube-prometheus-stack + version: 80.13.3 + repository: https://prometheus-community.github.io/helm-charts diff --git a/kube-prometheus-stack/values.yaml b/kube-prometheus-stack/values.yaml new file mode 100644 index 0000000..0370bf0 --- /dev/null +++ b/kube-prometheus-stack/values.yaml @@ -0,0 +1,14 @@ +kube-prometheus-stack: + grafana: + additionalDataSources: + - name: Loki + type: loki + url: http://loki-gateway.monitoring.svc.cluster.local + - name: Tempo + type: tempo + url: http://tempo.monitoring.svc.cluster.local:3200 + prometheus: + prometheusSpec: + # Allow Prometheus to scrape ServiceMonitors in ANY namespace + serviceMonitorSelectorNilUsesHelmValues: false + selector: {} diff --git a/loki/Chart.yaml b/loki/Chart.yaml new file mode 100644 index 0000000..c5ef2ea --- /dev/null +++ b/loki/Chart.yaml @@ -0,0 +1,8 @@ +apiVersion: v2 +name: loki +description: A Helm chart for Loki +version: 0.1.0 +dependencies: + - name: loki + version: 6.49.0 + repository: https://grafana.github.io/helm-charts diff --git a/loki/values.yaml b/loki/values.yaml new file mode 100644 index 0000000..913255e --- /dev/null +++ b/loki/values.yaml @@ -0,0 +1,71 @@ +loki: + loki: + auth_enabled: false + commonConfig: + replication_factor: 1 + schemaConfig: + configs: + - from: "2024-04-01" + store: tsdb + object_store: s3 + schema: v13 + index: + prefix: loki_index_ + period: 24h + ingester: + chunk_encoding: snappy + tracing: + enabled: true + querier: + # Default is 4, if you have enough memory and CPU you can increase, reduce if OOMing + max_concurrent: 2 + + deploymentMode: SingleBinary + singleBinary: + replicas: 1 + resources: + limits: + cpu: 3 + memory: 4Gi + requests: + cpu: 2 + memory: 2Gi + extraEnv: + # Keep a little bit lower than memory limits + - name: GOMEMLIMIT + value: 3750MiB + + chunksCache: + # default is 500MB, with limited memory keep this smaller + writebackSizeLimit: 10MB + + # Enable minio for storage + minio: + enabled: true + + # Zero out replica counts of other deployment modes + backend: + replicas: 0 + read: + replicas: 0 + write: + replicas: 0 + + ingester: + replicas: 0 + querier: + replicas: 0 + queryFrontend: + replicas: 0 + queryScheduler: + replicas: 0 + distributor: + replicas: 0 + compactor: + replicas: 0 + indexGateway: + replicas: 0 + bloomCompactor: + replicas: 0 + bloomGateway: + replicas: 0 diff --git a/opentelemetry-collector/Chart.yaml b/opentelemetry-collector/Chart.yaml new file mode 100644 index 0000000..9dff696 --- /dev/null +++ b/opentelemetry-collector/Chart.yaml @@ -0,0 +1,8 @@ +apiVersion: v2 +name: opentelemetry-collector +description: A Helm chart for OpenTelemetry Collector +version: 0.1.0 +dependencies: + - name: opentelemetry-collector + version: 0.143.0 + repository: https://open-telemetry.github.io/opentelemetry-helm-charts diff --git a/opentelemetry-collector/values.yaml b/opentelemetry-collector/values.yaml new file mode 100644 index 0000000..6a2ad5d --- /dev/null +++ b/opentelemetry-collector/values.yaml @@ -0,0 +1,47 @@ +opentelemetry-collector: + mode: deployment + image: + repository: otel/opentelemetry-collector-contrib + config: + receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + + processors: + batch: {} + + exporters: + # 1. Traces -> Tempo + otlp/tempo: + endpoint: tempo.monitoring.svc.cluster.local:4317 + tls: + insecure: true + + # 2. Logs -> Loki + otlphttp/loki: + endpoint: http://loki.monitoring.svc.cluster.local:3100/otlp + tls: + insecure: true + + # 3. Metrics -> Prometheus (Remote Write is easiest) + prometheusremotewrite: + endpoint: http://kube-prom-stack-prometheus.monitoring.svc.cluster.local:9090/api/v1/write + + service: + pipelines: + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp/tempo] + metrics: + receivers: [otlp] + processors: [batch] + exporters: [prometheusremotewrite] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlphttp/loki] diff --git a/tempo/Chart.yaml b/tempo/Chart.yaml new file mode 100644 index 0000000..2495621 --- /dev/null +++ b/tempo/Chart.yaml @@ -0,0 +1,8 @@ +apiVersion: v2 +name: tempo +description: A Helm chart for Tempo +version: 0.1.0 +dependencies: + - name: tempo + version: 1.24.1 + repository: https://grafana.github.io/helm-charts diff --git a/tempo/values.yaml b/tempo/values.yaml new file mode 100644 index 0000000..94c7404 --- /dev/null +++ b/tempo/values.yaml @@ -0,0 +1,10 @@ +tempo: + tempo: + repository: grafana/tempo + tag: latest + # Minimal storage config for local running + storage: + trace: + backend: local + local: + path: /var/tempo/traces From 1ce35ef52ce576d5118b8c1a387e2e86c98d2722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 16:34:43 +0100 Subject: [PATCH 06/13] app-config.yaml --- application-set/application-set.yaml | 21 +++++++++++++++------ cert-manager/app-config.yaml | 1 + cnpg/app-config.yaml | 1 + kube-prometheus-stack/app-config.yaml | 1 + loki/app-config.yaml | 1 + opentelemetry-collector/app-config.yaml | 1 + tempo/app-config.yaml | 1 + 7 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 cert-manager/app-config.yaml create mode 100644 cnpg/app-config.yaml create mode 100644 kube-prometheus-stack/app-config.yaml create mode 100644 loki/app-config.yaml create mode 100644 opentelemetry-collector/app-config.yaml create mode 100644 tempo/app-config.yaml diff --git a/application-set/application-set.yaml b/application-set/application-set.yaml index 8a21e43..b9d2226 100644 --- a/application-set/application-set.yaml +++ b/application-set/application-set.yaml @@ -5,13 +5,21 @@ metadata: namespace: argocd spec: goTemplate: true - goTemplateOptions: ["missingkey=error"] generators: - - git: - repoURL: https://github.com/albi005/k8s - revision: HEAD - directories: - - path: "*" + - merge: + mergeKeys: + - path.basename + generators: + - git: + repoURL: https://github.com/albi005/k8s + revision: HEAD + directories: + - path: "*" + - git: + repoURL: https://github.com/albi005/k8s + revision: HEAD + files: + - path: "*/app-config.yaml" template: metadata: name: "{{.path.basename}}" @@ -24,6 +32,7 @@ spec: path: "{{.path.path}}" destination: name: in-cluster + namespace: '{{.namespace}}' syncPolicy: automated: prune: true diff --git a/cert-manager/app-config.yaml b/cert-manager/app-config.yaml new file mode 100644 index 0000000..2043ad8 --- /dev/null +++ b/cert-manager/app-config.yaml @@ -0,0 +1 @@ +namespace: cert-manager diff --git a/cnpg/app-config.yaml b/cnpg/app-config.yaml new file mode 100644 index 0000000..c7602ea --- /dev/null +++ b/cnpg/app-config.yaml @@ -0,0 +1 @@ +namespace: cnpg-system diff --git a/kube-prometheus-stack/app-config.yaml b/kube-prometheus-stack/app-config.yaml new file mode 100644 index 0000000..fc81fc2 --- /dev/null +++ b/kube-prometheus-stack/app-config.yaml @@ -0,0 +1 @@ +namespace: monitoring diff --git a/loki/app-config.yaml b/loki/app-config.yaml new file mode 100644 index 0000000..fc81fc2 --- /dev/null +++ b/loki/app-config.yaml @@ -0,0 +1 @@ +namespace: monitoring diff --git a/opentelemetry-collector/app-config.yaml b/opentelemetry-collector/app-config.yaml new file mode 100644 index 0000000..fc81fc2 --- /dev/null +++ b/opentelemetry-collector/app-config.yaml @@ -0,0 +1 @@ +namespace: monitoring diff --git a/tempo/app-config.yaml b/tempo/app-config.yaml new file mode 100644 index 0000000..fc81fc2 --- /dev/null +++ b/tempo/app-config.yaml @@ -0,0 +1 @@ +namespace: monitoring From 7ea23cf70d7194d00f8081f4ab8ccb0569a7db5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 18:14:31 +0100 Subject: [PATCH 07/13] hwaa aa aa aaaaaaaaa aaaaaaaa aaaaaa aaaaaa --- application-set/application-set.yaml | 21 ++----- cert-manager/Chart.yaml | 8 --- cert-manager/kustomization.yaml | 9 +++ cert-manager/values.yaml | 2 - cnpg/Chart.yaml | 8 --- cnpg/kustomization.yaml | 7 +++ cnpg/values.yaml | 1 - kube-prometheus-stack/Chart.yaml | 8 --- kube-prometheus-stack/kustomization.yaml | 20 ++++++ kube-prometheus-stack/values.yaml | 14 ----- loki/Chart.yaml | 8 --- loki/kustomization.yaml | 68 +++++++++++++++++++++ loki/values.yaml | 71 ---------------------- opentelemetry-collector/Chart.yaml | 8 --- opentelemetry-collector/kustomization.yaml | 46 ++++++++++++++ opentelemetry-collector/values.yaml | 47 -------------- tempo/Chart.yaml | 8 --- tempo/kustomization.yaml | 16 +++++ tempo/values.yaml | 10 --- 19 files changed, 172 insertions(+), 208 deletions(-) delete mode 100644 cert-manager/Chart.yaml create mode 100644 cert-manager/kustomization.yaml delete mode 100644 cert-manager/values.yaml delete mode 100644 cnpg/Chart.yaml create mode 100644 cnpg/kustomization.yaml delete mode 100644 cnpg/values.yaml delete mode 100644 kube-prometheus-stack/Chart.yaml create mode 100644 kube-prometheus-stack/kustomization.yaml delete mode 100644 kube-prometheus-stack/values.yaml delete mode 100644 loki/Chart.yaml create mode 100644 loki/kustomization.yaml delete mode 100644 loki/values.yaml delete mode 100644 opentelemetry-collector/Chart.yaml create mode 100644 opentelemetry-collector/kustomization.yaml delete mode 100644 opentelemetry-collector/values.yaml delete mode 100644 tempo/Chart.yaml create mode 100644 tempo/kustomization.yaml delete mode 100644 tempo/values.yaml diff --git a/application-set/application-set.yaml b/application-set/application-set.yaml index b9d2226..8a21e43 100644 --- a/application-set/application-set.yaml +++ b/application-set/application-set.yaml @@ -5,21 +5,13 @@ metadata: namespace: argocd spec: goTemplate: true + goTemplateOptions: ["missingkey=error"] generators: - - merge: - mergeKeys: - - path.basename - generators: - - git: - repoURL: https://github.com/albi005/k8s - revision: HEAD - directories: - - path: "*" - - git: - repoURL: https://github.com/albi005/k8s - revision: HEAD - files: - - path: "*/app-config.yaml" + - git: + repoURL: https://github.com/albi005/k8s + revision: HEAD + directories: + - path: "*" template: metadata: name: "{{.path.basename}}" @@ -32,7 +24,6 @@ spec: path: "{{.path.path}}" destination: name: in-cluster - namespace: '{{.namespace}}' syncPolicy: automated: prune: true diff --git a/cert-manager/Chart.yaml b/cert-manager/Chart.yaml deleted file mode 100644 index 93df733..0000000 --- a/cert-manager/Chart.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v2 -name: cert-manager -description: A Helm chart for cert-manager -version: 0.1.0 -dependencies: - - name: cert-manager - version: v1.19.2 - repository: oci://quay.io/jetstack/charts diff --git a/cert-manager/kustomization.yaml b/cert-manager/kustomization.yaml new file mode 100644 index 0000000..76274e5 --- /dev/null +++ b/cert-manager/kustomization.yaml @@ -0,0 +1,9 @@ +namespace: cert-manager +helmCharts: + - name: cert-manager + repo: oci://quay.io/jetstack/charts + version: v1.19.2 + releaseName: cert-manager + namespace: cert-manager + valuesInline: + installCRDs: true diff --git a/cert-manager/values.yaml b/cert-manager/values.yaml deleted file mode 100644 index 0b21fc9..0000000 --- a/cert-manager/values.yaml +++ /dev/null @@ -1,2 +0,0 @@ -cert-manager: - installCRDs: true diff --git a/cnpg/Chart.yaml b/cnpg/Chart.yaml deleted file mode 100644 index c344284..0000000 --- a/cnpg/Chart.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v2 -name: cnpg -description: A Helm chart for CloudNativePG -version: 0.1.0 -dependencies: - - name: cloudnative-pg - version: 0.27.0 - repository: https://cloudnative-pg.github.io/charts diff --git a/cnpg/kustomization.yaml b/cnpg/kustomization.yaml new file mode 100644 index 0000000..dea0d01 --- /dev/null +++ b/cnpg/kustomization.yaml @@ -0,0 +1,7 @@ +namespace: cnpg-system +helmCharts: + - name: cloudnative-pg + repo: https://cloudnative-pg.github.io/charts + version: 0.27.0 + releaseName: cnpg + namespace: cnpg-system diff --git a/cnpg/values.yaml b/cnpg/values.yaml deleted file mode 100644 index 2c3dbb2..0000000 --- a/cnpg/values.yaml +++ /dev/null @@ -1 +0,0 @@ -cloudnative-pg: {} diff --git a/kube-prometheus-stack/Chart.yaml b/kube-prometheus-stack/Chart.yaml deleted file mode 100644 index 83ab6a4..0000000 --- a/kube-prometheus-stack/Chart.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v2 -name: kube-prometheus-stack -description: A Helm chart for kube-prometheus-stack -version: 0.1.0 -dependencies: - - name: kube-prometheus-stack - version: 80.13.3 - repository: https://prometheus-community.github.io/helm-charts diff --git a/kube-prometheus-stack/kustomization.yaml b/kube-prometheus-stack/kustomization.yaml new file mode 100644 index 0000000..fde8004 --- /dev/null +++ b/kube-prometheus-stack/kustomization.yaml @@ -0,0 +1,20 @@ +namespace: monitoring +helmCharts: + - name: kube-prometheus-stack + repo: https://prometheus-community.github.io/helm-charts + version: 80.13.3 + releaseName: kube-prometheus-stack + namespace: monitoring + valuesInline: + grafana: + additionalDataSources: + - name: Loki + type: loki + url: http://loki-gateway.monitoring.svc.cluster.local + - name: Tempo + type: tempo + url: http://tempo.monitoring.svc.cluster.local:3200 + prometheus: + prometheusSpec: + serviceMonitorSelectorNilUsesHelmValues: false + selector: {} diff --git a/kube-prometheus-stack/values.yaml b/kube-prometheus-stack/values.yaml deleted file mode 100644 index 0370bf0..0000000 --- a/kube-prometheus-stack/values.yaml +++ /dev/null @@ -1,14 +0,0 @@ -kube-prometheus-stack: - grafana: - additionalDataSources: - - name: Loki - type: loki - url: http://loki-gateway.monitoring.svc.cluster.local - - name: Tempo - type: tempo - url: http://tempo.monitoring.svc.cluster.local:3200 - prometheus: - prometheusSpec: - # Allow Prometheus to scrape ServiceMonitors in ANY namespace - serviceMonitorSelectorNilUsesHelmValues: false - selector: {} diff --git a/loki/Chart.yaml b/loki/Chart.yaml deleted file mode 100644 index c5ef2ea..0000000 --- a/loki/Chart.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v2 -name: loki -description: A Helm chart for Loki -version: 0.1.0 -dependencies: - - name: loki - version: 6.49.0 - repository: https://grafana.github.io/helm-charts diff --git a/loki/kustomization.yaml b/loki/kustomization.yaml new file mode 100644 index 0000000..0abc25d --- /dev/null +++ b/loki/kustomization.yaml @@ -0,0 +1,68 @@ +namespace: monitoring +helmCharts: + - name: loki + repo: https://grafana.github.io/helm-charts + version: 6.49.0 + releaseName: loki + namespace: monitoring + valuesInline: + loki: + auth_enabled: false + commonConfig: + replication_factor: 1 + schemaConfig: + configs: + - from: "2024-04-01" + store: tsdb + object_store: s3 + schema: v13 + index: + prefix: loki_index_ + period: 24h + ingester: + chunk_encoding: snappy + tracing: + enabled: true + querier: + max_concurrent: 2 + deploymentMode: SingleBinary + singleBinary: + replicas: 1 + resources: + limits: + cpu: 3 + memory: 4Gi + requests: + cpu: 2 + memory: 2Gi + extraEnv: + - name: GOMEMLIMIT + value: 3750MiB + chunksCache: + writebackSizeLimit: 10MB + minio: + enabled: true + backend: + replicas: 0 + read: + replicas: 0 + write: + replicas: 0 + ingester: + replicas: 0 + querier: + replicas: 0 + queryFrontend: + replicas: 0 + queryScheduler: + replicas: 0 + distributor: + replicas: 0 + compactor: + replicas: 0 + indexGateway: + replicas: 0 + bloomCompactor: + replicas: 0 + bloomGateway: + replicas: 0 diff --git a/loki/values.yaml b/loki/values.yaml deleted file mode 100644 index 913255e..0000000 --- a/loki/values.yaml +++ /dev/null @@ -1,71 +0,0 @@ -loki: - loki: - auth_enabled: false - commonConfig: - replication_factor: 1 - schemaConfig: - configs: - - from: "2024-04-01" - store: tsdb - object_store: s3 - schema: v13 - index: - prefix: loki_index_ - period: 24h - ingester: - chunk_encoding: snappy - tracing: - enabled: true - querier: - # Default is 4, if you have enough memory and CPU you can increase, reduce if OOMing - max_concurrent: 2 - - deploymentMode: SingleBinary - singleBinary: - replicas: 1 - resources: - limits: - cpu: 3 - memory: 4Gi - requests: - cpu: 2 - memory: 2Gi - extraEnv: - # Keep a little bit lower than memory limits - - name: GOMEMLIMIT - value: 3750MiB - - chunksCache: - # default is 500MB, with limited memory keep this smaller - writebackSizeLimit: 10MB - - # Enable minio for storage - minio: - enabled: true - - # Zero out replica counts of other deployment modes - backend: - replicas: 0 - read: - replicas: 0 - write: - replicas: 0 - - ingester: - replicas: 0 - querier: - replicas: 0 - queryFrontend: - replicas: 0 - queryScheduler: - replicas: 0 - distributor: - replicas: 0 - compactor: - replicas: 0 - indexGateway: - replicas: 0 - bloomCompactor: - replicas: 0 - bloomGateway: - replicas: 0 diff --git a/opentelemetry-collector/Chart.yaml b/opentelemetry-collector/Chart.yaml deleted file mode 100644 index 9dff696..0000000 --- a/opentelemetry-collector/Chart.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v2 -name: opentelemetry-collector -description: A Helm chart for OpenTelemetry Collector -version: 0.1.0 -dependencies: - - name: opentelemetry-collector - version: 0.143.0 - repository: https://open-telemetry.github.io/opentelemetry-helm-charts diff --git a/opentelemetry-collector/kustomization.yaml b/opentelemetry-collector/kustomization.yaml new file mode 100644 index 0000000..2229cad --- /dev/null +++ b/opentelemetry-collector/kustomization.yaml @@ -0,0 +1,46 @@ +namespace: monitoring +helmCharts: + - name: opentelemetry-collector + repo: https://open-telemetry.github.io/opentelemetry-helm-charts + version: 0.143.0 + releaseName: opentelemetry-collector + namespace: monitoring + valuesInline: + mode: deployment + image: + repository: otel/opentelemetry-collector-contrib + config: + receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + processors: + batch: {} + exporters: + otlp/tempo: + endpoint: tempo.monitoring.svc.cluster.local:4317 + tls: + insecure: true + otlphttp/loki: + endpoint: http://loki.monitoring.svc.cluster.local:3100/otlp + tls: + insecure: true + prometheusremotewrite: + endpoint: http://kube-prom-stack-prometheus.monitoring.svc.cluster.local:9090/api/v1/write + service: + pipelines: + traces: + receivers: [otlp] + processors: [batch] + exporters: [otlp/tempo] + metrics: + receivers: [otlp] + processors: [batch] + exporters: [prometheusremotewrite] + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlphttp/loki] diff --git a/opentelemetry-collector/values.yaml b/opentelemetry-collector/values.yaml deleted file mode 100644 index 6a2ad5d..0000000 --- a/opentelemetry-collector/values.yaml +++ /dev/null @@ -1,47 +0,0 @@ -opentelemetry-collector: - mode: deployment - image: - repository: otel/opentelemetry-collector-contrib - config: - receivers: - otlp: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - http: - endpoint: 0.0.0.0:4318 - - processors: - batch: {} - - exporters: - # 1. Traces -> Tempo - otlp/tempo: - endpoint: tempo.monitoring.svc.cluster.local:4317 - tls: - insecure: true - - # 2. Logs -> Loki - otlphttp/loki: - endpoint: http://loki.monitoring.svc.cluster.local:3100/otlp - tls: - insecure: true - - # 3. Metrics -> Prometheus (Remote Write is easiest) - prometheusremotewrite: - endpoint: http://kube-prom-stack-prometheus.monitoring.svc.cluster.local:9090/api/v1/write - - service: - pipelines: - traces: - receivers: [otlp] - processors: [batch] - exporters: [otlp/tempo] - metrics: - receivers: [otlp] - processors: [batch] - exporters: [prometheusremotewrite] - logs: - receivers: [otlp] - processors: [batch] - exporters: [otlphttp/loki] diff --git a/tempo/Chart.yaml b/tempo/Chart.yaml deleted file mode 100644 index 2495621..0000000 --- a/tempo/Chart.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v2 -name: tempo -description: A Helm chart for Tempo -version: 0.1.0 -dependencies: - - name: tempo - version: 1.24.1 - repository: https://grafana.github.io/helm-charts diff --git a/tempo/kustomization.yaml b/tempo/kustomization.yaml new file mode 100644 index 0000000..2f7032d --- /dev/null +++ b/tempo/kustomization.yaml @@ -0,0 +1,16 @@ +namespace: monitoring +helmCharts: + - name: tempo + repo: https://grafana.github.io/helm-charts + version: 1.24.1 + releaseName: tempo + namespace: monitoring + valuesInline: + tempo: + repository: grafana/tempo + tag: latest + storage: + trace: + backend: local + local: + path: /var/tempo/traces diff --git a/tempo/values.yaml b/tempo/values.yaml deleted file mode 100644 index 94c7404..0000000 --- a/tempo/values.yaml +++ /dev/null @@ -1,10 +0,0 @@ -tempo: - tempo: - repository: grafana/tempo - tag: latest - # Minimal storage config for local running - storage: - trace: - backend: local - local: - path: /var/tempo/traces From dc2decb6d7288a63ce93fbb27edfa49aed509634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 18:40:19 +0100 Subject: [PATCH 08/13] argocd: enable helm in kustomizations --- argocd/kustomization.yaml | 77 ++++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 34 deletions(-) diff --git a/argocd/kustomization.yaml b/argocd/kustomization.yaml index 6f380cf..f1f0b53 100644 --- a/argocd/kustomization.yaml +++ b/argocd/kustomization.yaml @@ -1,42 +1,51 @@ # https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#manage-argo-cd-using-argo-cd resources: -- namespace.yaml -# TODO: Replace `stable` with a git commit hash and let Renovate update it -# automatically to the latest commit of the `stable` branch -- https://github.com/argoproj/argo-cd//manifests/cluster-install?ref=stable + - ./namespace.yaml + # TODO: Replace `stable` with a git commit hash and let Renovate update it + # automatically to the latest commit of the `stable` branch + - https://github.com/argoproj/argo-cd//manifests/cluster-install?ref=stable patches: -# GROUP 1: Heavy Components -# (Repo Server, API Server, App Controller need more RAM/CPU) -- target: - kind: (Deployment|StatefulSet) - name: (argocd-repo-server|argocd-server|argocd-application-controller) - patch: |- - - op: add - path: /spec/template/spec/containers/0/resources - value: - requests: - cpu: "50m" - memory: "128Mi" - limits: - cpu: "1000m" - memory: "1Gi" + # https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/#kustomizing-helm-charts + - target: + kind: ConfigMap + name: argocd-cm + patch: |- + - op: add + path: /data/kustomize.buildOptions + value: "--enable-helm" -# GROUP 2: Light Components -# (Redis, Dex, Notifications, AppSet need very little) -- target: - kind: Deployment - name: (argocd-redis|argocd-dex-server|argocd-notifications-controller|argocd-applicationset-controller) - patch: |- - - op: add - path: /spec/template/spec/containers/0/resources - value: - requests: - cpu: "10m" - memory: "64Mi" - limits: - cpu: "200m" - memory: "256Mi" + # GROUP 1: Heavy Components + # (Repo Server, API Server, App Controller need more RAM/CPU) + - target: + kind: (Deployment|StatefulSet) + name: (argocd-repo-server|argocd-server|argocd-application-controller) + patch: |- + - op: add + path: /spec/template/spec/containers/0/resources + value: + requests: + cpu: "50m" + memory: "128Mi" + limits: + cpu: "1000m" + memory: "1Gi" + + # GROUP 2: Light Components + # (Redis, Dex, Notifications, AppSet need very little) + - target: + kind: Deployment + name: (argocd-redis|argocd-dex-server|argocd-notifications-controller|argocd-applicationset-controller) + patch: |- + - op: add + path: /spec/template/spec/containers/0/resources + value: + requests: + cpu: "10m" + memory: "64Mi" + limits: + cpu: "200m" + memory: "256Mi" namespace: argocd From a5ff52d8b9dbd0a6e054d053fb34c6da8acfe9c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 18:52:11 +0100 Subject: [PATCH 09/13] Namespaces --- README.md | 1 + cert-manager/kustomization.yaml | 2 ++ cert-manager/namespace.yaml | 4 ++++ monitoring/monitoring.yaml | 4 ++++ 4 files changed, 11 insertions(+) create mode 100644 cert-manager/namespace.yaml create mode 100644 monitoring/monitoring.yaml diff --git a/README.md b/README.md index 6c2a42a..5efdf0c 100644 --- a/README.md +++ b/README.md @@ -24,3 +24,4 @@ kubectl apply -f application-set/ - https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/ - ArgoCD `Application` reference: https://argo-cd.readthedocs.io/en/stable/user-guide/application-specification/ - Manage Argo CD Using Argo CD: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#manage-argo-cd-using-argo-cd +- Kustomization file documentation: https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/ \ No newline at end of file diff --git a/cert-manager/kustomization.yaml b/cert-manager/kustomization.yaml index 76274e5..a552eaf 100644 --- a/cert-manager/kustomization.yaml +++ b/cert-manager/kustomization.yaml @@ -1,4 +1,6 @@ namespace: cert-manager +resources: + - namespace.yaml helmCharts: - name: cert-manager repo: oci://quay.io/jetstack/charts diff --git a/cert-manager/namespace.yaml b/cert-manager/namespace.yaml new file mode 100644 index 0000000..c90416f --- /dev/null +++ b/cert-manager/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: cert-manager diff --git a/monitoring/monitoring.yaml b/monitoring/monitoring.yaml new file mode 100644 index 0000000..d325236 --- /dev/null +++ b/monitoring/monitoring.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: monitoring From acdf20180a560691165340cbdebd1f5711282012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 18:55:01 +0100 Subject: [PATCH 10/13] more namespaces --- cert-manager/app-config.yaml | 1 - cnpg/app-config.yaml | 1 - cnpg/kustomization.yaml | 2 ++ cnpg/namespace.yaml | 4 ++++ kube-prometheus-stack/app-config.yaml | 1 - loki/app-config.yaml | 1 - opentelemetry-collector/app-config.yaml | 1 - tempo/app-config.yaml | 1 - 8 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 cert-manager/app-config.yaml delete mode 100644 cnpg/app-config.yaml create mode 100644 cnpg/namespace.yaml delete mode 100644 kube-prometheus-stack/app-config.yaml delete mode 100644 loki/app-config.yaml delete mode 100644 opentelemetry-collector/app-config.yaml delete mode 100644 tempo/app-config.yaml diff --git a/cert-manager/app-config.yaml b/cert-manager/app-config.yaml deleted file mode 100644 index 2043ad8..0000000 --- a/cert-manager/app-config.yaml +++ /dev/null @@ -1 +0,0 @@ -namespace: cert-manager diff --git a/cnpg/app-config.yaml b/cnpg/app-config.yaml deleted file mode 100644 index c7602ea..0000000 --- a/cnpg/app-config.yaml +++ /dev/null @@ -1 +0,0 @@ -namespace: cnpg-system diff --git a/cnpg/kustomization.yaml b/cnpg/kustomization.yaml index dea0d01..0e56b4b 100644 --- a/cnpg/kustomization.yaml +++ b/cnpg/kustomization.yaml @@ -1,4 +1,6 @@ namespace: cnpg-system +resources: + - namespace.yaml helmCharts: - name: cloudnative-pg repo: https://cloudnative-pg.github.io/charts diff --git a/cnpg/namespace.yaml b/cnpg/namespace.yaml new file mode 100644 index 0000000..8deac4c --- /dev/null +++ b/cnpg/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: cnpg-system diff --git a/kube-prometheus-stack/app-config.yaml b/kube-prometheus-stack/app-config.yaml deleted file mode 100644 index fc81fc2..0000000 --- a/kube-prometheus-stack/app-config.yaml +++ /dev/null @@ -1 +0,0 @@ -namespace: monitoring diff --git a/loki/app-config.yaml b/loki/app-config.yaml deleted file mode 100644 index fc81fc2..0000000 --- a/loki/app-config.yaml +++ /dev/null @@ -1 +0,0 @@ -namespace: monitoring diff --git a/opentelemetry-collector/app-config.yaml b/opentelemetry-collector/app-config.yaml deleted file mode 100644 index fc81fc2..0000000 --- a/opentelemetry-collector/app-config.yaml +++ /dev/null @@ -1 +0,0 @@ -namespace: monitoring diff --git a/tempo/app-config.yaml b/tempo/app-config.yaml deleted file mode 100644 index fc81fc2..0000000 --- a/tempo/app-config.yaml +++ /dev/null @@ -1 +0,0 @@ -namespace: monitoring From 1f4aefd19d5ab361506baf91ccb5e15d9af370a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 19:39:27 +0100 Subject: [PATCH 11/13] aaaaaaaaa --- .gitignore | 1 + cert-manager/kustomization.yaml | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 485dee6..1b7532e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea +**/charts \ No newline at end of file diff --git a/cert-manager/kustomization.yaml b/cert-manager/kustomization.yaml index a552eaf..be2749f 100644 --- a/cert-manager/kustomization.yaml +++ b/cert-manager/kustomization.yaml @@ -8,4 +8,8 @@ helmCharts: releaseName: cert-manager namespace: cert-manager valuesInline: - installCRDs: true + crds: + enabled: true + global: + leaderElection: + namespace: cert-manager From bdc612832c4bf6e9fa356ab6fc1dc74d498357ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 20:05:35 +0100 Subject: [PATCH 12/13] crds nuts --- cert-manager/kustomization.yaml | 1 + cnpg/kustomization.yaml | 1 + kube-prometheus-stack/kustomization.yaml | 1 + loki/kustomization.yaml | 1 + opentelemetry-collector/kustomization.yaml | 1 + tempo/kustomization.yaml | 1 + 6 files changed, 6 insertions(+) diff --git a/cert-manager/kustomization.yaml b/cert-manager/kustomization.yaml index be2749f..9744324 100644 --- a/cert-manager/kustomization.yaml +++ b/cert-manager/kustomization.yaml @@ -7,6 +7,7 @@ helmCharts: version: v1.19.2 releaseName: cert-manager namespace: cert-manager + includeCRDs: true valuesInline: crds: enabled: true diff --git a/cnpg/kustomization.yaml b/cnpg/kustomization.yaml index 0e56b4b..efd4e6b 100644 --- a/cnpg/kustomization.yaml +++ b/cnpg/kustomization.yaml @@ -7,3 +7,4 @@ helmCharts: version: 0.27.0 releaseName: cnpg namespace: cnpg-system + includeCRDs: true diff --git a/kube-prometheus-stack/kustomization.yaml b/kube-prometheus-stack/kustomization.yaml index fde8004..8ca4136 100644 --- a/kube-prometheus-stack/kustomization.yaml +++ b/kube-prometheus-stack/kustomization.yaml @@ -5,6 +5,7 @@ helmCharts: version: 80.13.3 releaseName: kube-prometheus-stack namespace: monitoring + includeCRDs: true valuesInline: grafana: additionalDataSources: diff --git a/loki/kustomization.yaml b/loki/kustomization.yaml index 0abc25d..93755ca 100644 --- a/loki/kustomization.yaml +++ b/loki/kustomization.yaml @@ -5,6 +5,7 @@ helmCharts: version: 6.49.0 releaseName: loki namespace: monitoring + includeCRDs: true valuesInline: loki: auth_enabled: false diff --git a/opentelemetry-collector/kustomization.yaml b/opentelemetry-collector/kustomization.yaml index 2229cad..e7779dc 100644 --- a/opentelemetry-collector/kustomization.yaml +++ b/opentelemetry-collector/kustomization.yaml @@ -5,6 +5,7 @@ helmCharts: version: 0.143.0 releaseName: opentelemetry-collector namespace: monitoring + includeCRDs: true valuesInline: mode: deployment image: diff --git a/tempo/kustomization.yaml b/tempo/kustomization.yaml index 2f7032d..6a4ec72 100644 --- a/tempo/kustomization.yaml +++ b/tempo/kustomization.yaml @@ -5,6 +5,7 @@ helmCharts: version: 1.24.1 releaseName: tempo namespace: monitoring + includeCRDs: true valuesInline: tempo: repository: grafana/tempo From f0d92e4e4f3f887ce9d56cf23498a72d853654cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Rag=C3=A1ny-N=C3=A9meth?= Date: Mon, 19 Jan 2026 20:26:39 +0100 Subject: [PATCH 13/13] clean up --- argocd/kustomization.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/argocd/kustomization.yaml b/argocd/kustomization.yaml index f1f0b53..179b6c0 100644 --- a/argocd/kustomization.yaml +++ b/argocd/kustomization.yaml @@ -1,7 +1,7 @@ # https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#manage-argo-cd-using-argo-cd resources: - - ./namespace.yaml + - namespace.yaml # TODO: Replace `stable` with a git commit hash and let Renovate update it # automatically to the latest commit of the `stable` branch - https://github.com/argoproj/argo-cd//manifests/cluster-install?ref=stable