From 60053fb88a3412dee2311a9c31695db8edc35a44 Mon Sep 17 00:00:00 2001 From: DeveloperDurp Date: Tue, 6 May 2025 09:34:31 -0500 Subject: [PATCH] add openspeedtest --- dmz/internalproxy/templates/speedtest.yaml | 148 ++++++++++---------- dmz/openspeedtest/Chart.yaml | 7 + dmz/openspeedtest/templates/deployment.yaml | 33 +++++ dmz/openspeedtest/templates/ingress.yaml | 45 ++++++ dmz/openspeedtest/templates/service.yaml | 12 ++ infra/argocd/templates/openspeedtest.yaml | 22 +++ 6 files changed, 193 insertions(+), 74 deletions(-) create mode 100644 dmz/openspeedtest/Chart.yaml create mode 100644 dmz/openspeedtest/templates/deployment.yaml create mode 100644 dmz/openspeedtest/templates/ingress.yaml create mode 100644 dmz/openspeedtest/templates/service.yaml create mode 100644 infra/argocd/templates/openspeedtest.yaml diff --git a/dmz/internalproxy/templates/speedtest.yaml b/dmz/internalproxy/templates/speedtest.yaml index 1eea45b..c75d3a6 100644 --- a/dmz/internalproxy/templates/speedtest.yaml +++ b/dmz/internalproxy/templates/speedtest.yaml @@ -1,74 +1,74 @@ -apiVersion: v1 -kind: Service -metadata: - name: speedtest -spec: - ports: - - name: app - port: 6580 - protocol: TCP - targetPort: 6580 - clusterIP: None - type: ClusterIP - ---- - -apiVersion: v1 -kind: Endpoints -metadata: - name: speedtest -subsets: -- addresses: - - ip: 192.168.21.200 - ports: - - name: app - port: 6580 - protocol: TCP - ---- - -apiVersion: traefik.io/v1alpha1 -kind: IngressRoute -metadata: - name: speedtest-ingress -spec: - entryPoints: - - websecure - routes: - - match: Host(`speedtest.durp.info`) && PathPrefix(`/`) - kind: Rule - middlewares: - - name: authentik-proxy-provider - namespace: traefik - services: - - name: speedtest - port: 6580 - tls: - secretName: speedtest-tls - ---- - -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: speedtest-tls -spec: - secretName: speedtest-tls - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer - commonName: "speedtest.durp.info" - dnsNames: - - "speedtest.durp.info" - ---- - -kind: Service -apiVersion: v1 -metadata: - name: speedtest-external-dns - annotations: - external-dns.alpha.kubernetes.io/hostname: speedtest.durp.info -spec: - type: ExternalName - externalName: durp.info +#apiVersion: v1 +#kind: Service +#metadata: +# name: speedtest +#spec: +# ports: +# - name: app +# port: 6580 +# protocol: TCP +# targetPort: 6580 +# clusterIP: None +# type: ClusterIP +# +#--- +# +#apiVersion: v1 +#kind: Endpoints +#metadata: +# name: speedtest +#subsets: +#- addresses: +# - ip: 192.168.21.200 +# ports: +# - name: app +# port: 6580 +# protocol: TCP +# +#--- +# +#apiVersion: traefik.io/v1alpha1 +#kind: IngressRoute +#metadata: +# name: speedtest-ingress +#spec: +# entryPoints: +# - websecure +# routes: +# - match: Host(`speedtest.durp.info`) && PathPrefix(`/`) +# kind: Rule +# middlewares: +# - name: authentik-proxy-provider +# namespace: traefik +# services: +# - name: speedtest +# port: 6580 +# tls: +# secretName: speedtest-tls +# +#--- +# +#apiVersion: cert-manager.io/v1 +#kind: Certificate +#metadata: +# name: speedtest-tls +#spec: +# secretName: speedtest-tls +# issuerRef: +# name: letsencrypt-production +# kind: ClusterIssuer +# commonName: "speedtest.durp.info" +# dnsNames: +# - "speedtest.durp.info" +# +#--- +# +#kind: Service +#apiVersion: v1 +#metadata: +# name: speedtest-external-dns +# annotations: +# external-dns.alpha.kubernetes.io/hostname: speedtest.durp.info +#spec: +# type: ExternalName +# externalName: durp.info diff --git a/dmz/openspeedtest/Chart.yaml b/dmz/openspeedtest/Chart.yaml new file mode 100644 index 0000000..c8f712e --- /dev/null +++ b/dmz/openspeedtest/Chart.yaml @@ -0,0 +1,7 @@ +apiVersion: v2 +name: openspeedtest +description: A Helm chart for Kubernetes +type: application + +version: 0.1.0 +appVersion: "1.16.0" diff --git a/dmz/openspeedtest/templates/deployment.yaml b/dmz/openspeedtest/templates/deployment.yaml new file mode 100644 index 0000000..062de32 --- /dev/null +++ b/dmz/openspeedtest/templates/deployment.yaml @@ -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 diff --git a/dmz/openspeedtest/templates/ingress.yaml b/dmz/openspeedtest/templates/ingress.yaml new file mode 100644 index 0000000..1f2a682 --- /dev/null +++ b/dmz/openspeedtest/templates/ingress.yaml @@ -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 diff --git a/dmz/openspeedtest/templates/service.yaml b/dmz/openspeedtest/templates/service.yaml new file mode 100644 index 0000000..c31f9b5 --- /dev/null +++ b/dmz/openspeedtest/templates/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: openspeedtest +spec: + ports: + - name: http + port: 3000 + targetPort: 3000 + protocol: TCP + selector: + app: openspeedtest diff --git a/infra/argocd/templates/openspeedtest.yaml b/infra/argocd/templates/openspeedtest.yaml new file mode 100644 index 0000000..5d79f9c --- /dev/null +++ b/infra/argocd/templates/openspeedtest.yaml @@ -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