TrueChartsClone/.github
Dan Christensen 0d4e9d03b9
fix: Build links to Docker images for Chart.yaml (#6963)
* 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>
2023-02-09 13:08:53 +01:00
..
actions feat(apps): Unraid Port - digits (#2437) 2022-04-07 15:25:14 +02:00
containerscan
scripts chore(traefik): Add blacklistMode on geoblock and fix label (#6416) 2023-01-16 11:06:03 +02:00
workflows fix: Build links to Docker images for Chart.yaml (#6963) 2023-02-09 13:08:53 +01:00
CODEOWNERS Update CODEOWNERS 2023-02-06 18:47:50 +01:00
README.md docs: add oblivioncth as a contributor for doc (#6825) 2023-02-03 00:20:23 +02:00
SUPPORT.md feat(cert-manager): add Cert-Manager configuration App (#6378) 2023-01-18 00:06:10 +01:00
chart_schema.yaml Add some more Apps to the incubator train (#553) 2021-06-11 16:43:41 +02:00
cr.yaml fix(docs): fix links (#3362) 2022-08-08 23:57:58 +02:00
ct-install.yaml feat(discordgsm) move to stable (#6380) 2023-01-15 16:15:09 +02:00
ct-lint.yaml WIP Cleanup configuration options (#4365) 2022-11-10 16:46:44 +01:00
label-commenter-config.yml add labeler commenter config 2022-03-31 20:47:57 +02:00
renovate-config.js feat(cert-manager): add Cert-Manager configuration App (#6378) 2023-01-18 00:06:10 +01:00
renovate.json5 Update renovate.json5 2023-02-03 11:01:08 +02:00
stale.yml run prettier as pre-commit hook (#3264) 2022-07-22 20:23:01 +02:00

README.md

TrueCharts

Community Chart Catalog for TrueNAS SCALE

docs Discord GitHub last commit


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

docs


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

pre-commit renovate GitHub last commit


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

Discord


To contact the TrueCharts project:



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

All Contributors

Thanks goes to these wonderful people (emoji key):


Kjeld Schouten-Lebbing
Kjeld Schouten-Lebbing

💻 🚇 📖 👀 💵
Justin Clift
Justin Clift

📖
whiskerz007
whiskerz007

💻
Stavros Kois
Stavros Kois

💻 📖 🐛 👀 💵
allen-4
allen-4

💻
Troy Prelog
Troy Prelog

💻 📖 💵
Dan Sheridan
Dan Sheridan

💻
Sebastien Dupont
Sebastien Dupont

📖 💵
Vegetto
Vegetto

👀
Ellie Nieuwdorp
Ellie Nieuwdorp

💻
Nate Walck
Nate Walck

💻
Lloyd
Lloyd

💻 💵
Dave Withnall
Dave Withnall

📖
ksimm1
ksimm1

📖 🐛 💵 🧑‍🏫
Aaron Johnson
Aaron Johnson

📖
Ralph
Ralph

💻
Joachim Baten
Joachim Baten

💻 🐛
Michael Yang
Michael Yang

💻
Ciaran Farley
Ciaran Farley

📖
Heavybullets8
Heavybullets8

📖 💻 🐛 📹 🧑‍🏫 💵
662
662

💻
alex171
alex171

📖
Techno Tim
Techno Tim

📖
Mingyao Liu
Mingyao Liu

💻 🐛
NightShaman
NightShaman

💻 📖 🐛 💵 🧑‍🏫
Andrew Smith
Andrew Smith

📖 ⚠️
Bob Klosinski
Bob Klosinski

💻
Sukarn
Sukarn

💻 📖
sebs
sebs

💻
Dyllan Tinoco
Dyllan Tinoco

💻
StevenMcElligott
StevenMcElligott

💻 💵 📖 🐛 🧑‍🏫
brothergomez
brothergomez

💻 🐛
sagit
sagit

💻 🐛 📹 📖 🧑‍🏫
Nevan Chow
Nevan Chow

💻
Daniel Carlsson
Daniel Carlsson

🐛
Devon Louie
Devon Louie

🐛
Alex-Orsholits
Alex-Orsholits

🐛
Tails32
Tails32

🐛
Menaxerius
Menaxerius

🐛
hidefog
hidefog

🐛
Darren Gibbard
Darren Gibbard

🐛
Barti
Barti

🐛
Sunii
Sunii

🐛
trbmchs
trbmchs

🐛
Light
Light

🐛
Boostflow
Boostflow

🐛
Trigardon
Trigardon

🐛
dbb12345
dbb12345

🐛 💻
karypid
karypid

🐛
Philipp
Philipp

🐛
John
John

🐛
John Parton
John Parton

🐛
Marc
Marc

🐛
fdzaebel
fdzaebel

🐛
kloeckwerx
kloeckwerx

🐛
Bradley Bare
Bradley Bare

🐛
Alexander Thamm
Alexander Thamm

🐛
rexit1982
rexit1982

🐛
iaxx
iaxx

🐛
Xstar97
Xstar97

🐛 💻 🧑‍🏫
ornias
ornias

📹
Josh Asplund
Josh Asplund

💵
midnight33233
midnight33233

💵
kbftech
kbftech

💵
hogenf
hogenf

💵
Hawks
Hawks

💵
Jim Russell
Jim Russell

💵
TheGovnah
TheGovnah

💵
famewolf
famewolf

💵 🐛
Konrad Bujak
Konrad Bujak

📖
190n
190n

💻 📖
Alexej Kubarev
Alexej Kubarev

📖
r-vanooyen
r-vanooyen

📖
shadofall
shadofall

📖 🧑‍🏫
agreppin
agreppin

💻
Stavros Ntentos
Stavros Ntentos

💻 🤔
Vlad-Florin Ilie
Vlad-Florin Ilie

💻
huma2000
huma2000

🐛
hugalafutro
hugalafutro

🐛 💵
yehia Amer
yehia Amer

📖
Tyler Stransky
Tyler Stransky

🐛
juggie
juggie

🐛
Ben Tilford
Ben Tilford

🐛 💻
I-nebukad-I
I-nebukad-I

🐛 💻
Ethan Leisinger
Ethan Leisinger

💻 📖
Cullen Murphy
Cullen Murphy

💻 🐛
Jason Thatcher
Jason Thatcher

💻 🐛 📖
Stefan Schramek
Stefan Schramek

🐛
nokaka
nokaka

🐛
Gal Szkolnik
Gal Szkolnik

🐛
Evgeny Stepanovych
Evgeny Stepanovych

🐛
Waqar Ahmed
Waqar Ahmed

🐛
DrSKiZZ
DrSKiZZ

💵
Jan Puciłowski
Jan Puciłowski

💻 ⚠️
Shaun Coyne
Shaun Coyne

💵
Christoph
Christoph

💵
Brandon Rutledge
Brandon Rutledge

🐛
Michael Bestas
Michael Bestas

🐛
Jurģis Rudaks
Jurģis Rudaks

🐛
brunofatia
brunofatia

💵
TopicsLP
TopicsLP

📖
Michael Schnerring
Michael Schnerring

🐛 💻
Tamas Nagy
Tamas Nagy

🐛
OpenSpeedTest™️
OpenSpeedTest™️

💻
Richard James Acton
Richard James Acton

📖
lps-rocks
lps-rocks

🐛
Faust
Faust

🐛
uranderu
uranderu

🐛
Tom Cassady
Tom Cassady

🐛
Huftierchen
Huftierchen

🐛
ZasX
ZasX

📖 🧑‍🏫
Kevin T.
Kevin T.

🐛
Steven Scott
Steven Scott

📖
Watteel Pascal
Watteel Pascal

💻
JamesOsborn-SE
JamesOsborn-SE

💻 📖
NeoToxic
NeoToxic

🧑‍🏫
jab416171
jab416171

📖
Anna
Anna

📖
ChaosBlades
ChaosBlades

🐛
Patric Stout
Patric Stout

💻
Ben Kochie
Ben Kochie

💻
Jeff Bachtel
Jeff Bachtel

📖
Ben Woods
Ben Woods

💻
Karl Shea
Karl Shea

🐛
Balakumaran MN
Balakumaran MN

📖
Jesperbelt
Jesperbelt

📖
cccs31
cccs31

🐛
Sam Smucny
Sam Smucny

💻
Keith Cirkel
Keith Cirkel

💻
mgale456
mgale456

💻
Alec Fenichel
Alec Fenichel

💻
John Dorman
John Dorman

💻
Dan
Dan

💻
u4ium
u4ium

📖
ErroneousBosch
ErroneousBosch

🐛
MaverickD650
MaverickD650

💻
Grogdor
Grogdor

📖
Ryan Gooler
Ryan Gooler

📖
Rob Herley
Rob Herley

📖
Christian Heimlich
Christian Heimlich

📖

This project follows the all-contributors specification. Contributions of any kind welcome!

Licence

License


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


built-with-resentment contains-technical-debt