Compare commits
7 Commits
auto-updat
...
auto-updat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6970415a7d | ||
|
|
40d908d1ba | ||
|
|
1e6a9affad | ||
|
|
f2e8923285 | ||
|
|
b89b5cc6a9 | ||
|
|
b032852dd8 | ||
| 3b94cc92ea |
@@ -51,6 +51,11 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: furumi-ng-creds
|
name: furumi-ng-creds
|
||||||
key: PG_STRING
|
key: PG_STRING
|
||||||
|
- name: FURUMI_PLAYER_API_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: furumi-ng-creds
|
||||||
|
key: PLAYER_API_KEY
|
||||||
- name: FURUMI_PLAYER_STORAGE_DIR
|
- name: FURUMI_PLAYER_STORAGE_DIR
|
||||||
value: "/media"
|
value: "/media"
|
||||||
- name: RUST_LOG
|
- name: RUST_LOG
|
||||||
|
|||||||
@@ -5,7 +5,11 @@ resources:
|
|||||||
- ./app.yaml
|
- ./app.yaml
|
||||||
- ./rbac.yaml
|
- ./rbac.yaml
|
||||||
- ./daemonset.yaml
|
- ./daemonset.yaml
|
||||||
|
- ./telemt-daemonset.yaml
|
||||||
- ./external-secrets.yaml
|
- ./external-secrets.yaml
|
||||||
|
- ./telemt-external-secrets.yaml
|
||||||
|
- ./telemt-service.yaml
|
||||||
|
- ./telemt-servicemonitor.yaml
|
||||||
- ./service.yaml
|
- ./service.yaml
|
||||||
- ./secret-reader.yaml
|
- ./secret-reader.yaml
|
||||||
# - ./storage.yaml
|
# - ./storage.yaml
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ spec:
|
|||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
args:
|
args:
|
||||||
- "--secrets"
|
- "--secrets"
|
||||||
- "mtproxy-links"
|
- "mtproxy-links,telemt-links"
|
||||||
- "--namespace"
|
- "--namespace"
|
||||||
- "mtproxy"
|
- "mtproxy"
|
||||||
- "--port"
|
- "--port"
|
||||||
|
|||||||
114
k8s/apps/mtproxy/telemt-daemonset.yaml
Normal file
114
k8s/apps/mtproxy/telemt-daemonset.yaml
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: telemt
|
||||||
|
labels:
|
||||||
|
app: telemt
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: telemt
|
||||||
|
updateStrategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: telemt
|
||||||
|
spec:
|
||||||
|
affinity:
|
||||||
|
nodeAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: mtproxy
|
||||||
|
operator: Exists
|
||||||
|
serviceAccountName: mtproxy
|
||||||
|
hostNetwork: true
|
||||||
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
|
initContainers:
|
||||||
|
- name: register-proxy
|
||||||
|
image: bitnami/kubectl:latest
|
||||||
|
env:
|
||||||
|
- name: NODE_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: spec.nodeName
|
||||||
|
- name: SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: tgproxy-secret
|
||||||
|
key: SECRET
|
||||||
|
- name: TELEMT_PORT
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: telemt-secret
|
||||||
|
key: PORT
|
||||||
|
command:
|
||||||
|
- /bin/bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
set -e
|
||||||
|
NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
|
||||||
|
SERVER=$(kubectl get node "${NODE_NAME}" -o jsonpath='{.metadata.labels.mtproxy}')
|
||||||
|
if [ -z "${SERVER}" ]; then
|
||||||
|
echo "ERROR: node ${NODE_NAME} has no mtproxy label"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Build ee-prefixed secret for secure mode
|
||||||
|
EE_SECRET="ee${SECRET}"
|
||||||
|
LINK="tg://proxy?server=${SERVER}&port=${TELEMT_PORT}&secret=${EE_SECRET}"
|
||||||
|
echo "Registering telemt: ${SERVER} -> ${LINK}"
|
||||||
|
if kubectl get secret telemt-links -n "${NAMESPACE}" &>/dev/null; then
|
||||||
|
kubectl patch secret telemt-links -n "${NAMESPACE}" \
|
||||||
|
--type merge -p "{\"stringData\":{\"${SERVER}\":\"${LINK}\"}}"
|
||||||
|
else
|
||||||
|
kubectl create secret generic telemt-links -n "${NAMESPACE}" \
|
||||||
|
--from-literal="${SERVER}=${LINK}"
|
||||||
|
fi
|
||||||
|
echo "Done"
|
||||||
|
containers:
|
||||||
|
- name: telemt
|
||||||
|
image: ghcr.io/telemt/telemt:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
ports:
|
||||||
|
- name: proxy
|
||||||
|
containerPort: 30444
|
||||||
|
protocol: TCP
|
||||||
|
- name: api
|
||||||
|
containerPort: 9091
|
||||||
|
protocol: TCP
|
||||||
|
workingDir: /run/telemt
|
||||||
|
env:
|
||||||
|
- name: RUST_LOG
|
||||||
|
value: info
|
||||||
|
volumeMounts:
|
||||||
|
- name: workdir
|
||||||
|
mountPath: /run/telemt
|
||||||
|
- name: config
|
||||||
|
mountPath: /run/telemt/config.toml
|
||||||
|
subPath: config.toml
|
||||||
|
readOnly: true
|
||||||
|
- name: etcdir
|
||||||
|
mountPath: /etc/telemt
|
||||||
|
securityContext:
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
volumes:
|
||||||
|
- name: config
|
||||||
|
secret:
|
||||||
|
secretName: telemt-secret
|
||||||
|
items:
|
||||||
|
- key: config.toml
|
||||||
|
path: config.toml
|
||||||
|
- name: workdir
|
||||||
|
emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Mi
|
||||||
|
- name: etcdir
|
||||||
|
emptyDir:
|
||||||
|
medium: Memory
|
||||||
|
sizeLimit: 1Mi
|
||||||
58
k8s/apps/mtproxy/telemt-external-secrets.yaml
Normal file
58
k8s/apps/mtproxy/telemt-external-secrets.yaml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: telemt-secret
|
||||||
|
spec:
|
||||||
|
target:
|
||||||
|
name: telemt-secret
|
||||||
|
deletionPolicy: Delete
|
||||||
|
template:
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
SECRET: |-
|
||||||
|
{{ .secret }}
|
||||||
|
PORT: "30444"
|
||||||
|
config.toml: |
|
||||||
|
[general]
|
||||||
|
use_middle_proxy = true
|
||||||
|
log_level = "normal"
|
||||||
|
|
||||||
|
[general.modes]
|
||||||
|
classic = false
|
||||||
|
secure = false
|
||||||
|
tls = true
|
||||||
|
|
||||||
|
[general.links]
|
||||||
|
show = "*"
|
||||||
|
public_port = 30444
|
||||||
|
|
||||||
|
[server]
|
||||||
|
port = 30444
|
||||||
|
metrics_port = 9090
|
||||||
|
|
||||||
|
[server.api]
|
||||||
|
enabled = true
|
||||||
|
listen = "0.0.0.0:9091"
|
||||||
|
whitelist = ["0.0.0.0/0"]
|
||||||
|
|
||||||
|
[[server.listeners]]
|
||||||
|
ip = "0.0.0.0"
|
||||||
|
|
||||||
|
[censorship]
|
||||||
|
tls_domain = "ya.ru"
|
||||||
|
mask = true
|
||||||
|
tls_emulation = true
|
||||||
|
tls_front_dir = "tlsfront"
|
||||||
|
|
||||||
|
[access.users]
|
||||||
|
user = "{{ .secret }}"
|
||||||
|
data:
|
||||||
|
- secretKey: secret
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: 58a37daf-72d8-430d-86bd-6152aa8f888d
|
||||||
|
property: fields[0].value
|
||||||
17
k8s/apps/mtproxy/telemt-service.yaml
Normal file
17
k8s/apps/mtproxy/telemt-service.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: telemt-metrics
|
||||||
|
labels:
|
||||||
|
app: telemt
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
clusterIP: None
|
||||||
|
selector:
|
||||||
|
app: telemt
|
||||||
|
ports:
|
||||||
|
- port: 9090
|
||||||
|
targetPort: 9090
|
||||||
|
protocol: TCP
|
||||||
|
name: metrics
|
||||||
21
k8s/apps/mtproxy/telemt-servicemonitor.yaml
Normal file
21
k8s/apps/mtproxy/telemt-servicemonitor.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: telemt-metrics
|
||||||
|
labels:
|
||||||
|
app: telemt
|
||||||
|
release: prometheus
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: telemt
|
||||||
|
endpoints:
|
||||||
|
- port: metrics
|
||||||
|
path: /metrics
|
||||||
|
interval: 30s
|
||||||
|
scrapeTimeout: 10s
|
||||||
|
honorLabels: true
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- mtproxy
|
||||||
Reference in New Issue
Block a user