Compare commits
33 Commits
auto-updat
...
auto-updat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
883139964e | ||
| 74c2e2230c | |||
|
|
5d9fe8f832 | ||
|
|
af4a4c9216 | ||
|
|
43bd0b6ac3 | ||
|
|
c4a40fad9f | ||
|
|
e1d6a09f6f | ||
| e37c365630 | |||
|
|
6cf7a68ad7 | ||
|
|
b82407f31f | ||
| 117583e660 | |||
| 70d31aae17 | |||
| 9066b3f624 | |||
|
|
633c4eec94 | ||
|
|
89df3d985e | ||
|
|
8ef1242243 | ||
|
|
f07f0ea7c5 | ||
|
|
17321b5d61 | ||
| c9177d9878 | |||
| 06f8b620ae | |||
|
|
a3c02b3510 | ||
| b1acb37700 | |||
| a1288f4c99 | |||
|
|
1672cdf402 | ||
|
|
e96a75880e | ||
| 6c79543b84 | |||
| f41b86bad4 | |||
| d44ade2298 | |||
| 462cb9189d | |||
| 37bb407a77 | |||
| cae1c42004 | |||
| 663f2e7504 | |||
| 8679dbf47e |
@@ -48,6 +48,7 @@ ArgoCD homelab project
|
|||||||
| **paperless** | [](https://ag.hexor.cy/applications/argocd/paperless) |
|
| **paperless** | [](https://ag.hexor.cy/applications/argocd/paperless) |
|
||||||
| **pasarguard** | [](https://ag.hexor.cy/applications/argocd/pasarguard) |
|
| **pasarguard** | [](https://ag.hexor.cy/applications/argocd/pasarguard) |
|
||||||
| **qbittorent-nas** | [](https://ag.hexor.cy/applications/argocd/qbittorent-nas) |
|
| **qbittorent-nas** | [](https://ag.hexor.cy/applications/argocd/qbittorent-nas) |
|
||||||
|
| **remnawave** | [](https://ag.hexor.cy/applications/argocd/remnawave) |
|
||||||
| **rustdesk** | [](https://ag.hexor.cy/applications/argocd/rustdesk) |
|
| **rustdesk** | [](https://ag.hexor.cy/applications/argocd/rustdesk) |
|
||||||
| **sonarr-stack** | [](https://ag.hexor.cy/applications/argocd/sonarr-stack) |
|
| **sonarr-stack** | [](https://ag.hexor.cy/applications/argocd/sonarr-stack) |
|
||||||
| **stirling-pdf** | [](https://ag.hexor.cy/applications/argocd/stirling-pdf) |
|
| **stirling-pdf** | [](https://ag.hexor.cy/applications/argocd/stirling-pdf) |
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: gitea-runner-token
|
name: gitea-runner-token
|
||||||
@@ -24,7 +24,7 @@ spec:
|
|||||||
property: login.password
|
property: login.password
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: gitea-recapcha-creds
|
name: gitea-recapcha-creds
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: greece-notifier-creds
|
name: greece-notifier-creds
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: vpn-creds
|
name: vpn-creds
|
||||||
@@ -76,7 +76,7 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: vpn-creds
|
name: vpn-creds
|
||||||
key: ss_link
|
key: ss_link
|
||||||
command: ["/bin/bash", "-c", "rm /etc/shadowsocks-rust/config.json && sslocal --online-config-url $SS_LINK --local-addr 127.0.0.1:8081 -U --protocol http"]
|
command: ["/bin/bash", "-c", "rm /etc/shadowsocks-rust/config.json && sslocal --server-url $SS_LINK --local-addr 127.0.0.1:8081 -U --protocol http"]
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
memory: "64Mi"
|
memory: "64Mi"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: openai-creds
|
name: openai-creds
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: khm-pg-creds
|
name: khm-pg-creds
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: oidc-secret
|
name: oidc-secret
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: postgres-and-oauth-creds
|
name: postgres-and-oauth-creds
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: pasarguard-secrets
|
name: pasarguard-secrets
|
||||||
|
|||||||
21
k8s/apps/remnawave/app.yaml
Normal file
21
k8s/apps/remnawave/app.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: remnawave
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: apps
|
||||||
|
destination:
|
||||||
|
namespace: remnawave
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git
|
||||||
|
targetRevision: HEAD
|
||||||
|
path: k8s/apps/remnawave
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
selfHeal: true
|
||||||
|
prune: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
|
||||||
71
k8s/apps/remnawave/deployment.yaml
Normal file
71
k8s/apps/remnawave/deployment.yaml
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: remnawave
|
||||||
|
labels:
|
||||||
|
app: remnawave
|
||||||
|
annotations:
|
||||||
|
reloader.stakater.com/auto: "true"
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: remnawave
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: remnawave
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: remnawave
|
||||||
|
image: 'remnawave/backend:2'
|
||||||
|
imagePullPolicy: Always
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: remnawave-secrets
|
||||||
|
env:
|
||||||
|
- name: REDIS_URL
|
||||||
|
value: "redis://remnawave-redis:6379"
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 3000
|
||||||
|
protocol: TCP
|
||||||
|
- name: metrics
|
||||||
|
containerPort: 3001
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /health
|
||||||
|
port: 3001
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 30
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 3
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /health
|
||||||
|
port: 3001
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 3
|
||||||
|
failureThreshold: 3
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: remnawave
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: remnawave
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
protocol: TCP
|
||||||
|
port: 3000
|
||||||
|
targetPort: 3000
|
||||||
|
- name: metrics
|
||||||
|
protocol: TCP
|
||||||
|
port: 3001
|
||||||
|
targetPort: 3001
|
||||||
70
k8s/apps/remnawave/external-secrets.yaml
Normal file
70
k8s/apps/remnawave/external-secrets.yaml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: remnawave-secrets
|
||||||
|
spec:
|
||||||
|
target:
|
||||||
|
name: remnawave-secrets
|
||||||
|
deletionPolicy: Delete
|
||||||
|
template:
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
METRICS_USER: admin
|
||||||
|
FRONT_END_DOMAIN: rw.hexor.cy
|
||||||
|
SUB_PUBLIC_DOMAIN: sub.hexor.cy
|
||||||
|
REDIS_HOST: remnawave-redis
|
||||||
|
REDIS_PORT: "6379"
|
||||||
|
|
||||||
|
DATABASE_URL: |-
|
||||||
|
postgresql://remnawave:{{ .pg_pass }}@psql.psql.svc:5432/remnawave
|
||||||
|
JWT_AUTH_SECRET: |-
|
||||||
|
{{ .jwt_auth_secret }}
|
||||||
|
JWT_API_TOKENS_SECRET: |-
|
||||||
|
{{ .jwt_api_tokens_secret }}
|
||||||
|
METRICS_PASS: |-
|
||||||
|
{{ .metrics_pass }}
|
||||||
|
WEBHOOK_SECRET_HEADER: |-
|
||||||
|
{{ .webhook_secret }}
|
||||||
|
|
||||||
|
data:
|
||||||
|
- secretKey: pg_pass
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: 2a9deb39-ef22-433e-a1be-df1555625e22
|
||||||
|
property: fields[10].value
|
||||||
|
- secretKey: jwt_auth_secret
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: 0d090436-5e82-453a-914c-19cec2abded1
|
||||||
|
property: fields[0].value
|
||||||
|
- secretKey: jwt_api_tokens_secret
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: 0d090436-5e82-453a-914c-19cec2abded1
|
||||||
|
property: fields[1].value
|
||||||
|
- secretKey: metrics_pass
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: 0d090436-5e82-453a-914c-19cec2abded1
|
||||||
|
property: fields[2].value
|
||||||
|
- secretKey: webhook_secret
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
key: 0d090436-5e82-453a-914c-19cec2abded1
|
||||||
|
property: fields[3].value
|
||||||
12
k8s/apps/remnawave/kustomization.yaml
Normal file
12
k8s/apps/remnawave/kustomization.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- ./external-secrets.yaml
|
||||||
|
- ./deployment.yaml
|
||||||
|
- ./redis-deployment.yaml
|
||||||
|
- ./subscription-page-configmap.yaml
|
||||||
|
- ./subscription-page-deployment.yaml
|
||||||
|
- ./servicemonitor.yaml
|
||||||
|
- ./user-ui-ingress.yaml
|
||||||
|
- ./panel-ingress.yaml
|
||||||
37
k8s/apps/remnawave/panel-ingress.yaml
Normal file
37
k8s/apps/remnawave/panel-ingress.yaml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: panel-ui
|
||||||
|
annotations:
|
||||||
|
ingressClassName: traefik
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
|
||||||
|
acme.cert-manager.io/http01-edit-in-place: "true"
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: rw.hexor.cy
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: remnawave
|
||||||
|
port:
|
||||||
|
number: 3000
|
||||||
|
- host: rw.hexor.ru
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: remnawave
|
||||||
|
port:
|
||||||
|
number: 3000
|
||||||
|
tls:
|
||||||
|
- secretName: remnawave-panel-tls
|
||||||
|
hosts:
|
||||||
|
- rw.hexor.cy
|
||||||
|
- rw.hexor.ru
|
||||||
71
k8s/apps/remnawave/redis-deployment.yaml
Normal file
71
k8s/apps/remnawave/redis-deployment.yaml
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: remnawave-redis
|
||||||
|
labels:
|
||||||
|
app: remnawave-redis
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: remnawave-redis
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: remnawave-redis
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: redis
|
||||||
|
image: 'valkey/valkey:8.1-alpine'
|
||||||
|
imagePullPolicy: Always
|
||||||
|
ports:
|
||||||
|
- name: redis
|
||||||
|
containerPort: 6379
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- valkey-cli
|
||||||
|
- ping
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 3
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- valkey-cli
|
||||||
|
- ping
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
timeoutSeconds: 3
|
||||||
|
failureThreshold: 3
|
||||||
|
volumeMounts:
|
||||||
|
- name: redis-data
|
||||||
|
mountPath: /data
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "64Mi"
|
||||||
|
cpu: "50m"
|
||||||
|
limits:
|
||||||
|
memory: "256Mi"
|
||||||
|
cpu: "200m"
|
||||||
|
volumes:
|
||||||
|
- name: redis-data
|
||||||
|
emptyDir: {}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: remnawave-redis
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: remnawave-redis
|
||||||
|
ports:
|
||||||
|
- name: redis
|
||||||
|
protocol: TCP
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
21
k8s/apps/remnawave/servicemonitor.yaml
Normal file
21
k8s/apps/remnawave/servicemonitor.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
name: remnawave-metrics
|
||||||
|
labels:
|
||||||
|
app: remnawave
|
||||||
|
release: prometheus
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: remnawave
|
||||||
|
endpoints:
|
||||||
|
- port: metrics
|
||||||
|
path: /metrics
|
||||||
|
interval: 30s
|
||||||
|
scrapeTimeout: 10s
|
||||||
|
honorLabels: true
|
||||||
|
namespaceSelector:
|
||||||
|
matchNames:
|
||||||
|
- remnawave
|
||||||
27
k8s/apps/remnawave/subscription-page-configmap.yaml
Normal file
27
k8s/apps/remnawave/subscription-page-configmap.yaml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: remnawave-subscription-page-config
|
||||||
|
labels:
|
||||||
|
app: remnawave-subscription-page
|
||||||
|
data:
|
||||||
|
APP_PORT: "3010"
|
||||||
|
REMNAWAVE_PANEL_URL: "https://rw.hexor.cy"
|
||||||
|
META_TITLE: "RemnaWave Subscription"
|
||||||
|
META_DESCRIPTION: "Your VPN subscription portal"
|
||||||
|
META_KEYWORDS: "vpn,subscription,remnawave"
|
||||||
|
META_AUTHOR: "RemnaWave"
|
||||||
|
ENABLE_ANALYTICS: "false"
|
||||||
|
ANALYTICS_MEASUREMENT_ID: ""
|
||||||
|
CUSTOM_SUB_PREFIX: ""
|
||||||
|
THEME: "dark"
|
||||||
|
CUSTOM_LOGO_URL: ""
|
||||||
|
SHOW_SUBSCRIPTION_INFO: "true"
|
||||||
|
SHOW_CONNECTION_INFO: "true"
|
||||||
|
SHOW_QR_CODE: "true"
|
||||||
|
QR_CODE_SIZE: "256"
|
||||||
|
REFRESH_INTERVAL: "30000"
|
||||||
|
SUBSCRIPTION_TEXT_COLOR: "#ffffff"
|
||||||
|
BACKGROUND_COLOR: "#1a1a1a"
|
||||||
|
ACCENT_COLOR: "#007bff"
|
||||||
52
k8s/apps/remnawave/subscription-page-deployment.yaml
Normal file
52
k8s/apps/remnawave/subscription-page-deployment.yaml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: remnawave-subscription-page
|
||||||
|
labels:
|
||||||
|
app: remnawave-subscription-page
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: remnawave-subscription-page
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: remnawave-subscription-page
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: subscription-page
|
||||||
|
image: 'remnawave/subscription-page:latest'
|
||||||
|
imagePullPolicy: Always
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: remnawave-subscription-page-config
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 3010
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "64Mi"
|
||||||
|
cpu: "50m"
|
||||||
|
limits:
|
||||||
|
memory: "256Mi"
|
||||||
|
cpu: "200m"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: remnawave-subscription-page
|
||||||
|
labels:
|
||||||
|
app: remnawave-subscription-page
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: remnawave-subscription-page
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
protocol: TCP
|
||||||
|
port: 3010
|
||||||
|
targetPort: 3010
|
||||||
37
k8s/apps/remnawave/user-ui-ingress.yaml
Normal file
37
k8s/apps/remnawave/user-ui-ingress.yaml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: user-ui
|
||||||
|
annotations:
|
||||||
|
ingressClassName: traefik
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
traefik.ingress.kubernetes.io/router.middlewares: kube-system-https-redirect@kubernetescrd
|
||||||
|
acme.cert-manager.io/http01-edit-in-place: "true"
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: sub.hexor.cy
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: remnawave-subscription-page
|
||||||
|
port:
|
||||||
|
number: 3010
|
||||||
|
- host: sub.hexor.ru
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: remnawave-subscription-page
|
||||||
|
port:
|
||||||
|
number: 3010
|
||||||
|
tls:
|
||||||
|
- secretName: remnawave-user-ui-tls
|
||||||
|
hosts:
|
||||||
|
- sub.hexor.cy
|
||||||
|
- sub.hexor.ru
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: rustdesk-keys
|
name: rustdesk-keys
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: get-id-bot
|
name: get-id-bot
|
||||||
@@ -24,7 +24,7 @@ spec:
|
|||||||
property: fields[0].value
|
property: fields[0].value
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: desubot
|
name: desubot
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: admin-token
|
name: admin-token
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: outfleet-secrets
|
name: outfleet-secrets
|
||||||
@@ -51,7 +51,7 @@ spec:
|
|||||||
property: fields[1].value
|
property: fields[1].value
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: outline-config
|
name: outline-config
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: oidc-creds
|
name: oidc-creds
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ resources:
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: argo-cd
|
- name: argo-cd
|
||||||
repo: https://argoproj.github.io/argo-helm
|
repo: https://argoproj.github.io/argo-helm
|
||||||
version: 8.1.3
|
version: 9.1.4
|
||||||
releaseName: argocd
|
releaseName: argocd
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: authentik-creds
|
name: authentik-creds
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ server:
|
|||||||
- minecraft.hexor.cy # Minecraft UI and server
|
- minecraft.hexor.cy # Minecraft UI and server
|
||||||
- pass.hexor.cy # k8s-secret for openai
|
- pass.hexor.cy # k8s-secret for openai
|
||||||
- ps.hexor.cy # pasarguard UI
|
- ps.hexor.cy # pasarguard UI
|
||||||
|
# - rw.hexor.cy # RemnaWave UI
|
||||||
tls:
|
tls:
|
||||||
- secretName: idm-tls
|
- secretName: idm-tls
|
||||||
hosts:
|
hosts:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: cloudflare-creds
|
name: cloudflare-creds
|
||||||
@@ -22,7 +22,7 @@ spec:
|
|||||||
key: 8ae1dcb1-1182-48a1-8733-ca1144ea754b
|
key: 8ae1dcb1-1182-48a1-8733-ca1144ea754b
|
||||||
property: fields[0].value
|
property: fields[0].value
|
||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: aws-creds
|
name: aws-creds
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ resources:
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: cert-manager
|
- name: cert-manager
|
||||||
repo: https://charts.jetstack.io
|
repo: https://charts.jetstack.io
|
||||||
version: 1.17.1
|
version: 1.19.1
|
||||||
releaseName: cert-manager
|
releaseName: cert-manager
|
||||||
namespace: cert-manager
|
namespace: cert-manager
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
|
|||||||
@@ -1,2 +1,6 @@
|
|||||||
crds:
|
crds:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
prometheus:
|
||||||
|
enabled: true
|
||||||
|
servicemonitor:
|
||||||
|
enabled: true
|
||||||
@@ -18,4 +18,4 @@ spec:
|
|||||||
prune: true
|
prune: true
|
||||||
syncOptions:
|
syncOptions:
|
||||||
- CreateNamespace=true
|
- CreateNamespace=true
|
||||||
|
- ServerSideApply=true
|
||||||
@@ -128,7 +128,7 @@ spec:
|
|||||||
app.kubernetes.io/name: external-secrets
|
app.kubernetes.io/name: external-secrets
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ClusterSecretStore
|
kind: ClusterSecretStore
|
||||||
metadata:
|
metadata:
|
||||||
name: vaultwarden-login
|
name: vaultwarden-login
|
||||||
@@ -141,7 +141,7 @@ spec:
|
|||||||
result:
|
result:
|
||||||
jsonPath: "$.data.{{ .remoteRef.property }}"
|
jsonPath: "$.data.{{ .remoteRef.property }}"
|
||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ClusterSecretStore
|
kind: ClusterSecretStore
|
||||||
metadata:
|
metadata:
|
||||||
name: vaultwarden-fields
|
name: vaultwarden-fields
|
||||||
|
|||||||
@@ -2,13 +2,12 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- app.yaml
|
|
||||||
- bitwarden-store.yaml
|
- bitwarden-store.yaml
|
||||||
|
|
||||||
helmCharts:
|
helmCharts:
|
||||||
- name: external-secrets
|
- name: external-secrets
|
||||||
repo: https://charts.external-secrets.io
|
repo: https://charts.external-secrets.io
|
||||||
version: 0.16.2
|
version: 1.1.0
|
||||||
releaseName: external-secrets
|
releaseName: external-secrets
|
||||||
namespace: external-secrets
|
namespace: external-secrets
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: postgres-creds
|
name: postgres-creds
|
||||||
@@ -90,7 +90,7 @@ spec:
|
|||||||
key: 832042b9-7edb-4f4c-9254-3c8884ba9733
|
key: 832042b9-7edb-4f4c-9254-3c8884ba9733
|
||||||
property: fields[2].value
|
property: fields[2].value
|
||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: postgres-users
|
name: postgres-users
|
||||||
@@ -119,6 +119,10 @@ spec:
|
|||||||
{{ .outfleet_rs }}
|
{{ .outfleet_rs }}
|
||||||
USER_pasarguard: |-
|
USER_pasarguard: |-
|
||||||
{{ .pasarguard }}
|
{{ .pasarguard }}
|
||||||
|
USER_remnawave: |-
|
||||||
|
{{ .remnawave }}
|
||||||
|
USER_umami: |-
|
||||||
|
{{ .umami }}
|
||||||
data:
|
data:
|
||||||
- secretKey: authentik
|
- secretKey: authentik
|
||||||
sourceRef:
|
sourceRef:
|
||||||
@@ -219,3 +223,25 @@ spec:
|
|||||||
metadataPolicy: None
|
metadataPolicy: None
|
||||||
key: 2a9deb39-ef22-433e-a1be-df1555625e22
|
key: 2a9deb39-ef22-433e-a1be-df1555625e22
|
||||||
property: fields[9].value
|
property: fields[9].value
|
||||||
|
- secretKey: remnawave
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
metadataPolicy: None
|
||||||
|
key: 2a9deb39-ef22-433e-a1be-df1555625e22
|
||||||
|
property: fields[10].value
|
||||||
|
- secretKey: umami
|
||||||
|
sourceRef:
|
||||||
|
storeRef:
|
||||||
|
name: vaultwarden-login
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
metadataPolicy: None
|
||||||
|
key: 2a9deb39-ef22-433e-a1be-df1555625e22
|
||||||
|
property: fields[11].value
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1beta1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: grafana-admin
|
name: grafana-admin
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ resources:
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: kube-prometheus-stack
|
- name: kube-prometheus-stack
|
||||||
repo: https://prometheus-community.github.io/helm-charts
|
repo: https://prometheus-community.github.io/helm-charts
|
||||||
version: 70.4.2
|
version: 79.7.1
|
||||||
releaseName: prometheus
|
releaseName: prometheus
|
||||||
namespace: prometheus
|
namespace: prometheus
|
||||||
valuesFile: prom-values.yaml
|
valuesFile: prom-values.yaml
|
||||||
@@ -17,7 +17,7 @@ helmCharts:
|
|||||||
|
|
||||||
- name: grafana
|
- name: grafana
|
||||||
repo: https://grafana.github.io/helm-charts
|
repo: https://grafana.github.io/helm-charts
|
||||||
version: 8.11.4
|
version: 10.2.0
|
||||||
releaseName: grafana
|
releaseName: grafana
|
||||||
namespace: prometheus
|
namespace: prometheus
|
||||||
valuesFile: grafana-values.yaml
|
valuesFile: grafana-values.yaml
|
||||||
|
|||||||
Reference in New Issue
Block a user