* style: Split long lines, follow .editorconfig Signed-off-by: Dan Christensen <opello@opello.org> * fix: Clarify why some sources are being excluded The explanation is also meant to remind anyone that sees it that the code could inadvertently remove a sources sequence entry that was intentionally added, because it can not tell. Signed-off-by: Dan Christensen <opello@opello.org> * fix: Comment the image-to-URL code Signed-off-by: Dan Christensen <opello@opello.org> * refactor: Use case instead of if-ladder This is a faithful move from the if-ladder to a case statement that preserves the existing behavior, with optimization to follow. The behavior of the function before and after this change is the same. Signed-off-by: Dan Christensen <opello@opello.org> * fix: Remove dead code No "container source" entry from description_list.md has a scheme. The values are parsed from the Dockerfiles and would not have one there either. Signed-off-by: Dan Christensen <opello@opello.org> * fix: tccr.io image links Parse the tccr.io prefix specifically instead of just checking for the substring tccr which could result in a false positive. The generated link was also going to point to a truecharts subdirectory under mirror in the containers repository that does not exist. Signed-off-by: Dan Christensen <opello@opello.org> * fix: lscr.io image links Parse the lscr.io prefix specifically instead of just checking for the substring lscr which could result in a false positive. The generated link would also return a 404 because the web interface requires the image name to be passed in the query string. Signed-off-by: Dan Christensen <opello@opello.org> * fix: gcr.io image links Parse the gcr.io prefix specifically instead of just checking for the substring gcr which could result in a false positive. Signed-off-by: Dan Christensen <opello@opello.org> * feat: Do not add sources if no prefix is created The intent of this code is to generate URLs to be included in documentation to attribute inputs to the chart. If a publicly accessible URL can not be generated from the image name it makes sense to not add anything and instead rely on a manual edit to the Chart.yaml. Signed-off-by: Dan Christensen <opello@opello.org> * fix: Disable azurecr.io image links There does not seem to be a general purpose web index to the azurecr.io hosted images. Signed-off-by: Dan Christensen <opello@opello.org> * feat: Disable mcr.microsoft.com image links Signed-off-by: Dan Christensen <opello@opello.org> * fix: public.ecr.aws image links Parse the public.ecr.aws prefix specifically instead of just checking for the substring public.ecr.aws which could result in a false positive. Signed-off-by: Dan Christensen <opello@opello.org> * fix: Disable ocir.io image links There does not seem to be a general purpose web index to the ocir.io hosted images. Signed-off-by: Dan Christensen <opello@opello.org> * refactor: Add Docker Hub hosted image links From the perspective of linking to image details on the Docker Hub web interface, there are two types of images: 1. Docker Official Images 2. all of the other images, regardless of their trustworthiness The Docker Official Images can be referenced several ways, either on the command line when passed to docker pull, or in the FROM instruction of a Dockerfile: * busybox * library/busybox * docker.io/busybox * docker.io/library/busybox Furthermore, over the years there have been several domains used for the official Docker Hub registry: * docker.io * index.docker.io * registry-1.docker.io * registry.hub.docker.com The goal here is handling each possible case, which makes Docker Hub images more complex than the handling for other registries. It also makes the case block's '*' (default) case harder to find in the sequence of glob expressions, but this is necessary to avoid repeating the parsing or adding another helper function. Reference: https://github.com/docker/hub-feedback/issues/2113 https://github.com/docker/cli/issues/3793 Signed-off-by: Dan Christensen <opello@opello.org> * feat: ghcr.io image links Signed-off-by: Dan Christensen <opello@opello.org> * feat: quay.io image links Signed-off-by: Dan Christensen <opello@opello.org> * feat: Do not generate likely-bad links By assuming image names that are not handled by other cases are Docker Hub images there is a risk of generating bad links. Minimize this risk by not generating a link if the image name for a Docker Hub link has two slashes. This is a case that should not happen and would likely mean an unsupported registry is being used. There is still a risk of an unsupported registry being treated as Docker Hub and an invalid link being generated. That case is if the domain and image name is example.com/busybox where there is only one slash. Signed-off-by: Dan Christensen <opello@opello.org> * refactor: Sort cases Sort the cases from longest to shortest prioritizing any case with a suffix only glob over any case with a prefix glob. The intention is to avoid having a case that can not be reached. The combined Docker Hub and default case is last. It might make sense to split the default case handling off but it does not seem to be a problem right now. Signed-off-by: Dan Christensen <opello@opello.org> --------- Signed-off-by: Dan Christensen <opello@opello.org>
TrueCharts
Community Chart Catalog for TrueNAS SCALE
TrueCharts is a catalog of highly optimised TrueNAS SCALE Charts. Made for the community, By the community!
Our primary goals are:
-
Micro-Service Centered
-
Native Kubernetes
-
Stability
-
Consistency
All our charts are supposed to work together, be easy to setup using the TrueNAS UI and, above all, give the average user more than enough options to tune things to their liking.
Getting started using TrueCharts
Installing TrueCharts within TrueNAS SCALE, is possible using the TrueNAS SCALE Catalog list.
Check TrueCharts Quick-Start Guides for more information.
Support
Please check our FAQ, manual and Issue tracker There is a significant chance your issue has been reported before!
Still something not working as expected? Contact us! and we'll figure it out together!
Roadmap
For big changes we do have a roadmap, every spot on the roadmap is synced to a TrueNAS SCALE Release and should be read as "Should be added at or before this release"
Restructure of the Project - TrueNAS SCALE "Bluefin" 22.xx ALPHA 1
The current project is hitting internal performance issues, for this reason we need to rework the structure and split some parts of the project into seperate repositories.
Refactor the Common Chart - TrueNAS SCALE "Bluefin" 22.xx ALPHA 2
The shared Common (chart) basis, used by all our Charts, needs some significant code cleanup. Primarily all code needs to follow a standardised format and comply to the same standard
Increased test coverage - TrueNAS SCALE "Bluefin" 22.xx BETA 1
With most parts of our project somewhat cleaned up, we need to work on increasing the coverage of our test system. Our unittests should cover all features and we should also take upgrades into account when testing Chart changes
Development
Our development process is fully distributed and agile, so every chart-maintainer is free to set their own roadmap and development speed and does not have to comply to a centralised roadmap. This ensures freedom and flexibility for everyone involved and makes sure you, the end user, always has the latest and greatest of every Chart installed.
Getting into creating Charts
Creating charts takes some getting used to, as it's based on Helm charts. We highly suggest prior know-how on creation/modifying Helm Charts, before taking on the challenge of creating SCALE Apps.
For more information on creating SCALE Apps and Helm charts, please check out our development manual
Automation and you
We provide a lot of tools to make it easier to develop charts, templates, automated testing, automated fixes, automated docs. Even automated update is included. We also actively try to collaborate with other k8s community projects on tooling, for the betterment of all!
Those tools do, however, take time to develop and are certainly not bug free. If you find mistakes in our tooling, please feel free to repost issues or submit any fixes you feel appropriate!
Contact and Support
To contact the TrueCharts project:
-
Create an issue on Github issues
-
Open a Support Ticket
-
Send us an email
Featured Projects
A lot of our work is based on the great effort of others. We would love to extend special thanks to these projects we owe a lot to:
|
|
|
|
|---|---|---|---|
| TrueNAS SCALE | K8S-At-Home | Traefik | Authelia |
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
Licence
Truecharts, is primarily based on a BSD-3-clause license, this ensures almost everyone can use and modify our charts. As a lot of Charts are based on upstream Helm Charts, Licences can vary on a per-Chart basis. This can easily be seen by the presence of a "LICENSE" file in said folder.
An exception to this, has been made for every document inside folders labeled as docs or doc and their subfolders: those folders are not licensed under BSD-3-clause and are considered "all rights reserved". Said content can be modified and changes submitted per PR, in accordance to the github End User License Agreement.
SPDX-License-Identifier: BSD-3-Clause