test: flux local cluster setup with infra-devops post
这个提交包含在:
@@ -0,0 +1,57 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: loki
|
||||
namespace: infra-monitor
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
spec:
|
||||
chart: loki
|
||||
version: 6.53.0
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: grafana
|
||||
namespace: infra-gitops
|
||||
interval: 12h
|
||||
values:
|
||||
deploymentMode: SingleBinary
|
||||
gateway:
|
||||
enabled: false
|
||||
lokiCanary:
|
||||
extraArgs:
|
||||
# 降低测试日志生成条数
|
||||
- -interval=30s
|
||||
- -labelname=service_name
|
||||
- -labelvalue=loki-canary
|
||||
resultsCache:
|
||||
allocatedMemory: 1024
|
||||
chunksCache:
|
||||
allocatedMemory: 1024
|
||||
loki:
|
||||
auth_enabled: false
|
||||
commonConfig:
|
||||
replication_factor: 1
|
||||
limits_config:
|
||||
reject_old_samples_max_age: 168h
|
||||
max_query_series: 10000
|
||||
volume_enabled: true
|
||||
storage:
|
||||
type: "filesystem"
|
||||
schemaConfig:
|
||||
configs:
|
||||
- from: "2024-01-01"
|
||||
store: tsdb
|
||||
index:
|
||||
prefix: loki_index_
|
||||
period: 24h
|
||||
object_store: filesystem
|
||||
schema: v13
|
||||
singleBinary:
|
||||
replicas: 1
|
||||
read:
|
||||
replicas: 0
|
||||
backend:
|
||||
replicas: 0
|
||||
write:
|
||||
replicas: 0
|
||||
@@ -0,0 +1,119 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: prometheus
|
||||
namespace: infra-monitor
|
||||
spec:
|
||||
interval: 30m
|
||||
chart:
|
||||
spec:
|
||||
chart: kube-prometheus-stack
|
||||
version: 81.6.5
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: prometheus-community
|
||||
namespace: infra-gitops
|
||||
interval: 12h
|
||||
install:
|
||||
crds: CreateReplace
|
||||
upgrade:
|
||||
crds: CreateReplace
|
||||
values:
|
||||
kubeControllerManager:
|
||||
enabled: false
|
||||
kubeScheduler:
|
||||
enabled: false
|
||||
kubeProxy:
|
||||
enabled: false
|
||||
kubeEtcd:
|
||||
enabled: false
|
||||
|
||||
prometheusOperator: {}
|
||||
|
||||
kube-state-metrics: {}
|
||||
|
||||
grafana:
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
|
||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
proxy_set_header Accept-Encoding "";
|
||||
subs_filter_types text/html;
|
||||
subs_filter '<(script|img|link)([^>]*) (src|href)="/' '<$1$2 $3="https://cdn.fillcode.com/monitor-dev-cm/' ri;
|
||||
subs_filter 'url\(\/' 'url(https://cdn.fillcode.com/monitor-dev-cm/' ri;
|
||||
subs_filter '<head>' '<head><script src="/__static/pwa-cdn.js"></script>' ri;
|
||||
hosts:
|
||||
- monitor.dev.cm
|
||||
paths:
|
||||
- /
|
||||
assertNoLeakedSecrets: false
|
||||
envValueFrom:
|
||||
GF_DATABASE_PASSWORD:
|
||||
secretKeyRef:
|
||||
name: cnpg17-cluster-sh-app
|
||||
key: password
|
||||
grafana.ini:
|
||||
server:
|
||||
root_url: https://monitor.dev.cm/
|
||||
public_dashboards:
|
||||
enabled: false
|
||||
help:
|
||||
enabled: false
|
||||
news:
|
||||
news_feed_enabled: false
|
||||
database:
|
||||
type: postgres
|
||||
host: cnpg17-cluster-sh-rw.infra-data:5432
|
||||
name: grafana
|
||||
user: app
|
||||
password: $__env{GF_DATABASE_PASSWORD}
|
||||
persistence:
|
||||
type: pvc
|
||||
enabled: true
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
size: 10Gi
|
||||
|
||||
prometheus:
|
||||
prometheusSpec:
|
||||
storageSpec:
|
||||
volumeClaimTemplate:
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 30Gi
|
||||
routePrefix: /prometheus
|
||||
serviceMonitorSelectorNilUsesHelmValues: false
|
||||
podMonitorSelectorNilUsesHelmValues: false
|
||||
ruleSelectorNilUsesHelmValues: false
|
||||
scrapeInterval: 1m
|
||||
ingress:
|
||||
enabled: false
|
||||
ingressClassName: nginx
|
||||
hosts:
|
||||
- monitor.dev.cm
|
||||
paths:
|
||||
- /prometheus
|
||||
|
||||
alertmanager:
|
||||
alertmanagerSpec:
|
||||
storage:
|
||||
volumeClaimTemplate:
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
routePrefix: /alertmanager
|
||||
ingress:
|
||||
enabled: false
|
||||
ingressClassName: nginx
|
||||
hosts:
|
||||
- monitor.dev.cm
|
||||
paths:
|
||||
- /alertmanager
|
||||
@@ -0,0 +1,36 @@
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: loki-promtail
|
||||
namespace: infra-monitor
|
||||
spec:
|
||||
interval: 30m
|
||||
dependsOn:
|
||||
- name: loki
|
||||
chart:
|
||||
spec:
|
||||
chart: promtail
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: grafana
|
||||
namespace: infra-gitops
|
||||
interval: 12h
|
||||
values:
|
||||
configmap:
|
||||
enabled: true
|
||||
config:
|
||||
clients:
|
||||
- url: http://loki.infra-monitor:3100/loki/api/v1/push
|
||||
tenant_id: 1
|
||||
snippets:
|
||||
extraRelabelConfigs:
|
||||
# 匹配 devcm-log-collecting/enabled 标签 只有为true时才收集日志
|
||||
- source_labels:
|
||||
[__meta_kubernetes_pod_label_devcm_log_collecting_enabled]
|
||||
action: keep
|
||||
regex: true
|
||||
# 匹配 devcm-log-collecting/only-errors标签并只保留stderr流
|
||||
- source_labels:
|
||||
[__meta_kubernetes_pod_label_devcm_log_collecting_only_errors]
|
||||
action: drop
|
||||
regex: stdout
|
||||
@@ -0,0 +1,30 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: grafana-static
|
||||
namespace: infra-monitor
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||
nginx.ingress.kubernetes.io/proxy-buffering: "on"
|
||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
proxy_cache cache;
|
||||
proxy_cache_valid 200 302 7d;
|
||||
proxy_cache_valid 404 10m;
|
||||
proxy_cache_valid any 1h;
|
||||
proxy_cache_use_stale error timeout updating http_404 http_500 http_502 http_503 http_504;
|
||||
proxy_cache_bypass $http_x_purge;
|
||||
proxy_ignore_headers Cache-Control;
|
||||
add_header X-Cache-Status $upstream_cache_status;
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: monitor.dev.cm
|
||||
http:
|
||||
paths:
|
||||
- path: /(.*\.(css|js|png|jpg|jpeg|gif|svg|webp|ico|woff|woff2|ttf|eot)|avatars/[^/]+)$
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: prometheus-grafana
|
||||
port:
|
||||
number: 80
|
||||
@@ -0,0 +1,8 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- helmrelease-loki.yaml
|
||||
- helmrelease-promtail.yaml
|
||||
- helmrelease-prometheus.yaml
|
||||
- ingress-static-grafana.yaml
|
||||
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: infra-monitor
|
||||
在新议题中引用
屏蔽一个用户