diff --git a/contexts/_template/blueprint.jsonnet b/contexts/_template/blueprint.jsonnet index d5007aad..54cde2ee 100644 --- a/contexts/_template/blueprint.jsonnet +++ b/contexts/_template/blueprint.jsonnet @@ -78,7 +78,9 @@ local kustomizeConfigs = { path: "telemetry/base", components: [ "prometheus", - "prometheus/flux" + "prometheus/flux", + "fluentbit", + "fluentbit/prometheus" ], }, { @@ -90,7 +92,12 @@ local kustomizeConfigs = { components: [ "metrics-server", "prometheus", - "prometheus/flux" + "prometheus/flux", + "fluentbit", + "fluentbit/containerd", + "fluentbit/fluentd", + "fluentbit/kubernetes", + "fluentbit/systemd" ], }, { @@ -167,6 +174,7 @@ local kustomizeConfigs = { "ingress" ], components: [ + "fluentd", "grafana", "grafana/ingress", "grafana/prometheus", @@ -182,7 +190,9 @@ local kustomizeConfigs = { path: "telemetry/base", components: [ "prometheus", - "prometheus/flux" + "prometheus/flux", + "fluentbit", + "fluentbit/prometheus" ], }, { @@ -193,7 +203,12 @@ local kustomizeConfigs = { ], components: [ "prometheus", - "prometheus/flux" + "prometheus/flux", + "fluentbit", + "fluentbit/containerd", + "fluentbit/fluentd", + "fluentbit/kubernetes", + "fluentbit/systemd" ], }, { @@ -261,6 +276,7 @@ local kustomizeConfigs = { "ingress" ], components: [ + "fluentd", "grafana", "grafana/ingress", "grafana/prometheus", @@ -417,6 +433,22 @@ local kustomizeConfigs = { components: [ "webhook" ], + }, + { + name: "observability", + path: "observability", + dependsOn: [ + "ingress" + ], + components: [ + "fluentd", + "grafana", + "grafana/ingress", + "grafana/prometheus", + "grafana/node", + "grafana/kubernetes", + "grafana/flux" + ], } ] }; diff --git a/kustomize/observability/base/kustomization.yaml b/kustomize/observability/base/kustomization.yaml new file mode 100644 index 00000000..736967b1 --- /dev/null +++ b/kustomize/observability/base/kustomization.yaml @@ -0,0 +1,2 @@ +resources: + - namespace.yaml diff --git a/kustomize/observability/base/namespace.yaml b/kustomize/observability/base/namespace.yaml new file mode 100644 index 00000000..5544d5b6 --- /dev/null +++ b/kustomize/observability/base/namespace.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: system-observability + labels: + pod-security.kubernetes.io/enforce: baseline + pod-security.kubernetes.io/audit: baseline + pod-security.kubernetes.io/warn: baseline + use-custom-ca: "true" diff --git a/kustomize/observability/fluentd/fluentd.yaml b/kustomize/observability/fluentd/fluentd.yaml new file mode 100644 index 00000000..41aea384 --- /dev/null +++ b/kustomize/observability/fluentd/fluentd.yaml @@ -0,0 +1,51 @@ +apiVersion: fluentd.fluent.io/v1alpha1 +kind: Fluentd +metadata: + labels: + app.kubernetes.io/name: fluentd + name: fluentd + namespace: system-observability +spec: + fluentdCfgSelector: + matchLabels: + config.fluentd.fluent.io/enabled: "true" + globalInputs: + - forward: + bind: 0.0.0.0 + port: 24224 + image: ghcr.io/fluent/fluent-operator/fluentd:v1.17.0 + logLevel: info + mode: collector + positionDB: {} + replicas: 1 + resources: + limits: + cpu: 500m + memory: 500Mi + requests: + cpu: 100m + memory: 128Mi + service: {} +status: + messages: all matched cfgs is valid + state: active +--- +apiVersion: fluentd.fluent.io/v1alpha1 +kind: ClusterFluentdConfig +metadata: + labels: + config.fluentd.fluent.io/enabled: "true" + name: fluentd-config +spec: + clusterFilterSelector: + matchLabels: + filter.fluentd.fluent.io/enabled: "true" + clusterOutputSelector: + matchLabels: + output.fluentd.fluent.io/enabled: "true" + watchedNamespaces: + - kube-system + - default +status: + messages: Generate fluentd configs successfully + state: valid diff --git a/kustomize/observability/fluentd/helm-release.yaml b/kustomize/observability/fluentd/helm-release.yaml new file mode 100644 index 00000000..d95ec49c --- /dev/null +++ b/kustomize/observability/fluentd/helm-release.yaml @@ -0,0 +1,27 @@ +--- +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: fluent-operator-config + namespace: system-observability +spec: + interval: 5m + timeout: 5m + chart: + spec: + chart: charts/fluent-operator + # chart: fluent-operator + # renovate: datasource=helm depName=fluent-operator package=fluent-operator helmRepo=https://fluent.github.io/helm-charts + # version: 3.2.0 + sourceRef: + kind: GitRepository + name: fluent-operator + namespace: system-gitops + values: + containerRuntime: containerd + fluentd: + enable: true + crdsEnable: false + fluentbit: + enable: true + crdsEnable: false diff --git a/kustomize/observability/fluentd/kustomization.yaml b/kustomize/observability/fluentd/kustomization.yaml new file mode 100644 index 00000000..3aa9a8c5 --- /dev/null +++ b/kustomize/observability/fluentd/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +resources: + - fluentd.yaml diff --git a/kustomize/observability/fluentd/stdout/clusteroutput.yaml b/kustomize/observability/fluentd/stdout/clusteroutput.yaml new file mode 100644 index 00000000..61a4a912 --- /dev/null +++ b/kustomize/observability/fluentd/stdout/clusteroutput.yaml @@ -0,0 +1,9 @@ +apiVersion: fluentd.fluent.io/v1alpha1 +kind: ClusterOutput +metadata: + name: stdout + labels: + output.fluentd.fluent.io/enabled: "true" +spec: + outputs: + - stdout: {} diff --git a/kustomize/observability/fluentd/stdout/kustomization.yaml b/kustomize/observability/fluentd/stdout/kustomization.yaml new file mode 100644 index 00000000..051eb969 --- /dev/null +++ b/kustomize/observability/fluentd/stdout/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component +resources: + - clusteroutput.yaml