Chore: rework SCALE catagories/groups to match helm and remove deprecated charts (#21111)

**Description**
We want to improve the meager-at-best descriptions for the option
groups/catagories on SCALE.
They should also match the naming scheme of Helm/Kubernetes.

With those things combined, we can then link users to the actual common
docs for more indepth info on each available option.
Saving us needlessly duplicated docs that need to be maintained and
giving more indepth information to users.

Having naming schemes that match *actual* kubernetes, also makes it
easier for users to migrate to a true kubernetes platform in the future.

**⚙️ Type of change**

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

**🧪 How Has This Been Tested?**
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

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

**✔️ Checklist:**

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

** App addition**

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

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

---

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

---------

Signed-off-by: Kjeld Schouten <kjeld@schouten-lebbing.nl>
This commit is contained in:
Kjeld Schouten
2024-04-21 14:31:23 +02:00
committed by GitHub
parent d4b5087be7
commit a66fd3357b
1575 changed files with 27029 additions and 13354 deletions
+33 -5
View File
@@ -4,16 +4,44 @@ title: README
## General Info
TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE.
However only installations using the TrueNAS SCALE Apps system are supported.
TrueCharts can be installed as both _normal_ Helm Charts or as TrueNAS SCALE Apps.
Both solutions are fully supported, but we heavily advice the use of normal Helm Charts where possible
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/TRAINPLACEHOLDER/CHARTPLACEHOLDER)
For more information about this Chart, please check the docs on the TrueCharts [website](https://truecharts.org/charts/TRAINPLACEHOLDER/CHARTPLACEHOLDER)
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
## Installation
### Helm-Chart installation
To install TrueCharts Helm charts using Helm, you can use our OCI Repository.
`helm install mychart oci://tccr.io/truecharts/CHARTNAME`
For more information on how to install TrueCharts Helm charts, checkout the instructions on the website: https://truecharts.org/helm/
### TrueNAS SCALE Apps
For more information on how to use TrueCharts as TrueNAS SCALE Apps, please checkout the [quick-start guides for TrueNAS SCALE](https://truecharts.org/scale/guides/scale-intro).
## Configuration Options
To view the chart specific options, please view Values.yaml included in the chart.
All our Charts use a shared "common" library chart that contains most of the templating and options.
For the complete overview of all available options, please checkout the documentation for them on the website: https://truecharts.org/common/
## Chart Specific Guides and information
All our charts have dedicated documentation pages.
The documentation for this chart can be found here:
https://truecharts.org/charts/TRAINPLACEHOLDER/CHARTPLACEHOLDER
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
@@ -23,6 +51,6 @@ For more information about this App, please check the docs on the TrueCharts [we
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
Please consider making a [donation](https://truecharts.org/general/sponsor) or contributing back to the project any way you can!
_All Rights Reserved - The TrueCharts Project_
+2 -2
View File
@@ -1,5 +1,5 @@
# - variable: horizontalPodAutoscaler
# group: Advanced
# group: Experimental
# label: (Advanced) Horizontal Pod Autoscaler
# schema:
# type: list
@@ -51,7 +51,7 @@
# type: int
# default: 80
- variable: networkPolicy
group: Advanced
group: Experimental
label: (Advanced) Network Policy
schema:
type: list
@@ -1,6 +1,6 @@
- variable: TZ
label: Timezone
group: "General Settings"
group: "General"
schema:
type: string
default: "Etc/UTC"
+1 -1
View File
@@ -1,5 +1,5 @@
- variable: global
group: General Settings
group: General
label: "Global Settings"
schema:
additional_attrs: true
+129 -25
View File
@@ -1,35 +1,139 @@
groups:
- name: Container Image
description: Image to be used for container
- name: General Settings
description: General Deployment Settings
- name: Workload Settings
description: Workload Settings
- name: Image
description: |
Configured the images to be used for the Chart.
It's wise to use "digest pinned" tags and to avoid using "latest".
More information can be found here: https://truecharts.org/common/#images
- name: General
description: |
For TrueNAS SCALE We've grouped a number of settings here, that all effact how apps run in general.
More info can be found on their respective pages in manual:
- Global Settings https://truecharts.org/common/global/
- TimeZone https://truecharts.org/common/#tz
- Pod Options https://truecharts.org/common/podoptions/
- Image Pull Secrets
- name: Workload
description: |
These settings configure how the actual Pods and containers are running.
Generally, on SCALE, we only expose a limited subset of these settings for the primary workload and container.
More info on workload options can be found here: https://truecharts.org/common/workload/
Whereas the container options can be found here: https://truecharts.org/common/container/
- name: App Configuration
description: App Specific Config Options
- name: Networking and Services
description: Configure Network and Services for Container
- name: Storage and Persistence
description: Persist and Share Data that is Separate from the Container
description: |
Every application has different values that may be required to run or have multiple options that the user may choose to enable or disable to change the behavior of the application.
Most options should have a Tooltip (Circled Question Mark) to further describe said option.
More information can be found by looking up the chart-specifc docs on the website: https://truecharts.org/charts/description-list/
- name: Services
description: |
Service and Networking options for any applications are contained here.
Some applications may have complicated networking setups with multiple options or some may have no options here at all.
Options here include the service and port configurations for the application, and more may be enabled or changed under the Advanced Settings and Show Expert Config boxes.
Information the Kubernetes service options can be found here: https://truecharts.org/common/service/
- name: Networking
description: |
Contains advanced networking options that are not actively supported by the TrueCharts team.
Currently only contains scaleExternalInterfaces.
Information for which is available here: https://truecharts.org/common/scaleexternalinterface/
- name: Persistence
description: |
Many applications will have certain options for storage to be configurable by the user, the main two being PVC and hostpath but may include other types.
This storage is called Persistence since it is not deleted upon restart or upgrade of an application.
For more information on the many different storage options, checkout the docs here: https://truecharts.org/common/persistence/
For more information on why TrueCharts advices the use of PVC storage, please see: https://truecharts.org/general/faq/#why-pvc-is-recommended-over-hostpath
- name: Ingress
description: Ingress Configuration
- name: Security and Permissions
description: Configure Security Context and Permissions
- name: Resources and Devices
description: "Specify Resources/Devices to be Allocated to Workload"
description: |
Ingress (more commonly known as Reverse Proxy) settings can be configured here. This is how Kubernetes connects your Applications in containers to FQDNs (fully qualified domain names).
If you choose to enable this you must have a "Ingress Provider" aka "Reverse Proxy" installed (We highly advice Traefik: https://truecharts.org/charts/premium/traefik/)
It also requiresa DNS service to actually resolve the DNS name of the FQDN specified.
More info on Ingress configuration options: https://truecharts.org/common/ingress/
- name: SecurityContext
description: |
The security settings for each application and/or permissions that each application may have for the files/directories created.
Each application will come with predefined permissions but users may want to change certain setting depending on their usage or capabilities.
Unless necessary users are advised to keep this section mostly to defaults.
For more information on security settings see: https://truecharts.org/common/securitycontext/
- name: Resources
description: |
Resources limits that have been defined by each application are in this section.
Most will have a specific default that some users may want to change based on their specific hardware or needs.
This also contains the options to mount GPUs or, more precisely, "request" GPU's to be mounted.
For more information checkout: https://truecharts.org/common/resources/
- name: Devices
description: |
These are special "mountpoints" that can be used to mount miscelanious USB and PCI devices using special hostPath mounts.
For clearity we've decided to seperate this from persistence on SCALE.
For more inforation see: https://truecharts.org/common/persistence/device/
- name: Middlewares
description: Traefik Middlewares
- name: StorageClass
description: |
StorageClasses define where to storage Storage.
- name: Metrics
description: Metrics
description: |
Contains options to configure Prometheus metrics for the application.
Checkout https://truecharts.org/common/metrics/ for more info
- name: Addons
description: Addon Configuration
- name: Backup Configuration
description: Configure Velero Backup Schedule
- name: Advanced
description: Advanced Configuration
description: |
Addons that are supplied by the TrueCharts team to add additional capabilities for users to use on top of the applications defaults.
Things included here are VPN addons, Codeserver for editing files inside the applications container, Netshoot for network troubelshooting, etc.
Generally not required for use but may be necessary or usefull at times for specific applications.
For more information see: https://truecharts.org/common/addons/
- name: Experimental
description: |
Experimental Configuration Options
Often these are not fully flushed-out, could randomly break or might not work at-all.
- name: Postgresql
description: Postgresql
description: |
For Postgresql we use "CloudNative-PG" as a backend, which has to be installed first.
For more information see: https://truecharts.org/common/cnpg/
- name: Dependencies
description: Dependencies
description: |
contains dependency setting for which we, currently, do not have seperate catagories (yet)
- name: Documentation
description: Documentation
description: |
We added this section to make everyone aware that OpenSource isn't always easy.
It doesn't keep existing without signficant ongoing support, so please consider supporting TrueCharts and other OpenSource projects.
+2 -2
View File
@@ -1,5 +1,5 @@
- variable: podOptions
group: "General Settings"
group: "General"
label: "Global Pod Options (Advanced)"
schema:
additional_attrs: true
@@ -68,7 +68,7 @@
required: true
- variable: imagePullSecretList
group: "General Settings"
group: "General"
label: "Image Pull Secrets"
schema:
type: list
+2 -2
View File
@@ -1,5 +1,5 @@
- variable: resources
group: Resources and Devices
group: Resources
label: "Resource Limits"
schema:
additional_attrs: true
@@ -65,7 +65,7 @@
valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$'
- variable: deviceList
label: Mount USB Devices
group: Resources and Devices
group: Devices
schema:
type: list
default: []
@@ -0,0 +1,78 @@
- variable: scaleExternalInterface
description: Add External Interfaces
label: Add external Interfaces
group: Networking
schema:
type: list
items:
- variable: interfaceConfiguration
description: Interface Configuration
label: Interface Configuration
schema:
additional_attrs: true
type: dict
$ref:
- "normalize/interfaceConfiguration"
attrs:
- variable: hostInterface
description: Please Specify Host Interface
label: Host Interface
schema:
type: string
required: true
$ref:
- "definitions/interface"
- variable: ipam
description: Define how IP Address will be managed
label: IP Address Management
schema:
additional_attrs: true
type: dict
required: true
attrs:
- variable: type
description: Specify type for IPAM
label: IPAM Type
schema:
type: string
required: true
enum:
- value: dhcp
description: Use DHCP
- value: static
description: Use Static IP
- variable: staticIPConfigurations
label: Static IP Addresses
schema:
type: list
show_if: [["type", "=", "static"]]
items:
- variable: staticIP
label: Static IP
schema:
type: ipaddr
cidr: true
- variable: staticRoutes
label: Static Routes
schema:
type: list
show_if: [["type", "=", "static"]]
items:
- variable: staticRouteConfiguration
label: Static Route Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: destination
label: Destination
schema:
type: ipaddr
cidr: true
required: true
- variable: gateway
label: Gateway
schema:
type: ipaddr
cidr: false
required: true
@@ -1,6 +1,6 @@
- variable: persistenceList
label: Additional App Storage
group: Storage and Persistence
group: Persistence
schema:
type: list
default: []
@@ -1,7 +1,7 @@
- variable: persistence
label: Integrated Persistent Storage
description: Integrated Persistent Storage
group: Storage and Persistence
group: Persistence
schema:
additional_attrs: true
type: dict
+1 -1
View File
@@ -1,5 +1,5 @@
- variable: volumeClaimTemplates
label: Integrated Persistent Storage
description: Integrated Persistent Storage
group: Storage and Persistence
group: Persistence
schema:
@@ -1,5 +1,5 @@
- variable: securityContext
group: Security and Permissions
group: SecurityContext
label: Security Context
schema:
additional_attrs: true
@@ -1,78 +0,0 @@
- variable: scaleExternalInterface
description: Add External Interfaces
label: Add external Interfaces
group: Networking
schema:
type: list
items:
- variable: interfaceConfiguration
description: Interface Configuration
label: Interface Configuration
schema:
additional_attrs: true
type: dict
$ref:
- "normalize/interfaceConfiguration"
attrs:
- variable: hostInterface
description: Please Specify Host Interface
label: Host Interface
schema:
type: string
required: true
$ref:
- "definitions/interface"
- variable: ipam
description: Define how IP Address will be managed
label: IP Address Management
schema:
additional_attrs: true
type: dict
required: true
attrs:
- variable: type
description: Specify type for IPAM
label: IPAM Type
schema:
type: string
required: true
enum:
- value: dhcp
description: Use DHCP
- value: static
description: Use Static IP
- variable: staticIPConfigurations
label: Static IP Addresses
schema:
type: list
show_if: [["type", "=", "static"]]
items:
- variable: staticIP
label: Static IP
schema:
type: ipaddr
cidr: true
- variable: staticRoutes
label: Static Routes
schema:
type: list
show_if: [["type", "=", "static"]]
items:
- variable: staticRouteConfiguration
label: Static Route Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: destination
label: Destination
schema:
type: ipaddr
cidr: true
required: true
- variable: gateway
label: Gateway
schema:
type: ipaddr
cidr: false
required: true
@@ -1,8 +0,0 @@
- variable: serviceexpert
group: Networking and Services
label: Show Expert Config
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
+127 -127
View File
@@ -1,134 +1,134 @@
- variable: serviceList
label: Add Manual Custom Services
group: Networking and Services
- variable: serviceList
label: Add Manual Custom Services
group: Services
schema:
type: list
default: []
items:
- variable: serviceListEntry
label: Custom Service
schema:
type: list
default: []
items:
- variable: serviceListEntry
label: Custom Service
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Enable the service
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Enable the service
schema:
type: boolean
default: true
hidden: true
- variable: name
label: Name
schema:
type: string
default: ""
- variable: type
label: Service Type
description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer"
schema:
type: string
default: LoadBalancer
enum:
- value: LoadBalancer
description: LoadBalancer (Expose Ports)
- value: ClusterIP
description: ClusterIP (Do Not Expose Ports)
- value: Simple
description: Deprecated CHANGE THIS
- variable: loadBalancerIP
label: LoadBalancer IP
description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: string
default: ""
- variable: advancedsvcset
label: Show Advanced Service Settings
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: externalIPs
label: "External IP's"
description: "External IP's"
schema:
type: list
default: []
items:
- variable: externalIP
label: External IP
schema:
type: string
- variable: ipFamilyPolicy
label: IP Family Policy
description: Specify the IP Policy
schema:
type: string
default: SingleStack
enum:
- value: SingleStack
description: SingleStack
- value: PreferDualStack
description: PreferDualStack
- value: RequireDualStack
description: RequireDualStack
- variable: ipFamilies
label: IP Families
description: (Advanced) The IP Families that should be used
schema:
type: list
default: []
items:
- variable: ipFamily
label: IP Family
schema:
type: string
- variable: portsList
label: Additional Service Ports
type: boolean
default: true
hidden: true
- variable: name
label: Name
schema:
type: string
default: ""
- variable: type
label: Service Type
description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer"
schema:
type: string
default: LoadBalancer
enum:
- value: LoadBalancer
description: LoadBalancer (Expose Ports)
- value: ClusterIP
description: ClusterIP (Do Not Expose Ports)
- value: Simple
description: Deprecated CHANGE THIS
- variable: loadBalancerIP
label: LoadBalancer IP
description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB"
schema:
show_if: [["type", "=", "LoadBalancer"]]
type: string
default: ""
- variable: advancedsvcset
label: Show Advanced Service Settings
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: externalIPs
label: "External IP's"
description: "External IP's"
schema:
type: list
default: []
items:
- variable: portsListEntry
label: Custom ports
- variable: externalIP
label: External IP
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Enable the Port
schema:
type: boolean
default: true
hidden: true
- variable: name
label: Port Name
schema:
type: string
default: ""
- variable: protocol
label: Port Type
schema:
type: string
default: tcp
enum:
- value: http
description: HTTP
- value: https
description: HTTPS
- value: tcp
description: TCP
- value: udp
description: UDP
- variable: targetPort
label: Target Port
description: This port exposes the container port on the service
schema:
type: int
required: true
- variable: port
label: Container Port
schema:
type: int
required: true
type: string
- variable: ipFamilyPolicy
label: IP Family Policy
description: Specify the IP Policy
schema:
type: string
default: SingleStack
enum:
- value: SingleStack
description: SingleStack
- value: PreferDualStack
description: PreferDualStack
- value: RequireDualStack
description: RequireDualStack
- variable: ipFamilies
label: IP Families
description: (Advanced) The IP Families that should be used
schema:
type: list
default: []
items:
- variable: ipFamily
label: IP Family
schema:
type: string
- variable: portsList
label: Additional Service Ports
schema:
type: list
default: []
items:
- variable: portsListEntry
label: Custom ports
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Enable the Port
schema:
type: boolean
default: true
hidden: true
- variable: name
label: Port Name
schema:
type: string
default: ""
- variable: protocol
label: Port Type
schema:
type: string
default: tcp
enum:
- value: http
description: HTTP
- value: https
description: HTTPS
- value: tcp
description: TCP
- value: udp
description: UDP
- variable: targetPort
label: Target Port
description: This port exposes the container port on the service
schema:
type: int
required: true
- variable: port
label: Container Port
schema:
type: int
required: true
+1 -1
View File
@@ -1,5 +1,5 @@
- variable: service
group: Networking and Services
group: Services
label: Configure Service(s)
schema:
additional_attrs: true
@@ -1,50 +0,0 @@
- variable: schedules
group: "Backup Configuration"
label: "Backup Schedules"
schema:
type: dict
additional_attrs: true
attrs:
- variable: default
label: "Default Schedule"
schema:
type: dict
additional_attrs: true
attrs:
- variable: enabled
label: "enabled"
schema:
type: boolean
default: false
- variable: schedule
label: "schedule"
show_if: [["enabled", "=", true]]
schema:
type: string
required: true
default: "0 0 0 * * *"
- variable: useOwnerReferencesInBackup
label: "useOwnerReferencesInBackup"
show_if: [["enabled", "=", true]]
schema:
type: boolean
default: false
- variable: template
label: template
show_if: [["enabled", "=", true]]
schema:
additional_attrs: true
type: dict
attrs:
- variable: ttl
label: "ttl"
schema:
type: string
required: true
default: "240h"
- variable: storageLocation
label: "storageLocation"
schema:
type: string
required: true
default: "default"
@@ -1,56 +0,0 @@
- variable: schedulesList
group: "Backup Configuration"
label: "Backup Schedules"
schema:
type: list
items:
- variable: schedulesEntry
label: "Schedule"
schema:
type: dict
additional_attrs: true
attrs:
- variable: enabled
label: "enabled"
schema:
type: boolean
default: true
hidden: true
- variable: name
label: "Name"
schema:
type: string
default: ""
required: true
- variable: schedule
label: "schedule"
show_if: [["enabled", "=", true]]
schema:
type: string
required: true
default: "0 0 0 * * *"
- variable: useOwnerReferencesInBackup
label: "useOwnerReferencesInBackup"
show_if: [["enabled", "=", true]]
schema:
type: boolean
default: false
- variable: template
label: template
show_if: [["enabled", "=", true]]
schema:
additional_attrs: true
type: dict
attrs:
- variable: ttl
label: "ttl"
schema:
type: string
required: true
default: "240h"
- variable: storageLocation
label: "storageLocation"
schema:
type: string
required: true
default: "default"
+1 -1
View File
@@ -1,5 +1,5 @@
- variable: workload
group: "Workload Settings"
group: "Workload"
label: ""
schema:
additional_attrs: true