From 779e144f20f0cd581da41fce92fc6aefe1c311e4 Mon Sep 17 00:00:00 2001 From: Kjeld Schouten-Lebbing Date: Sun, 12 Dec 2021 23:27:04 +0100 Subject: [PATCH] feat(apps): Add LSIO based Apps (#1500) * feat(apps): Add LSIO based Apps * try different config dir for scrutiny * remove comments * some work on icons/descriptions * more icons/description * more icons/desc! * shorten descriptions * make desc oneliner * sync security options to questions * sync storage * add services * doc ports * fix port conflicts * document ports * sync env-vars Co-authored-by: Stavros kois --- charts/dev/boinc/Chart.yaml | 28 + charts/dev/boinc/questions.yaml | 341 ++++++++++ charts/dev/boinc/templates/common.yaml | 1 + charts/dev/boinc/values.yaml | 31 + charts/dev/chevereto/Chart.yaml | 31 + charts/dev/chevereto/questions.yaml | 397 ++++++++++++ charts/dev/chevereto/templates/common.yaml | 1 + charts/dev/chevereto/values.yaml | 51 ++ charts/dev/couchpotato/Chart.yaml | 28 + charts/dev/couchpotato/questions.yaml | 341 ++++++++++ charts/dev/couchpotato/templates/common.yaml | 1 + charts/dev/couchpotato/values.yaml | 28 + charts/dev/darktable/Chart.yaml | 28 + charts/dev/darktable/questions.yaml | 341 ++++++++++ charts/dev/darktable/templates/common.yaml | 1 + charts/dev/darktable/values.yaml | 28 + charts/dev/ddclient/Chart.yaml | 28 + charts/dev/ddclient/questions.yaml | 276 ++++++++ charts/dev/ddclient/templates/common.yaml | 1 + charts/dev/ddclient/values.yaml | 28 + charts/dev/dillinger/Chart.yaml | 28 + charts/dev/dillinger/questions.yaml | 341 ++++++++++ charts/dev/dillinger/templates/common.yaml | 1 + charts/dev/dillinger/values.yaml | 28 + charts/dev/dokuwiki/Chart.yaml | 28 + charts/dev/dokuwiki/questions.yaml | 341 ++++++++++ charts/dev/dokuwiki/templates/common.yaml | 1 + charts/dev/dokuwiki/values.yaml | 29 + charts/dev/domoticz/Chart.yaml | 28 + charts/dev/domoticz/questions.yaml | 462 +++++++++++++ charts/dev/domoticz/templates/common.yaml | 1 + charts/dev/domoticz/values.yaml | 40 ++ charts/dev/duckdns/Chart.yaml | 28 + charts/dev/duckdns/questions.yaml | 281 ++++++++ charts/dev/duckdns/templates/common.yaml | 1 + charts/dev/duckdns/values.yaml | 32 + charts/dev/embystat/Chart.yaml | 28 + charts/dev/embystat/questions.yaml | 341 ++++++++++ charts/dev/embystat/templates/common.yaml | 1 + charts/dev/embystat/values.yaml | 28 + charts/dev/emulatorjs/Chart.yaml | 28 + charts/dev/emulatorjs/questions.yaml | 457 +++++++++++++ charts/dev/emulatorjs/templates/common.yaml | 1 + charts/dev/emulatorjs/values.yaml | 38 ++ charts/dev/endlessh/Chart.yaml | 28 + charts/dev/endlessh/questions.yaml | 341 ++++++++++ charts/dev/endlessh/templates/common.yaml | 1 + charts/dev/endlessh/values.yaml | 28 + charts/dev/firefox/Chart.yaml | 28 + charts/dev/firefox/questions.yaml | 341 ++++++++++ charts/dev/firefox/templates/common.yaml | 1 + charts/dev/firefox/values.yaml | 28 + charts/dev/fleet/Chart.yaml | 31 + charts/dev/fleet/questions.yaml | 352 ++++++++++ charts/dev/fleet/templates/common.yaml | 1 + charts/dev/fleet/values.yaml | 51 ++ charts/dev/foldingathome/Chart.yaml | 28 + charts/dev/foldingathome/questions.yaml | 399 ++++++++++++ .../dev/foldingathome/templates/common.yaml | 1 + charts/dev/foldingathome/values.yaml | 33 + charts/dev/guacd/Chart.yaml | 28 + charts/dev/guacd/questions.yaml | 278 ++++++++ charts/dev/guacd/templates/common.yaml | 1 + charts/dev/guacd/values.yaml | 25 + charts/dev/habridge/Chart.yaml | 28 + charts/dev/habridge/questions.yaml | 410 ++++++++++++ charts/dev/habridge/templates/common.yaml | 1 + charts/dev/habridge/values.yaml | 36 ++ charts/dev/hedgedoc/Chart.yaml | 31 + charts/dev/hedgedoc/questions.yaml | 295 +++++++++ charts/dev/hedgedoc/templates/common.yaml | 1 + charts/dev/hedgedoc/values.yaml | 46 ++ charts/dev/htpcmanager/Chart.yaml | 28 + charts/dev/htpcmanager/questions.yaml | 341 ++++++++++ charts/dev/htpcmanager/templates/common.yaml | 1 + charts/dev/htpcmanager/values.yaml | 31 + charts/dev/ipfs/Chart.yaml | 28 + charts/dev/ipfs/questions.yaml | 515 +++++++++++++++ charts/dev/ipfs/templates/common.yaml | 1 + charts/dev/ipfs/values.yaml | 44 ++ charts/dev/kodi-headless/Chart.yaml | 28 + charts/dev/kodi-headless/questions.yaml | 457 +++++++++++++ .../dev/kodi-headless/templates/common.yaml | 1 + charts/dev/kodi-headless/values.yaml | 39 ++ charts/dev/libreoffice/Chart.yaml | 28 + charts/dev/libreoffice/questions.yaml | 341 ++++++++++ charts/dev/libreoffice/templates/common.yaml | 1 + charts/dev/libreoffice/values.yaml | 28 + charts/dev/minetest/Chart.yaml | 28 + charts/dev/minetest/questions.yaml | 341 ++++++++++ charts/dev/minetest/templates/common.yaml | 1 + charts/dev/minetest/values.yaml | 39 ++ charts/dev/minisatip/Chart.yaml | 28 + charts/dev/minisatip/questions.yaml | 457 +++++++++++++ charts/dev/minisatip/templates/common.yaml | 1 + charts/dev/minisatip/values.yaml | 39 ++ charts/dev/mysql-workbench/Chart.yaml | 28 + charts/dev/mysql-workbench/questions.yaml | 341 ++++++++++ .../dev/mysql-workbench/templates/common.yaml | 1 + charts/dev/mysql-workbench/values.yaml | 28 + charts/dev/nano-wallet/Chart.yaml | 28 + charts/dev/nano-wallet/questions.yaml | 278 ++++++++ charts/dev/nano-wallet/templates/common.yaml | 1 + charts/dev/nano-wallet/values.yaml | 26 + charts/dev/ngircd/Chart.yaml | 28 + charts/dev/ngircd/questions.yaml | 341 ++++++++++ charts/dev/ngircd/templates/common.yaml | 1 + charts/dev/ngircd/values.yaml | 28 + charts/dev/nntp2nntp/Chart.yaml | 28 + charts/dev/nntp2nntp/questions.yaml | 341 ++++++++++ charts/dev/nntp2nntp/templates/common.yaml | 1 + charts/dev/nntp2nntp/values.yaml | 28 + charts/dev/openvscode-server/Chart.yaml | 28 + charts/dev/openvscode-server/questions.yaml | 358 +++++++++++ .../openvscode-server/templates/common.yaml | 1 + charts/dev/openvscode-server/values.yaml | 32 + charts/dev/paperless-ng/Chart.yaml | 28 + charts/dev/paperless-ng/questions.yaml | 341 ++++++++++ charts/dev/paperless-ng/templates/common.yaml | 1 + charts/dev/paperless-ng/values.yaml | 28 + charts/dev/papermerge/Chart.yaml | 28 + charts/dev/papermerge/questions.yaml | 341 ++++++++++ charts/dev/papermerge/templates/common.yaml | 1 + charts/dev/papermerge/values.yaml | 29 + charts/dev/pidgin/Chart.yaml | 28 + charts/dev/pidgin/questions.yaml | 341 ++++++++++ charts/dev/pidgin/templates/common.yaml | 1 + charts/dev/pidgin/values.yaml | 28 + charts/dev/projectsend/Chart.yaml | 27 + charts/dev/projectsend/questions.yaml | 347 ++++++++++ charts/dev/projectsend/templates/common.yaml | 1 + charts/dev/projectsend/values.yaml | 30 + charts/dev/pwndrop/Chart.yaml | 28 + charts/dev/pwndrop/questions.yaml | 341 ++++++++++ charts/dev/pwndrop/templates/common.yaml | 1 + charts/dev/pwndrop/values.yaml | 29 + charts/dev/pydio-cells/Chart.yaml | 28 + charts/dev/pydio-cells/questions.yaml | 404 ++++++++++++ charts/dev/pydio-cells/templates/common.yaml | 1 + charts/dev/pydio-cells/values.yaml | 34 + charts/dev/pylon/Chart.yaml | 28 + charts/dev/pylon/questions.yaml | 362 +++++++++++ charts/dev/pylon/templates/common.yaml | 1 + charts/dev/pylon/values.yaml | 34 + charts/dev/quassel-core/Chart.yaml | 31 + charts/dev/quassel-core/questions.yaml | 336 ++++++++++ charts/dev/quassel-core/templates/common.yaml | 1 + charts/dev/quassel-core/values.yaml | 52 ++ charts/dev/quassel-web/Chart.yaml | 28 + charts/dev/quassel-web/questions.yaml | 358 +++++++++++ charts/dev/quassel-web/templates/common.yaml | 1 + charts/dev/quassel-web/values.yaml | 32 + charts/dev/requestrr/Chart.yaml | 28 + charts/dev/requestrr/questions.yaml | 341 ++++++++++ charts/dev/requestrr/templates/common.yaml | 1 + charts/dev/requestrr/values.yaml | 29 + charts/dev/rsnapshot/Chart.yaml | 28 + charts/dev/rsnapshot/questions.yaml | 276 ++++++++ charts/dev/rsnapshot/templates/common.yaml | 1 + charts/dev/rsnapshot/values.yaml | 28 + charts/dev/scrutiny/Chart.yaml | 28 + charts/dev/scrutiny/questions.yaml | 342 ++++++++++ charts/dev/scrutiny/templates/common.yaml | 1 + charts/dev/scrutiny/values.yaml | 35 + charts/dev/synclounge/Chart.yaml | 28 + charts/dev/synclounge/questions.yaml | 283 ++++++++ charts/dev/synclounge/templates/common.yaml | 1 + charts/dev/synclounge/values.yaml | 26 + charts/dev/syslog-ng/Chart.yaml | 28 + charts/dev/syslog-ng/questions.yaml | 457 +++++++++++++ charts/dev/syslog-ng/templates/common.yaml | 1 + charts/dev/syslog-ng/values.yaml | 40 ++ charts/dev/ubooquity/Chart.yaml | 28 + charts/dev/ubooquity/questions.yaml | 341 ++++++++++ charts/dev/ubooquity/templates/common.yaml | 1 + charts/dev/ubooquity/values.yaml | 28 + charts/dev/webgrabplus/Chart.yaml | 28 + charts/dev/webgrabplus/questions.yaml | 332 ++++++++++ charts/dev/webgrabplus/templates/common.yaml | 1 + charts/dev/webgrabplus/values.yaml | 31 + charts/dev/wireshark/Chart.yaml | 28 + charts/dev/wireshark/questions.yaml | 341 ++++++++++ charts/dev/wireshark/templates/common.yaml | 1 + charts/dev/wireshark/values.yaml | 28 + charts/dev/znc/Chart.yaml | 28 + charts/dev/znc/questions.yaml | 341 ++++++++++ charts/dev/znc/templates/common.yaml | 1 + charts/dev/znc/values.yaml | 28 + docs/apps/app-requests.md | 136 ++-- docs/manual/default-ports.md | 607 ++++++++++-------- templates/app/Chart.yaml | 15 +- templates/app/README.md | 117 ---- templates/app/questions.yaml | 369 ++++------- templates/app/templates/common.yaml | 1 + templates/app/values.yaml | 30 +- tools/image-to-app.sh | 23 + tools/port-from-lsio.sh | 14 + 197 files changed, 20166 insertions(+), 730 deletions(-) create mode 100644 charts/dev/boinc/Chart.yaml create mode 100644 charts/dev/boinc/questions.yaml create mode 100644 charts/dev/boinc/templates/common.yaml create mode 100644 charts/dev/boinc/values.yaml create mode 100644 charts/dev/chevereto/Chart.yaml create mode 100644 charts/dev/chevereto/questions.yaml create mode 100644 charts/dev/chevereto/templates/common.yaml create mode 100644 charts/dev/chevereto/values.yaml create mode 100644 charts/dev/couchpotato/Chart.yaml create mode 100644 charts/dev/couchpotato/questions.yaml create mode 100644 charts/dev/couchpotato/templates/common.yaml create mode 100644 charts/dev/couchpotato/values.yaml create mode 100644 charts/dev/darktable/Chart.yaml create mode 100644 charts/dev/darktable/questions.yaml create mode 100644 charts/dev/darktable/templates/common.yaml create mode 100644 charts/dev/darktable/values.yaml create mode 100644 charts/dev/ddclient/Chart.yaml create mode 100644 charts/dev/ddclient/questions.yaml create mode 100644 charts/dev/ddclient/templates/common.yaml create mode 100644 charts/dev/ddclient/values.yaml create mode 100644 charts/dev/dillinger/Chart.yaml create mode 100644 charts/dev/dillinger/questions.yaml create mode 100644 charts/dev/dillinger/templates/common.yaml create mode 100644 charts/dev/dillinger/values.yaml create mode 100644 charts/dev/dokuwiki/Chart.yaml create mode 100644 charts/dev/dokuwiki/questions.yaml create mode 100644 charts/dev/dokuwiki/templates/common.yaml create mode 100644 charts/dev/dokuwiki/values.yaml create mode 100644 charts/dev/domoticz/Chart.yaml create mode 100644 charts/dev/domoticz/questions.yaml create mode 100644 charts/dev/domoticz/templates/common.yaml create mode 100644 charts/dev/domoticz/values.yaml create mode 100644 charts/dev/duckdns/Chart.yaml create mode 100644 charts/dev/duckdns/questions.yaml create mode 100644 charts/dev/duckdns/templates/common.yaml create mode 100644 charts/dev/duckdns/values.yaml create mode 100644 charts/dev/embystat/Chart.yaml create mode 100644 charts/dev/embystat/questions.yaml create mode 100644 charts/dev/embystat/templates/common.yaml create mode 100644 charts/dev/embystat/values.yaml create mode 100644 charts/dev/emulatorjs/Chart.yaml create mode 100644 charts/dev/emulatorjs/questions.yaml create mode 100644 charts/dev/emulatorjs/templates/common.yaml create mode 100644 charts/dev/emulatorjs/values.yaml create mode 100644 charts/dev/endlessh/Chart.yaml create mode 100644 charts/dev/endlessh/questions.yaml create mode 100644 charts/dev/endlessh/templates/common.yaml create mode 100644 charts/dev/endlessh/values.yaml create mode 100644 charts/dev/firefox/Chart.yaml create mode 100644 charts/dev/firefox/questions.yaml create mode 100644 charts/dev/firefox/templates/common.yaml create mode 100644 charts/dev/firefox/values.yaml create mode 100644 charts/dev/fleet/Chart.yaml create mode 100644 charts/dev/fleet/questions.yaml create mode 100644 charts/dev/fleet/templates/common.yaml create mode 100644 charts/dev/fleet/values.yaml create mode 100644 charts/dev/foldingathome/Chart.yaml create mode 100644 charts/dev/foldingathome/questions.yaml create mode 100644 charts/dev/foldingathome/templates/common.yaml create mode 100644 charts/dev/foldingathome/values.yaml create mode 100644 charts/dev/guacd/Chart.yaml create mode 100644 charts/dev/guacd/questions.yaml create mode 100644 charts/dev/guacd/templates/common.yaml create mode 100644 charts/dev/guacd/values.yaml create mode 100644 charts/dev/habridge/Chart.yaml create mode 100644 charts/dev/habridge/questions.yaml create mode 100644 charts/dev/habridge/templates/common.yaml create mode 100644 charts/dev/habridge/values.yaml create mode 100644 charts/dev/hedgedoc/Chart.yaml create mode 100644 charts/dev/hedgedoc/questions.yaml create mode 100644 charts/dev/hedgedoc/templates/common.yaml create mode 100644 charts/dev/hedgedoc/values.yaml create mode 100644 charts/dev/htpcmanager/Chart.yaml create mode 100644 charts/dev/htpcmanager/questions.yaml create mode 100644 charts/dev/htpcmanager/templates/common.yaml create mode 100644 charts/dev/htpcmanager/values.yaml create mode 100644 charts/dev/ipfs/Chart.yaml create mode 100644 charts/dev/ipfs/questions.yaml create mode 100644 charts/dev/ipfs/templates/common.yaml create mode 100644 charts/dev/ipfs/values.yaml create mode 100644 charts/dev/kodi-headless/Chart.yaml create mode 100644 charts/dev/kodi-headless/questions.yaml create mode 100644 charts/dev/kodi-headless/templates/common.yaml create mode 100644 charts/dev/kodi-headless/values.yaml create mode 100644 charts/dev/libreoffice/Chart.yaml create mode 100644 charts/dev/libreoffice/questions.yaml create mode 100644 charts/dev/libreoffice/templates/common.yaml create mode 100644 charts/dev/libreoffice/values.yaml create mode 100644 charts/dev/minetest/Chart.yaml create mode 100644 charts/dev/minetest/questions.yaml create mode 100644 charts/dev/minetest/templates/common.yaml create mode 100644 charts/dev/minetest/values.yaml create mode 100644 charts/dev/minisatip/Chart.yaml create mode 100644 charts/dev/minisatip/questions.yaml create mode 100644 charts/dev/minisatip/templates/common.yaml create mode 100644 charts/dev/minisatip/values.yaml create mode 100644 charts/dev/mysql-workbench/Chart.yaml create mode 100644 charts/dev/mysql-workbench/questions.yaml create mode 100644 charts/dev/mysql-workbench/templates/common.yaml create mode 100644 charts/dev/mysql-workbench/values.yaml create mode 100644 charts/dev/nano-wallet/Chart.yaml create mode 100644 charts/dev/nano-wallet/questions.yaml create mode 100644 charts/dev/nano-wallet/templates/common.yaml create mode 100644 charts/dev/nano-wallet/values.yaml create mode 100644 charts/dev/ngircd/Chart.yaml create mode 100644 charts/dev/ngircd/questions.yaml create mode 100644 charts/dev/ngircd/templates/common.yaml create mode 100644 charts/dev/ngircd/values.yaml create mode 100644 charts/dev/nntp2nntp/Chart.yaml create mode 100644 charts/dev/nntp2nntp/questions.yaml create mode 100644 charts/dev/nntp2nntp/templates/common.yaml create mode 100644 charts/dev/nntp2nntp/values.yaml create mode 100644 charts/dev/openvscode-server/Chart.yaml create mode 100644 charts/dev/openvscode-server/questions.yaml create mode 100644 charts/dev/openvscode-server/templates/common.yaml create mode 100644 charts/dev/openvscode-server/values.yaml create mode 100644 charts/dev/paperless-ng/Chart.yaml create mode 100644 charts/dev/paperless-ng/questions.yaml create mode 100644 charts/dev/paperless-ng/templates/common.yaml create mode 100644 charts/dev/paperless-ng/values.yaml create mode 100644 charts/dev/papermerge/Chart.yaml create mode 100644 charts/dev/papermerge/questions.yaml create mode 100644 charts/dev/papermerge/templates/common.yaml create mode 100644 charts/dev/papermerge/values.yaml create mode 100644 charts/dev/pidgin/Chart.yaml create mode 100644 charts/dev/pidgin/questions.yaml create mode 100644 charts/dev/pidgin/templates/common.yaml create mode 100644 charts/dev/pidgin/values.yaml create mode 100644 charts/dev/projectsend/Chart.yaml create mode 100644 charts/dev/projectsend/questions.yaml create mode 100644 charts/dev/projectsend/templates/common.yaml create mode 100644 charts/dev/projectsend/values.yaml create mode 100644 charts/dev/pwndrop/Chart.yaml create mode 100644 charts/dev/pwndrop/questions.yaml create mode 100644 charts/dev/pwndrop/templates/common.yaml create mode 100644 charts/dev/pwndrop/values.yaml create mode 100644 charts/dev/pydio-cells/Chart.yaml create mode 100644 charts/dev/pydio-cells/questions.yaml create mode 100644 charts/dev/pydio-cells/templates/common.yaml create mode 100644 charts/dev/pydio-cells/values.yaml create mode 100644 charts/dev/pylon/Chart.yaml create mode 100644 charts/dev/pylon/questions.yaml create mode 100644 charts/dev/pylon/templates/common.yaml create mode 100644 charts/dev/pylon/values.yaml create mode 100644 charts/dev/quassel-core/Chart.yaml create mode 100644 charts/dev/quassel-core/questions.yaml create mode 100644 charts/dev/quassel-core/templates/common.yaml create mode 100644 charts/dev/quassel-core/values.yaml create mode 100644 charts/dev/quassel-web/Chart.yaml create mode 100644 charts/dev/quassel-web/questions.yaml create mode 100644 charts/dev/quassel-web/templates/common.yaml create mode 100644 charts/dev/quassel-web/values.yaml create mode 100644 charts/dev/requestrr/Chart.yaml create mode 100644 charts/dev/requestrr/questions.yaml create mode 100644 charts/dev/requestrr/templates/common.yaml create mode 100644 charts/dev/requestrr/values.yaml create mode 100644 charts/dev/rsnapshot/Chart.yaml create mode 100644 charts/dev/rsnapshot/questions.yaml create mode 100644 charts/dev/rsnapshot/templates/common.yaml create mode 100644 charts/dev/rsnapshot/values.yaml create mode 100644 charts/dev/scrutiny/Chart.yaml create mode 100644 charts/dev/scrutiny/questions.yaml create mode 100644 charts/dev/scrutiny/templates/common.yaml create mode 100644 charts/dev/scrutiny/values.yaml create mode 100644 charts/dev/synclounge/Chart.yaml create mode 100644 charts/dev/synclounge/questions.yaml create mode 100644 charts/dev/synclounge/templates/common.yaml create mode 100644 charts/dev/synclounge/values.yaml create mode 100644 charts/dev/syslog-ng/Chart.yaml create mode 100644 charts/dev/syslog-ng/questions.yaml create mode 100644 charts/dev/syslog-ng/templates/common.yaml create mode 100644 charts/dev/syslog-ng/values.yaml create mode 100644 charts/dev/ubooquity/Chart.yaml create mode 100644 charts/dev/ubooquity/questions.yaml create mode 100644 charts/dev/ubooquity/templates/common.yaml create mode 100644 charts/dev/ubooquity/values.yaml create mode 100644 charts/dev/webgrabplus/Chart.yaml create mode 100644 charts/dev/webgrabplus/questions.yaml create mode 100644 charts/dev/webgrabplus/templates/common.yaml create mode 100644 charts/dev/webgrabplus/values.yaml create mode 100644 charts/dev/wireshark/Chart.yaml create mode 100644 charts/dev/wireshark/questions.yaml create mode 100644 charts/dev/wireshark/templates/common.yaml create mode 100644 charts/dev/wireshark/values.yaml create mode 100644 charts/dev/znc/Chart.yaml create mode 100644 charts/dev/znc/questions.yaml create mode 100644 charts/dev/znc/templates/common.yaml create mode 100644 charts/dev/znc/values.yaml delete mode 100644 templates/app/README.md create mode 100644 templates/app/templates/common.yaml create mode 100644 tools/image-to-app.sh create mode 100644 tools/port-from-lsio.sh diff --git a/charts/dev/boinc/Chart.yaml b/charts/dev/boinc/Chart.yaml new file mode 100644 index 00000000000..8304fbca34d --- /dev/null +++ b/charts/dev/boinc/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: boinc +version: 0.0.1 +appVersion: 1.0.0 +description: BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/boinc +icon: https://user-images.githubusercontent.com/7941193/38755151-4956f8c8-3f2a-11e8-8343-3d1204dc57d1.png +keywords: + - boinc +sources: + - https://hub.docker.com/r/linuxserver/boinc +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/boinc/questions.yaml b/charts/dev/boinc/questions.yaml new file mode 100644 index 00000000000..5e63dde2b23 --- /dev/null +++ b/charts/dev/boinc/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10142 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/boinc/templates/common.yaml b/charts/dev/boinc/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/boinc/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/boinc/values.yaml b/charts/dev/boinc/values.yaml new file mode 100644 index 00000000000..176b8fa5da8 --- /dev/null +++ b/charts/dev/boinc/values.yaml @@ -0,0 +1,31 @@ +image: + repository: tccr.io/truecharts/boinc + pullPolicy: IfNotPresent + tag: v18.04.1 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +secret: + # PASSWORD: "" (Optional) + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8080 + port: 10142 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/chevereto/Chart.yaml b/charts/dev/chevereto/Chart.yaml new file mode 100644 index 00000000000..3640faa920a --- /dev/null +++ b/charts/dev/chevereto/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: chevereto +version: 0.0.1 +appVersion: 1.0.0 +description: Chevereto is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/chevereto +icon: https://iconape.com/wp-content/png_logo_vector/chevereto.png +keywords: + - chevereto +sources: + - https://hub.docker.com/r/linuxserver/chevereto +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 +- condition: mariadb.enabled + name: mariadb + repository: https://truecharts.org/ + version: 1.0.30 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/chevereto/questions.yaml b/charts/dev/chevereto/questions.yaml new file mode 100644 index 00000000000..0d0086e0cc6 --- /dev/null +++ b/charts/dev/chevereto/questions.yaml @@ -0,0 +1,397 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10122 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/chevereto/templates/common.yaml b/charts/dev/chevereto/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/chevereto/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/chevereto/values.yaml b/charts/dev/chevereto/values.yaml new file mode 100644 index 00000000000..3b5b17c8ed2 --- /dev/null +++ b/charts/dev/chevereto/values.yaml @@ -0,0 +1,51 @@ +image: + repository: tccr.io/truecharts/chevereto + pullPolicy: IfNotPresent + tag: v1.5.1 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + CHEVERETO_DB_DRIVER: mysql + CHEVERETO_DB_NAME: "chevereto" + CHEVERETO_DB_USER: "chevereto" + +envValueFrom: + CHEVERETO_DB_HOST: + secretKeyRef: + name: mariadbcreds + key: plainporthost + CHEVERETO_DB_PASS: + secretKeyRef: + name: mariadbcreds + key: mariadb-password + +service: + main: + ports: + main: + targetPort: 80 + port: 10122 + +persistence: + config: + enabled: true + mountPath: "/config" + data: + enabled: true + mountPath: "/data" + varrun: + enabled: true + +mariadb: + enabled: true + mariadbUsername: chevereto + mariadbDatabase: chevereto + existingSecret: "mariadbcreds" diff --git a/charts/dev/couchpotato/Chart.yaml b/charts/dev/couchpotato/Chart.yaml new file mode 100644 index 00000000000..07938d6666d --- /dev/null +++ b/charts/dev/couchpotato/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: couchpotato +version: 0.0.1 +appVersion: 1.0.0 +description: Couchpotato is an automatic NZB and torrent downloader. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/couchpotato +icon: https://couchpota.to/media/images/full.png +keywords: + - couchpotato +sources: + - https://hub.docker.com/r/linuxserver/couchpotato +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/couchpotato/questions.yaml b/charts/dev/couchpotato/questions.yaml new file mode 100644 index 00000000000..3d3d5696cc2 --- /dev/null +++ b/charts/dev/couchpotato/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10139 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 5050 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/couchpotato/templates/common.yaml b/charts/dev/couchpotato/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/couchpotato/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/couchpotato/values.yaml b/charts/dev/couchpotato/values.yaml new file mode 100644 index 00000000000..a04334cc4d4 --- /dev/null +++ b/charts/dev/couchpotato/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/couchpotato + pullPolicy: IfNotPresent + tag: v2021.11.22 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 5050 + port: 10139 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/darktable/Chart.yaml b/charts/dev/darktable/Chart.yaml new file mode 100644 index 00000000000..d7a7f108b27 --- /dev/null +++ b/charts/dev/darktable/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: darktable +version: 0.0.1 +appVersion: 1.0.0 +description: Darktable is an open source photography workflow application and raw developer. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/darktable +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/darktable-logo.png +keywords: + - darktable +sources: + - https://hub.docker.com/r/linuxserver/darktable +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/darktable/questions.yaml b/charts/dev/darktable/questions.yaml new file mode 100644 index 00000000000..bd9e9528fb9 --- /dev/null +++ b/charts/dev/darktable/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10129 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/darktable/templates/common.yaml b/charts/dev/darktable/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/darktable/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/darktable/values.yaml b/charts/dev/darktable/values.yaml new file mode 100644 index 00000000000..55611d360d8 --- /dev/null +++ b/charts/dev/darktable/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/darktable + pullPolicy: IfNotPresent + tag: v3.4.1 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 3000 + port: 10129 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/ddclient/Chart.yaml b/charts/dev/ddclient/Chart.yaml new file mode 100644 index 00000000000..81b8f709443 --- /dev/null +++ b/charts/dev/ddclient/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: ddclient +version: 0.0.1 +appVersion: 1.0.0 +description: Ddclient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/ddclient +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/ddclient-logo.png +keywords: + - ddclient +sources: + - https://hub.docker.com/r/linuxserver/ddclient +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/ddclient/questions.yaml b/charts/dev/ddclient/questions.yaml new file mode 100644 index 00000000000..b96c2214299 --- /dev/null +++ b/charts/dev/ddclient/questions.yaml @@ -0,0 +1,276 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/ddclient/templates/common.yaml b/charts/dev/ddclient/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/ddclient/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/ddclient/values.yaml b/charts/dev/ddclient/values.yaml new file mode 100644 index 00000000000..830f595b7e4 --- /dev/null +++ b/charts/dev/ddclient/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/ddclient + pullPolicy: IfNotPresent + tag: v3.9.1 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + enabled: false + ports: + main: + enabled: false + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/dillinger/Chart.yaml b/charts/dev/dillinger/Chart.yaml new file mode 100644 index 00000000000..aebb72064cf --- /dev/null +++ b/charts/dev/dillinger/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: dillinger +version: 0.0.1 +appVersion: 1.0.0 +description: Dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/dillinger +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/dillinger.png +keywords: + - dillinger +sources: + - https://hub.docker.com/r/linuxserver/dillinger +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/dillinger/questions.yaml b/charts/dev/dillinger/questions.yaml new file mode 100644 index 00000000000..e74ce668b4c --- /dev/null +++ b/charts/dev/dillinger/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10143 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/dillinger/templates/common.yaml b/charts/dev/dillinger/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/dillinger/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/dillinger/values.yaml b/charts/dev/dillinger/values.yaml new file mode 100644 index 00000000000..73a2ed41f58 --- /dev/null +++ b/charts/dev/dillinger/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/dillinger + pullPolicy: IfNotPresent + tag: v3.39.1 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8080 + port: 10143 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/dokuwiki/Chart.yaml b/charts/dev/dokuwiki/Chart.yaml new file mode 100644 index 00000000000..aa16ce68ea7 --- /dev/null +++ b/charts/dev/dokuwiki/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: dokuwiki +version: 0.0.1 +appVersion: 1.0.0 +description: Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/dokuwiki +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/dokuwiki-icon.png +keywords: + - dokuwiki +sources: + - https://hub.docker.com/r/linuxserver/dokuwiki +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/dokuwiki/questions.yaml b/charts/dev/dokuwiki/questions.yaml new file mode 100644 index 00000000000..f601d5edd99 --- /dev/null +++ b/charts/dev/dokuwiki/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10123 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/dokuwiki/templates/common.yaml b/charts/dev/dokuwiki/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/dokuwiki/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/dokuwiki/values.yaml b/charts/dev/dokuwiki/values.yaml new file mode 100644 index 00000000000..ec4d2d2355b --- /dev/null +++ b/charts/dev/dokuwiki/values.yaml @@ -0,0 +1,29 @@ +image: + repository: tccr.io/truecharts/dokuwiki + pullPolicy: IfNotPresent + tag: v2021.11.28 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 80 + port: 10123 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/domoticz/Chart.yaml b/charts/dev/domoticz/Chart.yaml new file mode 100644 index 00000000000..dc16c6f8151 --- /dev/null +++ b/charts/dev/domoticz/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: domoticz +version: 0.0.1 +appVersion: 1.0.0 +description: "Domoticz is a Home Automation System that lets you monitor and configure various devices like Lights, Switches and much more." +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/domoticz +icon: https://raw.githubusercontent.com/domoticz/domoticz/master/www/images/logo.png +keywords: + - domoticz +sources: + - https://hub.docker.com/r/linuxserver/domoticz +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/domoticz/questions.yaml b/charts/dev/domoticz/questions.yaml new file mode 100644 index 00000000000..baf15352550 --- /dev/null +++ b/charts/dev/domoticz/questions.yaml @@ -0,0 +1,462 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: WEBROOT + label: "WEBROOT" + description: "WEBROOT" + schema: + type: string + default: "domoticz" +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10144 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + - variable: comm1 + label: "comm1 Service" + description: "The comm1 service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: comm1 + label: "comm1 Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6144 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 6144 + - variable: comm2 + label: "comm2 Service" + description: "The comm2 service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: comm2 + label: "comm2 Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1443 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 1443 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/domoticz/templates/common.yaml b/charts/dev/domoticz/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/domoticz/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/domoticz/values.yaml b/charts/dev/domoticz/values.yaml new file mode 100644 index 00000000000..1b755ddc744 --- /dev/null +++ b/charts/dev/domoticz/values.yaml @@ -0,0 +1,40 @@ +image: + repository: tccr.io/truecharts/domoticz + pullPolicy: IfNotPresent + tag: v2021.1.20211128 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + WEBROOT: "domoticz" + +service: + main: + ports: + main: + targetPort: 8080 + port: 10144 + comm1: + ports: + comm1: + targetPort: 6144 + port: 6144 + comm2: + ports: + comm2: + targetPort: 1443 + port: 1443 + + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/duckdns/Chart.yaml b/charts/dev/duckdns/Chart.yaml new file mode 100644 index 00000000000..422f5e7e29d --- /dev/null +++ b/charts/dev/duckdns/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: duckdns +version: 0.0.1 +appVersion: 1.0.0 +description: Duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/duckdns +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/duckdns.png +keywords: + - duckdns +sources: + - https://hub.docker.com/r/linuxserver/duckdns +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/duckdns/questions.yaml b/charts/dev/duckdns/questions.yaml new file mode 100644 index 00000000000..2cdafb83e35 --- /dev/null +++ b/charts/dev/duckdns/questions.yaml @@ -0,0 +1,281 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: SUBDOMAINS + label: "SUBDOMAINS" + description: "SUBDOMAINS" + schema: + type: string + default: "" +# Include{containerConfig} + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/duckdns/templates/common.yaml b/charts/dev/duckdns/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/duckdns/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/duckdns/values.yaml b/charts/dev/duckdns/values.yaml new file mode 100644 index 00000000000..658d20f9181 --- /dev/null +++ b/charts/dev/duckdns/values.yaml @@ -0,0 +1,32 @@ +image: + repository: tccr.io/truecharts/duckdns + pullPolicy: IfNotPresent + tag: v2021.11.17 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +secret: + TOKEN: "" + +env: + PUID: 568 + SUBDOMAINS: "" + +service: + main: + enabled: false + ports: + main: + enabled: false + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/embystat/Chart.yaml b/charts/dev/embystat/Chart.yaml new file mode 100644 index 00000000000..81653a09547 --- /dev/null +++ b/charts/dev/embystat/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: embystat +version: 0.0.1 +appVersion: 1.0.0 +description: Embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/embystat +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/embystat-logo.png +keywords: + - embystat +sources: + - https://hub.docker.com/r/linuxserver/embystat +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/embystat/questions.yaml b/charts/dev/embystat/questions.yaml new file mode 100644 index 00000000000..235c112b8d6 --- /dev/null +++ b/charts/dev/embystat/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6555 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 6555 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/embystat/templates/common.yaml b/charts/dev/embystat/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/embystat/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/embystat/values.yaml b/charts/dev/embystat/values.yaml new file mode 100644 index 00000000000..407d0168d45 --- /dev/null +++ b/charts/dev/embystat/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/embystat + pullPolicy: IfNotPresent + tag: v0.2.0 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 6555 + port: 6555 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/emulatorjs/Chart.yaml b/charts/dev/emulatorjs/Chart.yaml new file mode 100644 index 00000000000..19a5c293ffa --- /dev/null +++ b/charts/dev/emulatorjs/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: emulatorjs +version: 0.0.1 +appVersion: 1.0.0 +description: Emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/emulatorjs +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/emulatorjs-logo.png +keywords: + - emulatorjs +sources: + - https://hub.docker.com/r/linuxserver/emulatorjs +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/emulatorjs/questions.yaml b/charts/dev/emulatorjs/questions.yaml new file mode 100644 index 00000000000..ee3e0e0592c --- /dev/null +++ b/charts/dev/emulatorjs/questions.yaml @@ -0,0 +1,457 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10130 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + - variable: front + label: "Front Service" + description: "The front service" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: front + label: "Front Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10124 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + - variable: ipfs + label: "ipfs Service" + description: "The ipfs service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: ipfs + label: "ipfs Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10138 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 4001 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/emulatorjs/templates/common.yaml b/charts/dev/emulatorjs/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/emulatorjs/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/emulatorjs/values.yaml b/charts/dev/emulatorjs/values.yaml new file mode 100644 index 00000000000..5f319324f8f --- /dev/null +++ b/charts/dev/emulatorjs/values.yaml @@ -0,0 +1,38 @@ +image: + repository: tccr.io/truecharts/emulatorjs + pullPolicy: IfNotPresent + tag: v1.4.2 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 3000 + port: 10130 + front: + ports: + front: + targetPort: 80 + port: 10124 + ipfs: + ports: + ipfs: + targetPort: 4001 + port: 10138 + +persistence: + data: + enabled: true + mountPath: "/data" + varrun: + enabled: true diff --git a/charts/dev/endlessh/Chart.yaml b/charts/dev/endlessh/Chart.yaml new file mode 100644 index 00000000000..375e7d11b47 --- /dev/null +++ b/charts/dev/endlessh/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: endlessh +version: 0.0.1 +appVersion: 1.0.0 +description: Endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/endlessh +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/openssh-server-logo.png +keywords: + - endlessh +sources: + - https://hub.docker.com/r/linuxserver/endlessh +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/endlessh/questions.yaml b/charts/dev/endlessh/questions.yaml new file mode 100644 index 00000000000..959996316e9 --- /dev/null +++ b/charts/dev/endlessh/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10128 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 2222 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/endlessh/templates/common.yaml b/charts/dev/endlessh/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/endlessh/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/endlessh/values.yaml b/charts/dev/endlessh/values.yaml new file mode 100644 index 00000000000..49945d2d54c --- /dev/null +++ b/charts/dev/endlessh/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/endlessh + pullPolicy: IfNotPresent + tag: v2021.11.21 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 2222 + port: 10128 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/firefox/Chart.yaml b/charts/dev/firefox/Chart.yaml new file mode 100644 index 00000000000..3987990a948 --- /dev/null +++ b/charts/dev/firefox/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: firefox +version: 0.0.1 +appVersion: 1.0.0 +description: Firefox Browser, also known as Mozilla Firefox or simply Firefox, +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/firefox +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/firefox-logo.png +keywords: + - firefox +sources: + - https://hub.docker.com/r/linuxserver/firefox +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/firefox/questions.yaml b/charts/dev/firefox/questions.yaml new file mode 100644 index 00000000000..f11a51ee9f9 --- /dev/null +++ b/charts/dev/firefox/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10131 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/firefox/templates/common.yaml b/charts/dev/firefox/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/firefox/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/firefox/values.yaml b/charts/dev/firefox/values.yaml new file mode 100644 index 00000000000..9c890cb6b50 --- /dev/null +++ b/charts/dev/firefox/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/firefox + pullPolicy: IfNotPresent + tag: v78.15.0 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 3000 + port: 10131 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/fleet/Chart.yaml b/charts/dev/fleet/Chart.yaml new file mode 100644 index 00000000000..212b20ef0a5 --- /dev/null +++ b/charts/dev/fleet/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: fleet +version: 0.0.1 +appVersion: 1.0.0 +description: Fleet provides an online web interface which displays a set of maintained images from one or more owned repositories. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/fleet +icon: https://raw.githubusercontent.com/truecharts/apps/master/stable/fleet/icon.png?raw=true +keywords: + - fleet +sources: + - https://hub.docker.com/r/linuxserver/fleet +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.19 +- condition: mariadb.enabled + name: mariadb + repository: https://truecharts.org/ + version: 1.0.30 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/fleet/questions.yaml b/charts/dev/fleet/questions.yaml new file mode 100644 index 00000000000..0ec52fe1a56 --- /dev/null +++ b/charts/dev/fleet/questions.yaml @@ -0,0 +1,352 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: fleet_admin_secret + label: "fleet_admin_secret" + schema: + type: string + private: true + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10145 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/fleet/templates/common.yaml b/charts/dev/fleet/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/fleet/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/fleet/values.yaml b/charts/dev/fleet/values.yaml new file mode 100644 index 00000000000..b0f73a29faa --- /dev/null +++ b/charts/dev/fleet/values.yaml @@ -0,0 +1,51 @@ +image: + repository: tccr.io/truecharts/fleet + pullPolicy: IfNotPresent + tag: v2.3.1 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +secret: + # fleet_admin_secret: "" (Optional) + +env: + PUID: 568 + fleet_admin_authentication_type: DATABASE + fleet_database_username: fleet + +envValueFrom: + fleet_database_url: + secretKeyRef: + name: mariadbcreds + key: jdbc-mariadb + fleet_database_password: + secretKeyRef: + name: mariadbcreds + key: mariadb-password + +service: + main: + ports: + main: + targetPort: 8080 + port: 10145 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true + +mariadb: + enabled: true + mariadbUsername: fleet + mariadbDatabase: fleet + existingSecret: "mariadbcreds" diff --git a/charts/dev/foldingathome/Chart.yaml b/charts/dev/foldingathome/Chart.yaml new file mode 100644 index 00000000000..889c62429cb --- /dev/null +++ b/charts/dev/foldingathome/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: foldingathome +version: 0.0.1 +appVersion: 1.0.0 +description: Folding@home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/foldingathome +icon: https://foldingathome.org/wp-content/uploads/2016/09/folding-at-home-logo.png +keywords: + - foldingathome +sources: + - https://hub.docker.com/r/linuxserver/foldingathome +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/foldingathome/questions.yaml b/charts/dev/foldingathome/questions.yaml new file mode 100644 index 00000000000..dd0a5ce286d --- /dev/null +++ b/charts/dev/foldingathome/questions.yaml @@ -0,0 +1,399 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 7396 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 7396 + - variable: control + label: "Control Service" + description: "The control service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: control + label: "Control Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 36330 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 36330 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/foldingathome/templates/common.yaml b/charts/dev/foldingathome/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/foldingathome/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/foldingathome/values.yaml b/charts/dev/foldingathome/values.yaml new file mode 100644 index 00000000000..40310ad6e70 --- /dev/null +++ b/charts/dev/foldingathome/values.yaml @@ -0,0 +1,33 @@ +image: + repository: tccr.io/truecharts/foldingathome + pullPolicy: IfNotPresent + tag: v7.6.21 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 7396 + port: 7396 + control: + ports: + control: + targetPort: 36330 + port: 36330 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/guacd/Chart.yaml b/charts/dev/guacd/Chart.yaml new file mode 100644 index 00000000000..b6bd67e1f40 --- /dev/null +++ b/charts/dev/guacd/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: guacd +version: 0.0.1 +appVersion: 1.0.0 +description: Guacd - Apache Guacamole is a clientless remote desktop gateway. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/guacd +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/guacd.png +keywords: + - guacd +sources: + - https://hub.docker.com/r/linuxserver/guacd +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/guacd/questions.yaml b/charts/dev/guacd/questions.yaml new file mode 100644 index 00000000000..235a7ead1ab --- /dev/null +++ b/charts/dev/guacd/questions.yaml @@ -0,0 +1,278 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "RollingUpdate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4822 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 4822 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/guacd/templates/common.yaml b/charts/dev/guacd/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/guacd/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/guacd/values.yaml b/charts/dev/guacd/values.yaml new file mode 100644 index 00000000000..d7c234756b7 --- /dev/null +++ b/charts/dev/guacd/values.yaml @@ -0,0 +1,25 @@ +image: + repository: tccr.io/truecharts/guacd + pullPolicy: IfNotPresent + tag: v1.3.0 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 4822 + port: 4822 + +persistence: + varrun: + enabled: true diff --git a/charts/dev/habridge/Chart.yaml b/charts/dev/habridge/Chart.yaml new file mode 100644 index 00000000000..68498870981 --- /dev/null +++ b/charts/dev/habridge/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: habridge +version: 0.0.1 +appVersion: 1.0.0 +description: Habridge emulates Philips Hue API to other home automation gateways such as an Amazon Echo/Dot or other systems that support Philips Hue. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/habridge +icon: https://www.bwssystems.com/images/logo.png +keywords: + - habridge +sources: + - https://hub.docker.com/r/linuxserver/habridge +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/habridge/questions.yaml b/charts/dev/habridge/questions.yaml new file mode 100644 index 00000000000..bdb8fa0b420 --- /dev/null +++ b/charts/dev/habridge/questions.yaml @@ -0,0 +1,410 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: SEC_KEY + label: "SEC_KEY" + schema: + type: string + private: true + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10146 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + - variable: comm + label: "comm Service" + description: "The comm service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: comm + label: "comm Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 50000 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 50000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/habridge/templates/common.yaml b/charts/dev/habridge/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/habridge/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/habridge/values.yaml b/charts/dev/habridge/values.yaml new file mode 100644 index 00000000000..af3e576dc08 --- /dev/null +++ b/charts/dev/habridge/values.yaml @@ -0,0 +1,36 @@ +image: + repository: tccr.io/truecharts/habridge + pullPolicy: IfNotPresent + tag: v5.4.0 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +secret: + SEC_KEY: "" + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8080 + port: 10146 + comm: + ports: + comm: + targetPort: 50000 + port: 50000 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/hedgedoc/Chart.yaml b/charts/dev/hedgedoc/Chart.yaml new file mode 100644 index 00000000000..3e2b0e1fbf0 --- /dev/null +++ b/charts/dev/hedgedoc/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: hedgedoc +version: 0.0.1 +appVersion: 1.0.0 +description: HedgeDoc lets you create real-time collaborative markdown notes. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/hedgedoc +icon: https://raw.githubusercontent.com/hedgedoc/hedgedoc.github.io/main/static/icons/android-chrome-512x512.png +keywords: + - hedgedoc +sources: + - https://hub.docker.com/r/linuxserver/hedgedoc +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 +- condition: mariadb.enabled + name: mariadb + repository: https://truecharts.org/ + version: 1.0.30 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/hedgedoc/questions.yaml b/charts/dev/hedgedoc/questions.yaml new file mode 100644 index 00000000000..0766a5ce6b1 --- /dev/null +++ b/charts/dev/hedgedoc/questions.yaml @@ -0,0 +1,295 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: CMD_DOMAIN + label: "CMD_DOMAIN" + description: "CMD_DOMAIN" + schema: + type: string + default: "" + - variable: CMD_PROTOCOL_USESSL + label: "CMD_PROTOCOL_USESSL" + description: "CMD_PROTOCOL_USESSL" + schema: + type: boolean + default: false + - variable: CMD_URL_ADDPORT + label: "CMD_URL_ADDPORT" + description: "CMD_URL_ADDPORT" + schema: + type: boolean + default: true +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10132 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/hedgedoc/templates/common.yaml b/charts/dev/hedgedoc/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/hedgedoc/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/hedgedoc/values.yaml b/charts/dev/hedgedoc/values.yaml new file mode 100644 index 00000000000..e31b02b3ecc --- /dev/null +++ b/charts/dev/hedgedoc/values.yaml @@ -0,0 +1,46 @@ +image: + repository: tccr.io/truecharts/hedgedoc + pullPolicy: IfNotPresent + tag: v1.9.2 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + CMD_DOMAIN: "" + CMD_PROTOCOL_USESSL: false + CMD_URL_ADDPORT: true + DB_NAME: "hedgedoc" + DB_USER: "hedgedoc" + +envValueFrom: + DB_HOST: + secretKeyRef: + name: mariadbcreds + key: plainhost + DB_PASS: + secretKeyRef: + name: mariadbcreds + key: mariadb-password + +service: + main: + ports: + main: + targetPort: 3000 + port: 10132 + +persistence: + varrun: + enabled: true + +mariadb: + enabled: true + mariadbUsername: hedgedoc + mariadbDatabase: hedgedoc + existingSecret: "mariadbcreds" diff --git a/charts/dev/htpcmanager/Chart.yaml b/charts/dev/htpcmanager/Chart.yaml new file mode 100644 index 00000000000..695fe4cb318 --- /dev/null +++ b/charts/dev/htpcmanager/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: htpcmanager +version: 0.0.1 +appVersion: 1.0.0 +description: Htpcmanager is a front end for many htpc related applications. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/htpcmanager +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/htpcmanager-icon.png +keywords: + - htpcmanager +sources: + - https://hub.docker.com/r/linuxserver/htpcmanager +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/htpcmanager/questions.yaml b/charts/dev/htpcmanager/questions.yaml new file mode 100644 index 00000000000..ba960bdd719 --- /dev/null +++ b/charts/dev/htpcmanager/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8085 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8085 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/htpcmanager/templates/common.yaml b/charts/dev/htpcmanager/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/htpcmanager/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/htpcmanager/values.yaml b/charts/dev/htpcmanager/values.yaml new file mode 100644 index 00000000000..39c59412a04 --- /dev/null +++ b/charts/dev/htpcmanager/values.yaml @@ -0,0 +1,31 @@ +image: + repository: tccr.io/truecharts/htpcmanager + pullPolicy: IfNotPresent + tag: v2021.11.17 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + TZ: UTC + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8085 + port: 8085 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/ipfs/Chart.yaml b/charts/dev/ipfs/Chart.yaml new file mode 100644 index 00000000000..6ae355770f6 --- /dev/null +++ b/charts/dev/ipfs/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: ipfs +version: 0.0.1 +appVersion: 1.0.0 +description: Ipfs - A peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/ipfs +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Ipfs-logo-1024-ice-text.png/480px-Ipfs-logo-1024-ice-text.png +keywords: + - ipfs +sources: + - https://hub.docker.com/r/linuxserver/ipfs +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/ipfs/questions.yaml b/charts/dev/ipfs/questions.yaml new file mode 100644 index 00000000000..76b34f8cf17 --- /dev/null +++ b/charts/dev/ipfs/questions.yaml @@ -0,0 +1,515 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10125 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + - variable: peer + label: "peer Service" + description: "The peer service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: peer + label: "peer Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4001 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 4001 + - variable: api + label: "api Service" + description: "The api service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: api + label: "api Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5001 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 5001 + - variable: gateway + label: "gateway Service" + description: "The gateway service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: gateway + label: "gateway Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10147 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/ipfs/templates/common.yaml b/charts/dev/ipfs/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/ipfs/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/ipfs/values.yaml b/charts/dev/ipfs/values.yaml new file mode 100644 index 00000000000..89595658702 --- /dev/null +++ b/charts/dev/ipfs/values.yaml @@ -0,0 +1,44 @@ +image: + repository: tccr.io/truecharts/ipfs + pullPolicy: IfNotPresent + tag: v2.13.0 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 80 + port: 10125 + peer: + ports: + peer: + targetPort: 4001 + port: 4001 + api: + ports: + api: + targetPort: 5001 + port: 5001 + gateway: + ports: + gateway: + targetPort: 8080 + port: 10147 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/kodi-headless/Chart.yaml b/charts/dev/kodi-headless/Chart.yaml new file mode 100644 index 00000000000..094bb2433c4 --- /dev/null +++ b/charts/dev/kodi-headless/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: kodi-headless +version: 0.0.1 +appVersion: 1.0.0 +description: A headless install of kodi in a docker container. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/kodi-headless +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/kodi-banner.png +keywords: + - kodi-headless +sources: + - https://hub.docker.com/r/linuxserver/kodi-headless +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/kodi-headless/questions.yaml b/charts/dev/kodi-headless/questions.yaml new file mode 100644 index 00000000000..4f8329aa156 --- /dev/null +++ b/charts/dev/kodi-headless/questions.yaml @@ -0,0 +1,457 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10148 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + - variable: websocket + label: "websocket Service" + description: "The websocket service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: websocket + label: "websocket Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10152 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 9090 + - variable: esall + label: "esall Service" + description: "The esall service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: esall + label: "esall Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 9777 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 9777 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config/.kodi" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/kodi-headless/templates/common.yaml b/charts/dev/kodi-headless/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/kodi-headless/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/kodi-headless/values.yaml b/charts/dev/kodi-headless/values.yaml new file mode 100644 index 00000000000..7d51e14709d --- /dev/null +++ b/charts/dev/kodi-headless/values.yaml @@ -0,0 +1,39 @@ +image: + repository: tccr.io/truecharts/kodi-headless + pullPolicy: IfNotPresent + tag: v190 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8080 + port: 10148 + websocket: + ports: + websocket: + targetPort: 9090 + port: 10152 + esall: + ports: + esall: + protocol: UDP + targetPort: 9777 + port: 9777 + +persistence: + config: + enabled: true + mountPath: "/config/.kodi" + varrun: + enabled: true diff --git a/charts/dev/libreoffice/Chart.yaml b/charts/dev/libreoffice/Chart.yaml new file mode 100644 index 00000000000..5c409bc21f7 --- /dev/null +++ b/charts/dev/libreoffice/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: libreoffice +version: 0.0.1 +appVersion: 1.0.0 +description: LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/libreoffice +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/libreoffice-logo.png +keywords: + - libreoffice +sources: + - https://hub.docker.com/r/linuxserver/libreoffice +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/libreoffice/questions.yaml b/charts/dev/libreoffice/questions.yaml new file mode 100644 index 00000000000..0a406ce942c --- /dev/null +++ b/charts/dev/libreoffice/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10133 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/libreoffice/templates/common.yaml b/charts/dev/libreoffice/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/libreoffice/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/libreoffice/values.yaml b/charts/dev/libreoffice/values.yaml new file mode 100644 index 00000000000..5160fd0e9d7 --- /dev/null +++ b/charts/dev/libreoffice/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/libreoffice + pullPolicy: IfNotPresent + tag: v6.4.6 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 3000 + port: 10133 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/minetest/Chart.yaml b/charts/dev/minetest/Chart.yaml new file mode 100644 index 00000000000..48384e25a1b --- /dev/null +++ b/charts/dev/minetest/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: minetest +version: 0.0.1 +appVersion: 1.0.0 +description: Minetest (server) is a near-infinite-world block sandbox game and a game engine. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/minetest +icon: https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/minetest-icon.png +keywords: + - minetest +sources: + - https://hub.docker.com/r/linuxserver/minetest +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/minetest/questions.yaml b/charts/dev/minetest/questions.yaml new file mode 100644 index 00000000000..63d0e7b4de7 --- /dev/null +++ b/charts/dev/minetest/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 30000 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 30000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config/.minetest" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/minetest/templates/common.yaml b/charts/dev/minetest/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/minetest/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/minetest/values.yaml b/charts/dev/minetest/values.yaml new file mode 100644 index 00000000000..17d92cc22b5 --- /dev/null +++ b/charts/dev/minetest/values.yaml @@ -0,0 +1,39 @@ +image: + repository: tccr.io/truecharts/minetest + pullPolicy: IfNotPresent + tag: v5.4.1 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + protocol: UDP + targetPort: 30000 + port: 30000 + +probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false + + +persistence: + config: + enabled: true + mountPath: "/config/.minetest" + varrun: + enabled: true diff --git a/charts/dev/minisatip/Chart.yaml b/charts/dev/minisatip/Chart.yaml new file mode 100644 index 00000000000..a9aa3ddfd6d --- /dev/null +++ b/charts/dev/minisatip/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: minisatip +version: 0.0.1 +appVersion: 1.0.0 +description: Minisatip is a multi-threaded satip server version 1.2 that runs under Linux. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/minisatip +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/minisatip-icon.png +keywords: + - minisatip +sources: + - https://hub.docker.com/r/linuxserver/minisatip +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/minisatip/questions.yaml b/charts/dev/minisatip/questions.yaml new file mode 100644 index 00000000000..4a84e8e5f0d --- /dev/null +++ b/charts/dev/minisatip/questions.yaml @@ -0,0 +1,457 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8875 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8875 + - variable: rtsp + label: "rtsp Service" + description: "The rtsp service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: rtsp + label: "rtsp Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 554 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 554 + - variable: discovery + label: "discovery Service" + description: "The discovery service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: discovery + label: "discovery Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1900 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 1900 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/minisatip/templates/common.yaml b/charts/dev/minisatip/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/minisatip/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/minisatip/values.yaml b/charts/dev/minisatip/values.yaml new file mode 100644 index 00000000000..ebcfee29371 --- /dev/null +++ b/charts/dev/minisatip/values.yaml @@ -0,0 +1,39 @@ +image: + repository: tccr.io/truecharts/minisatip + pullPolicy: IfNotPresent + tag: v2021.12.01 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8875 + port: 8875 + rtsp: + ports: + rtsp: + targetPort: 554 + port: 554 + discovery: + ports: + discovery: + protocol: UDP + targetPort: 1900 + port: 1900 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/mysql-workbench/Chart.yaml b/charts/dev/mysql-workbench/Chart.yaml new file mode 100644 index 00000000000..d0071b4b835 --- /dev/null +++ b/charts/dev/mysql-workbench/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: mysql-workbench +version: 0.0.1 +appVersion: 1.0.0 +description: MySQL Workbench is a unified visual tool for database architects, developers and DBAs. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/mysql-workbench +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/mysql-workbench-icon.png +keywords: + - mysql-workbench +sources: + - https://hub.docker.com/r/linuxserver/mysql-workbench +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/mysql-workbench/questions.yaml b/charts/dev/mysql-workbench/questions.yaml new file mode 100644 index 00000000000..2e2885bff6b --- /dev/null +++ b/charts/dev/mysql-workbench/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10134 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/mysql-workbench/templates/common.yaml b/charts/dev/mysql-workbench/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/mysql-workbench/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/mysql-workbench/values.yaml b/charts/dev/mysql-workbench/values.yaml new file mode 100644 index 00000000000..487eaf011ac --- /dev/null +++ b/charts/dev/mysql-workbench/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/mysql-workbench + pullPolicy: IfNotPresent + tag: v8.0.27 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 3000 + port: 10134 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/nano-wallet/Chart.yaml b/charts/dev/nano-wallet/Chart.yaml new file mode 100644 index 00000000000..912e63f886f --- /dev/null +++ b/charts/dev/nano-wallet/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: nano-wallet +version: 0.0.1 +appVersion: 1.0.0 +description: Nano-wallet is a digital payment protocol designed to be accessible and lightweight. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/nano-wallet +icon: https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Nano_logo.png/640px-Nano_logo.png +keywords: + - nano-wallet +sources: + - https://hub.docker.com/r/linuxserver/nano-wallet +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/nano-wallet/questions.yaml b/charts/dev/nano-wallet/questions.yaml new file mode 100644 index 00000000000..41db521b840 --- /dev/null +++ b/charts/dev/nano-wallet/questions.yaml @@ -0,0 +1,278 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "RollingUpdate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10126 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/nano-wallet/templates/common.yaml b/charts/dev/nano-wallet/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/nano-wallet/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/nano-wallet/values.yaml b/charts/dev/nano-wallet/values.yaml new file mode 100644 index 00000000000..80016c8afd7 --- /dev/null +++ b/charts/dev/nano-wallet/values.yaml @@ -0,0 +1,26 @@ +image: + repository: tccr.io/truecharts/nano-wallet + pullPolicy: IfNotPresent + tag: v1.3.2 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 80 + port: 10126 + +persistence: + varrun: + enabled: true diff --git a/charts/dev/ngircd/Chart.yaml b/charts/dev/ngircd/Chart.yaml new file mode 100644 index 00000000000..3126a57d6a8 --- /dev/null +++ b/charts/dev/ngircd/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: ngircd +version: 0.0.1 +appVersion: 1.0.0 +description: Ngircd is a free, portable and lightweight Internet Relay Chat server for small or private networks. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/ngircd +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/ngircd-logo.png +keywords: + - ngircd +sources: + - https://hub.docker.com/r/linuxserver/ngircd +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/ngircd/questions.yaml b/charts/dev/ngircd/questions.yaml new file mode 100644 index 00000000000..f1fa89c8f48 --- /dev/null +++ b/charts/dev/ngircd/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6667 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 6667 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/ngircd/templates/common.yaml b/charts/dev/ngircd/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/ngircd/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/ngircd/values.yaml b/charts/dev/ngircd/values.yaml new file mode 100644 index 00000000000..65bb8c474cc --- /dev/null +++ b/charts/dev/ngircd/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/ngircd + pullPolicy: IfNotPresent + tag: v2021.11.21 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 6667 + port: 6667 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/nntp2nntp/Chart.yaml b/charts/dev/nntp2nntp/Chart.yaml new file mode 100644 index 00000000000..49cf1da1f6a --- /dev/null +++ b/charts/dev/nntp2nntp/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: nntp2nntp +version: 0.0.1 +appVersion: 1.0.0 +description: Nntp2nntp proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/nntp2nntp +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/nntp2nntp.png +keywords: + - nntp2nntp +sources: + - https://hub.docker.com/r/linuxserver/nntp2nntp +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/nntp2nntp/questions.yaml b/charts/dev/nntp2nntp/questions.yaml new file mode 100644 index 00000000000..3eac2109c1e --- /dev/null +++ b/charts/dev/nntp2nntp/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 1563 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 1563 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/nntp2nntp/templates/common.yaml b/charts/dev/nntp2nntp/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/nntp2nntp/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/nntp2nntp/values.yaml b/charts/dev/nntp2nntp/values.yaml new file mode 100644 index 00000000000..45e8a73fc5d --- /dev/null +++ b/charts/dev/nntp2nntp/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/nntp2nntp + pullPolicy: IfNotPresent + tag: v0.3.20211116 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 1563 + port: 1563 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/openvscode-server/Chart.yaml b/charts/dev/openvscode-server/Chart.yaml new file mode 100644 index 00000000000..a239474a841 --- /dev/null +++ b/charts/dev/openvscode-server/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: openvscode-server +version: 0.0.1 +appVersion: 1.0.0 +description: Openvscode-server provides a version of VS Code that runs a server on a remote machine. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/openvscode-server +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/openvscode-server-logo.png +keywords: + - openvscode-server +sources: + - https://hub.docker.com/r/linuxserver/openvscode-server +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/openvscode-server/questions.yaml b/charts/dev/openvscode-server/questions.yaml new file mode 100644 index 00000000000..09ce0d4a1ab --- /dev/null +++ b/charts/dev/openvscode-server/questions.yaml @@ -0,0 +1,358 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: CONNECTION_TOKEN + label: "CONNECTION_TOKEN" + schema: + type: string + private: true + default: "" + - variable: SUDO_PASSWORD + label: "SUDO_PASSWORD" + schema: + type: string + private: true + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10135 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/openvscode-server/templates/common.yaml b/charts/dev/openvscode-server/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/openvscode-server/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/openvscode-server/values.yaml b/charts/dev/openvscode-server/values.yaml new file mode 100644 index 00000000000..07b8e702f82 --- /dev/null +++ b/charts/dev/openvscode-server/values.yaml @@ -0,0 +1,32 @@ +image: + repository: tccr.io/truecharts/openvscode-server + pullPolicy: IfNotPresent + tag: v1.62.3 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +secret: + # CONNECTION_TOKEN: "" (Optional) + # SUDO_PASSWORD: "" (Optional) + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 3000 + port: 10135 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/paperless-ng/Chart.yaml b/charts/dev/paperless-ng/Chart.yaml new file mode 100644 index 00000000000..f22cbda760e --- /dev/null +++ b/charts/dev/paperless-ng/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: paperless-ng +version: 0.0.1 +appVersion: 1.0.0 +description: Paperless-ng is an application by Daniel Quinn and contributors that indexes your scanned documents. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/paperless-ng +icon: https://avatars.githubusercontent.com/u/47271576?v=4 +keywords: + - paperless-ng +sources: + - https://hub.docker.com/r/linuxserver/paperless-ng +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/paperless-ng/questions.yaml b/charts/dev/paperless-ng/questions.yaml new file mode 100644 index 00000000000..fe4d9f76479 --- /dev/null +++ b/charts/dev/paperless-ng/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10140 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/paperless-ng/templates/common.yaml b/charts/dev/paperless-ng/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/paperless-ng/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/paperless-ng/values.yaml b/charts/dev/paperless-ng/values.yaml new file mode 100644 index 00000000000..6c776e5ea9d --- /dev/null +++ b/charts/dev/paperless-ng/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/paperless-ng + pullPolicy: IfNotPresent + tag: v1.5.0 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8000 + port: 10140 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/papermerge/Chart.yaml b/charts/dev/papermerge/Chart.yaml new file mode 100644 index 00000000000..2642d448d3e --- /dev/null +++ b/charts/dev/papermerge/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: papermerge +version: 0.0.1 +appVersion: 1.0.0 +description: Papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/papermerge +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/papermerge-icon.png +keywords: + - papermerge +sources: + - https://hub.docker.com/r/linuxserver/papermerge +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/papermerge/questions.yaml b/charts/dev/papermerge/questions.yaml new file mode 100644 index 00000000000..5d73128cd86 --- /dev/null +++ b/charts/dev/papermerge/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10141 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/papermerge/templates/common.yaml b/charts/dev/papermerge/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/papermerge/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/papermerge/values.yaml b/charts/dev/papermerge/values.yaml new file mode 100644 index 00000000000..2a185cb918a --- /dev/null +++ b/charts/dev/papermerge/values.yaml @@ -0,0 +1,29 @@ +image: + repository: tccr.io/truecharts/papermerge + pullPolicy: IfNotPresent + tag: v2.0.1 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8000 + port: 10141 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/pidgin/Chart.yaml b/charts/dev/pidgin/Chart.yaml new file mode 100644 index 00000000000..95048ee1ed4 --- /dev/null +++ b/charts/dev/pidgin/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: pidgin +version: 0.0.1 +appVersion: 1.0.0 +description: Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/pidgin +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/pidgin-logo.png +keywords: + - pidgin +sources: + - https://hub.docker.com/r/linuxserver/pidgin +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/pidgin/questions.yaml b/charts/dev/pidgin/questions.yaml new file mode 100644 index 00000000000..3f28fa732b4 --- /dev/null +++ b/charts/dev/pidgin/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10136 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/pidgin/templates/common.yaml b/charts/dev/pidgin/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/pidgin/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/pidgin/values.yaml b/charts/dev/pidgin/values.yaml new file mode 100644 index 00000000000..defaff4ea47 --- /dev/null +++ b/charts/dev/pidgin/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/pidgin + pullPolicy: IfNotPresent + tag: v2.14.3 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 3000 + port: 10136 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/projectsend/Chart.yaml b/charts/dev/projectsend/Chart.yaml new file mode 100644 index 00000000000..aa4e9755a00 --- /dev/null +++ b/charts/dev/projectsend/Chart.yaml @@ -0,0 +1,27 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: projectsend +version: 0.0.1 +appVersion: 1.0.0 +description: Projectsend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/projectsend +icon: https://github.com/projectsend/projectsend/blob/develop/assets/img/projectsend-logo.png?raw=true + - projectsend +sources: + - https://hub.docker.com/r/linuxserver/projectsend +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/projectsend/questions.yaml b/charts/dev/projectsend/questions.yaml new file mode 100644 index 00000000000..37925d4594f --- /dev/null +++ b/charts/dev/projectsend/questions.yaml @@ -0,0 +1,347 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: MAX_UPLOAD + label: "MAX_UPLOAD" + description: "MAX_UPLOAD" + schema: + type: int + required: true + default: 5000 +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10127 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 80 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/projectsend/templates/common.yaml b/charts/dev/projectsend/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/projectsend/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/projectsend/values.yaml b/charts/dev/projectsend/values.yaml new file mode 100644 index 00000000000..676f750e06b --- /dev/null +++ b/charts/dev/projectsend/values.yaml @@ -0,0 +1,30 @@ +image: + repository: tccr.io/truecharts/projectsend + pullPolicy: IfNotPresent + tag: v2021.12.10 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + MAX_UPLOAD: 5000 + +service: + main: + ports: + main: + targetPort: 80 + port: 10127 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/pwndrop/Chart.yaml b/charts/dev/pwndrop/Chart.yaml new file mode 100644 index 00000000000..ceee0145d5f --- /dev/null +++ b/charts/dev/pwndrop/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: pwndrop +version: 0.0.1 +appVersion: 1.0.0 +description: Pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/pwndrop +icon: https://raw.githubusercontent.com/kgretzky/pwndrop/master/media/pwndrop-logo-512.png +keywords: + - pwndrop +sources: + - https://hub.docker.com/r/linuxserver/pwndrop +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/pwndrop/questions.yaml b/charts/dev/pwndrop/questions.yaml new file mode 100644 index 00000000000..9c8f7d5def8 --- /dev/null +++ b/charts/dev/pwndrop/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10149 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/pwndrop/templates/common.yaml b/charts/dev/pwndrop/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/pwndrop/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/pwndrop/values.yaml b/charts/dev/pwndrop/values.yaml new file mode 100644 index 00000000000..616725fd2cd --- /dev/null +++ b/charts/dev/pwndrop/values.yaml @@ -0,0 +1,29 @@ +image: + repository: tccr.io/truecharts/pwndrop + pullPolicy: IfNotPresent + tag: v1.0.1 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8080 + port: 10149 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/pydio-cells/Chart.yaml b/charts/dev/pydio-cells/Chart.yaml new file mode 100644 index 00000000000..eb9955deeeb --- /dev/null +++ b/charts/dev/pydio-cells/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: pydio-cells +version: 0.0.1 +appVersion: 1.0.0 +description: Pydio-cells is the nextgen file sharing platform for organizations. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/pydio-cells +icon: https://raw.githubusercontent.com/wiki/pydio/cells/images/PydioCellsColor.png +keywords: + - pydio-cells +sources: + - https://hub.docker.com/r/linuxserver/pydio-cells +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/pydio-cells/questions.yaml b/charts/dev/pydio-cells/questions.yaml new file mode 100644 index 00000000000..4272e0b4d3b --- /dev/null +++ b/charts/dev/pydio-cells/questions.yaml @@ -0,0 +1,404 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: EXTERNALURL + label: "EXTERNALURL" + description: "EXTERNALURL" + schema: + type: string + default: "" +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10150 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + - variable: gprc + label: "gprc Service" + description: "The gprc service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: gprc + label: "gprc Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 33060 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 33060 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/pydio-cells/templates/common.yaml b/charts/dev/pydio-cells/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/pydio-cells/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/pydio-cells/values.yaml b/charts/dev/pydio-cells/values.yaml new file mode 100644 index 00000000000..aaf3967edcd --- /dev/null +++ b/charts/dev/pydio-cells/values.yaml @@ -0,0 +1,34 @@ +image: + repository: tccr.io/truecharts/pydio-cells + pullPolicy: IfNotPresent + tag: v3.0.3 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + EXTERNALURL: "" + +service: + main: + ports: + main: + targetPort: 8080 + port: 10150 + gprc: + ports: + gprc: + targetPort: 33060 + port: 33060 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/pylon/Chart.yaml b/charts/dev/pylon/Chart.yaml new file mode 100644 index 00000000000..9d03b35a36c --- /dev/null +++ b/charts/dev/pylon/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: pylon +version: 0.0.1 +appVersion: 1.0.0 +description: Pylon is a web based integrated development environment. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/pylon +icon: https://raw.githubusercontent.com/truecharts/apps/master/stable/pylon/icon.png?raw=true +keywords: + - pylon +sources: + - https://hub.docker.com/r/linuxserver/pylon +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/pylon/questions.yaml b/charts/dev/pylon/questions.yaml new file mode 100644 index 00000000000..477632b946b --- /dev/null +++ b/charts/dev/pylon/questions.yaml @@ -0,0 +1,362 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + - variable: secret + group: "Container Configuration" + label: "Image Secrets" + schema: + type: dict + attrs: + - variable: PYUSER + label: "PYUSER" + schema: + type: string + default: "" + - variable: PYPASS + label: "PYPASS" + schema: + type: string + private: true + default: "" + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: GITURL + label: "GITURL" + description: "GITURL" + schema: + type: string + default: "" +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3131 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3131 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: code + label: "App code Storage" + description: "Stores the Application code." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/code" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/pylon/templates/common.yaml b/charts/dev/pylon/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/pylon/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/pylon/values.yaml b/charts/dev/pylon/values.yaml new file mode 100644 index 00000000000..52a71efeb0d --- /dev/null +++ b/charts/dev/pylon/values.yaml @@ -0,0 +1,34 @@ +image: + repository: tccr.io/truecharts/pylon + pullPolicy: IfNotPresent + tag: v2.7.0 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +secret: + PYUSER: "" + PYPASS: "" + +env: + PUID: 568 + GITURL: "" + +service: + main: + ports: + main: + targetPort: 3131 + port: 3131 + +persistence: + code: + enabled: true + mountPath: "/code" + varrun: + enabled: true diff --git a/charts/dev/quassel-core/Chart.yaml b/charts/dev/quassel-core/Chart.yaml new file mode 100644 index 00000000000..10923a2d7a3 --- /dev/null +++ b/charts/dev/quassel-core/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: quassel-core +version: 0.0.1 +appVersion: 1.0.0 +description: Quassel-core is a modern, cross-platform, distributed IRC client. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/quassel-core +icon: http://icons.iconarchive.com/icons/oxygen-icons.org/oxygen/256/Apps-quassel-icon.png +keywords: + - quassel-core +sources: + - https://hub.docker.com/r/linuxserver/quassel-core +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 +- condition: postgresql.enabled + name: postgresql + repository: https://truecharts.org/ + version: 6.0.27 +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/quassel-core/questions.yaml b/charts/dev/quassel-core/questions.yaml new file mode 100644 index 00000000000..ab6cd1bec58 --- /dev/null +++ b/charts/dev/quassel-core/questions.yaml @@ -0,0 +1,336 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4242 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 4242 + - variable: ident + label: "ident Service" + description: "The ident service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: ident + label: "ident Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10113 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 10113 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/quassel-core/templates/common.yaml b/charts/dev/quassel-core/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/quassel-core/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/quassel-core/values.yaml b/charts/dev/quassel-core/values.yaml new file mode 100644 index 00000000000..70b731cd784 --- /dev/null +++ b/charts/dev/quassel-core/values.yaml @@ -0,0 +1,52 @@ +image: + repository: tccr.io/truecharts/quassel-core + pullPolicy: IfNotPresent + tag: v0.13.1 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + DB_BACKEND: "PostgreSQL" + DB_PGSQL_USERNAME: "quassel-core" + DB_PGSQL_PORT: 5432 + AUTH_AUTHENTICATOR: "Database" + RUN_OPTS: "--config-from-environment" + +envValueFrom: + DB_PGSQL_PASSWORD: + secretKeyRef: + name: dbcreds + key: postgresql-password + DB_PGSQL_HOSTNAME: + secretKeyRef: + name: dbcreds + key: plainhost + +service: + main: + ports: + main: + targetPort: 4242 + port: 4242 + ident: + ports: + ident: + targetPort: 10113 + port: 10113 + +persistence: + varrun: + enabled: true + +postgresql: + enabled: true + existingSecret: "dbcreds" + postgresqlUsername: quassel-core + postgresqlDatabase: quassel-core diff --git a/charts/dev/quassel-web/Chart.yaml b/charts/dev/quassel-web/Chart.yaml new file mode 100644 index 00000000000..8999adcc232 --- /dev/null +++ b/charts/dev/quassel-web/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: quassel-web +version: 0.0.1 +appVersion: 1.0.0 +description: Quassel-web is a web client for Quassel. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/quassel-web +icon: http://icons.iconarchive.com/icons/oxygen-icons.org/oxygen/256/Apps-quassel-icon.png +keywords: + - quassel-web +sources: + - https://hub.docker.com/r/linuxserver/quassel-web +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/quassel-web/questions.yaml b/charts/dev/quassel-web/questions.yaml new file mode 100644 index 00000000000..25fcc5261dc --- /dev/null +++ b/charts/dev/quassel-web/questions.yaml @@ -0,0 +1,358 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: URL_BASE + label: "URL_BASE" + description: "URL_BASE" + schema: + type: string + default: "" + - variable: QUASSEL_CORE + label: "QUASSEL_CORE" + description: "QUASSEL_CORE" + schema: + type: string + default: "0.0.0.0" + - variable: QUASSEL_PORT + label: "QUASSEL_PORT" + description: "QUASSEL_PORT" + schema: + type: int + default: 4242 +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 64080 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 64080 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/quassel-web/templates/common.yaml b/charts/dev/quassel-web/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/quassel-web/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/quassel-web/values.yaml b/charts/dev/quassel-web/values.yaml new file mode 100644 index 00000000000..142a7792f5d --- /dev/null +++ b/charts/dev/quassel-web/values.yaml @@ -0,0 +1,32 @@ +image: + repository: tccr.io/truecharts/quassel-web + pullPolicy: IfNotPresent + tag: v2021.11.18 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + URL_BASE: "" + QUASSEL_CORE: "0.0.0.0" + QUASSEL_PORT: 4242 + +service: + main: + ports: + main: + targetPort: 64080 + port: 64080 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/requestrr/Chart.yaml b/charts/dev/requestrr/Chart.yaml new file mode 100644 index 00000000000..91d1ef1d3fb --- /dev/null +++ b/charts/dev/requestrr/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: requestrr +version: 0.0.1 +appVersion: 1.0.0 +description: Requestrr is a chatbot used to simplify using services like Sonarr/Radarr/Ombi via the use of chat. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/requestrr +icon: https://raw.githubusercontent.com/darkalfx/requestrr/master/Logos/requestrr_discord_Icon_512.png +keywords: + - requestrr +sources: + - https://hub.docker.com/r/linuxserver/requestrr +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/requestrr/questions.yaml b/charts/dev/requestrr/questions.yaml new file mode 100644 index 00000000000..5ab7d1bf871 --- /dev/null +++ b/charts/dev/requestrr/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 4545 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 4545 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/requestrr/templates/common.yaml b/charts/dev/requestrr/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/requestrr/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/requestrr/values.yaml b/charts/dev/requestrr/values.yaml new file mode 100644 index 00000000000..e199df006fa --- /dev/null +++ b/charts/dev/requestrr/values.yaml @@ -0,0 +1,29 @@ +image: + repository: tccr.io/truecharts/requestrr + pullPolicy: IfNotPresent + tag: v2.1.1 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 4545 + port: 4545 + +persistence: + config: + enabled: true + mountPath: "/config" + varrun: + enabled: true diff --git a/charts/dev/rsnapshot/Chart.yaml b/charts/dev/rsnapshot/Chart.yaml new file mode 100644 index 00000000000..c563e339d4d --- /dev/null +++ b/charts/dev/rsnapshot/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: rsnapshot +version: 0.0.1 +appVersion: 1.0.0 +description: Rsnapshot is a filesystem snapshot utility based on rsync. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/rsnapshot +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/rsnapshot.png +keywords: + - rsnapshot +sources: + - https://hub.docker.com/r/linuxserver/rsnapshot +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/rsnapshot/questions.yaml b/charts/dev/rsnapshot/questions.yaml new file mode 100644 index 00000000000..b96c2214299 --- /dev/null +++ b/charts/dev/rsnapshot/questions.yaml @@ -0,0 +1,276 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/rsnapshot/templates/common.yaml b/charts/dev/rsnapshot/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/rsnapshot/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/rsnapshot/values.yaml b/charts/dev/rsnapshot/values.yaml new file mode 100644 index 00000000000..0ec1ef61242 --- /dev/null +++ b/charts/dev/rsnapshot/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/rsnapshot + pullPolicy: IfNotPresent + tag: v1.4.3 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + enabled: false + ports: + main: + enabled: false + +persistence: + varrun: + enabled: true + config: + enabled: true + mountPath: /config diff --git a/charts/dev/scrutiny/Chart.yaml b/charts/dev/scrutiny/Chart.yaml new file mode 100644 index 00000000000..f5c98ddf4e8 --- /dev/null +++ b/charts/dev/scrutiny/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: scrutiny +version: 0.0.1 +appVersion: 1.0.0 +description: Scrutiny WebUI for smartd S.M.A.R.T monitoring. Scrutiny is a Hard Drive Health Dashboard & Monitoring solution. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/scrutiny +icon: https://raw.githubusercontent.com/AnalogJ/scrutiny/master/webapp/frontend/src/assets/images/logo/scrutiny-logo-dark.png +keywords: + - scrutiny +sources: + - https://hub.docker.com/r/linuxserver/scrutiny +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/scrutiny/questions.yaml b/charts/dev/scrutiny/questions.yaml new file mode 100644 index 00000000000..ec7cee3cdd6 --- /dev/null +++ b/charts/dev/scrutiny/questions.yaml @@ -0,0 +1,342 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10151 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8080 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/scrutiny/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: true + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: true + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/scrutiny/templates/common.yaml b/charts/dev/scrutiny/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/scrutiny/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/scrutiny/values.yaml b/charts/dev/scrutiny/values.yaml new file mode 100644 index 00000000000..12cdfdc3d31 --- /dev/null +++ b/charts/dev/scrutiny/values.yaml @@ -0,0 +1,35 @@ +image: + repository: tccr.io/truecharts/scrutiny + pullPolicy: IfNotPresent + tag: v2021.11.18 + +securityContext: + runAsNonRoot: false + privileged: true + allowPrivilegeEscalation: true + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 8080 + port: 10151 + +persistence: + varrun: + enabled: true + config: + enabled: true + mountPath: "/scrutiny/config" + udev: + type: hostPath + hostPath: /run/udev + mountPath: /run/udev + readOnly: true diff --git a/charts/dev/synclounge/Chart.yaml b/charts/dev/synclounge/Chart.yaml new file mode 100644 index 00000000000..88d191ce80e --- /dev/null +++ b/charts/dev/synclounge/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: synclounge +version: 0.0.1 +appVersion: 1.0.0 +description: Synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/synclounge +icon: https://raw.githubusercontent.com/synclounge/synclounge/master/src/assets/images/logos/logo-small-light.png +keywords: + - synclounge +sources: + - https://hub.docker.com/r/linuxserver/synclounge +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/synclounge/questions.yaml b/charts/dev/synclounge/questions.yaml new file mode 100644 index 00000000000..b6a0a59fd9f --- /dev/null +++ b/charts/dev/synclounge/questions.yaml @@ -0,0 +1,283 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "RollingUpdate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + - variable: AUTH_LIST + label: "AUTH_LIST" + description: "AUTH_LIST" + schema: + type: string + default: "" +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 8088 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 8088 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/synclounge/templates/common.yaml b/charts/dev/synclounge/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/synclounge/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/synclounge/values.yaml b/charts/dev/synclounge/values.yaml new file mode 100644 index 00000000000..8c26e628af0 --- /dev/null +++ b/charts/dev/synclounge/values.yaml @@ -0,0 +1,26 @@ +image: + repository: tccr.io/truecharts/synclounge + pullPolicy: IfNotPresent + tag: v5.1.111 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + AUTH_LIST: "" + +service: + main: + ports: + main: + targetPort: 8088 + port: 8088 + +persistence: + varrun: + enabled: true diff --git a/charts/dev/syslog-ng/Chart.yaml b/charts/dev/syslog-ng/Chart.yaml new file mode 100644 index 00000000000..47d8374a54c --- /dev/null +++ b/charts/dev/syslog-ng/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: syslog-ng +version: 0.0.1 +appVersion: 1.0.0 +description: syslog-ng allows you to flexibly collect, parse, classify, rewrite and correlate logs. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/syslog-ng +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/syslog-ng-logo.png +keywords: + - syslog-ng +sources: + - https://hub.docker.com/r/linuxserver/syslog-ng +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/syslog-ng/questions.yaml b/charts/dev/syslog-ng/questions.yaml new file mode 100644 index 00000000000..5d445a6223e --- /dev/null +++ b/charts/dev/syslog-ng/questions.yaml @@ -0,0 +1,457 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6601 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 6601 + - variable: syslog-udp + label: "syslog-udp Service" + description: "The syslog-udp service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: syslog-udp + label: "syslog-udp Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 5514 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "UDP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 5514 + - variable: syslog-tls + label: "syslog-tls Service" + description: "The syslog-tls service." + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: syslog-tls + label: "syslog-tls Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6514 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 6514 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: false + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/syslog-ng/templates/common.yaml b/charts/dev/syslog-ng/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/syslog-ng/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/syslog-ng/values.yaml b/charts/dev/syslog-ng/values.yaml new file mode 100644 index 00000000000..7170b646471 --- /dev/null +++ b/charts/dev/syslog-ng/values.yaml @@ -0,0 +1,40 @@ +image: + repository: tccr.io/truecharts/syslog-ng + pullPolicy: IfNotPresent + tag: v3.30.1 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 6601 + port: 6601 + syslog-udp: + ports: + syslog-udp: + protocol: UDP + targetPort: 5514 + port: 5514 + syslog-tls: + ports: + syslog-tls: + targetPort: 6514 + port: 6514 + +persistence: + varrun: + enabled: true + config: + enabled: true + mountPath: /config diff --git a/charts/dev/ubooquity/Chart.yaml b/charts/dev/ubooquity/Chart.yaml new file mode 100644 index 00000000000..2fc04092c54 --- /dev/null +++ b/charts/dev/ubooquity/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: ubooquity +version: 0.0.1 +appVersion: 1.0.0 +description: Ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/ubooquity +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/ubooquity-banner.png +keywords: + - ubooquity +sources: + - https://hub.docker.com/r/linuxserver/ubooquity +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/ubooquity/questions.yaml b/charts/dev/ubooquity/questions.yaml new file mode 100644 index 00000000000..44e447ef027 --- /dev/null +++ b/charts/dev/ubooquity/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 2202 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 2202 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/ubooquity/templates/common.yaml b/charts/dev/ubooquity/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/ubooquity/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/ubooquity/values.yaml b/charts/dev/ubooquity/values.yaml new file mode 100644 index 00000000000..c6f116f13ca --- /dev/null +++ b/charts/dev/ubooquity/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/ubooquity + pullPolicy: IfNotPresent + tag: v2.1.2 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 2202 + port: 2202 + +persistence: + varrun: + enabled: true + config: + enabled: true + mountPath: /config diff --git a/charts/dev/webgrabplus/Chart.yaml b/charts/dev/webgrabplus/Chart.yaml new file mode 100644 index 00000000000..27204826624 --- /dev/null +++ b/charts/dev/webgrabplus/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: webgrabplus +version: 0.0.1 +appVersion: 1.0.0 +description: Webgrabplus is a multi-site incremental xmltv epg grabber. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/webgrabplus +icon: https://raw.githubusercontent.com/truecharts/apps/master/stable/webgrabplus/icon.png?raw=true +keywords: + - webgrabplus +sources: + - https://hub.docker.com/r/linuxserver/webgrabplus +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/webgrabplus/questions.yaml b/charts/dev/webgrabplus/questions.yaml new file mode 100644 index 00000000000..6c5c50d93fc --- /dev/null +++ b/charts/dev/webgrabplus/questions.yaml @@ -0,0 +1,332 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + - variable: data + label: "App Data Storage" + description: "Stores the Application Data." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/data" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/webgrabplus/templates/common.yaml b/charts/dev/webgrabplus/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/webgrabplus/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/webgrabplus/values.yaml b/charts/dev/webgrabplus/values.yaml new file mode 100644 index 00000000000..9179b699dbf --- /dev/null +++ b/charts/dev/webgrabplus/values.yaml @@ -0,0 +1,31 @@ +image: + repository: tccr.io/truecharts/webgrabplus + pullPolicy: IfNotPresent + tag: v3.2.1 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + enabled: false + ports: + main: + enabled: false + +persistence: + varrun: + enabled: true + config: + enabled: true + mountPath: /config + data: + enabled: true + mountPath: /data diff --git a/charts/dev/wireshark/Chart.yaml b/charts/dev/wireshark/Chart.yaml new file mode 100644 index 00000000000..363e066a1a2 --- /dev/null +++ b/charts/dev/wireshark/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: wireshark +version: 0.0.1 +appVersion: 1.0.0 +description: Wireshark is the world’s foremost and widely-used network protocol analyzer. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/wireshark +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/wireshark-icon.png +keywords: + - wireshark +sources: + - https://hub.docker.com/r/linuxserver/wireshark +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/wireshark/questions.yaml b/charts/dev/wireshark/questions.yaml new file mode 100644 index 00000000000..c3077e5f18e --- /dev/null +++ b/charts/dev/wireshark/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10137 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/wireshark/templates/common.yaml b/charts/dev/wireshark/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/wireshark/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/wireshark/values.yaml b/charts/dev/wireshark/values.yaml new file mode 100644 index 00000000000..0c4057e3ad6 --- /dev/null +++ b/charts/dev/wireshark/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/wireshark + pullPolicy: IfNotPresent + tag: v2.4.5 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 3000 + port: 10137 + +persistence: + varrun: + enabled: true + config: + enabled: true + mountPath: /config diff --git a/charts/dev/znc/Chart.yaml b/charts/dev/znc/Chart.yaml new file mode 100644 index 00000000000..8ef0d5addd4 --- /dev/null +++ b/charts/dev/znc/Chart.yaml @@ -0,0 +1,28 @@ +apiVersion: v2 +kubeVersion: ">=1.16.0-0" +name: znc +version: 0.0.1 +appVersion: 1.0.0 +description: Znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. +type: application +deprecated: false +home: https://github.com/truecharts/apps/tree/master/charts/stable/znc +icon: https://wiki.znc.in/resources/assets/wiki.png +keywords: + - znc +sources: + - https://hub.docker.com/r/linuxserver/znc +dependencies: +- name: common + repository: https://truecharts.org + version: 8.9.16 + # condition: +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +annotations: + truecharts.org/catagories: | + - incubator + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/dev/znc/questions.yaml b/charts/dev/znc/questions.yaml new file mode 100644 index 00000000000..8a4bf689b14 --- /dev/null +++ b/charts/dev/znc/questions.yaml @@ -0,0 +1,341 @@ +# Include{groups} +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" +questions: + - variable: portal + group: "Container Image" + label: "Configure Portal Button" + schema: + type: dict + hidden: true + attrs: + - variable: enabled + label: "Enable" + description: "enable the portal button" + schema: + hidden: true + editable: false + type: boolean + default: true +# Include{global} + + - variable: controller + group: "Controller" + label: "" + schema: + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" +# Include{controllerExpert} + + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + type: dict + attrs: +# Include{fixedEnv} + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 6501 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 6501 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "/config" + hidden: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: false + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + type: dict + attrs: + - 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 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: supplementalGroups + label: "supplemental Groups" + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: "supplemental Group" + schema: + type: int + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: "OnRootMismatch" + enum: + - value: "OnRootMismatch" + description: "OnRootMismatch" + - value: "Always" + description: "Always" + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/dev/znc/templates/common.yaml b/charts/dev/znc/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/dev/znc/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/dev/znc/values.yaml b/charts/dev/znc/values.yaml new file mode 100644 index 00000000000..e8750529f59 --- /dev/null +++ b/charts/dev/znc/values.yaml @@ -0,0 +1,28 @@ +image: + repository: tccr.io/truecharts/znc + pullPolicy: IfNotPresent + tag: v1.8.2 + +securityContext: + runAsNonRoot: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +env: + PUID: 568 + +service: + main: + ports: + main: + targetPort: 6501 + port: 6501 + +persistence: + varrun: + enabled: true + config: + enabled: true + mountPath: /config diff --git a/docs/apps/app-requests.md b/docs/apps/app-requests.md index eafdbb69866..63f27849ac3 100644 --- a/docs/apps/app-requests.md +++ b/docs/apps/app-requests.md @@ -18,21 +18,7 @@ _This list is to track `App Requests` from one place._ - [ ] dnsmasq #711 - [ ] Deemix #628 - [ ] Trackarr #602 -- [ ] Steamcmd & 7 Days to die #599 - [ ] Locast2Plex #473 -- [ ] Taiga #438 -- [ ] Wordpress #437 -- [ ] Synapse (Matrix Server) #410 -- [ ] Umbrel #404 -- [ ] Netdata #280 -- [ ] Appwrite/Parse Framework #278 -- [ ] Requestarr #237 -- [ ] GitLab #227 -- [ ] Scrutiny #198 -- [ ] MovieNight #139 -- [ ] LanCache #138 -- [ ] Phabricator #122 -- [ ] ApacheGuacamole #103 - [ ] n8n #27 - [ ] InfluxDB #5 - [ ] External-Auth-Server #28 @@ -55,10 +41,8 @@ _This list is to track `App Requests` from one place._ - [ ] Suricata #1063 - [ ] Jitsi Meet #1064 - [ ] Mumble Server #1065 -- [ ] Quassel IRC #1070 - [ ] KodBox #1079 - [ ] oauth2-proxy -- [ ] DokuWiki #1115 - [ ] Storj Node #1086 - [ ] PiGallery2 #1116 - [ ] LANraragi #1159 @@ -86,56 +70,17 @@ _This list is to track `App Requests` from one place._ - [ ] Machinaris #1304 - [ ] Ghost #1282 -##### TODO: LSIO containers validated to be plausible SCALE Apps +##### TODO: Requires More-Than-Average effort +- [ ] Taiga #438 (Clusterfuck of containers and already depricated) +- [ ] Netdata #280 +- [ ] Appwrite/Parse Framework #278 +- [ ] GitLab #227 +- [ ] Wordpress #437 +- [ ] Steamcmd & 7 Days to die #599 +- [ ] Synapse (Matrix Server) #410 +- [ ] MovieNight #139 (not a good docker container available) +- [ ] LanCache #138 -- [ ] boinc -- [ ] chevereto -- [ ] couchpotato -- [ ] darktable -- [ ] ddclient -- [ ] dillinger -- [ ] dokuwiki -- [ ] domoticz -- [ ] duckdns -- [ ] embystat -- [ ] emulatorjs -- [ ] endlessh -- [ ] firefox -- [ ] fleet -- [ ] foldingathome -- [ ] guacd -- [ ] habridge -- [ ] hedgedoc -- [ ] htpcmanager -- [ ] ipfs -- [ ] kodi-headless -- [ ] libreoffice -- [ ] limnoria -- [ ] minetest -- [ ] minisatip -- [ ] mysql-workbench -- [ ] nano-wallet -- [ ] netbootxyz -- [ ] ngircd -- [ ] nntp2nntp -- [ ] openvscode-server -- [ ] paperless-ng -- [ ] papermerge -- [ ] pidgin -- [ ] projectsend -- [ ] pwndrop -- [ ] pydio-cells -- [ ] pylon -- [ ] quassel-core -- [ ] quassel-web -- [ ] requestrr -- [ ] rsnapshot -- [ ] synclounge -- [ ] syslog-ng -- [ ] ubooquity -- [ ] webgrabplus -- [ ] wireshark -- [ ] znc #1343 ##### TODO: LSIO containers with known complications @@ -148,7 +93,7 @@ _This list is to track `App Requests` from one place._ - [ ] nginx ( Should be called "nginx-webserver" to prevent ingress-provider confusion ) - [ ] openssh-server ( Maybe call this "openssh-sandbox?" ) - [ ] rutorrent ( needs another container source and has config complications ) -- [ ] scrutiny ( Needs customised solution for direct disk access ) + - [ ] snapdrop ( Not sure about networking requirements/design ) - [ ] serviio ( very niche, no good containers ) @@ -176,6 +121,7 @@ _This list is to track `App Requests` from one place._ - [ ] formalms ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) ) - [ ] projectsend ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) ) - [ ] chyrp-lite +- [ ] limnoria ##### TODO: Requires Postgresql customisation - [ ] Keycloack #1106 @@ -215,10 +161,10 @@ _These Apps have specific requirements or need specific customisation and care_ - [ ] boinc-client ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) ) - [ ] hedgedoc ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) ) - [ ] cryptpad ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) ) +- [ ] netbootxyz ### Apps that not have a specific candidate yet. -- [ ] DMS (Document Manage System) #810 - [ ] Mail Server #274 - [ ] Log Manager #509 - [ ] FTP Client #615 @@ -260,6 +206,8 @@ _These Apps have specific requirements or need specific customisation and care_ :x: wg-easy #1414 ( VPN servers inside the k8s subnet is not great) +:x: Umbrel #404 (not going to be added, not a docker container) + ### LSIO containers not viable for Apps @@ -345,6 +293,8 @@ _These Apps have specific requirements or need specific customisation and care_ :x: sickbeard ( upstream depricated ) +:x: Phabricator #122 + ### Completed App Requests @@ -512,3 +462,55 @@ _These Apps have specific requirements or need specific customisation and care_ - [x] bookstack ( example helm-chart available from [ nicholaswilde ](https://github.com/nicholaswilde/helm-charts) ) - [x] pixapop - [x] grav +- [x] boinc +- [x] chevereto +- [x] couchpotato +- [x] darktable +- [x] ddclient +- [x] dillinger +- [x] dokuwiki +- [x] domoticz +- [x] duckdns +- [x] embystat +- [x] emulatorjs +- [x] endlessh +- [x] firefox +- [x] fleet +- [x] foldingathome +- [x] guacd +- [x] habridge +- [x] hedgedoc +- [x] htpcmanager +- [x] ipfs +- [x] kodi-headless +- [x] libreoffice +- [x] minetest +- [x] minisatip +- [x] mysql-workbench +- [x] nano-wallet +- [x] ngircd +- [x] nntp2nntp +- [x] openvscode-server +- [x] paperless-ng +- [x] papermerge +- [x] pidgin +- [x] projectsend +- [x] pwndrop +- [x] pydio-cells +- [x] pylon +- [x] quassel-core +- [x] quassel-web +- [x] requestrr +- [x] rsnapshot +- [x] synclounge +- [x] syslog-ng +- [x] ubooquity +- [x] webgrabplus +- [x] wireshark +- [x] znc #1343 +- [x] Quassel IRC #1070 +- [x] DokuWiki #1115 +- [x] ApacheGuacamole #103 +- [x] Requestrr #237 +- [x] DMS (Document Manage System) #810 +- [x] scrutiny ( Needs customised solution for direct disk access ) diff --git a/docs/manual/default-ports.md b/docs/manual/default-ports.md index 48571639ebb..61608cf43e4 100644 --- a/docs/manual/default-ports.md +++ b/docs/manual/default-ports.md @@ -5,13 +5,13 @@ These defaults can of course be changed, but as we guarantee "sane, working defa ## Core Apps -| App | Service | Port Name | Port | Protocol | Note | -|:------------|:------------:|:------------:|:-----:|:--------:|:----------------------------------------:| -| k8s-gateway | main | main | 53 | UDP | Potential conflict with pihole | -| traefik | main | main | 9000 | HTTP | Potential conflict with minio (Official) | -| traefik | tcp | web | 9080 | HTTP | Adviced to be moved to port 80 | -| traefik | metrics | metrics | 9100 | HTTP | | -| traefik | tcp | websecure | 9443 | HTTPS | Adviced to be moved to port 443 | +| App | Service | Port Name | Port | Protocol | Note | +| :---------- | :----------: | :----------: | :---: | :------: | :--------------------------------------: | +| k8s-gateway | main | main | 53 | UDP | Potential conflict with pihole | +| traefik | main | main | 9000 | HTTP | Potential conflict with minio (Official) | +| traefik | tcp | web | 9080 | HTTP | Adviced to be moved to port 80 | +| traefik | metrics | metrics | 9100 | HTTP | | +| traefik | tcp | websecure | 9443 | HTTPS | Adviced to be moved to port 443 | | prometheus | main | main | 10086 | HTTP | | | prometheus | alertmanager | alertmanager | 10087 | HTTP | | | prometheus | promop | promop | 10089 | HTTP | | @@ -19,282 +19,345 @@ These defaults can of course be changed, but as we guarantee "sane, working defa ## Stable and Incubator Apps -| App | Service | Port Name | Port | Protocol | Note | -|:---------------------------|:---------------:|:---------------:|:-----:|:--------:|:---------------------------------------:| -| amcrest2mqtt | main | main | - | - | Service disabled | -| leaf2mqtt | main | main | - | - | Service disabled | -| promcord | main | main | - | - | Service disabled | -| protonmail-bridge | main | main | - | - | Service disabled | -| speedtest-exporter | main | main | - | - | Service disabled | -| unpackerr | main | main | - | - | Service disabled | -| unpoller | main | main | - | - | Service disabled | -| uptimerobot-prometheus | main | main | - | - | Service disabled | -| protonmail-bridge | smtp | smtp | 25 | TCP | Potential conflict with other smtp apps | -| anonaddy | smtp | smtp | 25 | TCP | Potential conflict with other smtp apps | -| pihole | dns-tcp | dns-tcp | 53 | TCP | Potential conflict with k8s-gateway | -| pihole | dns | dns | 53 | UDP | Potential conflict with k8s-gateway | -| openldap | main | main | 389 | TCP | | -| openldap | ldaps | ldaps | 636 | TCP | | -| kms | main | main | 1688 | TCP | | -| freeradius | main | main | 1812 | UDP | | -| freeradius | accounting | accounting | 1813 | UDP | | -| node-red | main | main | 1880 | TCP | | -| mosquitto | main | main | 1883 | TCP | | -| owncast | rtmp | rtmp | 1935 | TCP | | -| gitea | ssh | ssh | 2222 | TCP | | -| photoprism | main | main | 2342 | TCP | | -| valheim | valheim | valheim-1 | 2456 | UDP | | -| valheim | valheim | valheim-2 | 2457 | UDP | | -| valheim | valheim | valheim-3 | 2458 | UDP | | -| sqlitebrowser | main | main | 3000 | TCP | | -| uptime-kuma | main | main | 3001 | TCP | | -| vaultwarden | ws | ws | 3012 | TCP | | -| loki | main | main | 3100 | HTTP | | -| jdownloader2 | myjd | myjd | 3129 | TCP | | -| unifi | stun | mstunain | 3478 | UDP | | -| logitech-media-server | playertcp | slimprototcp | 3483 | TCP | | -| logitech-media-server | playerudp | slimprotoudp | 3483 | UDP | | -| ombi | main | main | 3579 | TCP | | -| navidrome | main | main | 4533 | TCP | | -| appdaemon | main | main | 5050 | TCP | | -| overseer | main | main | 5055 | TCP | | -| nzbhydra | main | main | 5076 | TCP | | -| lazylibrarian | main | main | 5299 | TCP | | -| esphome | main | main | 6052 | TCP | | -| novnc | main | main | 6080 | TCP | | -| bazarr | main | main | 6767 | TCP | | -| unifi | speedtest | speedtest | 6789 | TCP | | -| aria2 | main | main | 6800 | TCP | | -| qbittorrent | torrent | torrent | 6881 | TCP | | -| qbittorrent | torrentudp | torrentudp | 6881 | UDP | | -| aria2 | listen | listen | 6888 | TCP | | -| logitech-media-server | main | main | 7000 | TCP | | -| haste-server | main | main | 7777 | TCP | | -| nextcloud | hpb | hpb | 7867 | TCP | | -| radarr | main | main | 7878 | TCP | | -| omada-controller | main | main | 8043 | TCP | | -| odoo | main | main | 8069 | TCP | | -| odoo | odoo | odoo-1 | 8071 | TCP | | -| odoo | odoo | odoo-2 | 8072 | TCP | | -| unifi | comm | comm | 8080 | TCP | | -| calibre | webserver | webserver | 8081 | TCP | | -| traccar | main | main | 8082 | TCP | | -| calibre | main | main | 8083 | TCP | | -| mylar | main | main | 8090 | TCP | | -| zwavejs2mqtt | main | main | 8091 | TCP | | -| jellyfin | main | main | 8096 | TCP | | -| deluge | main | main | 8112 | TCP | | -| home-assistant | main | main | 8123 | TCP | | -| tautulli | main | main | 8181 | TCP | | -| flaresolverr | main | main | 8191 | TCP | | -| duplicati | main | main | 8200 | TCP | | -| tdarr | main | main | 8265 | TCP | | -| tdarr | comm | comm | 8266 | TCP | | -| tdarr-node | main | main | 8267 | TCP | | -| beets | main | main | 8337 | TCP | | -| syncthing | main | main | 8384 | TCP | | -| unifi | main | main | 8443 | HTTPS | | -| gaps | main | main | 8484 | TCP | | -| lidarr | main | main | 8686 | TCP | | -| readarr | main | main | 8787 | TCP | | -| unifi | guestportal | web | 8880 | HTTP | | -| unifi | guestportal | websecure | 8843 | HTTPS | | -| resilio-sync | main | main | 8888 | TCP | | -| sonarr | main | main | 8989 | TCP | | -| valheim | main | main | 9010 | TCP | | -| valheim | supervisor | supervisor | 9011 | TCP | | -| pihole | main | main | 9089 | TCP | | -| minio-console | main | main | 9090 | TCP | | -| authelia | main | main | 9091 | TCP | | -| jacket | main | main | 9117 | HTTP | | -| unpoller | main | metrics | 9130 | TCP | | -| owncloud-ocis | main | main | 9200 | TCP | | -| prowlarr | main | main | 9696 | TCP | | -| uptimerobot-prometheus | main | metrics | 9705 | TCP | | -| speedtest-exporter | main | metrics | 9798 | TCP | | -| tvheadend | main | main | 9981 | TCP | | -| tvheadend | htsp | htsp | 9982 | TCP | | -| teamspeak3 | voice | voice | 9987 | UDP | | -| stash | main | main | 9999 | TCP | | -| ser2sock | main | main | 10000 | TCP | | -| deconz | websocket | websocket | 10001 | TCP | | -| deconz | vnc | vnc | 10002 | TCP | | -| external-service | main | main | 10003 | HTTPS | | -| nullserv | main | main | 10004 | TCP | | -| nullserv | https | https | 10005 | TCP | | -| apache-musicindex | main | main | 10006 | TCP | | -| cryptofolio | main | main | 10007 | TCP | | -| deconz | main | main | 10008 | TCP | | -| dsmr-reader | main | main | 10009 | TCP | | -| freshrss | main | main | 10010 | TCP | | -| teamspeak3 | main | main | 10011 | TCP | | -| grav | main | main | 10012 | TCP | | -| grocy | main | main | 10013 | TCP | | -| heimdall | main | main | 10014 | TCP | | -| kanboard | main | main | 10015 | TCP | | -| librespeed | main | main | 10016 | TCP | | -| lychee | main | main | 10017 | TCP | | -| mealie | main | main | 10018 | TCP | | -| muximux | main | main | 10019 | TCP | | -| nextcloud | main | main | 10020 | TCP | | -| octoprint | main | main | 10021 | TCP | | -| organizr | main | main | 10022 | TCP | | -| gonic | main | main | 10023 | TCP | | -| pgadmin | main | main | 10024 | TCP | | -| photoshow | main | main | 10025 | TCP | | -| phpldapadmin | main | main | 10026 | TCP | | -| piwigo | main | main | 10027 | TCP | | -| pixapop | main | main | 10028 | TCP | | -| recipes | main | main | 10029 | TCP | | -| smokeping | main | main | 10030 | TCP | | -| truecommand | main | main | 10031 | TCP | | -| audacity | main | main | 10032 | TCP | | -| digikam | main | main | 10033 | TCP | | -| doublecommander | main | main | 10034 | TCP | | -| filezilla | main | main | 10035 | TCP | | -| flood | main | main | 10036 | TCP | | -| gitea | main | main | 10037 | TCP | | -| grafana | main | main | 10038 | HTTP | | -| icantbelieveitsnotvaletudo | main | main | 10039 | TCP | | -| littlelink | main | main | 10040 | TCP | | -| mstream | main | main | 10041 | TCP | | -| remmina | main | main | 10042 | TCP | | -| onlyoffice-document-server | main | main | 10043 | TCP | | -| wiki | main | main | 10044 | TCP | | -| wikijs | main | main | 10045 | TCP | | -| zwavejs2mqtt | ws | ws | 10046 | TCP | | -| airsonic | main | main | 10047 | TCP | | -| booksonic-air | main | main | 10048 | TCP | | -| deepstack-cpu | main | main | 10049 | TCP | | -| deepstack-gpu | main | main | 10050 | TCP | | -| firefox-syncserver | main | main | 10051 | TCP | | -| whoogle | main | main | 10052 | TCP | | -| handbrake | main | main | 10053 | TCP | | -| jdownloader2 | main | main | 10054 | TCP | | -| handbrake | vnc | vnc | 10055 | TCP | | -| jdownloader2 | vnc | vnc | 10056 | TCP | | -| nzbget | main | main | 10057 | TCP | | -| friendica | main | main | 10058 | TCP | | -| logitech-media-server | cli | cli | 10059 | TCP | | -| etherpad | main | main | 10060 | TCP | | -| thelounge | main | main | 10061 | TCP | | -| oscam | main | main | 10062 | TCP | | -| code-server | main | main | 10063 | TCP | | -| headphones | main | main | 10064 | TCP | | -| hyperion-ng | main | main | 10065 | TCP | | -| sickgear | main | main | 10066 | TCP | | -| sickchill | main | main | 10067 | TCP | | -| medusa | main | main | 10068 | TCP | | -| babybuddy | main | main | 10069 | TCP | | -| cloud9 | main | main | 10070 | TCP | | -| dizquetv | main | main | 10071 | TCP | | -| focalboard | main | main | 10072 | TCP | | -| golinks | main | main | 10073 | TCP | | -| healthchecks | main | main | 10074 | TCP | | -| pyload | main | main | 10075 | TCP | | -| shorturl | main | main | 10076 | TCP | | -| static | main | main | 10077 | TCP | | -| twtxt | main | main | 10078 | TCP | | -| emby | main | main | 10079 | TCP | | -| calibre | main | main | 10080 | TCP | | -| davos | main | main | 10081 | TCP | | -| fireflyiii | main | main | 10082 | TCP | | -| fossil | main | main | 10083 | TCP | | -| gotify | main | main | 10084 | TCP | | -| komga | main | main | 10085 | TCP | | -| owncast | main | main | 10088 | TCP | | -| openkm | main | main | 10090 | TCP | | -| miniflux | main | main | 10091 | TCP | | -| piaware | main | main | 10092 | TCP | | -| podgrab | main | main | 10093 | TCP | | -| pretend-youre-xyzzy | main | main | 10094 | TCP | | -| qbittorrent | main | main | 10095 | TCP | | -| reg | main | main | 10096 | TCP | | -| sabnzbd | main | main | 10097 | TCP | | -| shiori | main | main | 10098 | TCP | | -| statping | main | main | 10099 | TCP | | -| teedy | main | main | 10100 | TCP | | -| promcord | main | metrics | 10101 | TCP | | -| vaultwarden | main | main | 10102 | TCP | | -| zigbee2mqtt | main | main | 10103 | TCP | | -| tt-rss | main | main | 10104 | TCP | | -| collabora-online | main | main | 10105 | TCP | | -| minio | main | main | 10106 | TCP | | -| minio | console | console | 10107 | TCP | | -| transmission | main | main | 10109 | TCP | | -| anonaddy | main | main | 10110 | TCP | | -| blog | main | main | 10111 | TCP | | -| bookstack | main | main | 10112 | TCP | | -| clarkson | main | main | 10113 | TCP | | -| icinga2 | main | main | 10114 | TCP | | -| icinga2 | https | https | 10115 | TCP | | -| icinga2 | api | api | 10116 | TCP | | -| leantime | main | main | 10117 | TCP | | -| leantime | extra | extra | 10118 | UDP | | -| monica | main | main | 10119 | TCP | | -| snipe-it | main | main | 10120 | TCP | | -| xbackbone | main | main | 10121 | TCP | | -| hyperion-ng | boblightservice | boblightservice | 19333 | TCP | | -| hyperion-ng | jsonservice | jsonservice | 19444 | TCP | | -| hyperion-ng | protobufservice | protobufservice | 19445 | TCP | | -| syncthing | discovery | discovery | 21027 | UDP | | -| syncthing | listeners | tcp | 22000 | TCP | | -| syncthing | listeners-udp | udp | 22000 | UDP | | -| joplin-server | main | main | 22300 | TCP | | -| omada-controller | omada-tcp | omada-tcp1 | 29810 | TCP | | -| omada-controller | omada-udp | omada-udp1 | 29810 | UDP | | -| omada-controller | omada-tcp | omada-tcp2 | 29811 | TCP | | -| omada-controller | omada-udp | omada-udp2 | 29811 | UDP | | -| omada-controller | omada-tcp | omada-tcp3 | 29812 | TCP | | -| omada-controller | omada-udp | omada-udp3 | 29812 | UDP | | -| omada-controller | omada-tcp | omada-tcp4 | 29813 | TCP | | -| omada-controller | omada-udp | omada-udp4 | 29813 | UDP | | -| teamspeak3 | files | files | 30033 | TCP | | -| plex | main | main | 32400 | TCP | Potential conflict with plex (Official) | -| xteve | main | main | 34400 | TCP | | -| appdaemon | tcp | tcp | 51050 | TCP | | -| podgrab | tcp | tcp | 51080 | TCP | | -| deluge | torrent | tcp | 51413 | TCP | | -| deluge | torrent-udp | udp | 51413 | UDP | | -| transmission | torrent | torrent | 51414 | TCP | | -| transmission | torrentudp | torrentudp | 51414 | UDP | | -| resilio-sync | bt-tcp | bt-tcp | 55555 | TCP | | -| resilio-sync | bt-udp | bt-udp | 55555 | UDP | | +| App | Service | Port Name | Port | Protocol | Note | +| :------------------------- | :-------------: | :-------------: | :---: | :------: | :-------------------------------------: | +| amcrest2mqtt | main | main | - | - | Service disabled | +| leaf2mqtt | main | main | - | - | Service disabled | +| promcord | main | main | - | - | Service disabled | +| protonmail-bridge | main | main | - | - | Service disabled | +| speedtest-exporter | main | main | - | - | Service disabled | +| unpackerr | main | main | - | - | Service disabled | +| unpoller | main | main | - | - | Service disabled | +| uptimerobot-prometheus | main | main | - | - | Service disabled | +| ddclient | main | main | - | - | Service disabled | +| duckdns | main | main | - | - | Service disabled | +| webgrabplus | main | main | - | - | Service disabled | +| rsnapshot | main | main | - | - | Service disabled | +| protonmail-bridge | smtp | smtp | 25 | TCP | Potential conflict with other smtp apps | +| anonaddy | smtp | smtp | 25 | TCP | Potential conflict with other smtp apps | +| pihole | dns-tcp | dns-tcp | 53 | TCP | Potential conflict with k8s-gateway | +| pihole | dns | dns | 53 | UDP | Potential conflict with k8s-gateway | +| openldap | main | main | 389 | TCP | | +| minisatip | rtsp | rtsp | 554 | TCP | | +| openldap | ldaps | ldaps | 636 | TCP | | +| domoticz | comm2 | comm2 | 1443 | TCP | | +| nntp2nntp | main | main | 1563 | TCP | | +| kms | main | main | 1688 | TCP | | +| freeradius | main | main | 1812 | UDP | | +| freeradius | accounting | accounting | 1813 | UDP | | +| node-red | main | main | 1880 | TCP | | +| mosquitto | main | main | 1883 | TCP | | +| minisatip | discovery | discovery | 1900 | UDP | | +| owncast | rtmp | rtmp | 1935 | TCP | | +| ubooquity | main | main | 2202 | TCP | | +| gitea | ssh | ssh | 2222 | TCP | | +| photoprism | main | main | 2342 | TCP | | +| valheim | valheim | valheim-1 | 2456 | UDP | | +| valheim | valheim | valheim-2 | 2457 | UDP | | +| valheim | valheim | valheim-3 | 2458 | UDP | | +| sqlitebrowser | main | main | 3000 | TCP | | +| uptime-kuma | main | main | 3001 | TCP | | +| vaultwarden | ws | ws | 3012 | TCP | | +| loki | main | main | 3100 | HTTP | | +| jdownloader2 | myjd | myjd | 3129 | TCP | | +| pylon | main | main | 3131 | TCP | | +| unifi | stun | mstunain | 3478 | UDP | | +| logitech-media-server | playertcp | slimprototcp | 3483 | TCP | | +| logitech-media-server | playerudp | slimprotoudp | 3483 | UDP | | +| ombi | main | main | 3579 | TCP | | +| ipfs | peer | peer | 4001 | TCP | | +| quassel-core | main | main | 4242 | TCP | | +| navidrome | main | main | 4533 | TCP | | +| requestrr | main | main | 4545 | TCP | | +| guacd | main | main | 4822 | TCP | | +| ipfs | api | api | 5001 | TCP | | +| appdaemon | main | main | 5050 | TCP | | +| overseer | main | main | 5055 | TCP | | +| nzbhydra | main | main | 5076 | TCP | | +| lazylibrarian | main | main | 5299 | TCP | | +| syslog-ng | syslog-udp | syslog-udp | 5514 | UDP | | +| esphome | main | main | 6052 | TCP | | +| novnc | main | main | 6080 | TCP | | +| domoticz | comm1 | comm1 | 6144 | TCP | | +| znc | main | main | 6501 | TCP | | +| syslog-ng | syslog-tls | syslog-tls | 6514 | TCP | | +| embystat | main | main | 6555 | TCP | | +| syslog-ng | main | main | 6601 | TCP | | +| ngircd | main | main | 6667 | TCP | | +| bazarr | main | main | 6767 | TCP | | +| unifi | speedtest | speedtest | 6789 | TCP | | +| aria2 | main | main | 6800 | TCP | | +| qbittorrent | torrent | torrent | 6881 | TCP | | +| qbittorrent | torrentudp | torrentudp | 6881 | UDP | | +| aria2 | listen | listen | 6888 | TCP | | +| logitech-media-server | main | main | 7000 | TCP | | +| foldingathome | main | main | 7396 | TCP | | +| haste-server | main | main | 7777 | TCP | | +| nextcloud | hpb | hpb | 7867 | TCP | | +| radarr | main | main | 7878 | TCP | | +| omada-controller | main | main | 8043 | TCP | | +| odoo | main | main | 8069 | TCP | | +| odoo | odoo | odoo-1 | 8071 | TCP | | +| odoo | odoo | odoo-2 | 8072 | TCP | | +| unifi | comm | comm | 8080 | TCP | | +| calibre | webserver | webserver | 8081 | TCP | | +| traccar | main | main | 8082 | TCP | | +| calibre | main | main | 8083 | TCP | | +| htpcmanager | main | main | 8085 | TCP | | +| synclounge | main | main | 8088 | TCP | | +| mylar | main | main | 8090 | TCP | | +| zwavejs2mqtt | main | main | 8091 | TCP | | +| jellyfin | main | main | 8096 | TCP | | +| deluge | main | main | 8112 | TCP | | +| home-assistant | main | main | 8123 | TCP | | +| tautulli | main | main | 8181 | TCP | | +| flaresolverr | main | main | 8191 | TCP | | +| duplicati | main | main | 8200 | TCP | | +| tdarr | main | main | 8265 | TCP | | +| tdarr | comm | comm | 8266 | TCP | | +| tdarr-node | main | main | 8267 | TCP | | +| beets | main | main | 8337 | TCP | | +| syncthing | main | main | 8384 | TCP | | +| unifi | main | main | 8443 | HTTPS | | +| gaps | main | main | 8484 | TCP | | +| lidarr | main | main | 8686 | TCP | | +| readarr | main | main | 8787 | TCP | | +| unifi | guestportal | websecure | 8843 | HTTPS | | +| minisatip | main | main | 8875 | TCP | | +| unifi | guestportal | web | 8880 | HTTP | | +| resilio-sync | main | main | 8888 | TCP | | +| sonarr | main | main | 8989 | TCP | | +| valheim | main | main | 9010 | TCP | | +| valheim | supervisor | supervisor | 9011 | TCP | | +| pihole | main | main | 9089 | TCP | | +| minio-console | main | main | 9090 | TCP | | +| authelia | main | main | 9091 | TCP | | +| jacket | main | main | 9117 | HTTP | | +| unpoller | main | metrics | 9130 | TCP | | +| owncloud-ocis | main | main | 9200 | TCP | | +| prowlarr | main | main | 9696 | TCP | | +| uptimerobot-prometheus | main | metrics | 9705 | TCP | | +| kodi-headless | esall | esall | 9777 | UDP | | +| speedtest-exporter | main | metrics | 9798 | TCP | | +| tvheadend | main | main | 9981 | TCP | | +| tvheadend | htsp | htsp | 9982 | TCP | | +| teamspeak3 | voice | voice | 9987 | UDP | | +| stash | main | main | 9999 | TCP | | +| ser2sock | main | main | 10000 | TCP | | +| deconz | websocket | websocket | 10001 | TCP | | +| deconz | vnc | vnc | 10002 | TCP | | +| external-service | main | main | 10003 | HTTPS | | +| nullserv | main | main | 10004 | TCP | | +| nullserv | https | https | 10005 | TCP | | +| apache-musicindex | main | main | 10006 | TCP | | +| cryptofolio | main | main | 10007 | TCP | | +| deconz | main | main | 10008 | TCP | | +| dsmr-reader | main | main | 10009 | TCP | | +| freshrss | main | main | 10010 | TCP | | +| teamspeak3 | main | main | 10011 | TCP | | +| grav | main | main | 10012 | TCP | | +| grocy | main | main | 10013 | TCP | | +| heimdall | main | main | 10014 | TCP | | +| kanboard | main | main | 10015 | TCP | | +| librespeed | main | main | 10016 | TCP | | +| lychee | main | main | 10017 | TCP | | +| mealie | main | main | 10018 | TCP | | +| muximux | main | main | 10019 | TCP | | +| nextcloud | main | main | 10020 | TCP | | +| octoprint | main | main | 10021 | TCP | | +| organizr | main | main | 10022 | TCP | | +| gonic | main | main | 10023 | TCP | | +| pgadmin | main | main | 10024 | TCP | | +| photoshow | main | main | 10025 | TCP | | +| phpldapadmin | main | main | 10026 | TCP | | +| piwigo | main | main | 10027 | TCP | | +| pixapop | main | main | 10028 | TCP | | +| recipes | main | main | 10029 | TCP | | +| smokeping | main | main | 10030 | TCP | | +| truecommand | main | main | 10031 | TCP | | +| audacity | main | main | 10032 | TCP | | +| digikam | main | main | 10033 | TCP | | +| doublecommander | main | main | 10034 | TCP | | +| filezilla | main | main | 10035 | TCP | | +| flood | main | main | 10036 | TCP | | +| gitea | main | main | 10037 | TCP | | +| grafana | main | main | 10038 | HTTP | | +| icantbelieveitsnotvaletudo | main | main | 10039 | TCP | | +| littlelink | main | main | 10040 | TCP | | +| mstream | main | main | 10041 | TCP | | +| remmina | main | main | 10042 | TCP | | +| onlyoffice-document-server | main | main | 10043 | TCP | | +| wiki | main | main | 10044 | TCP | | +| wikijs | main | main | 10045 | TCP | | +| zwavejs2mqtt | ws | ws | 10046 | TCP | | +| airsonic | main | main | 10047 | TCP | | +| booksonic-air | main | main | 10048 | TCP | | +| deepstack-cpu | main | main | 10049 | TCP | | +| deepstack-gpu | main | main | 10050 | TCP | | +| firefox-syncserver | main | main | 10051 | TCP | | +| whoogle | main | main | 10052 | TCP | | +| handbrake | main | main | 10053 | TCP | | +| jdownloader2 | main | main | 10054 | TCP | | +| handbrake | vnc | vnc | 10055 | TCP | | +| jdownloader2 | vnc | vnc | 10056 | TCP | | +| nzbget | main | main | 10057 | TCP | | +| friendica | main | main | 10058 | TCP | | +| logitech-media-server | cli | cli | 10059 | TCP | | +| etherpad | main | main | 10060 | TCP | | +| thelounge | main | main | 10061 | TCP | | +| oscam | main | main | 10062 | TCP | | +| code-server | main | main | 10063 | TCP | | +| headphones | main | main | 10064 | TCP | | +| hyperion-ng | main | main | 10065 | TCP | | +| sickgear | main | main | 10066 | TCP | | +| sickchill | main | main | 10067 | TCP | | +| medusa | main | main | 10068 | TCP | | +| babybuddy | main | main | 10069 | TCP | | +| cloud9 | main | main | 10070 | TCP | | +| dizquetv | main | main | 10071 | TCP | | +| focalboard | main | main | 10072 | TCP | | +| golinks | main | main | 10073 | TCP | | +| healthchecks | main | main | 10074 | TCP | | +| pyload | main | main | 10075 | TCP | | +| shorturl | main | main | 10076 | TCP | | +| static | main | main | 10077 | TCP | | +| twtxt | main | main | 10078 | TCP | | +| emby | main | main | 10079 | TCP | | +| calibre | main | main | 10080 | TCP | | +| davos | main | main | 10081 | TCP | | +| fireflyiii | main | main | 10082 | TCP | | +| fossil | main | main | 10083 | TCP | | +| gotify | main | main | 10084 | TCP | | +| komga | main | main | 10085 | TCP | | +| owncast | main | main | 10088 | TCP | | +| openkm | main | main | 10090 | TCP | | +| miniflux | main | main | 10091 | TCP | | +| piaware | main | main | 10092 | TCP | | +| podgrab | main | main | 10093 | TCP | | +| pretend-youre-xyzzy | main | main | 10094 | TCP | | +| qbittorrent | main | main | 10095 | TCP | | +| reg | main | main | 10096 | TCP | | +| sabnzbd | main | main | 10097 | TCP | | +| shiori | main | main | 10098 | TCP | | +| statping | main | main | 10099 | TCP | | +| teedy | main | main | 10100 | TCP | | +| promcord | main | metrics | 10101 | TCP | | +| vaultwarden | main | main | 10102 | TCP | | +| zigbee2mqtt | main | main | 10103 | TCP | | +| tt-rss | main | main | 10104 | TCP | | +| collabora-online | main | main | 10105 | TCP | | +| minio | main | main | 10106 | TCP | | +| minio | console | console | 10107 | TCP | | +| transmission | main | main | 10109 | TCP | | +| anonaddy | main | main | 10110 | TCP | | +| blog | main | main | 10111 | TCP | | +| bookstack | main | main | 10112 | TCP | | +| clarkson | main | main | 10113 | TCP | | +| quassel-core | ident | ident | 10113 | TCP | | +| icinga2 | main | main | 10114 | TCP | | +| icinga2 | https | https | 10115 | TCP | | +| icinga2 | api | api | 10116 | TCP | | +| leantime | main | main | 10117 | TCP | | +| leantime | extra | extra | 10118 | UDP | | +| monica | main | main | 10119 | TCP | | +| snipe-it | main | main | 10120 | TCP | | +| xbackbone | main | main | 10121 | TCP | | +| chevereto | main | main | 10122 | TCP | | +| dokuwiki | main | main | 10123 | TCP | | +| emulatorjs | front | front | 10124 | TCP | | +| ipfs | main | main | 10125 | TCP | | +| nano-wallet | main | main | 10126 | TCP | | +| projectsend | main | main | 10127 | TCP | | +| endlessh | main | main | 10128 | TCP | | +| darktable | main | main | 10129 | TCP | | +| emulatorjs | main | main | 10130 | TCP | | +| firefox | main | main | 10131 | TCP | | +| hedgedoc | main | main | 10132 | TCP | | +| libreoffice | main | main | 10133 | TCP | | +| mysql-workbench | main | main | 10134 | TCP | | +| openvscode-server | main | main | 10135 | TCP | | +| pidgin | main | main | 10136 | TCP | | +| wireshark | main | main | 10137 | TCP | | +| emulatorjs | ipfs | ipfs | 10138 | TCP | | +| couchpotato | main | main | 10139 | TCP | | +| paperless-ng | main | main | 10140 | TCP | | +| papermerge | main | main | 10141 | TCP | | +| boinc | main | main | 10142 | TCP | | +| dillinger | main | main | 10143 | TCP | | +| domoticz | main | main | 10144 | TCP | | +| fleet | main | main | 10145 | TCP | | +| habridge | main | main | 10146 | TCP | | +| ipfs | gateway | gateway | 10147 | TCP | | +| kodi-headless | main | main | 10148 | TCP | | +| pwndrop | main | main | 10149 | TCP | | +| pydio-cells | main | main | 10150 | TCP | | +| scrutiny | main | main | 10151 | TCP | | +| kodi-headless | websocket | websocket | 10152 | TCP | | +| hyperion-ng | boblightservice | boblightservice | 19333 | TCP | | +| hyperion-ng | jsonservice | jsonservice | 19444 | TCP | | +| hyperion-ng | protobufservice | protobufservice | 19445 | TCP | | +| syncthing | discovery | discovery | 21027 | UDP | | +| syncthing | listeners | tcp | 22000 | TCP | | +| syncthing | listeners-udp | udp | 22000 | UDP | | +| joplin-server | main | main | 22300 | TCP | | +| omada-controller | omada-tcp | omada-tcp1 | 29810 | TCP | | +| omada-controller | omada-udp | omada-udp1 | 29810 | UDP | | +| omada-controller | omada-tcp | omada-tcp2 | 29811 | TCP | | +| omada-controller | omada-udp | omada-udp2 | 29811 | UDP | | +| omada-controller | omada-tcp | omada-tcp3 | 29812 | TCP | | +| omada-controller | omada-udp | omada-udp3 | 29812 | UDP | | +| omada-controller | omada-tcp | omada-tcp4 | 29813 | TCP | | +| omada-controller | omada-udp | omada-udp4 | 29813 | UDP | | +| minetest | main | main | 30000 | UDP | | +| teamspeak3 | files | files | 30033 | TCP | | +| plex | main | main | 32400 | TCP | Potential conflict with plex (Official) | +| pydio-cells | gprc | gprc | 33060 | TCP | | +| xteve | main | main | 34400 | TCP | | +| foldingathome | control | control | 36330 | TCP | | +| habridge | comm | comm | 50000 | TCP | | +| appdaemon | tcp | tcp | 51050 | TCP | | +| podgrab | tcp | tcp | 51080 | TCP | | +| deluge | torrent | tcp | 51413 | TCP | | +| deluge | torrent-udp | udp | 51413 | UDP | | +| transmission | torrent | torrent | 51414 | TCP | | +| transmission | torrentudp | torrentudp | 51414 | UDP | | +| resilio-sync | bt-tcp | bt-tcp | 55555 | TCP | | +| resilio-sync | bt-udp | bt-udp | 55555 | UDP | | +| quassel-web | main | main | 64080 | TCP | | ## Dependency Apps -| App | Service | Port Name | Port | Protocol | Note | -|:-----------|:-------:|:---------:|:-----:|:--------:|:----:| -| promtail | main | main | 3101 | TCP | | -| mariadb | main | main | 3306 | TCP | | -| postgresql | main | main | 5432 | TCP | | -| redis | main | main | 6379 | TCP | | -| memcached | main | main | 11211 | TCP | | - +| App | Service | Port Name | Port | Protocol | Note | +| :--------- | :-----: | :-------: | :---: | :------: | :--: | +| promtail | main | main | 3101 | TCP | | +| mariadb | main | main | 3306 | TCP | | +| postgresql | main | main | 5432 | TCP | | +| redis | main | main | 6379 | TCP | | +| memcached | main | main | 11211 | TCP | | ## Official Apps -| App | Service | Port | Note | -|:-----------|:-----------:|:-----:|:-----------------------------------------:| -| chia | main | 8444 | | -| chia | farmerPort | 8447 | | -| minio | main | 9000 | Potential conflict with traefik | -| nextcloud | main | 9001 | | -| minio | consolePort | 9002 | | -| machinaris | main | 9003 | | -| ipfs | swarmPort | 9401 | | -| ipfs | apiPort | 9501 | | -| ipfs | gatewayPort | 9880 | | -| collabora | main | 9980 | | -| plex | main | 32400 | Potential conflict with plex (Truecharts) | +| App | Service | Port | Note | +| :--------- | :---------: | :---: | :---------------------------------------: | +| chia | main | 8444 | | +| chia | farmerPort | 8447 | | +| minio | main | 9000 | Potential conflict with traefik | +| nextcloud | main | 9001 | | +| minio | consolePort | 9002 | | +| machinaris | main | 9003 | | +| ipfs | swarmPort | 9401 | | +| ipfs | apiPort | 9501 | | +| ipfs | gatewayPort | 9880 | | +| collabora | main | 9980 | | +| plex | main | 32400 | Potential conflict with plex (Truecharts) | ## TrueNAS Scale Services | Service | Port | Protocol | Note | -|:--------|:----:|:--------:|:----:| -| ssh | 22 | TCP | | +| :------ | :--: | :------: | :--: | +| ssh | 22 | TCP | | | webui | 80 | HTTP | | -| webui | 443 | HTTPS | | +| webui | 443 | HTTPS | | ##### Note: TCP and UPD ports that are the same in some Apps, are not by mistake. diff --git a/templates/app/Chart.yaml b/templates/app/Chart.yaml index e397eedb6bf..6082ba27be5 100644 --- a/templates/app/Chart.yaml +++ b/templates/app/Chart.yaml @@ -1,18 +1,17 @@ apiVersion: v2 kubeVersion: ">=1.16.0-0" -name: ${CHARTNAME} -version: 1.0.18 -upstream_version: 1.1.0 +name: CHARTNAME +version: 0.0.1 appVersion: 1.0.0 -description: ${CHARTNAME} App for TrueNAS SCALE +description: CHARTNAME App for TrueNAS SCALE type: application deprecated: false -home: https://github.com/truecharts/apps/tree/master/charts/${CHARTNAME} -icon: https://raw.githubusercontent.com/truecharts/apps/master/stable/${CHARTNAME}/icon.png?raw=true +home: https://github.com/truecharts/apps/tree/master/charts/stable/CHARTNAME +icon: https://raw.githubusercontent.com/truecharts/apps/master/stable/CHARTNAME/icon.png?raw=true keywords: - - ${CHARTNAME} + - CHARTNAME sources: - - https://github.com/truecharts/apps/tree/master/charts/${CHARTNAME} + - https://github.com/truecharts/apps/tree/master/charts/CHARTNAME dependencies: - name: common repository: https://truecharts.org diff --git a/templates/app/README.md b/templates/app/README.md deleted file mode 100644 index 22067f7ff3a..00000000000 --- a/templates/app/README.md +++ /dev/null @@ -1,117 +0,0 @@ -# ${CHARTNAME} - -![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square) - -${CHARTNAME} helm package - -**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)** - -## Source Code - -* -* - -## Requirements - -Kubernetes: `>=1.16.0-0` - -## Dependencies - -| Repository | Name | Version | -|------------|------|---------| -| https://truecharts.org/ | common | 3.0.1 | - -## TL;DR - -```console -helm repo add k8s-at-home https://k8s-at-home.com/charts/ -helm repo update -helm install ${CHARTNAME} k8s-at-home/${CHARTNAME} -``` - -## Installing the Chart - -To install the chart with the release name `${CHARTNAME}` - -```console -helm install ${CHARTNAME} k8s-at-home/${CHARTNAME} -``` - -## Uninstalling the Chart - -To uninstall the `${CHARTNAME}` deployment - -```console -helm uninstall ${CHARTNAME} -``` - -The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release. - -## Configuration - -Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values. -Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common). - -Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. - -```console -helm install ${CHARTNAME} \ - --set env.TZ="America/New York" \ - k8s-at-home/${CHARTNAME} -``` - -Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. - -```console -helm install ${CHARTNAME} k8s-at-home/${CHARTNAME} -f values.yaml -``` - -## Custom configuration - -N/A - -## Values - -**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/) - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| env | object | `{}` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"${CHARTNAME}/${CHARTNAME}"` | | -| image.tag | string | `"1.0.0"` | | -| ingress.enabled | bool | `false` | | -| service.port.port | int | `1880` | | -| strategy.type | string | `"Recreate"` | | - -## Changelog - -All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog). - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -### [1.0.0] - -#### Added - -- N/A - -#### Changed - -- N/A - -#### Removed - -- N/A - -[1.0.0]: #1.0.0 - -## Support - -- See the [Wiki](https://github.com/k8s-at-home/charts/wiki) -- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose) -- Ask a [question](https://github.com/k8s-at-home/charts/discussions) -- Join our [Discord](https://discord.gg/sTMX7Vh) community - ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) diff --git a/templates/app/questions.yaml b/templates/app/questions.yaml index 8a96764bff4..37bde4d05ac 100644 --- a/templates/app/questions.yaml +++ b/templates/app/questions.yaml @@ -24,47 +24,55 @@ questions: type: boolean default: true # Include{global} + - variable: controller group: "Controller" label: "" schema: type: dict attrs: - - variable: type - description: "Please specify type of workload to deploy" - label: "(Advanced) Controller Type" + - variable: advanced + label: "Show Advanced Controller Settings" schema: - type: string - default: "deployment" - required: true - enum: - - value: "deployment" - description: "Deployment" - - value: "statefulset" - description: "Statefulset" - - value: "daemonset" - description: "Daemonset" - - variable: replicas - description: "Number of desired pod replicas" - label: "Desired Replicas" - schema: - type: int - default: 1 - required: true - - variable: strategy - description: "Please specify type of workload to deploy" - label: "(Advanced) Update Strategy" - schema: - type: string - default: "Recreate" - required: true - enum: - - value: "Recreate" - description: "Recreate: Kill existing pods before creating new ones" - - value: "RollingUpdate" - description: "RollingUpdate: Create new pods and then kill old ones" - - value: "OnDelete" - description: "(Legacy) OnDelete: ignore .spec.template changes" + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: type + description: "Please specify type of workload to deploy" + label: "(Advanced) Controller Type" + schema: + type: string + default: "deployment" + required: true + enum: + - value: "deployment" + description: "Deployment" + - value: "statefulset" + description: "Statefulset" + - value: "daemonset" + description: "Daemonset" + - variable: replicas + description: "Number of desired pod replicas" + label: "Desired Replicas" + schema: + type: int + default: 1 + required: true + - variable: strategy + description: "Please specify type of workload to deploy" + label: "(Advanced) Update Strategy" + schema: + type: string + default: "Recreate" + required: true + enum: + - value: "Recreate" + description: "Recreate: Kill existing pods before creating new ones" + - value: "RollingUpdate" + description: "RollingUpdate: Create new pods and then kill old ones" + - value: "OnDelete" + description: "(Legacy) OnDelete: ignore .spec.template changes" # Include{controllerExpert} - variable: env @@ -89,97 +97,58 @@ questions: schema: type: dict attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "NodePort" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - value: "LoadBalancer" - description: "LoadBalancer" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External IP's" - description: "External IP's" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: list - default: [] - items: - - variable: externalIP - label: "External IP" - schema: - type: string - - variable: ports - label: "Service's Port(s) Configuration" - schema: - type: dict - attrs: +# Include{serviceSelector} - variable: main label: "Main Service Port Configuration" schema: type: dict attrs: - - variable: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: protocol - label: "Port Type" - schema: - type: string - default: "HTTP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: targetPort - label: "Target Port" + - variable: port + label: "Port" description: "This port exposes the container port on the service" schema: type: int - default: PLACEHOLDERPORT - editable: false - hidden: true - - variable: port - label: "Container Port" - schema: - type: int - default: PLACEHOLDERPORT - editable: true + default: CHARTPORT required: true - - variable: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort" + - variable: advanced + label: "Show Advanced settings" schema: - type: int - min: 9000 - max: 65535 - default: PLACEHOLDERNODEPORT + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + - variable: protocol + label: "Port Type" + schema: + type: string + default: "HTTP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: CHARTPORT - variable: serviceexpert group: "Networking and Services" @@ -218,105 +187,31 @@ questions: schema: type: boolean default: true + hidden: true - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" schema: type: string - default: "pvc" + default: "simplePVC" enum: - - value: "pvc" - description: "pvc" + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" - value: "emptyDir" description: "emptyDir" + - value: "pvc" + description: "pvc" - value: "hostPath" description: "hostPath" - - variable: storageClass - label: "(Advanced) storageClass" - description: " Warning: Anything other than SCALE-ZFS will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false +# Include{persistenceBasic} - variable: hostPath label: "hostPath" description: "Path inside the container the storage is mounted" schema: show_if: [["type", "=", "hostPath"]] type: hostpath - - variable: hostPathType - label: "hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - variable: mountPath label: "mountPath" description: "Path inside the container the storage is mounted" @@ -336,26 +231,7 @@ questions: description: "Default" - value: "Memory" description: "Memory" - - variable: accessMode - label: "Access Mode (Advanced)" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "100Gi" +# Include{persistenceAdvanced} # Include{persistenceList} - variable: ingress @@ -379,32 +255,39 @@ questions: # Include{ingressList} - - variable: securityContext + - variable: advancedSecurity + label: "Show Advanced Security Settings" group: "Security and Permissions" - label: "Security Context" schema: - type: dict - attrs: - - variable: privileged - label: "Privileged mode" + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" schema: - type: boolean - default: false - - variable: readOnlyRootFilesystem - label: "ReadOnly Root Filesystem" - schema: - type: boolean - default: false - - variable: allowPrivilegeEscalation - label: "Allow Privilege Escalation" - schema: - type: boolean - default: false - - variable: runAsNonRoot - label: "runAsNonRoot" - schema: - type: boolean - default: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true - variable: podSecurityContext group: "Security and Permissions" diff --git a/templates/app/templates/common.yaml b/templates/app/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/templates/app/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/templates/app/values.yaml b/templates/app/values.yaml index c7b5606e779..ef287cc0716 100644 --- a/templates/app/values.yaml +++ b/templates/app/values.yaml @@ -1,29 +1,13 @@ -# -# IMPORTANT NOTE -# -# This chart inherits from our common library chart. You can check the default values/options here: -# https://github.com/k8s-at-home/charts/tree/master/charts/common/values.yaml -# - image: - repository: ${CHARTNAME}/${CHARTNAME} + repository: tccr.io/truecharts/CHARTNAME pullPolicy: IfNotPresent - tag: 1.0.0@sha256:42 + tag: CHARTTAG -# See more environment variables in the ${CHARTNAME} documentation -# https://${CHARTNAME}.org/docs env: {} - # TZ: service: - port: - port: 1880 - -ingress: - enabled: false - -# persistence: -# data: -# enabled: false -# emptyDir: false -# mountPath: /data + main: + ports: + main: + targetPort: CHARTPORT + port: CHARTPORT diff --git a/tools/image-to-app.sh b/tools/image-to-app.sh new file mode 100644 index 00000000000..872a36fba3b --- /dev/null +++ b/tools/image-to-app.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +# The format of the to-app.txt file is as follows: +# PORT:tccr.io/truecharts/CHART:TAG + +for i in $(cat to-app.txt); do + + SOURCE=${i##*/} + PORT=$( echo $i | cut -d':' -f1 ) + PLAIN=$( echo $SOURCE | cut -d':' -f1 ) + TAG=$( echo $SOURCE | cut -d':' -f2 ) + CLEANTAG=${TAG//$'\r'/} + CLEANPORT=${PORT//$'\r'/} + CLEAN=${PLAIN//$'\r'/} + echo "${CLEAN##*|} ${CLEANTAG}" + mkdir -p charts/dev/${CLEAN} + cp -rf templates/app/* charts/dev/${CLEAN} + sed -i "s|CHARTNAME|${CLEAN}|g" charts/dev/${CLEAN}/Chart.yaml + sed -i "s|CHARTNAME|${CLEAN}|g" charts/dev/${CLEAN}/values.yaml + sed -i "s|CHARTTAG|${CLEANTAG}|g" charts/dev/${CLEAN}/values.yaml + sed -i "s|CHARTPORT|${CLEANPORT}|g" charts/dev/${CLEAN}/values.yaml + sed -i "s|CHARTPORT|${CLEANPORT}|g" charts/dev/${CLEAN}/questions.yaml + done diff --git a/tools/port-from-lsio.sh b/tools/port-from-lsio.sh new file mode 100644 index 00000000000..6d757cfe2a5 --- /dev/null +++ b/tools/port-from-lsio.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +# The format of the to-app.txt file is as follows: +# tccr.io/truecharts/CHART:TAG + +for i in $(cat to-app.txt); do + + PLAIN=${i##*/} + PLAIN=$( echo $PLAIN | cut -d':' -f1 ) + CLEAN=${PLAIN//$'\r'/} + echo ${CLEAN##*|} + PORT=$(curl -v --silent https://raw.githubusercontent.com/linuxserver/docker-${CLEAN}/master/README.md | grep " \-p" | grep ':' | head -1 | cut -d':' -f1 | cut -d' ' -f4) + echo "${PORT}:${i}" >> output.txt + done