Compare commits
15 Commits
auto-updat
...
auto-updat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ace105757 | ||
|
|
ce4172b435 | ||
|
|
c841f95bd2 | ||
|
|
fb651bc6fe | ||
|
|
04330aa474 | ||
|
|
57d517af77 | ||
|
|
1f7d9e41c8 | ||
|
|
39a27c596f | ||
|
|
353bb877be | ||
|
|
e523bb8bea | ||
|
|
b433373725 | ||
|
|
3026e53746 | ||
|
|
63669c69ff | ||
|
|
fa98e553cd | ||
|
|
055ef8aa77 |
@@ -36,7 +36,7 @@ spec:
|
||||
cpu: "200m"
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1000m"
|
||||
cpu: "1500m"
|
||||
env:
|
||||
- name: GITEA__service__REGISTER_MANUAL_CONFIRM
|
||||
value: "true"
|
||||
@@ -129,7 +129,7 @@ spec:
|
||||
memory: "256Mi"
|
||||
ephemeral-storage: "1Gi" # reserve ephemeral storage
|
||||
limits:
|
||||
cpu: "2000m"
|
||||
cpu: "3000m"
|
||||
memory: "4Gi"
|
||||
ephemeral-storage: "28Gi" # hard cap for /data usage
|
||||
volumeMounts:
|
||||
|
||||
@@ -30,7 +30,7 @@ spec:
|
||||
cpu: "100m"
|
||||
memory: "256Mi"
|
||||
limits:
|
||||
cpu: "2000m"
|
||||
cpu: "3000m"
|
||||
memory: "1Gi"
|
||||
volumeMounts:
|
||||
- name: data
|
||||
|
||||
@@ -30,7 +30,7 @@ spec:
|
||||
cpu: "50m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "200m"
|
||||
cpu: "300m"
|
||||
command:
|
||||
- git
|
||||
- clone
|
||||
@@ -49,7 +49,7 @@ spec:
|
||||
cpu: "50m"
|
||||
limits:
|
||||
memory: "256Mi"
|
||||
cpu: "200m"
|
||||
cpu: "300m"
|
||||
volumeMounts:
|
||||
- name: hexound-repo
|
||||
mountPath: /var/www/html
|
||||
|
||||
@@ -23,7 +23,7 @@ spec:
|
||||
cpu: "500m"
|
||||
limits:
|
||||
memory: "4Gi"
|
||||
cpu: "2000m"
|
||||
cpu: "3000m"
|
||||
ports:
|
||||
- containerPort: 2283
|
||||
env:
|
||||
@@ -160,7 +160,7 @@ spec:
|
||||
cpu: "1000m"
|
||||
limits:
|
||||
memory: "8Gi"
|
||||
cpu: "4000m"
|
||||
cpu: "6000m"
|
||||
env:
|
||||
- name: TZ
|
||||
value: Asia/Nicosia
|
||||
@@ -201,7 +201,7 @@ spec:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "512Mi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
readinessProbe:
|
||||
exec:
|
||||
command: ["redis-cli", "ping"]
|
||||
|
||||
@@ -11,6 +11,61 @@ spec:
|
||||
labels:
|
||||
app: iperf3-server
|
||||
spec:
|
||||
serviceAccountName: iperf3-server
|
||||
subdomain: iperf3
|
||||
initContainers:
|
||||
- name: create-service
|
||||
image: bitnami/kubectl:latest
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- |
|
||||
# Clean node name for service name
|
||||
NODE_CLEAN=$(echo "$NODE_NAME" | cut -d'.' -f1 | tr '[:upper:]' '[:lower:]' | tr '_' '-')
|
||||
SERVICE_NAME="iperf3-${NODE_CLEAN}"
|
||||
|
||||
# Create service for this pod
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: ${SERVICE_NAME}
|
||||
namespace: iperf3
|
||||
labels:
|
||||
app: iperf3-node-service
|
||||
target-node: "${NODE_NAME}"
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: iperf3
|
||||
port: 5201
|
||||
protocol: TCP
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Endpoints
|
||||
metadata:
|
||||
name: ${SERVICE_NAME}
|
||||
namespace: iperf3
|
||||
labels:
|
||||
app: iperf3-node-service
|
||||
target-node: "${NODE_NAME}"
|
||||
subsets:
|
||||
- addresses:
|
||||
- ip: ${POD_IP}
|
||||
ports:
|
||||
- name: iperf3
|
||||
port: 5201
|
||||
protocol: TCP
|
||||
EOF
|
||||
containers:
|
||||
- name: iperf3-server
|
||||
image: networkstatic/iperf3:latest
|
||||
@@ -18,14 +73,18 @@ spec:
|
||||
ports:
|
||||
- containerPort: 5201
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "256Mi"
|
||||
cpu: "500m"
|
||||
hostNetwork: true
|
||||
cpu: "750m"
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
operator: Exists
|
||||
|
||||
92
k8s/apps/iperf3/iperf3-exporter-daemonset.yaml
Normal file
92
k8s/apps/iperf3/iperf3-exporter-daemonset.yaml
Normal file
@@ -0,0 +1,92 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: iperf3-exporter
|
||||
labels:
|
||||
app: iperf3-exporter
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: iperf3-exporter
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: iperf3-exporter
|
||||
spec:
|
||||
serviceAccountName: iperf3-server
|
||||
initContainers:
|
||||
- name: create-exporter-service
|
||||
image: bitnami/kubectl:latest
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- |
|
||||
NODE_CLEAN=$(echo "$NODE_NAME" | cut -d'.' -f1 | tr '[:upper:]' '[:lower:]' | tr '_' '-')
|
||||
SERVICE_NAME="iperf3-exporter-${NODE_CLEAN}"
|
||||
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: ${SERVICE_NAME}
|
||||
namespace: iperf3
|
||||
labels:
|
||||
app: iperf3-exporter-service
|
||||
target-node: "${NODE_NAME}"
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: metrics
|
||||
port: 9579
|
||||
protocol: TCP
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Endpoints
|
||||
metadata:
|
||||
name: ${SERVICE_NAME}
|
||||
namespace: iperf3
|
||||
labels:
|
||||
app: iperf3-exporter-service
|
||||
target-node: "${NODE_NAME}"
|
||||
subsets:
|
||||
- addresses:
|
||||
- ip: ${POD_IP}
|
||||
ports:
|
||||
- name: metrics
|
||||
port: 9579
|
||||
protocol: TCP
|
||||
EOF
|
||||
containers:
|
||||
- name: iperf3-exporter
|
||||
image: ghcr.io/edgard/iperf3_exporter:1.2.2
|
||||
ports:
|
||||
- containerPort: 9579
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "50m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "300m"
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
tolerations:
|
||||
- effect: NoSchedule
|
||||
operator: Exists
|
||||
- effect: NoExecute
|
||||
operator: Exists
|
||||
15
k8s/apps/iperf3/iperf3-exporter-service.yaml
Normal file
15
k8s/apps/iperf3/iperf3-exporter-service.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: iperf3-exporter
|
||||
labels:
|
||||
app: iperf3-exporter
|
||||
spec:
|
||||
selector:
|
||||
app: iperf3-exporter
|
||||
ports:
|
||||
- name: metrics
|
||||
protocol: TCP
|
||||
port: 9579
|
||||
targetPort: 9579
|
||||
@@ -2,6 +2,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- rbac.yaml
|
||||
- daemonset.yaml
|
||||
- service.yaml
|
||||
- service-headless.yaml
|
||||
- iperf3-exporter-daemonset.yaml
|
||||
- iperf3-exporter-service.yaml
|
||||
- servicemonitor.yaml
|
||||
|
||||
|
||||
36
k8s/apps/iperf3/rbac.yaml
Normal file
36
k8s/apps/iperf3/rbac.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: iperf3-server
|
||||
namespace: iperf3
|
||||
labels:
|
||||
app: iperf3-server
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: iperf3-service-manager
|
||||
namespace: iperf3
|
||||
labels:
|
||||
app: iperf3-server
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["services", "endpoints"]
|
||||
verbs: ["get", "list", "create", "update", "patch", "delete"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: iperf3-service-manager
|
||||
namespace: iperf3
|
||||
labels:
|
||||
app: iperf3-server
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: iperf3-service-manager
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: iperf3-server
|
||||
namespace: iperf3
|
||||
@@ -2,9 +2,9 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: iperf3-server
|
||||
name: iperf3
|
||||
spec:
|
||||
type: NodePort
|
||||
clusterIP: None
|
||||
selector:
|
||||
app: iperf3-server
|
||||
ports:
|
||||
@@ -12,5 +12,3 @@ spec:
|
||||
protocol: TCP
|
||||
port: 5201
|
||||
targetPort: 5201
|
||||
nodePort: 30201
|
||||
|
||||
122
k8s/apps/iperf3/servicemonitor.yaml
Normal file
122
k8s/apps/iperf3/servicemonitor.yaml
Normal file
@@ -0,0 +1,122 @@
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: iperf3-exporter
|
||||
labels:
|
||||
app: iperf3-exporter
|
||||
release: prometheus
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: iperf3-exporter
|
||||
endpoints:
|
||||
- port: metrics
|
||||
path: /probe
|
||||
interval: 5m
|
||||
scrapeTimeout: 30s
|
||||
params:
|
||||
target: ['iperf3-ch.iperf3.svc.cluster.local:5201']
|
||||
period: ['10s']
|
||||
streams: ['4']
|
||||
relabelings:
|
||||
- sourceLabels: [__param_target]
|
||||
targetLabel: instance
|
||||
- targetLabel: __address__
|
||||
replacement: iperf3-exporter-ch.iperf3.svc:9579
|
||||
- port: metrics
|
||||
path: /probe
|
||||
interval: 5m
|
||||
scrapeTimeout: 30s
|
||||
params:
|
||||
target: ['iperf3-us.iperf3.svc.cluster.local:5201']
|
||||
period: ['10s']
|
||||
streams: ['4']
|
||||
relabelings:
|
||||
- sourceLabels: [__param_target]
|
||||
targetLabel: instance
|
||||
- targetLabel: __address__
|
||||
replacement: iperf3-exporter-us.iperf3.svc:9579
|
||||
- port: metrics
|
||||
path: /probe
|
||||
interval: 5m
|
||||
scrapeTimeout: 30s
|
||||
params:
|
||||
target: ['iperf3-iris.iperf3.svc.cluster.local:5201']
|
||||
period: ['10s']
|
||||
streams: ['4']
|
||||
relabelings:
|
||||
- sourceLabels: [__param_target]
|
||||
targetLabel: instance
|
||||
- targetLabel: __address__
|
||||
replacement: iperf3-exporter-iris.iperf3.svc:9579
|
||||
- port: metrics
|
||||
path: /probe
|
||||
interval: 5m
|
||||
scrapeTimeout: 30s
|
||||
params:
|
||||
target: ['iperf3-home.iperf3.svc.cluster.local:5201']
|
||||
period: ['10s']
|
||||
streams: ['4']
|
||||
relabelings:
|
||||
- sourceLabels: [__param_target]
|
||||
targetLabel: instance
|
||||
- targetLabel: __address__
|
||||
replacement: iperf3-exporter-home.iperf3.svc:9579
|
||||
- port: metrics
|
||||
path: /probe
|
||||
interval: 5m
|
||||
scrapeTimeout: 30s
|
||||
params:
|
||||
target: ['iperf3-master.iperf3.svc.cluster.local:5201']
|
||||
period: ['10s']
|
||||
streams: ['4']
|
||||
relabelings:
|
||||
- sourceLabels: [__param_target]
|
||||
targetLabel: instance
|
||||
- targetLabel: __address__
|
||||
replacement: iperf3-exporter-master.iperf3.svc:9579
|
||||
- port: metrics
|
||||
path: /probe
|
||||
interval: 5m
|
||||
scrapeTimeout: 30s
|
||||
params:
|
||||
target: ['iperf3-it.iperf3.svc.cluster.local:5201']
|
||||
period: ['10s']
|
||||
streams: ['4']
|
||||
relabelings:
|
||||
- sourceLabels: [__param_target]
|
||||
targetLabel: instance
|
||||
- targetLabel: __address__
|
||||
replacement: iperf3-exporter-it.iperf3.svc:9579
|
||||
- port: metrics
|
||||
path: /probe
|
||||
interval: 5m
|
||||
scrapeTimeout: 30s
|
||||
params:
|
||||
target: ['iperf3-nas.iperf3.svc.cluster.local:5201']
|
||||
period: ['10s']
|
||||
streams: ['4']
|
||||
relabelings:
|
||||
- sourceLabels: [__param_target]
|
||||
targetLabel: instance
|
||||
- targetLabel: __address__
|
||||
replacement: iperf3-exporter-nas.iperf3.svc:9579
|
||||
- port: metrics
|
||||
path: /probe
|
||||
interval: 5m
|
||||
scrapeTimeout: 30s
|
||||
params:
|
||||
target: ['iperf3-spb.iperf3.svc.cluster.local:5201']
|
||||
period: ['10s']
|
||||
streams: ['4']
|
||||
relabelings:
|
||||
- sourceLabels: [__param_target]
|
||||
targetLabel: instance
|
||||
- targetLabel: __address__
|
||||
replacement: iperf3-exporter-spb.iperf3.svc:9579
|
||||
metricRelabelings:
|
||||
- sourceLabels: [__name__]
|
||||
regex: iperf3_(.+)
|
||||
targetLabel: __name__
|
||||
replacement: network_${1}
|
||||
@@ -80,7 +80,10 @@ spec:
|
||||
resources:
|
||||
requests:
|
||||
memory: "64Mi"
|
||||
cpu: "200m"
|
||||
cpu: "300m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "300m"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
@@ -6,7 +6,7 @@ resources:
|
||||
cpu: "1000m"
|
||||
limits:
|
||||
memory: "8Gi"
|
||||
cpu: "4000m"
|
||||
cpu: "6000m"
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||
persistence:
|
||||
|
||||
@@ -40,7 +40,7 @@ spec:
|
||||
cpu: "50m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "100m"
|
||||
cpu: "150m"
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
|
||||
@@ -29,7 +29,7 @@ spec:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
|
||||
@@ -13,7 +13,7 @@ resources:
|
||||
cpu: "200m"
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1000m"
|
||||
cpu: "1500m"
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
|
||||
@@ -6,7 +6,7 @@ resources:
|
||||
cpu: "500m"
|
||||
limits:
|
||||
memory: "4Gi"
|
||||
cpu: "2000m"
|
||||
cpu: "3000m"
|
||||
initContainers:
|
||||
install-tesseract-langs:
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:2.18.2
|
||||
@@ -16,7 +16,7 @@ initContainers:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
command: ["/bin/sh", "-c"]
|
||||
args:
|
||||
- apt-get update && apt-get install -y --reinstall tesseract-ocr-rus tesseract-ocr-jpn tesseract-ocr-chi-sim tesseract-ocr-eng tesseract-ocr-ell && cp -v -r /usr/share/tesseract-ocr/5/tessdata/* /custom-tessdata/
|
||||
|
||||
@@ -13,7 +13,7 @@ resources:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
|
||||
@@ -144,7 +144,7 @@ spec:
|
||||
cpu: "50m"
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "100m"
|
||||
cpu: "150m"
|
||||
volumeMounts:
|
||||
- name: shared-data
|
||||
mountPath: /shared
|
||||
@@ -204,7 +204,7 @@ spec:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "512Mi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
volumeMounts:
|
||||
- name: shared-data
|
||||
mountPath: /shared
|
||||
|
||||
@@ -27,7 +27,7 @@ spec:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "512Mi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
command: ["hbbs"]
|
||||
args:
|
||||
- "--relay-servers"
|
||||
@@ -98,7 +98,7 @@ spec:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "512Mi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
command: ["hbbr"]
|
||||
args:
|
||||
- "--port"
|
||||
|
||||
@@ -4,7 +4,7 @@ resources:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ resources:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ resources:
|
||||
cpu: "200m"
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1000m"
|
||||
cpu: "1500m"
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ resources:
|
||||
cpu: "200m"
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1000m"
|
||||
cpu: "1500m"
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
|
||||
@@ -37,7 +37,7 @@ spec:
|
||||
cpu: "100m"
|
||||
limits:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
env:
|
||||
- name: DOMAIN
|
||||
value: https://vw.hexor.cy
|
||||
|
||||
@@ -174,7 +174,7 @@ spec:
|
||||
resources:
|
||||
limits:
|
||||
memory: "512Mi"
|
||||
cpu: "500m"
|
||||
cpu: "750m"
|
||||
requests:
|
||||
memory: "256Mi"
|
||||
cpu: "250m"
|
||||
|
||||
Reference in New Issue
Block a user