add alloy
This commit is contained in:
		
							
								
								
									
										9
									
								
								alloy/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								alloy/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					apiVersion: v2
 | 
				
			||||||
 | 
					name: alloy
 | 
				
			||||||
 | 
					version: "1.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dependencies:
 | 
				
			||||||
 | 
					  - name: alloy
 | 
				
			||||||
 | 
					    version: 1.1.2
 | 
				
			||||||
 | 
					    repository: https://grafana.github.io/helm-charts
 | 
				
			||||||
							
								
								
									
										99
									
								
								alloy/values-development.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								alloy/values-development.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
				
			|||||||
 | 
					alloy:
 | 
				
			||||||
 | 
					  alloy:
 | 
				
			||||||
 | 
					    configMap:
 | 
				
			||||||
 | 
					      content: |-
 | 
				
			||||||
 | 
					        loki.write "default" {
 | 
				
			||||||
 | 
					          endpoint {
 | 
				
			||||||
 | 
					            url = "http://loki.loki.svc.cluster.local:3100/loki/api/v1/push"
 | 
				
			||||||
 | 
					            url = "http://loki.loki.svc.cluster.local:3100/loki/api/v1/push"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          tenant_id = "luna"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // discovery.kubernetes allows you to find scrape targets from Kubernetes resources.
 | 
				
			||||||
 | 
					        // It watches cluster state and ensures targets are continually synced with what is currently running in your cluster.
 | 
				
			||||||
 | 
					        discovery.kubernetes "pod" {
 | 
				
			||||||
 | 
					          role = "pod"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // discovery.relabel rewrites the label set of the input targets by applying one or more relabeling rules.
 | 
				
			||||||
 | 
					        // If no rules are defined, then the input targets are exported as-is.
 | 
				
			||||||
 | 
					        discovery.relabel "pod_logs" {
 | 
				
			||||||
 | 
					          targets = discovery.kubernetes.pod.targets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          // Label creation - "namespace" field from "__meta_kubernetes_namespace"
 | 
				
			||||||
 | 
					          rule {
 | 
				
			||||||
 | 
					            source_labels = ["__meta_kubernetes_namespace"]
 | 
				
			||||||
 | 
					            action = "replace"
 | 
				
			||||||
 | 
					            target_label = "namespace"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          // Label creation - "pod" field from "__meta_kubernetes_pod_name"
 | 
				
			||||||
 | 
					          rule {
 | 
				
			||||||
 | 
					            source_labels = ["__meta_kubernetes_pod_name"]
 | 
				
			||||||
 | 
					            action = "replace"
 | 
				
			||||||
 | 
					            target_label = "pod"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          // Label creation - "container" field from "__meta_kubernetes_pod_container_name"
 | 
				
			||||||
 | 
					          rule {
 | 
				
			||||||
 | 
					            source_labels = ["__meta_kubernetes_pod_container_name"]
 | 
				
			||||||
 | 
					            action = "replace"
 | 
				
			||||||
 | 
					            target_label = "container"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          // Label creation -  "app" field from "__meta_kubernetes_pod_label_app_kubernetes_io_name"
 | 
				
			||||||
 | 
					          rule {
 | 
				
			||||||
 | 
					            source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_name"]
 | 
				
			||||||
 | 
					            action = "replace"
 | 
				
			||||||
 | 
					            target_label = "app"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          // Label creation -  "job" field from "__meta_kubernetes_namespace" and "__meta_kubernetes_pod_container_name"
 | 
				
			||||||
 | 
					          // Concatenate values __meta_kubernetes_namespace/__meta_kubernetes_pod_container_name
 | 
				
			||||||
 | 
					          rule {
 | 
				
			||||||
 | 
					            source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_container_name"]
 | 
				
			||||||
 | 
					            action = "replace"
 | 
				
			||||||
 | 
					            target_label = "job"
 | 
				
			||||||
 | 
					            separator = "/"
 | 
				
			||||||
 | 
					            replacement = "$1"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          // Label creation - "container" field from "__meta_kubernetes_pod_uid" and "__meta_kubernetes_pod_container_name"
 | 
				
			||||||
 | 
					          // Concatenate values __meta_kubernetes_pod_uid/__meta_kubernetes_pod_container_name.log
 | 
				
			||||||
 | 
					          rule {
 | 
				
			||||||
 | 
					            source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
 | 
				
			||||||
 | 
					            action = "replace"
 | 
				
			||||||
 | 
					            target_label = "__path__"
 | 
				
			||||||
 | 
					            separator = "/"
 | 
				
			||||||
 | 
					            replacement = "/var/log/pods/*$1/*.log"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          // Label creation -  "container_runtime" field from "__meta_kubernetes_pod_container_id"
 | 
				
			||||||
 | 
					          rule {
 | 
				
			||||||
 | 
					            source_labels = ["__meta_kubernetes_pod_container_id"]
 | 
				
			||||||
 | 
					            action = "replace"
 | 
				
			||||||
 | 
					            target_label = "container_runtime"
 | 
				
			||||||
 | 
					            regex = "^(\\S+):\\/\\/.+$"
 | 
				
			||||||
 | 
					            replacement = "$1"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // loki.source.kubernetes tails logs from Kubernetes containers using the Kubernetes API.
 | 
				
			||||||
 | 
					        loki.source.kubernetes "pod_logs" {
 | 
				
			||||||
 | 
					          targets    = discovery.relabel.pod_logs.output
 | 
				
			||||||
 | 
					          forward_to = [loki.process.pod_logs.receiver]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // loki.process receives log entries from other Loki components, applies one or more processing stages,
 | 
				
			||||||
 | 
					        // and forwards the results to the list of receivers in the component's arguments.
 | 
				
			||||||
 | 
					        loki.process "pod_logs" {
 | 
				
			||||||
 | 
					          stage.static_labels {
 | 
				
			||||||
 | 
					              values = {
 | 
				
			||||||
 | 
					                cluster = "development",
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          forward_to = [loki.write.default.receiver]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
							
								
								
									
										40
									
								
								apps/alloy.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								apps/alloy.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					apiVersion: argoproj.io/v1alpha1
 | 
				
			||||||
 | 
					kind: ApplicationSet
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: alloy
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  goTemplate: true
 | 
				
			||||||
 | 
					  goTemplateOptions: ["missingkey=error"]
 | 
				
			||||||
 | 
					  generators:
 | 
				
			||||||
 | 
					    - list:
 | 
				
			||||||
 | 
					        elements:
 | 
				
			||||||
 | 
					        - cluster: production
 | 
				
			||||||
 | 
					          url: https://kubernetes.default.svc
 | 
				
			||||||
 | 
					        - cluster: staging
 | 
				
			||||||
 | 
					          url: https://k3s-ctrl-lb.lab.kill0.net:6443
 | 
				
			||||||
 | 
					        - cluster: development
 | 
				
			||||||
 | 
					          url: https://k0s-ctrl-vip.lab.kill0.net:6443
 | 
				
			||||||
 | 
					  template:
 | 
				
			||||||
 | 
					    metadata:
 | 
				
			||||||
 | 
					      name: 'alloy-{{.cluster}}'
 | 
				
			||||||
 | 
					    spec:
 | 
				
			||||||
 | 
					      project: default
 | 
				
			||||||
 | 
					      source:
 | 
				
			||||||
 | 
					        path: alloy
 | 
				
			||||||
 | 
					        repoURL: https://git.kill0.net/ryanc/argocd.git
 | 
				
			||||||
 | 
					        targetRevision: HEAD
 | 
				
			||||||
 | 
					        helm:
 | 
				
			||||||
 | 
					          releaseName: alloy
 | 
				
			||||||
 | 
					          valueFiles:
 | 
				
			||||||
 | 
					            - values.yaml
 | 
				
			||||||
 | 
					            - values-{{.cluster}}.yaml
 | 
				
			||||||
 | 
					          ignoreMissingValueFiles: true
 | 
				
			||||||
 | 
					      destination:
 | 
				
			||||||
 | 
					        server: '{{.url}}'
 | 
				
			||||||
 | 
					        namespace: alloy
 | 
				
			||||||
 | 
					      syncPolicy:
 | 
				
			||||||
 | 
					        automated:
 | 
				
			||||||
 | 
					          prune: true
 | 
				
			||||||
 | 
					          selfHeal: true
 | 
				
			||||||
 | 
					        syncOptions:
 | 
				
			||||||
 | 
					          - CreateNamespace=true
 | 
				
			||||||
		Reference in New Issue
	
	Block a user