feat: Set up Alloy

This commit is contained in:
Peter 2025-12-14 15:33:14 +01:00
parent 572ec08b9a
commit bae2fc8c1e
Signed by: Peter
SSH key fingerprint: SHA256:B5tYaxBExaDm74r1px9iVeZ6F/ZDiyiy9SbBqfZYrvg
5 changed files with 667 additions and 0 deletions

View file

@ -0,0 +1,14 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: alloy
resources:
- namespace.yaml
helmCharts:
- name: alloy
repo: https://grafana.github.io/helm-charts
version: "1.4.0"
releaseName: alloy
valuesFile: values.yaml

View file

@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: alloy

View file

@ -0,0 +1,115 @@
crds:
# -- Whether to install CRDs for monitoring.
create: true
## Various Alloy settings. For backwards compatibility with the grafana-agent
## chart, this field may also be called "agent". Naming this field "agent" is
## deprecated and will be removed in a future release.
alloy:
configMap:
# -- Create a new ConfigMap for the config file.
create: false
# -- Name of existing ConfigMap to use. Used when create is false.
name: alloy-config
# -- Key in ConfigMap to get config from.
key: config.alloy
rbac:
# -- Whether to create RBAC resources for Alloy.
create: true
# -- The rules to create for the ClusterRole or Role objects.
rules:
# -- Rules required for the `discovery.kubernetes` component.
- apiGroups: ["", "discovery.k8s.io", "networking.k8s.io"]
resources: ["endpoints", "endpointslices", "ingresses", "pods", "services"]
verbs: ["get", "list", "watch"]
# -- Rules required for the `loki.source.kubernetes` component.
- apiGroups: [""]
resources: ["pods", "pods/log", "namespaces"]
verbs: ["get", "list", "watch"]
# -- Rules required for the `loki.source.podlogs` component.
- apiGroups: ["monitoring.grafana.com"]
resources: ["podlogs"]
verbs: ["get", "list", "watch"]
# -- Rules required for the `mimir.rules.kubernetes` component.
- apiGroups: ["monitoring.coreos.com"]
resources: ["prometheusrules"]
verbs: ["get", "list", "watch"]
# -- Rules required for the `prometheus.operator.*` components.
- apiGroups: ["monitoring.coreos.com"]
resources: ["podmonitors", "servicemonitors", "probes", "scrapeconfigs"]
verbs: ["get", "list", "watch"]
# -- Rules required for the `loki.source.kubernetes_events` component.
- apiGroups: [""]
resources: ["events"]
verbs: ["get", "list", "watch"]
# -- Rules required for the `remote.kubernetes.*` components.
- apiGroups: [""]
resources: ["configmaps", "secrets"]
verbs: ["get", "list", "watch"]
# -- Rules required for the `otelcol.processor.k8sattributes` component.
- apiGroups: ["apps", "extensions"]
resources: ["replicasets"]
verbs: ["get", "list", "watch"]
# -- The rules to create for the ClusterRole objects.
clusterRules:
# -- Rules required for the `discovery.kubernetes` component.
- apiGroups: [""]
resources: ["nodes", "nodes/proxy", "nodes/metrics"]
verbs: ["get", "list", "watch"]
# -- Rules required for accessing metrics endpoint.
- nonResourceURLs: ["/metrics"]
verbs: ["get"]
serviceAccount:
# -- Whether to create a service account for the Grafana Alloy deployment.
create: true
# -- Additional labels to add to the created service account.
additionalLabels: {}
# -- Annotations to add to the created service account.
annotations: {}
# -- The name of the existing service account to use when
# serviceAccount.create is false.
name: null
# Whether the Alloy pod should automatically mount the service account token.
automountServiceAccountToken: true
# Options for the extra controller used for config reloading.
configReloader:
# -- Enables automatically reloading when the Alloy config changes.
enabled: true
image:
# -- Config reloader image registry (defaults to docker.io)
registry: "quay.io"
# -- Repository to get config reloader image from.
repository: prometheus-operator/prometheus-config-reloader
# -- Tag of image to use for config reloading.
tag: v0.81.0
# -- SHA256 digest of image to use for config reloading (either in format "sha256:XYZ" or "XYZ"). When set, will override `configReloader.image.tag`
digest: ""
# -- Override the args passed to the container.
customArgs: []
# -- Resource requests and limits to apply to the config reloader container.
resources:
requests:
cpu: "10m"
memory: "50Mi"
# -- Security context to apply to the Grafana configReloader container.
securityContext: {}
service:
# -- Creates a Service for the controller's pods.
enabled: true
# -- Service type
type: ClusterIP
# -- NodePort port. Only takes effect when `service.type: NodePort`
nodePort: 31128
# -- Cluster IP, can be set to None, empty "" or an IP address
clusterIP: ''
# -- Value for internal traffic policy. 'Cluster' or 'Local'
internalTrafficPolicy: Cluster
annotations: {}
# cloud.google.com/load-balancer-type: Internal