init
This commit is contained in:
20
argocd/kafka-demo-app.yml
Normal file
20
argocd/kafka-demo-app.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: kafka-demo
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/DEIN-REPO/devops-infra.git
|
||||||
|
targetRevision: main
|
||||||
|
path: kafka-demo
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: kafka-demo
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
22
argocd/monitoring-logging-app.yml
Normal file
22
argocd/monitoring-logging-app.yml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: monitoring-logging
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://grafana.github.io/helm-charts
|
||||||
|
targetRevision: main
|
||||||
|
chart: loki-stack
|
||||||
|
helm:
|
||||||
|
releaseName: loki-stack
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: monitoring-logging
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
18
argocd/platform-root.yml
Normal file
18
argocd/platform-root.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: platform-root
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/DEIN-REPO/devops-infra.git
|
||||||
|
targetRevision: main
|
||||||
|
path: argocd
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: argocd
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
24
argocd/prometheus-app.yml
Normal file
24
argocd/prometheus-app.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: prometheus
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://prometheus-community.github.io/helm-charts
|
||||||
|
targetRevision: main
|
||||||
|
chart: kube-prometheus-stack
|
||||||
|
helm:
|
||||||
|
releaseName: prometheus-stack
|
||||||
|
valueFiles:
|
||||||
|
- prometheus/prometheus-values.yml
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: prometheus
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
20
argocd/strimzi-operator-app.yml
Normal file
20
argocd/strimzi-operator-app.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: strimzi-operator
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/DEIN-REPO/devops-infra.git
|
||||||
|
targetRevision: main
|
||||||
|
path: strimzi-operator
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: strimzi-operator
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
23
kafka-demo/kafka-demo.yml
Normal file
23
kafka-demo/kafka-demo.yml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
apiVersion: kafka.strimzi.io/v1beta2
|
||||||
|
kind: Kafka
|
||||||
|
metadata:
|
||||||
|
name: kafka-demo
|
||||||
|
namespace: kafka-demo
|
||||||
|
spec:
|
||||||
|
kafka:
|
||||||
|
version: 4.1.1
|
||||||
|
replicas: 1
|
||||||
|
listeners:
|
||||||
|
- name: plain
|
||||||
|
port: 9092
|
||||||
|
type: internal
|
||||||
|
tls: false
|
||||||
|
- name: external
|
||||||
|
port: 9094
|
||||||
|
type: nodeport
|
||||||
|
tls: false
|
||||||
|
storage:
|
||||||
|
type: ephemeral
|
||||||
|
entityOperator:
|
||||||
|
topicOperator: {}
|
||||||
|
userOperator: {}
|
||||||
4
kafka-demo/namespace.yml
Normal file
4
kafka-demo/namespace.yml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: kafka-demo
|
||||||
10
kafka-demo/topics/topic-orders.yml
Normal file
10
kafka-demo/topics/topic-orders.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: kafka.strimzi.io/v1beta2
|
||||||
|
kind: KafkaTopic
|
||||||
|
metadata:
|
||||||
|
name: orders
|
||||||
|
namespace: kafka-demo
|
||||||
|
labels:
|
||||||
|
strimzi.io/cluster: kafka-demo
|
||||||
|
spec:
|
||||||
|
partitions: 3
|
||||||
|
replicas: 1
|
||||||
10
kafka-demo/topics/topic-payments.yml
Normal file
10
kafka-demo/topics/topic-payments.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: kafka.strimzi.io/v1beta2
|
||||||
|
kind: KafkaTopic
|
||||||
|
metadata:
|
||||||
|
name: payments
|
||||||
|
namespace: kafka-demo
|
||||||
|
labels:
|
||||||
|
strimzi.io/cluster: kafka-demo
|
||||||
|
spec:
|
||||||
|
partitions: 3
|
||||||
|
replicas: 1
|
||||||
21
kafka-demo/users/user-app-orders.yml
Normal file
21
kafka-demo/users/user-app-orders.yml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
apiVersion: kafka.strimzi.io/v1beta2
|
||||||
|
kind: KafkaUser
|
||||||
|
metadata:
|
||||||
|
name: app-orders
|
||||||
|
namespace: kafka-demo
|
||||||
|
labels:
|
||||||
|
strimzi.io/cluster: kafka-demo
|
||||||
|
spec:
|
||||||
|
authentication:
|
||||||
|
type: scram-sha-512
|
||||||
|
authorization:
|
||||||
|
type: simple
|
||||||
|
acls:
|
||||||
|
- resource:
|
||||||
|
type: topic
|
||||||
|
name: orders
|
||||||
|
operation: Read
|
||||||
|
- resource:
|
||||||
|
type: topic
|
||||||
|
name: orders
|
||||||
|
operation: Write
|
||||||
21
kafka-demo/users/user-app-payments.yml
Normal file
21
kafka-demo/users/user-app-payments.yml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
apiVersion: kafka.strimzi.io/v1beta2
|
||||||
|
kind: KafkaUser
|
||||||
|
metadata:
|
||||||
|
name: app-payments
|
||||||
|
namespace: kafka-demo
|
||||||
|
labels:
|
||||||
|
strimzi.io/cluster: kafka-demo
|
||||||
|
spec:
|
||||||
|
authentication:
|
||||||
|
type: scram-sha-512
|
||||||
|
authorization:
|
||||||
|
type: simple
|
||||||
|
acls:
|
||||||
|
- resource:
|
||||||
|
type: topic
|
||||||
|
name: payments
|
||||||
|
operation: Read
|
||||||
|
- resource:
|
||||||
|
type: topic
|
||||||
|
name: payments
|
||||||
|
operation: Write
|
||||||
26
prometheus/alert-rules.yml
Normal file
26
prometheus/alert-rules.yml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: PrometheusRule
|
||||||
|
metadata:
|
||||||
|
name: kafka-alerts
|
||||||
|
namespace: prometheus
|
||||||
|
spec:
|
||||||
|
groups:
|
||||||
|
- name: kafka.rules
|
||||||
|
rules:
|
||||||
|
- alert: KafkaBrokerDown
|
||||||
|
expr: up{job="kafka"} == 0
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: critical
|
||||||
|
annotations:
|
||||||
|
summary: "Kafka broker is down"
|
||||||
|
description: "No Kafka broker responding for more than 1 minute."
|
||||||
|
|
||||||
|
- alert: KafkaConsumerLagHigh
|
||||||
|
expr: kafka_consumer_lag > 1000
|
||||||
|
for: 5m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "High consumer lag"
|
||||||
|
description: "Consumer lag exceeds 1000 messages for 5 minutes."
|
||||||
57
prometheus/alertmanager-configmap.yml
Normal file
57
prometheus/alertmanager-configmap.yml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: alertmanager-config
|
||||||
|
namespace: prometheus
|
||||||
|
data:
|
||||||
|
alertmanager.yml: |
|
||||||
|
global:
|
||||||
|
resolve_timeout: 5m
|
||||||
|
smtp_smarthost: 'mail.example.com:587'
|
||||||
|
smtp_from: 'alertmanager@example.com'
|
||||||
|
smtp_auth_username: 'alertmanager@example.com'
|
||||||
|
smtp_auth_password: 'DEIN_PASSWORT'
|
||||||
|
smtp_require_tls: true
|
||||||
|
|
||||||
|
route:
|
||||||
|
receiver: 'default'
|
||||||
|
group_by: ['alertname', 'severity']
|
||||||
|
group_wait: 30s
|
||||||
|
group_interval: 5m
|
||||||
|
repeat_interval: 3h
|
||||||
|
routes:
|
||||||
|
- match:
|
||||||
|
severity: critical
|
||||||
|
receiver: 'sms'
|
||||||
|
- match:
|
||||||
|
severity: warning
|
||||||
|
receiver: 'email'
|
||||||
|
- match:
|
||||||
|
severity: info
|
||||||
|
receiver: 'default'
|
||||||
|
|
||||||
|
receivers:
|
||||||
|
- name: 'default'
|
||||||
|
webhook_configs:
|
||||||
|
- url: 'https://outlook.office.com/webhook/DEIN_TEAMS_WEBHOOK'
|
||||||
|
|
||||||
|
- name: 'email'
|
||||||
|
email_configs:
|
||||||
|
- to: 'ops@example.com'
|
||||||
|
send_resolved: true
|
||||||
|
|
||||||
|
- name: 'sms'
|
||||||
|
webhook_configs:
|
||||||
|
- url: 'https://api.twilio.com/2010-04-01/Accounts/DEIN_ACCOUNT_SID/Messages.json'
|
||||||
|
http_config:
|
||||||
|
basic_auth:
|
||||||
|
username: 'DEIN_ACCOUNT_SID'
|
||||||
|
password: 'DEIN_AUTH_TOKEN'
|
||||||
|
send_resolved: true
|
||||||
|
|
||||||
|
inhibit_rules:
|
||||||
|
- source_match:
|
||||||
|
severity: critical
|
||||||
|
target_match:
|
||||||
|
severity: warning
|
||||||
|
equal: ['alertname']
|
||||||
17
prometheus/prometheus-values.yml
Normal file
17
prometheus/prometheus-values.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
grafana:
|
||||||
|
enabled: true
|
||||||
|
adminPassword: "admin"
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
dashboardsProvider:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
alertmanager:
|
||||||
|
enabled: true
|
||||||
|
configMapOverrideName: alertmanager-config
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
prometheusSpec:
|
||||||
|
retention: 15d
|
||||||
|
scrapeInterval: 30s
|
||||||
|
evaluationInterval: 30s
|
||||||
4
strimzi-operator/namespace.yml
Normal file
4
strimzi-operator/namespace.yml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: strimzi-operator
|
||||||
24
strimzi-operator/strimzi-operator-deployment.yml
Normal file
24
strimzi-operator/strimzi-operator-deployment.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: strimzi-cluster-operator
|
||||||
|
namespace: strimzi-operator
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
name: strimzi-cluster-operator
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: strimzi-cluster-operator
|
||||||
|
spec:
|
||||||
|
serviceAccountName: strimzi-cluster-operator
|
||||||
|
containers:
|
||||||
|
- name: strimzi-cluster-operator
|
||||||
|
image: quay.io/strimzi/operator:0.50.1
|
||||||
|
args:
|
||||||
|
- /opt/strimzi/bin/cluster_operator_run.sh
|
||||||
|
env:
|
||||||
|
- name: STRIMZI_NAMESPACE
|
||||||
|
value: kafka-demo
|
||||||
Reference in New Issue
Block a user