feat(speedtest-tracker): Add Speedtest Tracker chart (#18672)

**Description**
<!--
Please include a summary of the change and which issue is fixed. Please
also include relevant motivation and context. List any dependencies that
are required for this change.
-->
Added Speedtest-Tracker with the Image from LinuxServer.io which got
recently released.
https://github.com/alexjustesen/speedtest-tracker/issues/1117

**⚙️ Type of change**

- [x] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [ ] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
<!--
-->
Added App as Custom-App in a working state and checked with
@StevenMcElligott

**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ Checklist:**

- [x] ⚖️ My code follows the style guidelines of this project
- [x] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [ ] ⚠️ My changes generate no new warnings
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [ ] ⬆️ I increased versions for any altered app according to semantic
versioning

** App addition**

If this PR is an app addition please make sure you have done the
following.

- [x] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._

---------

Signed-off-by: StevenMcElligott <89483932+StevenMcElligott@users.noreply.github.com>
Signed-off-by: alfi0812 <43101280+alfi0812@users.noreply.github.com>
Co-authored-by: StevenMcElligott <89483932+StevenMcElligott@users.noreply.github.com>
Co-authored-by: Xstar97TheNoob <9399967+xstar97@users.noreply.github.com>
This commit is contained in:
alfi0812 2024-02-27 17:14:52 +01:00 committed by GitHub
parent d66746cae5
commit a3d64a7af6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 345 additions and 0 deletions

View File

@ -0,0 +1,30 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl
# docs folder
/docs
# icon
icon.png

View File

@ -0,0 +1,45 @@
annotations:
max_scale_version: 24.04.0
min_scale_version: 23.10.0
truecharts.org/SCALE-support: "true"
truecharts.org/category: productivity
truecharts.org/max_helm_version: "3.14"
truecharts.org/min_helm_version: "3.12"
truecharts.org/train: incubator
apiVersion: v2
appVersion: 0.17.2
dependencies:
- name: common
version: 18.0.3
repository: oci://tccr.io/truecharts
condition: ""
alias: ""
tags: []
import-values: []
- name: redis
version: 11.2.1
repository: oci://tccr.io/truecharts
condition: redis.enabled
alias: ""
tags: []
import-values: []
deprecated: false
description: Speedtest Tracker is a self-hosted internet performance tracking application that runs speedtest checks against Ookla's Speedtest service.
home: https://truecharts.org/charts/incubator/speedtest-tracker
icon: https://truecharts.org/img/hotlink-ok/chart-icons/speedtest-tracker.png
keywords:
- speedtest
- speedtest-tracker
kubeVersion: '>=1.24.0-0'
maintainers:
- name: TrueCharts
email: info@truecharts.org
url: https://truecharts.org
name: speedtest-tracker
sources:
- https://github.com/alexjustesen/speedtest-tracker
- https://github.com/linuxserver/docker-speedtest-tracker
- https://github.com/truecharts/charts/tree/master/charts/incubator/speedtest-tracker
- https://ghcr.io/paperless-ngx/paperless-ngx
type: application
version: 0.0.1

View File

@ -0,0 +1,4 @@
---
title: README
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,156 @@
# Include{groups}
portals:
open:
# Include{portalLink}
questions:
# Include{global}
# Include{workload}
# Include{workloadDeployment}
# Include{replicas1}
# Include{podSpec}
# Include{containerMain}
- variable: env
group: "App Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: APP_URL
label: "Speedtest-Tracker URL"
schema:
type: string
default: ""
- variable: TELEGRAM_BOT_TOKEN
label: "Speedtest-Tracker Telegram Token"
schema:
type: string
default: ""
- variable: mail
label: Show Mail Server Settings
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: MAIL_MAILER
label: Server Memory
schema:
type: string
required: true
default: "smtp"
- variable: MAIL_HOST
label: Host
schema:
type: string
required: true
default: ""
- variable: MAIL_PORT
label: Port
schema:
type: int
required: true
default: 465
- variable: MAIL_USERNAME
label: Username
schema:
type: string
required: true
default: ""
- variable: MAIL_PASSWORD
label: Password
schema:
type: string
required: true
private: true
default: ""
- variable: MAIL_ENCRYPTION
label: Mail Server Port
schema:
type: string
required: true
default: ""
- variable: MAIL_FROM_ADDRESS
label: Sender Address
schema:
type: string
default: ""
- variable: MAIL_FROM_NAME
label: Sender Name
schema:
type: string
default: "Speedtest Tracker"
# Include{containerBasic}
# Include{containerAdvanced}
# Include{containerConfig}
# Include{podOptions}
# Include{serviceRoot}
# Include{serviceMain}
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: main
label: "Main Service Port Configuration"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 9004
required: true
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: config
label: App Config Storage
description: Stores the Application Config.
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceList}
# Include{ingressRoot}
- variable: main
label: "Main Ingress"
schema:
additional_attrs: true
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressAdvanced}
# Include{ingressList}
# Include{securityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: "The groupID this App of the user running the application"
schema:
type: int
default: 0
# Include{securityContextContainer}
# Include{securityContextAdvanced}
# Include{securityContextPod}
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{resources}
# Include{postgresql}
# Include{advanced}
# Include{addons}
# Include{codeserver}
# Include{netshoot}
# Include{vpn}
# Include{documentation}

View File

@ -0,0 +1 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@ -0,0 +1,11 @@
{{/* Define the secrets */}}
{{- define "speedtest-tracker.secrets" -}}
{{- $secretName := (printf "%s-speedtest-tracker-secrets" (include "tc.v1.common.lib.chart.names.fullname" $)) -}}
{{- $key := randAlphaNum 32 -}}
{{- with (lookup "v1" "Secret" .Release.Namespace $secretName) -}}
{{- $key = index .data "APP_KEY" | b64dec -}}
{{- end }}
enabled: true
data:
APP_KEY: {{ $key }}
{{- end -}}

View File

@ -0,0 +1,11 @@
{{/* Make sure all variables are set properly */}}
{{ include "tc.v1.common.loader.init" . }}
{{/* Render secrets for speedtest-tracker */}}
{{- $secrets := include "speedtest-tracker.secrets" . | fromYaml -}}
{{- if $secrets -}}
{{- $_ := set .Values.secret "speedtest-tracker-secrets" $secrets -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "tc.v1.common.loader.apply" . }}

View File

@ -0,0 +1,87 @@
image:
repository: ghcr.io/linuxserver/speedtest-tracker
pullPolicy: IfNotPresent
tag: 0.17.2@sha256:739aaa9df772ff38014d34eb1deddcea16a9e8ab6f72b30e24b23963ca397681
service:
main:
ports:
main:
targetPort: 80
port: 9004
persistence:
config:
enabled: true
mountPath: "/config"
redis:
enabled: true
redisUsername: default
cnpg:
main:
enabled: true
user: speedtest-tracker
database: speedtest-tracker
portal:
open:
enabled: true
securityContext:
container:
runAsNonRoot: false
readOnlyRootFilesystem: false
runAsUser: 0
runAsGroup: 0
workload:
main:
podSpec:
containers:
main:
securityContext:
capabilities:
add:
- SYS_CHROOT
- KILL
probes:
liveness:
enabled: true
type: http
path: /api/healthcheck
startup:
enabled: true
type: http
path: /api/healthcheck
readiness:
enabled: true
type: http
path: /api/healthcheck
env:
APP_URL: ""
DB_CONNECTION: pgsql
DB_HOST:
secretKeyRef:
name: cnpg-main-urls
key: host
DB_PORT: "5432"
DB_DATABASE: "{{ .Values.cnpg.main.database }}"
DB_USERNAME: "{{ .Values.cnpg.main.user }}"
DB_PASSWORD:
secretKeyRef:
name: cnpg-main-user
key: password
APP_KEY:
secretKeyRef:
name: speedtest-tracker-secrets
key: APP_KEY
MAIL_MAILER: "smtp"
MAIL_PORT : 465
MAIL_USERNAME: ""
MAIL_PASSWORD: ""
MAIL_ENCRYPTION: ""
MAIL_FROM_ADDRESS: ""
MAIL_FROM_NAME: "Speedtest Tracker"
TELEGRAM_BOT_TOKEN: ""
CACHE_DRIVER: redis
REDIS_URL:
secretKeyRef:
expandObjectName: false
name: '{{ printf "%s-%s" .Release.Name "rediscreds" }}'
key: url