add openspeedtest

This commit is contained in:
2025-05-06 09:34:31 -05:00
parent 59734e07a5
commit 60053fb88a
6 changed files with 193 additions and 74 deletions

View File

@@ -1,74 +1,74 @@
apiVersion: v1 #apiVersion: v1
kind: Service #kind: Service
metadata: #metadata:
name: speedtest # name: speedtest
spec: #spec:
ports: # ports:
- name: app # - name: app
port: 6580 # port: 6580
protocol: TCP # protocol: TCP
targetPort: 6580 # targetPort: 6580
clusterIP: None # clusterIP: None
type: ClusterIP # type: ClusterIP
#
--- #---
#
apiVersion: v1 #apiVersion: v1
kind: Endpoints #kind: Endpoints
metadata: #metadata:
name: speedtest # name: speedtest
subsets: #subsets:
- addresses: #- addresses:
- ip: 192.168.21.200 # - ip: 192.168.21.200
ports: # ports:
- name: app # - name: app
port: 6580 # port: 6580
protocol: TCP # protocol: TCP
#
--- #---
#
apiVersion: traefik.io/v1alpha1 #apiVersion: traefik.io/v1alpha1
kind: IngressRoute #kind: IngressRoute
metadata: #metadata:
name: speedtest-ingress # name: speedtest-ingress
spec: #spec:
entryPoints: # entryPoints:
- websecure # - websecure
routes: # routes:
- match: Host(`speedtest.durp.info`) && PathPrefix(`/`) # - match: Host(`speedtest.durp.info`) && PathPrefix(`/`)
kind: Rule # kind: Rule
middlewares: # middlewares:
- name: authentik-proxy-provider # - name: authentik-proxy-provider
namespace: traefik # namespace: traefik
services: # services:
- name: speedtest # - name: speedtest
port: 6580 # port: 6580
tls: # tls:
secretName: speedtest-tls # secretName: speedtest-tls
#
--- #---
#
apiVersion: cert-manager.io/v1 #apiVersion: cert-manager.io/v1
kind: Certificate #kind: Certificate
metadata: #metadata:
name: speedtest-tls # name: speedtest-tls
spec: #spec:
secretName: speedtest-tls # secretName: speedtest-tls
issuerRef: # issuerRef:
name: letsencrypt-production # name: letsencrypt-production
kind: ClusterIssuer # kind: ClusterIssuer
commonName: "speedtest.durp.info" # commonName: "speedtest.durp.info"
dnsNames: # dnsNames:
- "speedtest.durp.info" # - "speedtest.durp.info"
#
--- #---
#
kind: Service #kind: Service
apiVersion: v1 #apiVersion: v1
metadata: #metadata:
name: speedtest-external-dns # name: speedtest-external-dns
annotations: # annotations:
external-dns.alpha.kubernetes.io/hostname: speedtest.durp.info # external-dns.alpha.kubernetes.io/hostname: speedtest.durp.info
spec: #spec:
type: ExternalName # type: ExternalName
externalName: durp.info # externalName: durp.info

View File

@@ -0,0 +1,7 @@
apiVersion: v2
name: openspeedtest
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"

View File

@@ -0,0 +1,33 @@
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: openspeedtest
name: openspeedtest
labels:
app: openspeedtest
spec:
selector:
matchLabels:
app: openspeedtest
replicas: 1
template:
metadata:
labels:
app: openspeedtest
spec:
containers:
- name: openspeedtest
image: registry.durp.info/openspeedtest/latest
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /
port: 3000
readinessProbe:
httpGet:
path: /
port: 3000
env:
ports:
- name: http
containerPort: 3000

View File

@@ -0,0 +1,45 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: openspeedtest-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`speedtest.durp.info`) && PathPrefix(`/`)
kind: Rule
middlewares:
- name: authentik-proxy-provider
namespace: traefik
services:
- name: openspeedtest
port: 3000
tls:
secretName: openspeedtest-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: openspeedtest-tls
spec:
secretName: openspeedtest-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "speedtest.durp.info"
dnsNames:
- "speedtest.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: openspeedtest-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: speedtest.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: openspeedtest
spec:
ports:
- name: http
port: 3000
targetPort: 3000
protocol: TCP
selector:
app: openspeedtest

View File

@@ -0,0 +1,22 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: openspeedtest
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: dmz/openspeedtest
directory:
recurse: true
destination:
name: dmz
namespace: openspeedtest
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true