devops/grafana/grafana-deployment.yaml

77 lines
1.8 KiB
YAML
Raw Normal View History

2025-09-10 15:34:13 +08:00
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
namespace: default
labels:
app: grafana
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
nodeSelector:
node-role.kubernetes.io/control-plane: "true"
containers:
- name: grafana
image: registry.t-aaron.com/grafana/grafana:latest
ports:
- containerPort: 3000
env:
- name: GF_SECURITY_ADMIN_PASSWORD
value: "admin123"
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
volumeMounts:
- name: grafana-storage
mountPath: /var/lib/grafana
2025-09-10 15:41:17 +08:00
- name: grafana-provisioning
mountPath: /etc/grafana/provisioning/datasources
readOnly: true
2025-09-10 16:27:31 +08:00
- name: grafana-dash-provisioning
mountPath: /etc/grafana/provisioning/dashboards
readOnly: true
- name: grafana-dashboards
mountPath: /var/lib/grafana/dashboards
readOnly: true
2025-09-10 15:34:13 +08:00
volumes:
- name: grafana-storage
hostPath:
path: /opt/grafana/data
type: DirectoryOrCreate
2025-09-10 15:41:17 +08:00
- name: grafana-provisioning
configMap:
name: grafana-datasource
2025-09-10 16:27:31 +08:00
- name: grafana-dash-provisioning
configMap:
name: grafana-dash-provisioning
- name: grafana-dashboards
configMap:
name: grafana-dashboard-aserver
2025-09-10 15:34:13 +08:00
---
apiVersion: v1
kind: Service
metadata:
name: grafana-service
namespace: default
labels:
app: grafana
spec:
type: ClusterIP
ports:
- port: 3000
targetPort: 3000
protocol: TCP
selector:
app: grafana