Compare commits
21 Commits
adminer-5.
...
keep
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4462a39c4 | ||
|
|
a829425399 | ||
|
|
0b8a732151 | ||
|
|
bb1ff554d5 | ||
|
|
1ef9e22d42 | ||
|
|
4a9cfee4fb | ||
|
|
ce11c08826 | ||
|
|
f388353c91 | ||
|
|
2d9cadc978 | ||
|
|
9a8f608df7 | ||
|
|
74a78b649a | ||
|
|
40aff2e1a1 | ||
|
|
4cb9dfaf8c | ||
|
|
ff34c19198 | ||
|
|
ba002d3367 | ||
|
|
805e039fc0 | ||
|
|
fc02c020f9 | ||
|
|
1c9fc55b6b | ||
|
|
ad62270d55 | ||
|
|
ac8391d7a8 | ||
|
|
ad98f0cf28 |
@@ -1,8 +1,4 @@
|
||||
{
|
||||
"projectName": "charts",
|
||||
"projectOwner": "truecharts",
|
||||
"repoType": "github",
|
||||
"repoHost": "https://github.com",
|
||||
"files": [
|
||||
".github/README.md"
|
||||
],
|
||||
@@ -504,8 +500,7 @@
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/18377483?v=4",
|
||||
"profile": "https://github.com/j0hnby",
|
||||
"contributions": [
|
||||
"bug",
|
||||
"doc"
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -586,8 +581,8 @@
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/9399967?v=4",
|
||||
"profile": "https://xstar97.github.io",
|
||||
"contributions": [
|
||||
"code",
|
||||
"bug",
|
||||
"code",
|
||||
"mentoring"
|
||||
]
|
||||
},
|
||||
@@ -1061,8 +1056,7 @@
|
||||
"profile": "https://github.com/ZasX",
|
||||
"contributions": [
|
||||
"doc",
|
||||
"mentoring",
|
||||
"code"
|
||||
"mentoring"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1108,8 +1102,7 @@
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1340877?v=4",
|
||||
"profile": "https://github.com/neoestremi",
|
||||
"contributions": [
|
||||
"mentoring",
|
||||
"bug"
|
||||
"mentoring"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1289,8 +1282,7 @@
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/92877124?v=4",
|
||||
"profile": "https://github.com/MaverickD650",
|
||||
"contributions": [
|
||||
"code",
|
||||
"bug"
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1373,709 +1365,13 @@
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "renovate[bot]",
|
||||
"name": "renovate[bot]",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/in/2740?v=4",
|
||||
"profile": "https://github.com/apps/renovate",
|
||||
"contributions": [
|
||||
"tool"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "allcontributors[bot]",
|
||||
"name": "allcontributors[bot]",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/in/23186?v=4",
|
||||
"profile": "https://github.com/apps/allcontributors",
|
||||
"contributions": [
|
||||
"tool"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "dependabot[bot]",
|
||||
"name": "dependabot[bot]",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4",
|
||||
"profile": "https://github.com/apps/dependabot",
|
||||
"contributions": [
|
||||
"tool"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "truecharts-admin",
|
||||
"name": "TrueCharts Bot",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/80468013?v=4",
|
||||
"profile": "https://truecharts.org/",
|
||||
"contributions": [
|
||||
"tool",
|
||||
"infra",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "renovate-bot",
|
||||
"name": "Mend Renovate",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/25180681?v=4",
|
||||
"profile": "https://www.mend.io/free-developer-tools/renovate/",
|
||||
"contributions": [
|
||||
"tool"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Simoneu01",
|
||||
"name": "Simone",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/43807696?v=4",
|
||||
"profile": "https://github.com/Simoneu01",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jfroy",
|
||||
"name": "Jean-François Roy",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/49554?v=4",
|
||||
"profile": "https://devklog.net/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Whiskey24",
|
||||
"name": "Whiskey24",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/12865553?v=4",
|
||||
"profile": "https://github.com/Whiskey24",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "inmanturbo",
|
||||
"name": "inmanturbo",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/47095624?v=4",
|
||||
"profile": "https://github.com/inmanturbo",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Dhs92",
|
||||
"name": "Alex",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3068714?v=4",
|
||||
"profile": "https://github.com/Dhs92",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "bjsemrad",
|
||||
"name": "Brian Semrad",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1234356?v=4",
|
||||
"profile": "https://github.com/bjsemrad",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ctag",
|
||||
"name": "Christopher",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6200085?v=4",
|
||||
"profile": "https://256.makerslocal.org/wiki/User:Ctag",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "engedics",
|
||||
"name": "Csaba Engedi",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/11065639?v=4",
|
||||
"profile": "https://github.com/engedics",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Cyb3rzombie",
|
||||
"name": "Cyb3rzombie",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/19274374?v=4",
|
||||
"profile": "https://github.com/Cyb3rzombie",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "CajuCLC",
|
||||
"name": "Eric Cavalcanti",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1249095?v=4",
|
||||
"profile": "https://cloudtutorial.net/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "g-a-c",
|
||||
"name": "Gavin Chappell",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2798739?v=4",
|
||||
"profile": "https://github.com/g-a-c",
|
||||
"contributions": [
|
||||
"code",
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "raynay-r",
|
||||
"name": "raynay-r",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/16634069?v=4",
|
||||
"profile": "https://github.com/raynay-r",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Jip-Hop",
|
||||
"name": "Jip-Hop",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2871973?v=4",
|
||||
"profile": "https://jip.debeer.it/",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jonaswre",
|
||||
"name": "Jonas Wrede",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3731681?v=4",
|
||||
"profile": "https://github.com/jonaswre",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "silentnyte",
|
||||
"name": "SilentNyte",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2430307?v=4",
|
||||
"profile": "https://github.com/silentnyte",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "StanMar-bit",
|
||||
"name": "Stan",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/84271654?v=4",
|
||||
"profile": "https://github.com/StanMar-bit",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "tiagogaspar8",
|
||||
"name": "Tiago Gaspar",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/39808643?v=4",
|
||||
"profile": "https://github.com/tiagogaspar8",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "gismo2004",
|
||||
"name": "gismo2004",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2325636?v=4",
|
||||
"profile": "https://github.com/gismo2004",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jsegaert",
|
||||
"name": "jsegaert",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/20346509?v=4",
|
||||
"profile": "https://github.com/jsegaert",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "miguelangel-nubla",
|
||||
"name": "Miguel Angel Nubla",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/866596?v=4",
|
||||
"profile": "https://github.com/miguelangel-nubla",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "xal3xhx",
|
||||
"name": "xal3xhx",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/8585664?v=4",
|
||||
"profile": "https://github.com/xal3xhx",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jeremybox",
|
||||
"name": "jeremybox",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/33465600?v=4",
|
||||
"profile": "https://github.com/jeremybox",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "CameronSabuda",
|
||||
"name": "Cameron Sabuda",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/25101288?v=4",
|
||||
"profile": "https://github.com/CameronSabuda",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "edmeister",
|
||||
"name": "Jeroen Schepens",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/702527?v=4",
|
||||
"profile": "https://github.com/edmeister",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jrwrigh",
|
||||
"name": "James Wright",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/20801821?v=4",
|
||||
"profile": "http://jameswright.xyz",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Malpractis",
|
||||
"name": "Malpractis",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/31232305?v=4",
|
||||
"profile": "https://github.com/Malpractis",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "CommanderStarhump",
|
||||
"name": "CommanderStarhump",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/91758053?v=4",
|
||||
"profile": "https://github.com/CommanderStarhump",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "vianchiel",
|
||||
"name": "Vianchiel",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/123665622?v=4",
|
||||
"profile": "https://github.com/vianchiel",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "b-m-f",
|
||||
"name": "Maximilian Ehlers",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2843450?v=4",
|
||||
"profile": "https://github.com/b-m-f",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "nautilus7",
|
||||
"name": "nautilus7",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1540233?v=4",
|
||||
"profile": "https://github.com/nautilus7",
|
||||
"contributions": [
|
||||
"bug",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "kqmaverick",
|
||||
"name": "kqmaverick",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/121722567?v=4",
|
||||
"profile": "https://github.com/kqmaverick",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ccalby",
|
||||
"name": "ccalby",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/680553?v=4",
|
||||
"profile": "https://github.com/ccalby",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "kofeyh",
|
||||
"name": "kofeyh",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/26401963?v=4",
|
||||
"profile": "https://github.com/kofeyh",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "imjustleaving",
|
||||
"name": "imjustleaving",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/109609649?v=4",
|
||||
"profile": "https://github.com/imjustleaving",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "PrototypeActual",
|
||||
"name": "Cristian Torres",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/18661121?v=4",
|
||||
"profile": "https://github.com/PrototypeActual",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "schopenhauer",
|
||||
"name": "schopenhauer",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2085103?v=4",
|
||||
"profile": "https://github.com/schopenhauer",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Zackptg5",
|
||||
"name": "Zackptg5",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/5107713?v=4",
|
||||
"profile": "https://github.com/Zackptg5",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "backerman",
|
||||
"name": "Brad Ackerman",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/115895?v=4",
|
||||
"profile": "https://bradackerman.com/",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "mcspiff313",
|
||||
"name": "mcspiff313",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/7252551?v=4",
|
||||
"profile": "https://hachyderm.io/@mcspiff",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "fnichol",
|
||||
"name": "Fletcher Nichol",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/261548?v=4",
|
||||
"profile": "https://fnichol.com",
|
||||
"contributions": [
|
||||
"code",
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "marcofaggian",
|
||||
"name": "Marco Faggian",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/19221001?v=4",
|
||||
"profile": "https://marcofaggian.com",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Emalton",
|
||||
"name": "John P",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/9328458?v=4",
|
||||
"profile": "https://github.com/Emalton",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "kryojenik",
|
||||
"name": "kryojenik",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/845427?v=4",
|
||||
"profile": "https://github.com/kryojenik",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "malcolmcdixon",
|
||||
"name": "Malcolm",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/56974882?v=4",
|
||||
"profile": "https://github.com/malcolmcdixon",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "depasseg",
|
||||
"name": "depasseg",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3201827?v=4",
|
||||
"profile": "https://github.com/depasseg",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "j1mbl3s",
|
||||
"name": "j1mbl3s",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/44634577?v=4",
|
||||
"profile": "https://github.com/j1mbl3s",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "VictorienXP",
|
||||
"name": "VictorienXP",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1633366?v=4",
|
||||
"profile": "https://github.com/VictorienXP",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "yelhouti",
|
||||
"name": "yelhouti",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/5471639?v=4",
|
||||
"profile": "https://github.com/yelhouti",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "svetlemodry",
|
||||
"name": "Jaroslav Lichtblau",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/8712544?v=4",
|
||||
"profile": "https://github.com/svetlemodry",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Maximilian-Staab",
|
||||
"name": "MaximilianS",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/20892091?v=4",
|
||||
"profile": "https://github.com/Maximilian-Staab",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "dionlarson",
|
||||
"name": "Dion Larson",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1843883?v=4",
|
||||
"profile": "http://dionlarson.com",
|
||||
"contributions": [
|
||||
"code",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Physics-Dude",
|
||||
"name": "Physics-Dude",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/22563517?v=4",
|
||||
"profile": "https://github.com/Physics-Dude",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "waflint",
|
||||
"name": "waflint",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/94139453?v=4",
|
||||
"profile": "https://github.com/waflint",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Shrinks99",
|
||||
"name": "Henry Wilkinson",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/5672810?v=4",
|
||||
"profile": "https://github.com/Shrinks99",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "cedstrom",
|
||||
"name": "cedstrom",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6175957?v=4",
|
||||
"profile": "https://github.com/cedstrom",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "v3DJG6GL",
|
||||
"name": "v3DJG6GL",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/72495210?v=4",
|
||||
"profile": "https://github.com/v3DJG6GL",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "polarstack",
|
||||
"name": "polarstack",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/42521003?v=4",
|
||||
"profile": "https://github.com/polarstack",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "K1Hyve",
|
||||
"name": "Keyvan",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/53298451?v=4",
|
||||
"profile": "https://github.com/K1Hyve",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "MickaelFontes",
|
||||
"name": "MickaelFontes",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/81414455?v=4",
|
||||
"profile": "https://github.com/MickaelFontes",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "blastik",
|
||||
"name": "David CM",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3662083?v=4",
|
||||
"profile": "https://github.com/blastik",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "aamirazad",
|
||||
"name": "Aamir Azad",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/82281117?v=4",
|
||||
"profile": "http://tigertutoringtool.aamira.me",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jordan-woyak",
|
||||
"name": "Jordan Woyak",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1768214?v=4",
|
||||
"profile": "https://github.com/jordan-woyak",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "simon-hofmann",
|
||||
"name": "Simon Hofman",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/23562420?v=4",
|
||||
"profile": "https://github.com/simon-hofmann",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "notyouraveragegamer",
|
||||
"name": "notyouraveragegamer",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/104248676?v=4",
|
||||
"profile": "https://github.com/NotYourAverageGamer",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "varac",
|
||||
"name": "Varac",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/488213?v=4",
|
||||
"profile": "https://www.varac.net",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "tuxpizza",
|
||||
"name": "tuxsudo",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/84710786?v=4",
|
||||
"profile": "https://tux.pizza",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "TylerRudie",
|
||||
"name": "TylerRudie",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2695916?v=4",
|
||||
"profile": "https://github.com/TylerRudie",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "qnb59bny5x",
|
||||
"name": "qnb59bny5x",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/108427982?v=4",
|
||||
"profile": "https://github.com/qnb59bny5x",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "drndos",
|
||||
"name": "Filip Bednárik",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/5576134?v=4",
|
||||
"profile": "https://blog.drndos.sk",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "sshcherbinin",
|
||||
"name": "Serhii Shcherbinin",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/92396963?v=4",
|
||||
"profile": "https://github.com/sshcherbinin",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "qraynaud",
|
||||
"name": "Quentin Raynaud",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/65991?v=4",
|
||||
"profile": "https://github.com/qraynaud",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "thegcat",
|
||||
"name": "Felix Schäfer",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/22835?v=4",
|
||||
"profile": "http://fachschaften.org",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
"projectName": "charts",
|
||||
"projectOwner": "truecharts",
|
||||
"repoType": "github",
|
||||
"repoHost": "https://github.com",
|
||||
"skipCi": true,
|
||||
"commitConvention": "angular",
|
||||
"commitType": "docs"
|
||||
"commitConvention": "angular"
|
||||
}
|
||||
|
||||
2
.github/CODEOWNERS
vendored
@@ -5,5 +5,5 @@
|
||||
/charts/dependency/ @truecharts/enterprise-maintainers @ornias1993
|
||||
/charts/enterprise/ @truecharts/enterprise-maintainers @ornias1993
|
||||
/charts/dev/ @ornias1993
|
||||
/.github/ @truecharts/ci-maintainers @ornias1993
|
||||
/.github/ @truecharts/ci-maintainers @ornias1993
|
||||
docs/ @truecharts/docs-maintainers @ornias1993
|
||||
|
||||
115
.github/README.md
vendored
@@ -32,7 +32,7 @@ All our charts are supposed to work together, be easy to setup using the TrueNAS
|
||||
|
||||
Installing TrueCharts within TrueNAS SCALE, is possible using the TrueNAS SCALE Catalog list.
|
||||
|
||||
Check TrueCharts [Quick-Start Guides](https://truecharts.org/manual/SCALE/guides/getting-started#adding-truecharts) for more information.
|
||||
Check TrueCharts [Quick-Start Guides](https://truecharts.org/manual/guides/Adding-TrueCharts) for more information.
|
||||
|
||||
### Support
|
||||
|
||||
@@ -79,7 +79,7 @@ This ensures freedom and flexibility for everyone involved and makes sure you, t
|
||||
|
||||
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](https://truecharts.org/manual/development/chart-structure/)
|
||||
For more information on creating SCALE Apps and Helm charts, please check out our [development manual](https://truecharts.org/manual/development/License-headers)
|
||||
|
||||
### Automation and you
|
||||
|
||||
@@ -124,7 +124,7 @@ A lot of our work is based on the great effort of others. We would love to exten
|
||||
## Contributors ✨
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||
[](#contributors)
|
||||
[](#contributors)
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||
|
||||
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||
@@ -201,7 +201,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/eingemaischt"><img src="https://avatars.githubusercontent.com/u/151498?v=4?s=100" width="100px;" alt="Philipp"/><br /><sub><b>Philipp</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aeingemaischt" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/j0hnby"><img src="https://avatars.githubusercontent.com/u/18377483?v=4?s=100" width="100px;" alt="John"/><br /><sub><b>John</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aj0hnby" title="Bug reports">🐛</a> <a href="https://github.com/truecharts/charts/commits?author=j0hnby" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/j0hnby"><img src="https://avatars.githubusercontent.com/u/18377483?v=4?s=100" width="100px;" alt="John"/><br /><sub><b>John</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aj0hnby" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/john-parton"><img src="https://avatars.githubusercontent.com/u/2071543?v=4?s=100" width="100px;" alt="John Parton"/><br /><sub><b>John Parton</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Ajohn-parton" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Amasis"><img src="https://avatars.githubusercontent.com/u/7325217?v=4?s=100" width="100px;" alt="Marc"/><br /><sub><b>Marc</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3AAmasis" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fdzaebel"><img src="https://avatars.githubusercontent.com/u/46503230?v=4?s=100" width="100px;" alt="fdzaebel"/><br /><sub><b>fdzaebel</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Afdzaebel" title="Bug reports">🐛</a></td>
|
||||
@@ -212,7 +212,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/alexthamm"><img src="https://avatars.githubusercontent.com/u/2556372?v=4?s=100" width="100px;" alt="Alexander Thamm"/><br /><sub><b>Alexander Thamm</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aalexthamm" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rexit1982"><img src="https://avatars.githubusercontent.com/u/7585043?v=4?s=100" width="100px;" alt="rexit1982"/><br /><sub><b>rexit1982</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Arexit1982" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/iaxx"><img src="https://avatars.githubusercontent.com/u/13745514?v=4?s=100" width="100px;" alt="iaxx"/><br /><sub><b>iaxx</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aiaxx" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://xstar97.github.io"><img src="https://avatars.githubusercontent.com/u/9399967?v=4?s=100" width="100px;" alt="Xstar97"/><br /><sub><b>Xstar97</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Xstar97" title="Code">💻</a> <a href="https://github.com/truecharts/charts/issues?q=author%3AXstar97" title="Bug reports">🐛</a> <a href="#mentoring-Xstar97" title="Mentoring">🧑🏫</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://xstar97.github.io"><img src="https://avatars.githubusercontent.com/u/9399967?v=4?s=100" width="100px;" alt="Xstar97"/><br /><sub><b>Xstar97</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3AXstar97" title="Bug reports">🐛</a> <a href="https://github.com/truecharts/charts/commits?author=Xstar97" title="Code">💻</a> <a href="#mentoring-Xstar97" title="Mentoring">🧑🏫</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Ornias"><img src="https://avatars.githubusercontent.com/u/20852677?v=4?s=100" width="100px;" alt="ornias"/><br /><sub><b>ornias</b></sub></a><br /><a href="#video-ornias" title="Videos">📹</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://joshasplund.com"><img src="https://avatars.githubusercontent.com/u/3958801?v=4?s=100" width="100px;" alt="Josh Asplund"/><br /><sub><b>Josh Asplund</b></sub></a><br /><a href="#financial-joshuata" title="Financial">💵</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/midnight33233"><img src="https://avatars.githubusercontent.com/u/25982892?v=4?s=100" width="100px;" alt="midnight33233"/><br /><sub><b>midnight33233</b></sub></a><br /><a href="#financial-midnight33233" title="Financial">💵</a></td>
|
||||
@@ -277,14 +277,14 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/uranderu"><img src="https://avatars.githubusercontent.com/u/71091366?v=4?s=100" width="100px;" alt="uranderu"/><br /><sub><b>uranderu</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Auranderu" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/heytcass"><img src="https://avatars.githubusercontent.com/u/11260288?v=4?s=100" width="100px;" alt="Tom Cassady"/><br /><sub><b>Tom Cassady</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aheytcass" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Huftierchen"><img src="https://avatars.githubusercontent.com/u/16015778?v=4?s=100" width="100px;" alt="Huftierchen"/><br /><sub><b>Huftierchen</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3AHuftierchen" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ZasX"><img src="https://avatars.githubusercontent.com/u/806452?v=4?s=100" width="100px;" alt="ZasX"/><br /><sub><b>ZasX</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=ZasX" title="Documentation">📖</a> <a href="#mentoring-ZasX" title="Mentoring">🧑🏫</a> <a href="https://github.com/truecharts/charts/commits?author=ZasX" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ZasX"><img src="https://avatars.githubusercontent.com/u/806452?v=4?s=100" width="100px;" alt="ZasX"/><br /><sub><b>ZasX</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=ZasX" title="Documentation">📖</a> <a href="#mentoring-ZasX" title="Mentoring">🧑🏫</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/aeolus811tw"><img src="https://avatars.githubusercontent.com/u/4956319?v=4?s=100" width="100px;" alt="Kevin T."/><br /><sub><b>Kevin T.</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aaeolus811tw" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Chowarmaan"><img src="https://avatars.githubusercontent.com/u/175738?v=4?s=100" width="100px;" alt="Steven Scott"/><br /><sub><b>Steven Scott</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Chowarmaan" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/piwi3910"><img src="https://avatars.githubusercontent.com/u/12539757?v=4?s=100" width="100px;" alt="Watteel Pascal"/><br /><sub><b>Watteel Pascal</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=piwi3910" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/JamesOsborn-SE"><img src="https://avatars.githubusercontent.com/u/3580335?v=4?s=100" width="100px;" alt="JamesOsborn-SE"/><br /><sub><b>JamesOsborn-SE</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=JamesOsborn-SE" title="Code">💻</a> <a href="https://github.com/truecharts/charts/commits?author=JamesOsborn-SE" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/neoestremi"><img src="https://avatars.githubusercontent.com/u/1340877?v=4?s=100" width="100px;" alt="NeoToxic"/><br /><sub><b>NeoToxic</b></sub></a><br /><a href="#mentoring-neoestremi" title="Mentoring">🧑🏫</a> <a href="https://github.com/truecharts/charts/issues?q=author%3Aneoestremi" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/neoestremi"><img src="https://avatars.githubusercontent.com/u/1340877?v=4?s=100" width="100px;" alt="NeoToxic"/><br /><sub><b>NeoToxic</b></sub></a><br /><a href="#mentoring-neoestremi" title="Mentoring">🧑🏫</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jab416171"><img src="https://avatars.githubusercontent.com/u/345752?v=4?s=100" width="100px;" alt="jab416171"/><br /><sub><b>jab416171</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=jab416171" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.zioniyes.me"><img src="https://avatars.githubusercontent.com/u/16231288?v=4?s=100" width="100px;" alt="Anna"/><br /><sub><b>Anna</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=HumbleDeer" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ChaosBlades"><img src="https://avatars.githubusercontent.com/u/7530545?v=4?s=100" width="100px;" alt="ChaosBlades"/><br /><sub><b>ChaosBlades</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3AChaosBlades" title="Bug reports">🐛</a></td>
|
||||
@@ -310,7 +310,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/u4ium"><img src="https://avatars.githubusercontent.com/u/57515023?v=4?s=100" width="100px;" alt="u4ium"/><br /><sub><b>u4ium</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=u4ium" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ErroneousBosch"><img src="https://avatars.githubusercontent.com/u/20829218?v=4?s=100" width="100px;" alt="ErroneousBosch"/><br /><sub><b>ErroneousBosch</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3AErroneousBosch" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MaverickD650"><img src="https://avatars.githubusercontent.com/u/92877124?v=4?s=100" width="100px;" alt="MaverickD650"/><br /><sub><b>MaverickD650</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=MaverickD650" title="Code">💻</a> <a href="https://github.com/truecharts/charts/issues?q=author%3AMaverickD650" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MaverickD650"><img src="https://avatars.githubusercontent.com/u/92877124?v=4?s=100" width="100px;" alt="MaverickD650"/><br /><sub><b>MaverickD650</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=MaverickD650" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Grogdor"><img src="https://avatars.githubusercontent.com/u/6863613?v=4?s=100" width="100px;" alt="Grogdor"/><br /><sub><b>Grogdor</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Grogdor" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rgooler"><img src="https://avatars.githubusercontent.com/u/1108200?v=4?s=100" width="100px;" alt="Ryan Gooler"/><br /><sub><b>Ryan Gooler</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=rgooler" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://reb.gg"><img src="https://avatars.githubusercontent.com/u/16991201?v=4?s=100" width="100px;" alt="Rob Herley"/><br /><sub><b>Rob Herley</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=robherley" title="Documentation">📖</a></td>
|
||||
@@ -322,105 +322,6 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sdimovv"><img src="https://avatars.githubusercontent.com/u/36302090?v=4?s=100" width="100px;" alt="sdimovv"/><br /><sub><b>sdimovv</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=sdimovv" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AllieQpzm"><img src="https://avatars.githubusercontent.com/u/2895565?v=4?s=100" width="100px;" alt="AllieQpzm"/><br /><sub><b>AllieQpzm</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=AllieQpzm" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.dominik.net.pl"><img src="https://avatars.githubusercontent.com/u/10815109?v=4?s=100" width="100px;" alt="Dominik"/><br /><sub><b>Dominik</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Adominch" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/apps/renovate"><img src="https://avatars.githubusercontent.com/in/2740?v=4?s=100" width="100px;" alt="renovate[bot]"/><br /><sub><b>renovate[bot]</b></sub></a><br /><a href="#tool-renovate[bot]" title="Tools">🔧</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/apps/allcontributors"><img src="https://avatars.githubusercontent.com/in/23186?v=4?s=100" width="100px;" alt="allcontributors[bot]"/><br /><sub><b>allcontributors[bot]</b></sub></a><br /><a href="#tool-allcontributors[bot]" title="Tools">🔧</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/apps/dependabot"><img src="https://avatars.githubusercontent.com/in/29110?v=4?s=100" width="100px;" alt="dependabot[bot]"/><br /><sub><b>dependabot[bot]</b></sub></a><br /><a href="#tool-dependabot[bot]" title="Tools">🔧</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://truecharts.org/"><img src="https://avatars.githubusercontent.com/u/80468013?v=4?s=100" width="100px;" alt="TrueCharts Bot"/><br /><sub><b>TrueCharts Bot</b></sub></a><br /><a href="#tool-truecharts-admin" title="Tools">🔧</a> <a href="#infra-truecharts-admin" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/truecharts/charts/commits?author=truecharts-admin" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.mend.io/free-developer-tools/renovate/"><img src="https://avatars.githubusercontent.com/u/25180681?v=4?s=100" width="100px;" alt="Mend Renovate"/><br /><sub><b>Mend Renovate</b></sub></a><br /><a href="#tool-renovate-bot" title="Tools">🔧</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Simoneu01"><img src="https://avatars.githubusercontent.com/u/43807696?v=4?s=100" width="100px;" alt="Simone"/><br /><sub><b>Simone</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Simoneu01" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://devklog.net/"><img src="https://avatars.githubusercontent.com/u/49554?v=4?s=100" width="100px;" alt="Jean-François Roy"/><br /><sub><b>Jean-François Roy</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=jfroy" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Whiskey24"><img src="https://avatars.githubusercontent.com/u/12865553?v=4?s=100" width="100px;" alt="Whiskey24"/><br /><sub><b>Whiskey24</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Whiskey24" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/inmanturbo"><img src="https://avatars.githubusercontent.com/u/47095624?v=4?s=100" width="100px;" alt="inmanturbo"/><br /><sub><b>inmanturbo</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=inmanturbo" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Dhs92"><img src="https://avatars.githubusercontent.com/u/3068714?v=4?s=100" width="100px;" alt="Alex"/><br /><sub><b>Alex</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Dhs92" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bjsemrad"><img src="https://avatars.githubusercontent.com/u/1234356?v=4?s=100" width="100px;" alt="Brian Semrad"/><br /><sub><b>Brian Semrad</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=bjsemrad" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://256.makerslocal.org/wiki/User:Ctag"><img src="https://avatars.githubusercontent.com/u/6200085?v=4?s=100" width="100px;" alt="Christopher"/><br /><sub><b>Christopher</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=ctag" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/engedics"><img src="https://avatars.githubusercontent.com/u/11065639?v=4?s=100" width="100px;" alt="Csaba Engedi"/><br /><sub><b>Csaba Engedi</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=engedics" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Cyb3rzombie"><img src="https://avatars.githubusercontent.com/u/19274374?v=4?s=100" width="100px;" alt="Cyb3rzombie"/><br /><sub><b>Cyb3rzombie</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Cyb3rzombie" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://cloudtutorial.net/"><img src="https://avatars.githubusercontent.com/u/1249095?v=4?s=100" width="100px;" alt="Eric Cavalcanti"/><br /><sub><b>Eric Cavalcanti</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=CajuCLC" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/g-a-c"><img src="https://avatars.githubusercontent.com/u/2798739?v=4?s=100" width="100px;" alt="Gavin Chappell"/><br /><sub><b>Gavin Chappell</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=g-a-c" title="Code">💻</a> <a href="https://github.com/truecharts/charts/issues?q=author%3Ag-a-c" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/raynay-r"><img src="https://avatars.githubusercontent.com/u/16634069?v=4?s=100" width="100px;" alt="raynay-r"/><br /><sub><b>raynay-r</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=raynay-r" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://jip.debeer.it/"><img src="https://avatars.githubusercontent.com/u/2871973?v=4?s=100" width="100px;" alt="Jip-Hop"/><br /><sub><b>Jip-Hop</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Jip-Hop" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jonaswre"><img src="https://avatars.githubusercontent.com/u/3731681?v=4?s=100" width="100px;" alt="Jonas Wrede"/><br /><sub><b>Jonas Wrede</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=jonaswre" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/silentnyte"><img src="https://avatars.githubusercontent.com/u/2430307?v=4?s=100" width="100px;" alt="SilentNyte"/><br /><sub><b>SilentNyte</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=silentnyte" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/StanMar-bit"><img src="https://avatars.githubusercontent.com/u/84271654?v=4?s=100" width="100px;" alt="Stan"/><br /><sub><b>Stan</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=StanMar-bit" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tiagogaspar8"><img src="https://avatars.githubusercontent.com/u/39808643?v=4?s=100" width="100px;" alt="Tiago Gaspar"/><br /><sub><b>Tiago Gaspar</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=tiagogaspar8" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/gismo2004"><img src="https://avatars.githubusercontent.com/u/2325636?v=4?s=100" width="100px;" alt="gismo2004"/><br /><sub><b>gismo2004</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=gismo2004" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jsegaert"><img src="https://avatars.githubusercontent.com/u/20346509?v=4?s=100" width="100px;" alt="jsegaert"/><br /><sub><b>jsegaert</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=jsegaert" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/miguelangel-nubla"><img src="https://avatars.githubusercontent.com/u/866596?v=4?s=100" width="100px;" alt="Miguel Angel Nubla"/><br /><sub><b>Miguel Angel Nubla</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=miguelangel-nubla" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/xal3xhx"><img src="https://avatars.githubusercontent.com/u/8585664?v=4?s=100" width="100px;" alt="xal3xhx"/><br /><sub><b>xal3xhx</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=xal3xhx" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jeremybox"><img src="https://avatars.githubusercontent.com/u/33465600?v=4?s=100" width="100px;" alt="jeremybox"/><br /><sub><b>jeremybox</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=jeremybox" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/CameronSabuda"><img src="https://avatars.githubusercontent.com/u/25101288?v=4?s=100" width="100px;" alt="Cameron Sabuda"/><br /><sub><b>Cameron Sabuda</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=CameronSabuda" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/edmeister"><img src="https://avatars.githubusercontent.com/u/702527?v=4?s=100" width="100px;" alt="Jeroen Schepens"/><br /><sub><b>Jeroen Schepens</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aedmeister" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://jameswright.xyz"><img src="https://avatars.githubusercontent.com/u/20801821?v=4?s=100" width="100px;" alt="James Wright"/><br /><sub><b>James Wright</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=jrwrigh" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Malpractis"><img src="https://avatars.githubusercontent.com/u/31232305?v=4?s=100" width="100px;" alt="Malpractis"/><br /><sub><b>Malpractis</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3AMalpractis" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/CommanderStarhump"><img src="https://avatars.githubusercontent.com/u/91758053?v=4?s=100" width="100px;" alt="CommanderStarhump"/><br /><sub><b>CommanderStarhump</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3ACommanderStarhump" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vianchiel"><img src="https://avatars.githubusercontent.com/u/123665622?v=4?s=100" width="100px;" alt="Vianchiel"/><br /><sub><b>Vianchiel</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Avianchiel" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/b-m-f"><img src="https://avatars.githubusercontent.com/u/2843450?v=4?s=100" width="100px;" alt="Maximilian Ehlers"/><br /><sub><b>Maximilian Ehlers</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Ab-m-f" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nautilus7"><img src="https://avatars.githubusercontent.com/u/1540233?v=4?s=100" width="100px;" alt="nautilus7"/><br /><sub><b>nautilus7</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Anautilus7" title="Bug reports">🐛</a> <a href="https://github.com/truecharts/charts/commits?author=nautilus7" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kqmaverick"><img src="https://avatars.githubusercontent.com/u/121722567?v=4?s=100" width="100px;" alt="kqmaverick"/><br /><sub><b>kqmaverick</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Akqmaverick" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ccalby"><img src="https://avatars.githubusercontent.com/u/680553?v=4?s=100" width="100px;" alt="ccalby"/><br /><sub><b>ccalby</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Accalby" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kofeyh"><img src="https://avatars.githubusercontent.com/u/26401963?v=4?s=100" width="100px;" alt="kofeyh"/><br /><sub><b>kofeyh</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Akofeyh" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/imjustleaving"><img src="https://avatars.githubusercontent.com/u/109609649?v=4?s=100" width="100px;" alt="imjustleaving"/><br /><sub><b>imjustleaving</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aimjustleaving" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/PrototypeActual"><img src="https://avatars.githubusercontent.com/u/18661121?v=4?s=100" width="100px;" alt="Cristian Torres"/><br /><sub><b>Cristian Torres</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3APrototypeActual" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/schopenhauer"><img src="https://avatars.githubusercontent.com/u/2085103?v=4?s=100" width="100px;" alt="schopenhauer"/><br /><sub><b>schopenhauer</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aschopenhauer" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Zackptg5"><img src="https://avatars.githubusercontent.com/u/5107713?v=4?s=100" width="100px;" alt="Zackptg5"/><br /><sub><b>Zackptg5</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3AZackptg5" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://bradackerman.com/"><img src="https://avatars.githubusercontent.com/u/115895?v=4?s=100" width="100px;" alt="Brad Ackerman"/><br /><sub><b>Brad Ackerman</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Abackerman" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://hachyderm.io/@mcspiff"><img src="https://avatars.githubusercontent.com/u/7252551?v=4?s=100" width="100px;" alt="mcspiff313"/><br /><sub><b>mcspiff313</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Amcspiff313" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://fnichol.com"><img src="https://avatars.githubusercontent.com/u/261548?v=4?s=100" width="100px;" alt="Fletcher Nichol"/><br /><sub><b>Fletcher Nichol</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=fnichol" title="Code">💻</a> <a href="https://github.com/truecharts/charts/issues?q=author%3Afnichol" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://marcofaggian.com"><img src="https://avatars.githubusercontent.com/u/19221001?v=4?s=100" width="100px;" alt="Marco Faggian"/><br /><sub><b>Marco Faggian</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=marcofaggian" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Emalton"><img src="https://avatars.githubusercontent.com/u/9328458?v=4?s=100" width="100px;" alt="John P"/><br /><sub><b>John P</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Emalton" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kryojenik"><img src="https://avatars.githubusercontent.com/u/845427?v=4?s=100" width="100px;" alt="kryojenik"/><br /><sub><b>kryojenik</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=kryojenik" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/malcolmcdixon"><img src="https://avatars.githubusercontent.com/u/56974882?v=4?s=100" width="100px;" alt="Malcolm"/><br /><sub><b>Malcolm</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=malcolmcdixon" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/depasseg"><img src="https://avatars.githubusercontent.com/u/3201827?v=4?s=100" width="100px;" alt="depasseg"/><br /><sub><b>depasseg</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=depasseg" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/j1mbl3s"><img src="https://avatars.githubusercontent.com/u/44634577?v=4?s=100" width="100px;" alt="j1mbl3s"/><br /><sub><b>j1mbl3s</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=j1mbl3s" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/VictorienXP"><img src="https://avatars.githubusercontent.com/u/1633366?v=4?s=100" width="100px;" alt="VictorienXP"/><br /><sub><b>VictorienXP</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=VictorienXP" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yelhouti"><img src="https://avatars.githubusercontent.com/u/5471639?v=4?s=100" width="100px;" alt="yelhouti"/><br /><sub><b>yelhouti</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=yelhouti" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/svetlemodry"><img src="https://avatars.githubusercontent.com/u/8712544?v=4?s=100" width="100px;" alt="Jaroslav Lichtblau"/><br /><sub><b>Jaroslav Lichtblau</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=svetlemodry" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Maximilian-Staab"><img src="https://avatars.githubusercontent.com/u/20892091?v=4?s=100" width="100px;" alt="MaximilianS"/><br /><sub><b>MaximilianS</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Maximilian-Staab" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://dionlarson.com"><img src="https://avatars.githubusercontent.com/u/1843883?v=4?s=100" width="100px;" alt="Dion Larson"/><br /><sub><b>Dion Larson</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=dionlarson" title="Code">💻</a> <a href="https://github.com/truecharts/charts/commits?author=dionlarson" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Physics-Dude"><img src="https://avatars.githubusercontent.com/u/22563517?v=4?s=100" width="100px;" alt="Physics-Dude"/><br /><sub><b>Physics-Dude</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Physics-Dude" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/waflint"><img src="https://avatars.githubusercontent.com/u/94139453?v=4?s=100" width="100px;" alt="waflint"/><br /><sub><b>waflint</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=waflint" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Shrinks99"><img src="https://avatars.githubusercontent.com/u/5672810?v=4?s=100" width="100px;" alt="Henry Wilkinson"/><br /><sub><b>Henry Wilkinson</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=Shrinks99" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cedstrom"><img src="https://avatars.githubusercontent.com/u/6175957?v=4?s=100" width="100px;" alt="cedstrom"/><br /><sub><b>cedstrom</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=cedstrom" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/v3DJG6GL"><img src="https://avatars.githubusercontent.com/u/72495210?v=4?s=100" width="100px;" alt="v3DJG6GL"/><br /><sub><b>v3DJG6GL</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Av3DJG6GL" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/polarstack"><img src="https://avatars.githubusercontent.com/u/42521003?v=4?s=100" width="100px;" alt="polarstack"/><br /><sub><b>polarstack</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=polarstack" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/K1Hyve"><img src="https://avatars.githubusercontent.com/u/53298451?v=4?s=100" width="100px;" alt="Keyvan"/><br /><sub><b>Keyvan</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=K1Hyve" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MickaelFontes"><img src="https://avatars.githubusercontent.com/u/81414455?v=4?s=100" width="100px;" alt="MickaelFontes"/><br /><sub><b>MickaelFontes</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=MickaelFontes" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/blastik"><img src="https://avatars.githubusercontent.com/u/3662083?v=4?s=100" width="100px;" alt="David CM"/><br /><sub><b>David CM</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=blastik" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://tigertutoringtool.aamira.me"><img src="https://avatars.githubusercontent.com/u/82281117?v=4?s=100" width="100px;" alt="Aamir Azad"/><br /><sub><b>Aamir Azad</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=aamirazad" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jordan-woyak"><img src="https://avatars.githubusercontent.com/u/1768214?v=4?s=100" width="100px;" alt="Jordan Woyak"/><br /><sub><b>Jordan Woyak</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=jordan-woyak" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/simon-hofmann"><img src="https://avatars.githubusercontent.com/u/23562420?v=4?s=100" width="100px;" alt="Simon Hofman"/><br /><sub><b>Simon Hofman</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=simon-hofmann" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NotYourAverageGamer"><img src="https://avatars.githubusercontent.com/u/104248676?v=4?s=100" width="100px;" alt="notyouraveragegamer"/><br /><sub><b>notyouraveragegamer</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=notyouraveragegamer" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.varac.net"><img src="https://avatars.githubusercontent.com/u/488213?v=4?s=100" width="100px;" alt="Varac"/><br /><sub><b>Varac</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=varac" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://tux.pizza"><img src="https://avatars.githubusercontent.com/u/84710786?v=4?s=100" width="100px;" alt="tuxsudo"/><br /><sub><b>tuxsudo</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=tuxpizza" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TylerRudie"><img src="https://avatars.githubusercontent.com/u/2695916?v=4?s=100" width="100px;" alt="TylerRudie"/><br /><sub><b>TylerRudie</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=TylerRudie" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qnb59bny5x"><img src="https://avatars.githubusercontent.com/u/108427982?v=4?s=100" width="100px;" alt="qnb59bny5x"/><br /><sub><b>qnb59bny5x</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=qnb59bny5x" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://blog.drndos.sk"><img src="https://avatars.githubusercontent.com/u/5576134?v=4?s=100" width="100px;" alt="Filip Bednárik"/><br /><sub><b>Filip Bednárik</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Adrndos" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sshcherbinin"><img src="https://avatars.githubusercontent.com/u/92396963?v=4?s=100" width="100px;" alt="Serhii Shcherbinin"/><br /><sub><b>Serhii Shcherbinin</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=sshcherbinin" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qraynaud"><img src="https://avatars.githubusercontent.com/u/65991?v=4?s=100" width="100px;" alt="Quentin Raynaud"/><br /><sub><b>Quentin Raynaud</b></sub></a><br /><a href="https://github.com/truecharts/charts/issues?q=author%3Aqraynaud" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://fachschaften.org"><img src="https://avatars.githubusercontent.com/u/22835?v=4?s=100" width="100px;" alt="Felix Schäfer"/><br /><sub><b>Felix Schäfer</b></sub></a><br /><a href="https://github.com/truecharts/charts/commits?author=thegcat" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
24
.github/SUPPORT.md
vendored
@@ -1,7 +1,3 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Support Policy
|
||||
|
||||
## TrueCharts on TrueNAS SCALE
|
||||
@@ -15,18 +11,12 @@ We also document which versions of TrueNAS will receive TrueCharts updates and f
|
||||
### Supported Versions
|
||||
|
||||
| TrueNAS version | Branch | Supported with updates | Accepting Support tickets | Accepting Bug Reports | Notes |
|
||||
| ---------------- | -------- | ---------------------- | ------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------- |
|
||||
| 22.02.4 or prior | `master` | :x: | :x: | :x: | Advised to update to 22.12.2 release of [TrueNAS SCALE](https://www.truenas.com/docs/scale/scalereleasenotes/) |
|
||||
| 22.12.0 | `master` | :white_check_mark: | :white_check_mark: | :white_check_mark: | Stable Release as of 2022-12-13 |
|
||||
| 22.12.1 | `master` | :white_check_mark: | :white_check_mark: | :white_check_mark: | Stable Release as of 2023-02-21 |
|
||||
| 22.12.2 | `master` | :white_check_mark: | :white_check_mark: | :white_check_mark: | Stable Release as of 2023-04-11 |
|
||||
| 22.12.3 | `master` | :white_check_mark: | :white_check_mark: | :white_check_mark: | Stable Release as of 2023-06-13 |
|
||||
| 22.12.3.1 | `master` | :white_check_mark: | :white_check_mark: | :white_check_mark: | Stable Release as of 2023-06-20 |
|
||||
| 22.12.3.2 | `master` | :white_check_mark: | :white_check_mark: | :white_check_mark: | Stable Release as of 2023-07-05 |
|
||||
| 22.12.3.3 | `master` | :white_check_mark: | :white_check_mark: | :white_check_mark: | Stable Release as of 2023-07-25 |
|
||||
| ---------------- | -------- | ---------------------- | ------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------- | --- |
|
||||
| 22.02.4 or prior | `master` | :white_check_mark: | :x: | :x: | Advised to update to 22.12.0 release of [TrueNAS SCALE](https://www.truenas.com/docs/scale/scalereleasenotes/) | |
|
||||
| 22.12.0 | `master` | :white_check_mark: | :white_check_mark: | :white_check_mark: | Most Stable Release as of 2022-12-13 |
|
||||
| Nightly | `master` | :white_check_mark: | :x: | :white_check_mark: | Please only submit bug reports during codefreeze |
|
||||
|
||||
:::warning Support Guidelines
|
||||
::: warning Support Guidelines
|
||||
|
||||
Our [Discord](https://discord.gg/tVsPTHWTtr) support (the ticketing system inside #support) is primarily limited to what is covered by our written guides. This includes installing, linking and editing apps. This doesn't mean the actual setup of the application. All #support tickets covered by the staff are done so in a **best effort** policy.
|
||||
|
||||
@@ -42,7 +32,7 @@ please report them to our [github](https://github.com/truecharts/charts/issues/n
|
||||
## Incubator Train Charts
|
||||
|
||||
Our support policy for `incubator` train charts is different for those on the `stable` train. Those charts are work in progress,
|
||||
may break at anytime and we're still going through many of the charts from unRAID. We won't accept support tickets for `incubator` train
|
||||
charts on our [discord](https://discord.gg/tVsPTHWTtr). However, we have an **#incubator-chat** channel for these apps to help get them running and/or receive feedback.
|
||||
With enough positive feedback a chart can be promoted to `stable` train. Feedback about bugs is also accepted there which can be used to fix them.
|
||||
may break at anytime and we're still going through many of the charts from unRAID. We won't accept support tickets on our discord for `incubator` train
|
||||
charts on our [discord](https://discord.gg/tVsPTHWTtr). However we have an **#incubator-chat** channel for these apps to help get them running and/or receive feedback.
|
||||
With enough posivite feedback a chart can be promoted to `stable` train. Feedback about bugs is also accepted there which can be used to fix them.
|
||||
Assume anything in the `incubator` train is in beta and you're testing it. As well, anything installed in `incubator` will have to be REINSTALLED once it moves to the `stable` train.
|
||||
|
||||
9
.github/actions/collect-changes/action.yaml
vendored
@@ -42,13 +42,12 @@ runs:
|
||||
for CHARTPATH in "${PATHS[@]}"
|
||||
do
|
||||
IFS='/' read -r -a path_parts <<< "${CHARTPATH}"
|
||||
CHARTS+=("${path_parts[0]}/${path_parts[1]}/${path_parts[2]}")
|
||||
CHARTS+=("${path_parts[1]}/${path_parts[2]}")
|
||||
done
|
||||
|
||||
# Remove duplicates
|
||||
CHARTS=( `printf "%s\n" "${CHARTS[@]}" | sort -u` )
|
||||
# Set output to changed charts
|
||||
echo "Changed charts: ${CHARTS[*]}"
|
||||
printf "::set-output name=addedOrModified::%s\n" "${CHARTS[*]}"
|
||||
|
||||
- name: Collect bumped charts after last tag
|
||||
@@ -107,9 +106,11 @@ runs:
|
||||
|
||||
# Remove duplicates
|
||||
CHARTS=( `printf "%s\n" "${CHARTS[@]}" | sort -u` )
|
||||
# Set output to changed charts
|
||||
printf "::set-output name=addedOrModified::%s\n" "${CHARTS[*]}"
|
||||
|
||||
echo "Number of detected changed charts: ${#CHARTS[@]}"
|
||||
if [ ${#CHARTS[@]} -eq 0 ] || [ "${CHARTS[0]}" == ' ' ] || [ "${CHARTS[0]}" == '/' ]; then
|
||||
if [ ${#CHARTS[@]} -eq 0 ] || [ "${CHARTS[0]}" = " " ] || [ "${CHARTS[0]}" = "/" ]; then
|
||||
echo "No Changed Charts detected since latest tag..."
|
||||
printf "::set-output name=changesDetectedAfterTag::%s\n" "false"
|
||||
else
|
||||
@@ -119,7 +120,7 @@ runs:
|
||||
# Get only the chart paths
|
||||
|
||||
# Set output to changed charts
|
||||
echo "Changed charts since latest tag: ${CHARTS[*]}"
|
||||
echo "Changed charts: ${CHARTS[*]}"
|
||||
printf "::set-output name=modifiedChartsAfterTag::%s\n" "${CHARTS[*]}"
|
||||
fi
|
||||
popd > /dev/null
|
||||
|
||||
48
.github/actions/label-from-status/action.yaml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
name: "Set issue labels based on status"
|
||||
description: "Sets / removes issue labels based on CI job status"
|
||||
inputs:
|
||||
token:
|
||||
required: true
|
||||
description: "The Github API token to use"
|
||||
issue-number:
|
||||
required: true
|
||||
description: "The issue to label"
|
||||
prefix:
|
||||
required: true
|
||||
description: "The label prefix (e.g. lint, install)"
|
||||
job-status:
|
||||
required: true
|
||||
description: "The status of the CI job"
|
||||
remove-on-skipped:
|
||||
required: false
|
||||
default: false
|
||||
description: "Remove the label if the job was skipped"
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Label success
|
||||
uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 # tag=1.0.4
|
||||
if: ${{ inputs.job-status == 'success' }}
|
||||
with:
|
||||
repo-token: ${{ inputs.token }}
|
||||
issue-number: ${{ inputs.issue-number }}
|
||||
add-labels: "${{ inputs.prefix }}:ok"
|
||||
remove-labels: "${{ inputs.prefix }}:failed"
|
||||
|
||||
- name: Label failure
|
||||
uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 # tag=1.0.4
|
||||
if: ${{ inputs.job-status == 'failure' }}
|
||||
with:
|
||||
repo-token: ${{ inputs.token }}
|
||||
issue-number: ${{ inputs.issue-number }}
|
||||
add-labels: "${{ inputs.prefix }}:failed"
|
||||
remove-labels: "${{ inputs.prefix }}:ok"
|
||||
|
||||
- name: Remove label
|
||||
uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 # tag=1.0.4
|
||||
if: ${{ (inputs.job-status == 'skipped') && (inputs.remove-on-skipped == 'true') }}
|
||||
with:
|
||||
repo-token: ${{ inputs.token }}
|
||||
issue-number: ${{ inputs.issue-number }}
|
||||
remove-labels: "${{ inputs.prefix }}:ok, ${{ inputs.prefix }}:failed"
|
||||
7
.github/cr.yaml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
owner: truecharts
|
||||
git-repo: charts
|
||||
repo: charts
|
||||
charts-dir: charts/*
|
||||
charts_repo_url: "https://charts.truecharts.org"
|
||||
SkipExisting: true
|
||||
skipExisting: true
|
||||
25
.github/ct-install.yaml
vendored
@@ -1,44 +1,40 @@
|
||||
remote: origin
|
||||
target-branch: master
|
||||
helm-extra-args: --timeout 250s
|
||||
helm-extra-args: --timeout 300s
|
||||
chart-yaml-schema: .github/chart_schema.yaml
|
||||
chart-dirs:
|
||||
- charts/incubator
|
||||
- charts/stable
|
||||
- charts/dependency
|
||||
- charts/core
|
||||
- charts/dev
|
||||
- charts/games
|
||||
- charts/enterprise
|
||||
- charts/operators
|
||||
- charts/SCALE
|
||||
excluded-charts:
|
||||
- charts/dependency/subchart
|
||||
- charts/incubator/twingate-connector
|
||||
- charts/incubator/docassemble
|
||||
- charts/incubator/eco
|
||||
- charts/incubator/midarr
|
||||
- charts/incubator/frigate
|
||||
- charts/incubator/orbital-sync
|
||||
- charts/incubator/plex-meta-manager
|
||||
- charts/incubator/telepush
|
||||
- charts/library/common
|
||||
- charts/stable/alertmanager-bot
|
||||
- charts/stable/alertmanager-bot
|
||||
- charts/stable/alertmanager-discord
|
||||
- charts/stable/amcrest2mqtt
|
||||
- charts/stable/arksurvivalevolved
|
||||
- charts/stable/tauticord
|
||||
- charts/stable/discordgsm
|
||||
- charts/stable/facebox
|
||||
- charts/stable/foundryvtt
|
||||
- charts/stable/foundryvtt
|
||||
- charts/stable/frigate
|
||||
- charts/stable/heimdall
|
||||
- charts/stable/mc-router
|
||||
- charts/stable/multus
|
||||
- charts/stable/local-ai
|
||||
- charts/stable/orbital-sync
|
||||
- charts/stable/plex-meta-manager
|
||||
- charts/stable/pod-gateway
|
||||
- charts/stable/promcord
|
||||
- charts/stable/promcord
|
||||
- charts/stable/rdesktop
|
||||
- charts/stable/reg
|
||||
- charts/stable/romm
|
||||
- charts/stable/ser2sock
|
||||
- charts/stable/storj-node
|
||||
- charts/stable/tailscale
|
||||
@@ -48,5 +44,6 @@ excluded-charts:
|
||||
chart-repos:
|
||||
- truecharts=https://charts.truecharts.org
|
||||
- truecharts-library=https://library-charts.truecharts.org
|
||||
- truecharts-deps=https://deps.truecharts.org
|
||||
- jetstack=https://charts.jetstack.io
|
||||
- bitnami=https://charts.bitnami.com/bitnami
|
||||
- grafana=https://grafana.github.io/helm-charts
|
||||
- prometheus=https://prometheus-community.github.io/helm-charts
|
||||
|
||||
11
.github/ct-lint.yaml
vendored
@@ -1,17 +1,20 @@
|
||||
remote: origin
|
||||
target-branch: master
|
||||
chart-yaml-schema: .github/chart_schema.yaml
|
||||
helm-extra-args: --timeout 120s
|
||||
helm-extra-args: --timeout 600s
|
||||
chart-dirs:
|
||||
- charts/incubator
|
||||
- charts/stable
|
||||
- charts/dependency
|
||||
- charts/core
|
||||
- charts/dev
|
||||
- charts/games
|
||||
- charts/enterprise
|
||||
- charts/operators
|
||||
- charts/SCALE
|
||||
excluded-charts: []
|
||||
chart-repos:
|
||||
- truecharts=https://charts.truecharts.org
|
||||
- truecharts-library=https://library-charts.truecharts.org
|
||||
- truecharts-deps=https://deps.truecharts.org
|
||||
- jetstack=https://charts.jetstack.io
|
||||
- bitnami=https://charts.bitnami.com/bitnami
|
||||
- grafana=https://grafana.github.io/helm-charts
|
||||
- prometheus=https://prometheus-community.github.io/helm-charts
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
---
|
||||
rules:
|
||||
anchors:
|
||||
forbid-undeclared-aliases: true
|
||||
braces:
|
||||
forbid: non-empty
|
||||
min-spaces-inside: 0
|
||||
max-spaces-inside: 0
|
||||
min-spaces-inside-empty: -1
|
||||
max-spaces-inside-empty: -1
|
||||
brackets:
|
||||
forbid: false
|
||||
min-spaces-inside: 0
|
||||
max-spaces-inside: 0
|
||||
min-spaces-inside-empty: -1
|
||||
@@ -24,33 +20,27 @@ rules:
|
||||
comments:
|
||||
require-starting-space: true
|
||||
min-spaces-from-content: 2
|
||||
document-end: disable
|
||||
# No --- to start a file
|
||||
document-start: disable
|
||||
document-end: disable
|
||||
empty-lines:
|
||||
max: 1
|
||||
max: 2
|
||||
max-start: 0
|
||||
max-end: 0
|
||||
float-values:
|
||||
require-numeral-before-decimal: true
|
||||
forbid-scientific-notation: true
|
||||
forbid-nan: true
|
||||
forbid-inf: true
|
||||
hyphens:
|
||||
max-spaces-after: 1
|
||||
indentation:
|
||||
spaces: 2
|
||||
indent-sequences: true
|
||||
spaces: consistent
|
||||
# - list indentation will handle both indentation and without
|
||||
indent-sequences: whatever
|
||||
check-multi-line-strings: false
|
||||
key-duplicates: enable
|
||||
# Lines can be any length
|
||||
key-duplicates:
|
||||
enable
|
||||
# Lines can be any length
|
||||
line-length: disable
|
||||
new-line-at-end-of-file: enable
|
||||
new-lines:
|
||||
type: unix
|
||||
octal-values:
|
||||
forbid-implicit-octal: true
|
||||
forbid-explicit-octal: true
|
||||
trailing-spaces: enable
|
||||
truthy:
|
||||
allowed-values: ["true", "false"]
|
||||
level: warning
|
||||
154
.github/renovate.json5
vendored
@@ -8,10 +8,10 @@
|
||||
"commitMessageExtra": "to {{newVersion}}",
|
||||
"commitMessageSuffix": "",
|
||||
"rebaseWhen": "conflicted",
|
||||
"prConcurrentLimit": 150,
|
||||
"prConcurrentLimit": 50,
|
||||
"timezone":"Europe/Amsterdam",
|
||||
"pinDigests": true,
|
||||
"automerge": false,
|
||||
"automerge": true,
|
||||
"gitAuthor": "TrueCharts-Admin <bot@truecharts.org>",
|
||||
"helm-values": {
|
||||
"fileMatch": ["charts/.+/.*values\\.yaml$", "charts/.+/SCALE/.*_values\\.yaml$"]
|
||||
@@ -20,12 +20,6 @@
|
||||
"fileMatch": ["charts/.+/Chart\\.yaml$"]
|
||||
},
|
||||
"packageRules": [
|
||||
// Bundle Github Actions
|
||||
{
|
||||
"matchManagers": ["github-actions"],
|
||||
"groupName": "Github-Actions",
|
||||
"automerge": true
|
||||
},
|
||||
// Setup datasources for dep updates
|
||||
{
|
||||
"datasources": ["helm"],
|
||||
@@ -38,7 +32,7 @@
|
||||
"matchManagers": ["helm-values"],
|
||||
"enabled": true,
|
||||
"pinDigests": true,
|
||||
"automerge": false,
|
||||
"automerge": true,
|
||||
"commitMessageTopic": "container image {{depName}}",
|
||||
"commitMessageExtra": "to {{#if isSingleVersion}}v{{{newVersion}}}{{else}}{{{newValue}}}{{/if}}",
|
||||
"matchUpdateTypes": ["major", "minor", "patch", "digest"],
|
||||
@@ -47,7 +41,7 @@
|
||||
"datasources": ["docker"],
|
||||
"enabled": true,
|
||||
"pinDigests": true,
|
||||
"automerge": false,
|
||||
"automerge": true,
|
||||
"separateMinorPatch": true,
|
||||
"commitMessageTopic": "container image {{depName}}",
|
||||
"commitMessageExtra": "to {{#if isSingleVersion}}v{{{newVersion}}}{{else}}{{{newValue}}}{{/if}}",
|
||||
@@ -56,7 +50,7 @@
|
||||
{
|
||||
"matchManagers": ["github-actions"],
|
||||
"excludePackageNames": ["stefanzweifel/git-auto-commit-action"],
|
||||
"automerge": true,
|
||||
"automerge": false,
|
||||
},
|
||||
//
|
||||
// helm deps
|
||||
@@ -68,179 +62,94 @@
|
||||
"bumpVersion": "major",
|
||||
"labels": ["update/helm/dependency/major"],
|
||||
"groupName": ["helm dependency major"],
|
||||
"matchPaths": ["charts/dependency/**", "templates/**"],
|
||||
"matchPaths": ["charts/dependency/**"],
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["helm"],
|
||||
"automerge": false,
|
||||
"automerge": true,
|
||||
"matchUpdateTypes": [
|
||||
"minor",
|
||||
"patch"
|
||||
],
|
||||
"bumpVersion": "patch",
|
||||
"labels": ["update/helm/dependency/non-major", "automerge"],
|
||||
"matchPaths": ["charts/dependency/**", "templates/**"],
|
||||
"labels": ["update/helm/dependency/non-major"],
|
||||
"matchPaths": ["charts/dependency/**"],
|
||||
"groupName": "helm dependency non-major",
|
||||
},
|
||||
//
|
||||
// helm ent and operators
|
||||
//
|
||||
{
|
||||
"matchDatasources": ["helm"],
|
||||
"updateTypes": ["major"],
|
||||
"bumpVersion": "major",
|
||||
"enabled": true,
|
||||
"labels": ["update/helm/general/major"],
|
||||
"groupName": ["helm general major"],
|
||||
"matchPaths": ["charts/enterprise/**", "charts/operators/**"],
|
||||
"schedule": [
|
||||
"before 10pm on tuesday"
|
||||
],
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["helm"],
|
||||
"automerge": false,
|
||||
"matchUpdateTypes": [
|
||||
"minor",
|
||||
"patch"
|
||||
],
|
||||
"enabled": true,
|
||||
"bumpVersion": "patch",
|
||||
"labels": ["update/helm/general/non-major", "automerge"],
|
||||
"groupName": "helm general non-major",
|
||||
"matchPaths": ["charts/enterprise/**", "charts/operators/**"],
|
||||
"schedule": [
|
||||
"before 10pm on tuesday"
|
||||
],
|
||||
},
|
||||
//
|
||||
// helm charts
|
||||
//
|
||||
{
|
||||
"matchDatasources": ["helm"],
|
||||
"updateTypes": ["major"],
|
||||
"bumpVersion": "major",
|
||||
"enabled": false,
|
||||
"labels": ["update/helm/general/major"],
|
||||
"groupName": ["helm general major"],
|
||||
"matchPaths": ["charts/incubator/**", "charts/SCALE/**", "charts/dev/**", "charts/stable/**", "templates/app/**"],
|
||||
"matchPaths": ["charts/incubator/**", "charts/SCALE/**", "charts/dev/**", "charts/enterprise/**", "charts/stable/**", "templates/app/**"],
|
||||
"schedule": [
|
||||
"before 10pm on tuesday"
|
||||
],
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["helm"],
|
||||
"automerge": false,
|
||||
"enabled": true,
|
||||
"automerge": true,
|
||||
"matchUpdateTypes": [
|
||||
"minor",
|
||||
"patch"
|
||||
],
|
||||
"bumpVersion": "patch",
|
||||
"labels": ["update/helm/general/non-major", "automerge"],
|
||||
"labels": ["update/helm/general/non-major"],
|
||||
"groupName": "helm general non-major",
|
||||
"matchPaths": ["charts/incubator/**", "charts/SCALE/**", "charts/dev/**", "charts/stable/**", "templates/app/**"],
|
||||
"matchPaths": ["charts/incubator/**", "charts/SCALE/**", "charts/dev/**", "charts/enterprise/**", "charts/stable/**", "templates/app/**"],
|
||||
"schedule": [
|
||||
"before 10pm on tuesday"
|
||||
],
|
||||
},
|
||||
//
|
||||
// Tag updates for semantic tags on enterprise and operatorApps
|
||||
// Tag updates for semantic tags on enterprise Apps
|
||||
//
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"updateTypes": ["major"],
|
||||
"enabled": true,
|
||||
"bumpVersion": "major",
|
||||
"labels": ["update/docker/enterprise/major"],
|
||||
"matchPaths": ["charts/enterprise/**", "charts/operators/**"],
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"automerge": false,
|
||||
"matchUpdateTypes": [
|
||||
"minor",
|
||||
],
|
||||
"enabled": true,
|
||||
"bumpVersion": "patch",
|
||||
"labels": ["update/docker/enterprise/minor"],
|
||||
"matchPaths": ["charts/enterprise/**", "charts/operators/**"],
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"automerge": false,
|
||||
"matchUpdateTypes": [
|
||||
"patch",
|
||||
"digest",
|
||||
"pin",
|
||||
],
|
||||
"bumpVersion": "patch",
|
||||
"enabled": true,
|
||||
"labels": ["update/docker/enterprise/patch", "automerge"],
|
||||
"matchPaths": ["charts/enterprise/**"],
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"automerge": false,
|
||||
"matchUpdateTypes": [
|
||||
"patch",
|
||||
"digest",
|
||||
"pin",
|
||||
],
|
||||
"bumpVersion": "patch",
|
||||
"enabled": true,
|
||||
"labels": ["update/docker/operator/patch"],
|
||||
"matchPaths": ["charts/operator/**"],
|
||||
},
|
||||
//
|
||||
// Tag updates for semantic tags on incubator and dev charts
|
||||
//
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"updateTypes": ["major"],
|
||||
"bumpVersion": "minor",
|
||||
"enabled": false,
|
||||
"labels": ["update/docker/incubator/major", "automerge"],
|
||||
"matchPaths": ["charts/incubator/**", "charts/dev/**"],
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"automerge": false,
|
||||
"automerge": true,
|
||||
"matchUpdateTypes": [
|
||||
"minor",
|
||||
"patch",
|
||||
"digest",
|
||||
],
|
||||
"bumpVersion": "patch",
|
||||
"enabled": false,
|
||||
"labels": ["update/docker/incubator/non-major", "automerge"],
|
||||
"matchPaths": ["charts/incubator/**", "charts/dev/**"],
|
||||
"labels": ["update/docker/enterprise/minor"],
|
||||
"matchPaths": ["charts/enterprise/**"],
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"automerge": false,
|
||||
"automerge": true,
|
||||
"matchUpdateTypes": [
|
||||
"patch",
|
||||
"digest",
|
||||
"pin",
|
||||
],
|
||||
"bumpVersion": "patch",
|
||||
"enabled": true,
|
||||
"labels": ["update/docker/incubator/non-major", "automerge"],
|
||||
"matchPaths": ["charts/incubator/**", "charts/dev/**"],
|
||||
"labels": ["update/docker/enterprise/patch"],
|
||||
"matchPaths": ["charts/enterprise/**"],
|
||||
},
|
||||
//
|
||||
// Tag updates for semantic tags on all but enterprise, operator and incubator Apps
|
||||
// Tag updates for semantic tags on all but enterprise Apps
|
||||
//
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"updateTypes": ["major"],
|
||||
"bumpVersion": "minor",
|
||||
"enabled": true,
|
||||
"labels": ["update/docker/general/major", "automerge"],
|
||||
"matchPaths": ["charts/dependency/**", "charts/SCALE/**", "charts/stable/**", "templates/app/**"],
|
||||
"matchPaths": ["charts/dependency/**", "charts/SCALE/**", "charts/incubator/**", "charts/dev/**", "charts/stable/**", "templates/app/**"],
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"automerge": false,
|
||||
"automerge": true,
|
||||
"matchUpdateTypes": [
|
||||
"minor",
|
||||
"patch",
|
||||
@@ -248,9 +157,8 @@
|
||||
"pin",
|
||||
],
|
||||
"bumpVersion": "patch",
|
||||
"enabled": true,
|
||||
"labels": ["update/docker/general/non-major", "automerge"],
|
||||
"matchPaths": ["charts/dependency/**", "charts/SCALE/**", "charts/library/**", "charts/stable/**", "templates/app/**"],
|
||||
"matchPaths": ["charts/dependency/**", "charts/SCALE/**", "charts/incubator/**", "charts/dev/**", "charts/library/**", "charts/stable/**", "templates/app/**"],
|
||||
},
|
||||
//
|
||||
// Tag semantic version type based on regex
|
||||
@@ -287,11 +195,6 @@
|
||||
"matchPackagePrefixes": ["tccr.io/truecharts/immich"],
|
||||
"groupName": "immich",
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"matchPackagePrefixes": ["tccr.io/truecharts/portainer"],
|
||||
"groupName": "portainer",
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"matchPackagePrefixes": ["tccr.io/truecharts/neko"],
|
||||
@@ -302,11 +205,6 @@
|
||||
"matchPackagePrefixes": ["tccr.io/truecharts/webtop"],
|
||||
"groupName": "webtop",
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"matchPackagePrefixes": ["tccr.io/truecharts/metallb"],
|
||||
"groupName": "metallb",
|
||||
},
|
||||
{
|
||||
"matchDatasources": ["docker"],
|
||||
"matchPackagePrefixes": ["tccr.io/truecharts/zabbix"],
|
||||
|
||||
15
.github/scripts/build-catalog.sh
vendored
@@ -75,21 +75,6 @@ patch_apps() {
|
||||
sed -i "s|^icon:|icon_url:|g" catalog/${train}/${chartname}/item.yaml
|
||||
echo "categories:" >> catalog/${train}/${chartname}/item.yaml
|
||||
cat ${target}/Chart.yaml | yq '.annotations."truecharts.org/catagories"' -r >> catalog/${train}/${chartname}/item.yaml
|
||||
|
||||
# Generate screenshots
|
||||
screenshots=""
|
||||
if [[ -d "${target}/screenshots" ]]; then
|
||||
screenshots=$(ls ${target}/screenshots)
|
||||
fi
|
||||
if [[ -n $screenshots ]]; then
|
||||
echo "screenshots:" >> catalog/${train}/${chartname}/item.yaml
|
||||
for screenshot in $screenshots; do
|
||||
echo " - https://truecharts.org/img/hotlink-ok/chart-screenshots/${chartname}/${screenshot}" >> catalog/${train}/${chartname}/item.yaml
|
||||
done
|
||||
else
|
||||
echo "screenshots: []" >> catalog/${train}/${chartname}/item.yaml
|
||||
fi
|
||||
rm -rf ${target}/screenshots
|
||||
# Copy changelog from website
|
||||
if [[ ! -f "website/docs/charts/${train}/${chartname}/CHANGELOG.md" ]]; then
|
||||
touch "website/docs/charts/${train}/${chartname}/CHANGELOG.md"
|
||||
|
||||
57
.github/scripts/fetch_helm_deps.sh
vendored
@@ -19,21 +19,8 @@ trains=(
|
||||
"stable"
|
||||
"incubator"
|
||||
"dependency"
|
||||
"operators"
|
||||
)
|
||||
|
||||
load_gpg_key() {
|
||||
echo ""
|
||||
echo "⏬ Downloading and Loading TrueCharts pgp Public Key"
|
||||
gpg_dir=.cr-gpg
|
||||
mkdir -p "$gpg_dir"
|
||||
curl --silent https://keybase.io/truecharts/pgp_keys.asc | gpg --dearmor > $gpg_dir/pubring.gpg || echo "❌ Couldn't load Public Key."
|
||||
curl --silent https://cert-manager.io/public-keys/cert-manager-keyring-2021-09-20-1020CF3C033D4F35BAE1C19E1226061C665DF13E.gpg > $gpg_dir/certman.gpg || echo "❌ Couldn't load certman Public Key."
|
||||
echo "✅ Public Key loaded successfully..."
|
||||
echo ""
|
||||
}
|
||||
export -f load_gpg_key
|
||||
|
||||
download_deps() {
|
||||
local train_chart="$1"
|
||||
|
||||
@@ -94,56 +81,21 @@ for idx in $(eval echo "{0..$length}"); do
|
||||
# Extract url from repo_url. It's under .entries.DEP_NAME.urls. We filter the specific version first (.version)
|
||||
dep_url=$(v="$version" n="$name" go-yq '.entries.[env(n)].[] | select (.version == env(v)) | .urls.[0]' "$index_cache/$repo_dir/index.yaml")
|
||||
|
||||
# tmp hotpatch for cert-manager
|
||||
if [[ ! "$dep_url" == "https"* ]]; then
|
||||
dep_url="https://charts.jetstack.io/${dep_url}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "⏬ Downloading dependency $name-$version from $dep_url..."
|
||||
mkdir -p "$cache_path/$repo_dir"
|
||||
wget --quiet "$dep_url" -P "$cache_path/$repo_dir"
|
||||
wget --quiet "$dep_url.prov" -P "$cache_path/$repo_dir" || echo "failed downloading .prov"
|
||||
|
||||
if [ ! $? ]; then
|
||||
echo "❌ wget encountered an error..."
|
||||
if [[ "$train_chart" =~ incubator\/.* ]]; then
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" || \
|
||||
helm dependency update "$charts_path/$train_chart/Chart.yaml"|| exit 1
|
||||
elif [[ "$name" =~ "cert-manager" ]]; then
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" --verify --keyring $gpg_dir/certman.gpg || \
|
||||
helm dependency update "$charts_path/$train_chart/Chart.yaml" --verify --keyring $gpg_dir/certman.gpg || exit 1
|
||||
else
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" --verify --keyring $gpg_dir/pubring.gpg || \
|
||||
helm dependency update "$charts_path/$train_chart/Chart.yaml" --verify --keyring $gpg_dir/pubring.gpg || exit 1
|
||||
fi
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" || helm dependency update "$charts_path/$train_chart/Chart.yaml" || exit 1
|
||||
fi
|
||||
|
||||
if [ -f "$cache_path/$repo_dir/$name-$version.tgz" ]; then
|
||||
echo "✅ Dependency Downloaded!"
|
||||
if [[ "$name" =~ "cert-manager" ]]; then
|
||||
helm verify $cache_path/$repo_dir/$name-$version.tgz --keyring $gpg_dir/certman.gpg || \
|
||||
helm verify $cache_path/$repo_dir/$name-$version.tgz --keyring $gpg_dir/certman.gpg || exit 1
|
||||
elif [[ ! "$train_chart" =~ incubator\/.* ]]; then
|
||||
echo "Validating dependency signature..."
|
||||
helm verify $cache_path/$repo_dir/$name-$version.tgz --keyring $gpg_dir/pubring.gpg || \
|
||||
helm verify $cache_path/$repo_dir/$name-$version.tgz --keyring $gpg_dir/pubring.gpg || exit 1
|
||||
else
|
||||
echo "Skipping dependency signature verification for $train_chart..."
|
||||
fi
|
||||
else
|
||||
echo "❌ Failed to download dependency"
|
||||
# Try helm dependency build/update or otherwise fail fast if a dep fails to download...
|
||||
if [[ "$train_chart" =~ incubator\/.* ]]; then
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" || \
|
||||
helm dependency update "$charts_path/$train_chart/Chart.yaml"|| exit 1
|
||||
elif [[ "$name" =~ "cert-manager" ]]; then
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" --verify --keyring $gpg_dir/certman.gpg || \
|
||||
helm dependency update "$charts_path/$train_chart/Chart.yaml" --verify --keyring $gpg_dir/certman.gpg || exit 1
|
||||
else
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" --verify --keyring $gpg_dir/pubring.gpg || \
|
||||
helm dependency update "$charts_path/$train_chart/Chart.yaml" --verify --keyring $gpg_dir/pubring.gpg || exit 1
|
||||
fi
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" || helm dependency update "$charts_path/$train_chart/Chart.yaml" || exit 1
|
||||
fi
|
||||
fi
|
||||
echo ""
|
||||
@@ -158,16 +110,13 @@ for idx in $(eval echo "{0..$length}"); do
|
||||
else
|
||||
echo "❌ Failed to copy dependency"
|
||||
# Try helm dependency build/update or otherwise fail fast if a dep fails to copy...
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" || \
|
||||
helm dependency update "$charts_path/$train_chart/Chart.yaml" || exit 1
|
||||
helm dependency build "$charts_path/$train_chart/Chart.yaml" || helm dependency update "$charts_path/$train_chart/Chart.yaml" || exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
export -f download_deps
|
||||
|
||||
load_gpg_key
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
for train in "${trains[@]}"; do
|
||||
for chart in $(ls "$charts_path/$train"); do
|
||||
|
||||
277
.github/scripts/tc-lint.sh
vendored
@@ -1,277 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function check_version() {
|
||||
chart_path=${1:?"No chart path provided to [Version Check]"}
|
||||
target_branch=${2:?"No target branch provided to [Version Check]"}
|
||||
|
||||
# If only docs changed, skip version check
|
||||
# git diff target_branch, filter only on $chart_path and invert match for $chart_path/docs
|
||||
# note that it requires branches to be up to date for this to work.
|
||||
chart_changes=$(git diff --name-status "$target_branch" -- "$chart_path" | grep -v "$chart_path/docs")
|
||||
echo -e "\tChange files: \n\n$chart_changes"
|
||||
|
||||
if [[ -z "$chart_changes" ]]; then
|
||||
echo -e "\tLooks like only docs changed. Skipping chart version check"
|
||||
echo -e "\t✅ Chart version: No bump required"
|
||||
echo ''
|
||||
return
|
||||
fi
|
||||
|
||||
new=$(git diff "$target_branch" -- "$chart_path" | sed -nr 's/^\+version: (.*)$/\1/p')
|
||||
old=$(git diff "$target_branch" -- "$chart_path" | sed -nr 's/^\-version: (.*)$/\1/p')
|
||||
|
||||
if [[ -z "$new" ]]; then
|
||||
echo -e "\t❌ Chart version: Not changed"
|
||||
curr_result=1
|
||||
fi
|
||||
|
||||
if [[ -n "$new" ]]; then
|
||||
echo -e "\t🔙 Old Chart Version: $old"
|
||||
echo -e "\t🆕 New Chart Version: $new"
|
||||
|
||||
if [[ $(echo "$new\n$old" | sort -V -r | head -n1) != "$old" ]]; then
|
||||
echo -e "\t✅ Chart version: Bumped"
|
||||
else
|
||||
echo -e "\t❌ Chart version: Not bumped or downgraded"
|
||||
curr_result=1
|
||||
fi
|
||||
fi
|
||||
echo ''
|
||||
}
|
||||
export -f check_version
|
||||
|
||||
function check_chart_schema(){
|
||||
chart_path=${1:?"No chart path provided to [Chart.yaml lint]"}
|
||||
|
||||
yamale_output=$(yamale --schema .github/chart_schema.yaml "$chart_path/Chart.yaml")
|
||||
yamale_exit_code=$?
|
||||
while IFS= read -r line; do
|
||||
if [[ -n $line ]]; then
|
||||
echo -e "\t$line"
|
||||
fi
|
||||
done <<< "$yamale_output"
|
||||
|
||||
if [ $yamale_exit_code -ne 0 ]; then
|
||||
echo -e "\t❌ Chart Schema: Failed"
|
||||
curr_result=1
|
||||
else
|
||||
echo -e "\t✅ Chart Schema: Passed"
|
||||
fi
|
||||
echo ''
|
||||
}
|
||||
export -f check_chart_schema
|
||||
|
||||
function helm_lint(){
|
||||
chart_path=${1:?"No chart path provided to [Helm lint]"}
|
||||
|
||||
# Print only errors and warnings
|
||||
helm_lint_output=$(helm lint --quiet "$chart_path")
|
||||
helm_lint_exit_code=$?
|
||||
while IFS= read -r line; do
|
||||
if [[ -n $line ]]; then
|
||||
echo -e "\t$line"
|
||||
fi
|
||||
done <<< "$helm_lint_output"
|
||||
|
||||
if [ $helm_lint_exit_code -ne 0 ]; then
|
||||
echo -e "\t❌ Helm Lint: Failed"
|
||||
curr_result=1
|
||||
else
|
||||
echo -e "\t✅ Helm Lint: Passed"
|
||||
fi
|
||||
echo ''
|
||||
}
|
||||
export -f helm_lint
|
||||
|
||||
function helm_template(){
|
||||
chart_path=${1:?"No chart path provided to [Helm template]"}
|
||||
values=${2:-}
|
||||
|
||||
if [[ -n "$values" ]]; then
|
||||
values="-f $values"
|
||||
fi
|
||||
|
||||
# Print only errors and warnings
|
||||
helm_template_output=$(helm template $values "$chart_path" 2>&1 >/dev/null)
|
||||
helm_template_exit_code=$?
|
||||
while IFS= read -r line; do
|
||||
if [[ -n $line ]]; then
|
||||
echo -e "\t$line"
|
||||
fi
|
||||
done <<< "$helm_template_output"
|
||||
|
||||
if [ $helm_template_exit_code -ne 0 ]; then
|
||||
echo -e "\t❌ Helm template: Failed"
|
||||
curr_result=1
|
||||
else
|
||||
echo -e "\t✅ Helm template: Passed"
|
||||
fi
|
||||
echo ''
|
||||
}
|
||||
export -f helm_template
|
||||
|
||||
function yaml_lint(){
|
||||
file_path=${1:?"No file path provided to [YAML lint]"}
|
||||
|
||||
yaml_lint_output=$(yamllint --config-file .github/yaml-lint-conf.yaml "$file_path")
|
||||
yaml_lint_exit_code=$?
|
||||
while IFS= read -r line; do
|
||||
if [[ -n $line ]]; then
|
||||
echo -e "\t$line"
|
||||
fi
|
||||
done <<< "$yaml_lint_output"
|
||||
|
||||
if [ $yaml_lint_exit_code -ne 0 ]; then
|
||||
echo -e "\t❌ YAML Lint: Failed [$file_path]"
|
||||
curr_result=1
|
||||
else
|
||||
echo -e "\t✅ YAML Lint: Passed [$file_path]"
|
||||
fi
|
||||
echo ''
|
||||
}
|
||||
export -f yaml_lint
|
||||
|
||||
function lint_chart(){
|
||||
chart_path=${1:?"No chart path provided to [Lint Chart]"}
|
||||
target_branch=${2:?"No target branch provided to [Lint Chart]"}
|
||||
status_file=${3:?"No status file provided to [Lint Chart]"}
|
||||
|
||||
curr_result_file=/tmp/$(basename "$chart_path")
|
||||
curr_result=0
|
||||
{
|
||||
start_time=$(date +%s)
|
||||
echo '---------------------------------------------------------------------------------------'
|
||||
echo "## 🔍Linting [$chart_path]"
|
||||
echo '----------------------------------------------'
|
||||
echo ''
|
||||
echo "👣 Helm Lint - [$chart_path]"
|
||||
helm_lint "$chart_path"
|
||||
|
||||
# FIXME: Comment out for now as it requires deps installed in linting.
|
||||
# if [[ ! $(ls $chart_path/ci/*values.yaml) ]]; then
|
||||
# echo "👣 Helm Template - [$chart_path]"
|
||||
# helm_template "$chart_path"
|
||||
# fi
|
||||
|
||||
# for values in $chart_path/ci/*values.yaml; do
|
||||
# if [ -f "${values}" ]; then
|
||||
# echo "👣 Helm Template - [$values]"
|
||||
# helm_template "$chart_path" "$values"
|
||||
# fi
|
||||
# done
|
||||
|
||||
echo "👣 Chart Version - [$chart_path] against [$target_branch]"
|
||||
check_version "$chart_path" "$target_branch"
|
||||
|
||||
echo "👣 Chart Schema - [$chart_path]"
|
||||
check_chart_schema "$chart_path"
|
||||
|
||||
echo "👣 YAML Lint - [$chart_path/Chart.yaml]"
|
||||
yaml_lint "$chart_path/Chart.yaml"
|
||||
|
||||
echo "👣 YAML Lint - [$chart_path/values.yaml]"
|
||||
yaml_lint "$chart_path/values.yaml"
|
||||
|
||||
for values in $chart_path/ci/*values.yaml; do
|
||||
if [ -f "${values}" ]; then
|
||||
echo "👣 YAML Lint - [$values]"
|
||||
yaml_lint "$values"
|
||||
fi
|
||||
done
|
||||
|
||||
end_time=$(date +%s)
|
||||
diff_time=$((end_time - start_time))
|
||||
|
||||
echo -e "\nResult:"
|
||||
if [ $curr_result -ne 0 ]; then
|
||||
echo "❌ Linting [$chart_path]: Failed - Took $diff_time seconds" | tee -a "$result_file"
|
||||
else
|
||||
echo "✅ Linting [$chart_path]: Passed - Took $diff_time seconds" | tee -a "$result_file"
|
||||
fi
|
||||
echo '---------------------------------------------------------------------------------------'
|
||||
echo ''
|
||||
} > "$curr_result_file"
|
||||
cat "$curr_result_file"
|
||||
# $curr_result starts with 0, and it gets set to 1 only when a linting step fails
|
||||
echo $curr_result >> "$status_file"
|
||||
}
|
||||
export -f lint_chart
|
||||
|
||||
# Start of script
|
||||
|
||||
charts=$1
|
||||
target_branch=${2:-"origin/master"}
|
||||
status_file="/tmp/status"
|
||||
exit_code=0
|
||||
|
||||
result_file=${result_file:?"No result file provided"}
|
||||
|
||||
rm -f "$status_file"
|
||||
rm -f "$status_file"
|
||||
|
||||
command -v yamale >/dev/null 2>&1 || {
|
||||
printf >&2 "%s\n" "yamale (https://github.com/23andMe/Yamale#pip) is not installed. Aborting."
|
||||
printf >&2 "%s\n" "Install it with 'pip install yamale'"
|
||||
exit 1
|
||||
}
|
||||
|
||||
command -v yamllint >/dev/null 2>&1 || {
|
||||
printf >&2 "%s\n" "yamllint (https://yamllint.readthedocs.io/en/stable/quickstart.html#installing-yamllint) is not installed. Aborting."
|
||||
printf >&2 "%s\n" "Install it with 'pip install yamllint'"
|
||||
exit 1
|
||||
}
|
||||
|
||||
command -v helm >/dev/null 2>&1 || {
|
||||
printf >&2 "%s\n" "helm (https://helm.sh/docs/intro/install) is not installed. Aborting."
|
||||
printf >&2 "%s\n" "Install it with 'curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash'"
|
||||
exit 1
|
||||
}
|
||||
|
||||
command -v parallel >/dev/null 2>&1 || {
|
||||
printf >&2 "%s\n" "parallel (https://www.gnu.org/software/parallel) is not installed. Aborting."
|
||||
printf >&2 "%s\n" "Install it with 'sudo apt install parallel'"
|
||||
exit 1
|
||||
}
|
||||
|
||||
changed=$(echo $charts | jq --raw-output '.[]')
|
||||
|
||||
echo "📂 Charts to lint:"
|
||||
for chart in $changed; do
|
||||
echo -e "\t- 📄 $chart"
|
||||
done
|
||||
echo ''
|
||||
|
||||
start_time=$(date +%s)
|
||||
# Run lint_chart in parallel
|
||||
parallel --jobs $(($(nproc) * 2)) "lint_chart {} $target_branch $status_file" ::: $changed || true
|
||||
if grep -q 1 "$status_file"; then
|
||||
exit_code=1
|
||||
fi
|
||||
end_time=$(date +%s)
|
||||
diff_time=$((end_time - start_time))
|
||||
|
||||
echo '------------------------------------'
|
||||
|
||||
# Print summary
|
||||
sorted=$(cat "$result_file" | sort)
|
||||
sorted=$(echo "$sorted" | sed 's/✅/:heavy_check_mark:/g')
|
||||
sorted=$(echo "$sorted" | sed 's/❌/:heavy_multiplication_x:/g')
|
||||
echo "# 📝 Linting results:" | tee "$result_file"
|
||||
echo '====================================================================================='
|
||||
echo "$sorted" | tee -a "$result_file"
|
||||
echo ''
|
||||
echo -e "Total Charts Linted: **$(echo "$sorted" | wc -l)**" | tee -a "$result_file"
|
||||
echo -e "Total Charts Passed: **$(echo "$sorted" | grep -c 'heavy_check_mark')**" | tee -a "$result_file"
|
||||
echo -e "Total Charts Failed: **$(echo "$sorted" | grep -c 'heavy_multiplication_x')**" | tee -a "$result_file"
|
||||
echo '====================================================================================='
|
||||
echo '' | tee -a "$result_file"
|
||||
|
||||
if [ $exit_code -ne 0 ]; then
|
||||
echo "❌ Linting: **Failed** - Took $diff_time seconds" | tee -a "$result_file"
|
||||
echo "🖱️ Open [Lint Charts and Verify Dependencies] job" | tee -a "$result_file"
|
||||
echo "👀 Expand [Run Chart Linting] step to view the results" | tee -a "$result_file"
|
||||
else
|
||||
echo "✅ Linting: **Passed** - Took $diff_time seconds" | tee -a "$result_file"
|
||||
fi
|
||||
|
||||
exit $exit_code
|
||||
53
.github/scripts/updateTraefikMiddlewareVersions.sh
vendored
Executable file
@@ -0,0 +1,53 @@
|
||||
#! /bin/bash
|
||||
|
||||
trainsPath="./charts"
|
||||
traefikTrain="enterprise"
|
||||
|
||||
get_latest_release() {
|
||||
# Get latest release from GitHub api, NOTE: Remove the header when running locally (or add a valid token)
|
||||
curl --silent \
|
||||
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
|
||||
--url "https://api.github.com/repos/$1/releases/latest" |
|
||||
# Get tag line
|
||||
grep '"tag_name":' |
|
||||
# Pluck JSON value
|
||||
sed -E 's/.*"([^"]+)".*/\1/'
|
||||
}
|
||||
|
||||
set_key_to_version() {
|
||||
key="$1"
|
||||
version="$2"
|
||||
traefikValuesFile="$trainsPath/$traefikTrain/traefik/values.yaml"
|
||||
echo "Setting $key to $version..."
|
||||
sed -i "s/${key}: .*/${key}: ${version}/" $traefikValuesFile
|
||||
|
||||
content=$(grep "$key:" "$traefikValuesFile" | sed "s/\s*${key}:\s*//" )
|
||||
echo "New content of $key in values.yaml: $content"
|
||||
echo ""
|
||||
}
|
||||
|
||||
update_plugin() {
|
||||
repo="$1"
|
||||
key="$2"
|
||||
pluginName="$3"
|
||||
|
||||
version=$(get_latest_release "$repo")
|
||||
if [ -z "$version" ]
|
||||
then
|
||||
echo "Got empty version, skipping..."
|
||||
else
|
||||
echo "Fetched $pluginName plugin version: $version"
|
||||
set_key_to_version "$key" "$version"
|
||||
fi;
|
||||
}
|
||||
# Example
|
||||
# update_plugin "repo" "key_holding_version_in_values.yaml" "plugin_name_used_for_verbose_printing_only"
|
||||
|
||||
# Real IP
|
||||
update_plugin "soulbalz/traefik-real-ip" "realIPVersion" "RealIP"
|
||||
|
||||
# Theme Park
|
||||
update_plugin "packruler/traefik-themepark" "themeParkVersion" "ThemePark"
|
||||
|
||||
# GeoBlock
|
||||
update_plugin "PascalMinder/geoblock" "geoBlockVersion" "GeoBlock"
|
||||
22
.github/workflows/catalog-test.yaml
vendored
@@ -15,9 +15,9 @@ jobs:
|
||||
name: Test SCALE Catalog
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/truecharts/devcontainer:3.1.10@sha256:c239addf725eb5cedf79517f8089fdafdc32b5270d1893ee87ae6e511b9bcae3
|
||||
image: ghcr.io/truecharts/devcontainer:v3.1.1@sha256:44047909bbf54cb1ce3551ae0b342244a5bdcd62562a7f2f07caad4bf8856ee4
|
||||
steps:
|
||||
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
name: Checkout
|
||||
with:
|
||||
fetch-depth: 100
|
||||
@@ -26,13 +26,19 @@ jobs:
|
||||
- name: Setting repo parent dir as safe safe.directory
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
## TODO: Only run on the existing catalog when CI or template changes are actually detected
|
||||
# - name: Checkout
|
||||
# uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3
|
||||
# with:
|
||||
# repository: truecharts/catalog
|
||||
# path: catalog
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
repository: truecharts/catalog
|
||||
path: catalog
|
||||
|
||||
- name: build-and-run
|
||||
run: |
|
||||
tools/build-release.sh
|
||||
|
||||
- uses: vishnudxb/cancel-workflow@c3c77eb4383ba7d023e6614a07d94fe990501ac6 # tag=v1.2
|
||||
if: failure()
|
||||
with:
|
||||
repo: truecharts/charts
|
||||
workflow_id: ${{ github.run_id }}
|
||||
access_token: ${{ github.token }}
|
||||
|
||||
89
.github/workflows/charts-changelog.yaml
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
name: "Charts: Update README"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
modifiedCharts:
|
||||
required: true
|
||||
type: string
|
||||
isRenovatePR:
|
||||
required: true
|
||||
type: string
|
||||
outputs:
|
||||
commitHash:
|
||||
description: "The most recent commit hash at the end of this workflow"
|
||||
value: ${{ jobs.generate-changelog.outputs.commitHash }}
|
||||
|
||||
jobs:
|
||||
validate-changelog:
|
||||
name: Validate changelog
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Check changelog annotations
|
||||
if: inputs.isRenovatePR != 'true'
|
||||
run: |
|
||||
CHARTS=(${{ inputs.modifiedCharts }})
|
||||
for i in "${CHARTS[@]}"
|
||||
do
|
||||
IFS='/' read -r -a chart_parts <<< "$i"
|
||||
./.github/scripts/check-releasenotes.sh "charts/${chart_parts[0]}/${chart_parts[1]}"
|
||||
echo ""
|
||||
done
|
||||
|
||||
generate-changelog:
|
||||
name: Generate changelog annotations
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- validate-changelog
|
||||
outputs:
|
||||
commitHash: ${{ steps.save-commit-hash.outputs.commit_hash }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Kubernetes tools
|
||||
if: inputs.isRenovatePR == 'true'
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
with:
|
||||
setup-tools: |
|
||||
yq
|
||||
yq: "4.20.1"
|
||||
|
||||
- name: Annotate Charts.yaml for Renovate PR's
|
||||
if: inputs.isRenovatePR == 'true'
|
||||
env:
|
||||
DEFAULT_BRANCH: "${{ github.event.repository.default_branch }}"
|
||||
run: |
|
||||
CHARTS=(${{ inputs.modifiedCharts }})
|
||||
for i in "${CHARTS[@]}"
|
||||
do
|
||||
IFS='/' read -r -a chart_parts <<< "$i"
|
||||
./.github/scripts/renovate-releasenotes.sh "charts/${chart_parts[0]}/${chart_parts[1]}"
|
||||
echo ""
|
||||
done
|
||||
|
||||
- name: Create commit
|
||||
id: create-commit
|
||||
if: inputs.isRenovatePR == 'true'
|
||||
uses: stefanzweifel/git-auto-commit-action@3ea6ae190baf489ba007f7c92608f33ce20ef04a # v4
|
||||
with:
|
||||
file_pattern: charts/**/
|
||||
commit_message: "chore: Auto-update chart metadata [skip ci]"
|
||||
commit_user_name: ${{ github.actor }}
|
||||
commit_user_email: ${{ github.actor }}@users.noreply.github.com
|
||||
|
||||
- name: Save commit hash
|
||||
id: save-commit-hash
|
||||
run: |
|
||||
if [ "${{ steps.create-commit.outputs.changes_detected || 'unknown' }}" == "true" ]; then
|
||||
echo '::set-output name=commit_hash::${{ steps.create-commit.outputs.commit_hash }}'
|
||||
else
|
||||
echo "::set-output name=commit_hash::${GITHUB_SHA}"
|
||||
fi
|
||||
434
.github/workflows/charts-lint.yaml
vendored
@@ -9,121 +9,359 @@ on:
|
||||
chartChangesDetected:
|
||||
required: true
|
||||
type: string
|
||||
modifiedFiles:
|
||||
required: true
|
||||
type: string
|
||||
modifiedCharts:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
lint-and-verify:
|
||||
name: Lint Charts and Verify Dependencies
|
||||
generate-lint-matrix:
|
||||
name: Generate matrix for lint
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix1: |
|
||||
{
|
||||
"chart": ${{ steps.list-changed.outputs.charts1 }}
|
||||
}
|
||||
matrix2: |
|
||||
{
|
||||
"chart": ${{ steps.list-changed.outputs.charts2 }}
|
||||
}
|
||||
matrix3: |
|
||||
{
|
||||
"chart": ${{ steps.list-changed.outputs.charts3 }}
|
||||
}
|
||||
matrix4: |
|
||||
{
|
||||
"chart": ${{ steps.list-changed.outputs.charts4 }}
|
||||
}
|
||||
matrix5: |
|
||||
{
|
||||
"chart": ${{ steps.list-changed.outputs.charts5 }}
|
||||
}
|
||||
matrix6: |
|
||||
{
|
||||
"chart": ${{ steps.list-changed.outputs.charts6 }}
|
||||
}
|
||||
detected1: ${{ steps.list-changed.outputs.detected1 }}
|
||||
detected2: ${{ steps.list-changed.outputs.detected2 }}
|
||||
detected3: ${{ steps.list-changed.outputs.detected3 }}
|
||||
detected4: ${{ steps.list-changed.outputs.detected4 }}
|
||||
detected5: ${{ steps.list-changed.outputs.detected5 }}
|
||||
detected6: ${{ steps.list-changed.outputs.detected6 }}
|
||||
steps:
|
||||
- name: Checkout [master]
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
ref: master
|
||||
|
||||
- name: Checkout [commit]
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Setting repo parent dir as safe safe.directory
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Install go-yq
|
||||
run: |
|
||||
mkdir -p $HOME/.local/bin
|
||||
wget https://github.com/mikefarah/yq/releases/download/v4.26.1/yq_linux_amd64 -O $HOME/.local/bin/go-yq && \
|
||||
chmod +x $HOME/.local/bin/go-yq
|
||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Install pre-commit, yamale and yamllint
|
||||
run: |
|
||||
pip3 install --no-cache-dir pre-commit yamale yamllint
|
||||
|
||||
- name: Prep Helm
|
||||
run: |
|
||||
helm repo add truecharts https://charts.truecharts.org
|
||||
helm repo add truecharts-deps https://deps.truecharts.org
|
||||
helm repo add truecharts-library https://library-charts.truecharts.org
|
||||
helm repo add jetstack https://charts.jetstack.io
|
||||
helm repo update
|
||||
|
||||
- name: Collect changes (branch-based)
|
||||
- name: Collect changes
|
||||
id: list-changed
|
||||
if: inputs.chartChangesDetected == 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
CHARTS="${{ inputs.modifiedCharts }}"
|
||||
echo "Modified Charts: ${CHARTS}"
|
||||
|
||||
EXCLUDED_JSON=$(go-yq eval -o=json '.excluded-charts // []' .github/ct-lint.yaml)
|
||||
CHARTS_JSON=$(echo "${CHARTS}" | jq --raw-input '.' | jq --compact-output --slurp '.')
|
||||
OUTPUT_JSON=$(echo "{\"excluded\": ${EXCLUDED_JSON}, \"all\": ${CHARTS_JSON}}" | jq --compact-output '.all-.excluded')
|
||||
|
||||
echo CHANGED_CHARTS=${OUTPUT_JSON} >> "$GITHUB_OUTPUT"
|
||||
if [[ $(echo ${OUTPUT_JSON} | jq --compact-output '. | length') -gt 0 ]]; then
|
||||
echo "detected=true" >> "$GITHUB_OUTPUT"
|
||||
EXCLUDED=$(yq eval -o=json '.excluded-charts // []' .github/ct-lint.yaml)
|
||||
CHARTS=$(ct list-changed --config .github/ct-lint.yaml)
|
||||
CHARTS_JSON=$(echo "${CHARTS}" | jq -R -s -c 'split("\n")[:-1]')
|
||||
OUTPUT_JSON=$(echo "{\"excluded\": ${EXCLUDED}, \"all\": ${CHARTS_JSON}}" | jq -c '.all-.excluded')
|
||||
OUTPUT_JSON1=$((echo $OUTPUT_JSON | jq -r -c '.[:50]'; echo $OUTPUT_JSON | jq -r -c '.[301:350]'; echo $OUTPUT_JSON | jq -r -c '.[601:650]'; echo $OUTPUT_JSON | jq -r -c '.[901:950]'; echo $OUTPUT_JSON | jq -r -c '.[1201:1250]') | jq -s add)
|
||||
OUTPUT_JSON2=$((echo $OUTPUT_JSON | jq -r -c '.[51:100]'; echo $OUTPUT_JSON | jq -r -c '.[351:400]'; echo $OUTPUT_JSON | jq -r -c '.[651:700]'; echo $OUTPUT_JSON | jq -r -c '.[951:1000]'; echo $OUTPUT_JSON | jq -r -c '.[1251:1300]') | jq -s add)
|
||||
OUTPUT_JSON3=$((echo $OUTPUT_JSON | jq -r -c '.[101:150]'; echo $OUTPUT_JSON | jq -r -c '.[401:450]'; echo $OUTPUT_JSON | jq -r -c '.[701:750]'; echo $OUTPUT_JSON | jq -r -c '.[1001:1050]'; echo $OUTPUT_JSON | jq -r -c '.[1301:1350]') | jq -s add)
|
||||
OUTPUT_JSON4=$((echo $OUTPUT_JSON | jq -r -c '.[151:200]'; echo $OUTPUT_JSON | jq -r -c '.[451:500]'; echo $OUTPUT_JSON | jq -r -c '.[751:800]'; echo $OUTPUT_JSON | jq -r -c '.[1051:1100]'; echo $OUTPUT_JSON | jq -r -c '.[1351:1400]') | jq -s add)
|
||||
OUTPUT_JSON5=$((echo $OUTPUT_JSON | jq -r -c '.[201:250]'; echo $OUTPUT_JSON | jq -r -c '.[501:550]'; echo $OUTPUT_JSON | jq -r -c '.[801:850]'; echo $OUTPUT_JSON | jq -r -c '.[1101:1150]'; echo $OUTPUT_JSON | jq -r -c '.[1401:1450]') | jq -s add)
|
||||
OUTPUT_JSON6=$((echo $OUTPUT_JSON | jq -r -c '.[251:300]'; echo $OUTPUT_JSON | jq -r -c '.[551:600]'; echo $OUTPUT_JSON | jq -r -c '.[851:900]'; echo $OUTPUT_JSON | jq -r -c '.[1151:1200]'; echo $OUTPUT_JSON | jq -r -c '.[1451:1500]') | jq -s add)
|
||||
echo ::set-output name=charts1::${OUTPUT_JSON1}
|
||||
echo ::set-output name=charts2::${OUTPUT_JSON2}
|
||||
echo ::set-output name=charts3::${OUTPUT_JSON3}
|
||||
echo ::set-output name=charts4::${OUTPUT_JSON4}
|
||||
echo ::set-output name=charts5::${OUTPUT_JSON5}
|
||||
echo ::set-output name=charts6::${OUTPUT_JSON6}
|
||||
if [[ $(echo ${OUTPUT_JSON1} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "::set-output name=detected1::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON2} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "::set-output name=detected2::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON3} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "::set-output name=detected3::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON4} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "::set-output name=detected4::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON5} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "::set-output name=detected5::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON6} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "::set-output name=detected6::true"
|
||||
fi
|
||||
|
||||
- name: Test and Fix Pre-Commit Issues
|
||||
shell: bash
|
||||
# TODO: Only run pre-commit on changed files
|
||||
# TODO: Commit fixes
|
||||
if: inputs.chartChangesDetected == 'true'
|
||||
run: |
|
||||
echo "Running pre-commit test-and-cleanup..."
|
||||
# Fix sh files to always be executable
|
||||
find . -name '*.sh' | xargs chmod +x
|
||||
pre-commit run --all || pre-commit run --all
|
||||
|
||||
- name: Fetch and Verify dependencies
|
||||
shell: bash
|
||||
if: steps.list-changed.outputs.detected == 'true'
|
||||
env:
|
||||
charts_path: "./"
|
||||
run: |
|
||||
CHANGED=$(echo '${{ steps.list-changed.outputs.CHANGED_CHARTS }}' | jq --raw-output '.[]')
|
||||
for changed in ${CHANGED}; do
|
||||
.github/scripts/fetch_helm_deps.sh "${changed}"
|
||||
done
|
||||
|
||||
- name: Run Chart Linting
|
||||
continue-on-error: true
|
||||
id: lint
|
||||
if: steps.list-changed.outputs.detected == 'true'
|
||||
env:
|
||||
result_file: /tmp/lint_result.txt
|
||||
run: |
|
||||
CHANGED=$(echo '${{ steps.list-changed.outputs.CHANGED_CHARTS }}' | jq --raw-output '.[]')
|
||||
# If the github.base_ref is empty (eg it runs outside of a PR) it fails back to origin/master
|
||||
.github/scripts/tc-lint.sh '${{ steps.list-changed.outputs.CHANGED_CHARTS }}' "origin/${{ github.base_ref }}"
|
||||
|
||||
- name: Create/Update comment
|
||||
if: steps.list-changed.outputs.detected == 'true'
|
||||
continue-on-error: true
|
||||
uses: thollander/actions-comment-pull-request@d61db783da9abefc3437960d0cce08552c7c004f # v2
|
||||
lint-charts1:
|
||||
needs:
|
||||
- generate-lint-matrix
|
||||
if: needs.generate-lint-matrix.outputs.detected1 == 'true'
|
||||
name: Lint charts Part 1
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.generate-lint-matrix.outputs.matrix1) }}
|
||||
fail-fast: false
|
||||
max-parallel: 10
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
filePath: /tmp/lint_result.txt
|
||||
comment_tag: lint_results
|
||||
mode: recreate
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Lint Result
|
||||
if: steps.list-changed.outputs.detected == 'true'
|
||||
shell: bash
|
||||
- name: lint Kubernetes tools
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Run chart-testing (lint)
|
||||
run: ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}" || ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}"
|
||||
|
||||
lint-charts2:
|
||||
needs:
|
||||
- generate-lint-matrix
|
||||
if: needs.generate-lint-matrix.outputs.detected2 == 'true'
|
||||
name: Lint charts Part 2
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.generate-lint-matrix.outputs.matrix2) }}
|
||||
fail-fast: false
|
||||
max-parallel: 10
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: lint Kubernetes tools
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Run chart-testing (lint)
|
||||
run: ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}" || ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}"
|
||||
|
||||
lint-charts3:
|
||||
needs:
|
||||
- generate-lint-matrix
|
||||
if: needs.generate-lint-matrix.outputs.detected3 == 'true'
|
||||
name: Lint charts Part 3
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.generate-lint-matrix.outputs.matrix3) }}
|
||||
fail-fast: false
|
||||
max-parallel: 10
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: lint Kubernetes tools
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Run chart-testing (lint)
|
||||
run: ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}" || ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}"
|
||||
|
||||
lint-charts4:
|
||||
needs:
|
||||
- generate-lint-matrix
|
||||
if: needs.generate-lint-matrix.outputs.detected4 == 'true'
|
||||
name: Lint charts Part 4
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.generate-lint-matrix.outputs.matrix4) }}
|
||||
fail-fast: false
|
||||
max-parallel: 10
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: lint Kubernetes tools
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Run chart-testing (lint)
|
||||
run: ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}" || ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}"
|
||||
|
||||
lint-charts5:
|
||||
needs:
|
||||
- generate-lint-matrix
|
||||
if: needs.generate-lint-matrix.outputs.detected5 == 'true'
|
||||
name: Lint charts Part 5
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.generate-lint-matrix.outputs.matrix5) }}
|
||||
fail-fast: false
|
||||
max-parallel: 10
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: lint Kubernetes tools
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Run chart-testing (lint)
|
||||
run: ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}" || ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}"
|
||||
|
||||
lint-charts6:
|
||||
needs:
|
||||
- generate-lint-matrix
|
||||
if: needs.generate-lint-matrix.outputs.detected6 == 'true'
|
||||
name: Lint charts Part 6
|
||||
strategy:
|
||||
matrix: ${{ fromJson(needs.generate-lint-matrix.outputs.matrix6) }}
|
||||
fail-fast: false
|
||||
max-parallel: 10
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: lint Kubernetes tools
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Run chart-testing (lint)
|
||||
run: ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}" || ct lint --config ".github/ct-lint.yaml" --charts "${{ matrix.chart }}"
|
||||
|
||||
# Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7
|
||||
lint_success:
|
||||
needs:
|
||||
- generate-lint-matrix
|
||||
- lint-charts1
|
||||
- lint-charts2
|
||||
- lint-charts3
|
||||
- lint-charts4
|
||||
- lint-charts5
|
||||
- lint-charts6
|
||||
if: |
|
||||
always()
|
||||
name: Lint successful
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check lint matrix status
|
||||
run: |
|
||||
if [ "${{ steps.lint.outcome }}" != "success" ]; then
|
||||
echo "❌ Linting failed ❌"
|
||||
echo '###############################################################'
|
||||
echo '## 👀 Expand [Run Chart Linting] step to view the results 👀 ##'
|
||||
echo '###############################################################'
|
||||
res1="${{needs.lint-charts1.result}}"
|
||||
res2="${{needs.lint-charts2.result}}"
|
||||
res3="${{needs.lint-charts3.result}}"
|
||||
res4="${{needs.lint-charts4.result}}"
|
||||
res5="${{needs.lint-charts5.result}}"
|
||||
res6="${{needs.lint-charts6.result}}"
|
||||
|
||||
if [[ $res1 == "success" || $res1 == "skipped" ]]; then
|
||||
echo "lint tests 1 successfull..."
|
||||
else
|
||||
echo "lint tests 1 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res2 == "success" || $res2 == "skipped" ]]; then
|
||||
echo "lint tests 2 successfull..."
|
||||
else
|
||||
echo "lint tests 2 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res3 == "success" || $res3 == "skipped" ]]; then
|
||||
echo "lint tests 3 successfull..."
|
||||
else
|
||||
echo "lint tests 3 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res4 == "success" || $res4 == "skipped" ]]; then
|
||||
echo "lint tests 4 successfull..."
|
||||
else
|
||||
echo "lint tests 4 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res5 == "success" || $res5 == "skipped" ]]; then
|
||||
echo "lint tests 5 successfull..."
|
||||
else
|
||||
echo "lint tests 5 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res6 == "success" || $res6 == "skipped" ]]; then
|
||||
echo "lint tests 6 successfull..."
|
||||
else
|
||||
echo "lint tests 6 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
65
.github/workflows/charts-release.yaml
vendored
@@ -11,25 +11,26 @@ on:
|
||||
- "charts/**"
|
||||
|
||||
jobs:
|
||||
|
||||
release-helm:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/truecharts/devcontainer:3.1.10@sha256:c239addf725eb5cedf79517f8089fdafdc32b5270d1893ee87ae6e511b9bcae3
|
||||
image: ghcr.io/truecharts/devcontainer:v3.1.1@sha256:44047909bbf54cb1ce3551ae0b342244a5bdcd62562a7f2f07caad4bf8856ee4
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
fetch-depth: 1
|
||||
|
||||
|
||||
- name: Checkout Helm-Staging
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
repository: truecharts/helm-staging
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
path: helm
|
||||
|
||||
|
||||
- name: Fix Pre-Commit issues
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -37,7 +38,7 @@ jobs:
|
||||
pre-commit run --all ||:
|
||||
# Fix sh files to always be executable
|
||||
find . -name '*.sh' | xargs chmod +x
|
||||
|
||||
|
||||
- name: Commit Helm Changes
|
||||
run: |
|
||||
rm -rf helm/charts
|
||||
@@ -59,7 +60,7 @@ jobs:
|
||||
outputs:
|
||||
ref: ${{ steps.save-commit-hash.outputs.commit_hash }}
|
||||
container:
|
||||
image: ghcr.io/truecharts/devcontainer:3.1.10@sha256:c239addf725eb5cedf79517f8089fdafdc32b5270d1893ee87ae6e511b9bcae3
|
||||
image: ghcr.io/truecharts/devcontainer:v3.1.1@sha256:44047909bbf54cb1ce3551ae0b342244a5bdcd62562a7f2f07caad4bf8856ee4
|
||||
steps:
|
||||
- name: Install Kubernetes tools
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
@@ -72,28 +73,13 @@ jobs:
|
||||
run: |
|
||||
helm repo add truecharts https://charts.truecharts.org
|
||||
helm repo add truecharts-library https://library-charts.truecharts.org
|
||||
helm repo add truecharts-deps https://deps.truecharts.org
|
||||
helm repo add jetstack https://charts.jetstack.io
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
|
||||
helm repo add prometheus https://prometheus-community.github.io/helm-charts
|
||||
helm repo update
|
||||
|
||||
# Optional step if GPG signing is used
|
||||
- name: Prepare GPG key
|
||||
shell: bash
|
||||
run: |
|
||||
gpg_dir=.cr-gpg
|
||||
mkdir -p "$gpg_dir"
|
||||
keyring="$gpg_dir/secring.gpg"
|
||||
base64 -d <<< "$GPG_KEYRING_BASE64" > "$keyring"
|
||||
passphrase_file="$gpg_dir/passphrase"
|
||||
echo "$GPG_PASSPHRASE" > "$passphrase_file"
|
||||
echo "CR_PASSPHRASE_FILE=$passphrase_file" >> "$GITHUB_ENV"
|
||||
echo "CR_KEYRING=$keyring" >> "$GITHUB_ENV"
|
||||
env:
|
||||
GPG_KEYRING_BASE64: "${{ secrets.GPG_KEYRING_BASE64 }}"
|
||||
GPG_PASSPHRASE: "${{ secrets.GPG_PASSPHRASE }}"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
fetch-depth: 0
|
||||
@@ -125,7 +111,7 @@ jobs:
|
||||
find . -name '*.sh' | xargs chmod +x
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
if: |
|
||||
steps.collect-changes.outputs.changesDetectedAfterTag == 'true'
|
||||
with:
|
||||
@@ -185,7 +171,6 @@ jobs:
|
||||
mkdir -p website/docs/charts/${train}/${chart} || echo "chart path already exists, continuing..."
|
||||
yes | cp -rf charts/${train}/${chart}/docs/* website/docs/charts/${train}/${chart}/ 2>/dev/null || :
|
||||
yes | cp -rf charts/${train}/${chart}/icon.png website/static/img/hotlink-ok/chart-icons/${chart}.png 2>/dev/null || :
|
||||
yes | cp -rf charts/${train}/${chart}/screenshots/* website/static/img/hotlink-ok/chart-screenshots/${chart}/ 2>/dev/null || :
|
||||
|
||||
# Copy over kept documents
|
||||
mv -f tmp/website/docs/charts/${train}/${chart}/CHANGELOG.md website/docs/charts/${train}/${chart}/CHANGELOG.md 2>/dev/null || :
|
||||
@@ -206,10 +191,6 @@ jobs:
|
||||
echo "" >> website/docs/charts/${train}/${chart}/index.md
|
||||
cat charts/${train}/${chart}/Chart.yaml | yq .description -r >> website/docs/charts/${train}/${chart}/index.md
|
||||
echo "" >> website/docs/charts/${train}/${chart}/index.md
|
||||
echo "## Chart Sources" >> website/docs/charts/${train}/${chart}/index.md
|
||||
echo "" >> website/docs/charts/${train}/${chart}/index.md
|
||||
cat charts/${train}/${chart}/Chart.yaml | go-yq .sources -r >> website/docs/charts/${train}/${chart}/index.md
|
||||
echo "" >> website/docs/charts/${train}/${chart}/index.md
|
||||
echo "## Available Documentation" >> website/docs/charts/${train}/${chart}/index.md
|
||||
echo "" >> website/docs/charts/${train}/${chart}/index.md
|
||||
|
||||
@@ -242,9 +223,10 @@ jobs:
|
||||
git add --all
|
||||
git commit -sm "Commit released docs for TrueCharts" || exit 0
|
||||
git push
|
||||
|
||||
|
||||
- name: Checkout Catalog
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
if: |
|
||||
steps.collect-changes.outputs.changesDetectedAfterTag == 'true'
|
||||
with:
|
||||
@@ -290,22 +272,6 @@ jobs:
|
||||
git config user.name "TrueCharts-Bot"
|
||||
git config user.email "bot@truecharts.org"
|
||||
|
||||
# Optional step if GPG signing is used
|
||||
- name: Prepare GPG key
|
||||
shell: bash
|
||||
run: |
|
||||
gpg_dir=.cr-gpg
|
||||
mkdir -p "$gpg_dir"
|
||||
keyring="$gpg_dir/secring.gpg"
|
||||
base64 -d <<< "$GPG_KEYRING_BASE64" > "$keyring"
|
||||
passphrase_file="$gpg_dir/passphrase"
|
||||
echo "$GPG_PASSPHRASE" > "$passphrase_file"
|
||||
echo "CR_PASSPHRASE_FILE=$passphrase_file" >> "$GITHUB_ENV"
|
||||
echo "CR_KEYRING=$keyring" >> "$GITHUB_ENV"
|
||||
env:
|
||||
GPG_KEYRING_BASE64: "${{ secrets.GPG_KEYRING_BASE64 }}"
|
||||
GPG_PASSPHRASE: "${{ secrets.GPG_PASSPHRASE }}"
|
||||
|
||||
- name: Run chart-releaser for dependency apps
|
||||
uses: helm/chart-releaser-action@be16258da8010256c6e82849661221415f031968 # v1.5.0
|
||||
if: |
|
||||
@@ -313,7 +279,6 @@ jobs:
|
||||
with:
|
||||
charts_dir: charts/dependency
|
||||
charts_repo_url: https://deps.truecharts.org
|
||||
config: cr.yaml
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.BOT_TOKEN }}"
|
||||
CR_SKIP_EXISTING: "true"
|
||||
|
||||
318
.github/workflows/charts-test.yaml
vendored
@@ -9,11 +9,42 @@ on:
|
||||
chartChangesDetected:
|
||||
required: true
|
||||
type: string
|
||||
modifiedCharts:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
unit-test:
|
||||
name: Run unit tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Install Kubernetes tools
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.8.0"
|
||||
|
||||
- name: Install Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.7
|
||||
|
||||
- name: Install dependencies
|
||||
env:
|
||||
RUBYJQ_USE_SYSTEM_LIBRARIES: 1
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libjq-dev
|
||||
bundle install
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
bundle exec m -r ./test/
|
||||
|
||||
generate-install-matrix:
|
||||
name: Generate matrix for install
|
||||
runs-on: ubuntu-latest
|
||||
@@ -50,57 +81,51 @@ jobs:
|
||||
detected6: ${{ steps.list-changed.outputs.detected6 }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Install go-yq
|
||||
run: |
|
||||
mkdir -p $HOME/.local/bin
|
||||
wget https://github.com/mikefarah/yq/releases/download/v4.26.1/yq_linux_amd64 -O $HOME/.local/bin/go-yq && \
|
||||
chmod +x $HOME/.local/bin/go-yq
|
||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Run chart-testing (list-changed)
|
||||
id: list-changed
|
||||
if: inputs.chartChangesDetected == 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
CHARTS="${{ inputs.modifiedCharts }}"
|
||||
echo "Modified Charts: ${CHARTS}"
|
||||
EXCLUDED_JSON=$(go-yq eval -o=json '.excluded-charts // []' .github/ct-install.yaml)
|
||||
CHARTS_JSON=$(echo ${CHARTS} | jq --raw-input '.' | jq --compact-output --slurp '.' | jq 'map(. |= split(" "))[]' )
|
||||
OUTPUT_JSON=$(echo "{\"excluded\": ${EXCLUDED_JSON}, \"all\": ${CHARTS_JSON}}" | jq --compact-output '.all-.excluded')
|
||||
EXCLUDED=$(yq eval -o=json '.excluded-charts // []' .github/ct-install.yaml)
|
||||
CHARTS=$(ct list-changed --config .github/ct-install.yaml)
|
||||
CHARTS_JSON=$(echo "${CHARTS}" | jq -R -s -c 'split("\n")[:-1]')
|
||||
OUTPUT_JSON=$(echo "{\"excluded\": ${EXCLUDED}, \"all\": ${CHARTS_JSON}}" | jq -c '.all-.excluded')
|
||||
OUTPUT_JSON1=$((echo $OUTPUT_JSON | jq -r -c '.[:50]'; echo $OUTPUT_JSON | jq -r -c '.[301:350]'; echo $OUTPUT_JSON | jq -r -c '.[601:650]'; echo $OUTPUT_JSON | jq -r -c '.[901:950]'; echo $OUTPUT_JSON | jq -r -c '.[1201:1250]') | jq -s add)
|
||||
OUTPUT_JSON2=$((echo $OUTPUT_JSON | jq -r -c '.[51:100]'; echo $OUTPUT_JSON | jq -r -c '.[351:400]'; echo $OUTPUT_JSON | jq -r -c '.[651:700]'; echo $OUTPUT_JSON | jq -r -c '.[951:1000]'; echo $OUTPUT_JSON | jq -r -c '.[1251:1300]') | jq -s add)
|
||||
OUTPUT_JSON3=$((echo $OUTPUT_JSON | jq -r -c '.[101:150]'; echo $OUTPUT_JSON | jq -r -c '.[401:450]'; echo $OUTPUT_JSON | jq -r -c '.[701:750]'; echo $OUTPUT_JSON | jq -r -c '.[1001:1050]'; echo $OUTPUT_JSON | jq -r -c '.[1301:1350]') | jq -s add)
|
||||
OUTPUT_JSON4=$((echo $OUTPUT_JSON | jq -r -c '.[151:200]'; echo $OUTPUT_JSON | jq -r -c '.[451:500]'; echo $OUTPUT_JSON | jq -r -c '.[751:800]'; echo $OUTPUT_JSON | jq -r -c '.[1051:1100]'; echo $OUTPUT_JSON | jq -r -c '.[1351:1400]') | jq -s add)
|
||||
OUTPUT_JSON5=$((echo $OUTPUT_JSON | jq -r -c '.[201:250]'; echo $OUTPUT_JSON | jq -r -c '.[501:550]'; echo $OUTPUT_JSON | jq -r -c '.[801:850]'; echo $OUTPUT_JSON | jq -r -c '.[1101:1150]'; echo $OUTPUT_JSON | jq -r -c '.[1401:1450]') | jq -s add)
|
||||
OUTPUT_JSON6=$((echo $OUTPUT_JSON | jq -r -c '.[251:300]'; echo $OUTPUT_JSON | jq -r -c '.[551:600]'; echo $OUTPUT_JSON | jq -r -c '.[851:900]'; echo $OUTPUT_JSON | jq -r -c '.[1151:1200]'; echo $OUTPUT_JSON | jq -r -c '.[1451:1500]') | jq -s add)
|
||||
echo charts1=${OUTPUT_JSON1} >> $GITHUB_OUTPUT
|
||||
echo charts2=${OUTPUT_JSON2} >> $GITHUB_OUTPUT
|
||||
echo charts3=${OUTPUT_JSON3} >> $GITHUB_OUTPUT
|
||||
echo charts4=${OUTPUT_JSON4} >> $GITHUB_OUTPUT
|
||||
echo charts5=${OUTPUT_JSON5} >> $GITHUB_OUTPUT
|
||||
echo charts6=${OUTPUT_JSON6} >> $GITHUB_OUTPUT
|
||||
echo ::set-output name=charts1::${OUTPUT_JSON1}
|
||||
echo ::set-output name=charts2::${OUTPUT_JSON2}
|
||||
echo ::set-output name=charts3::${OUTPUT_JSON3}
|
||||
echo ::set-output name=charts4::${OUTPUT_JSON4}
|
||||
echo ::set-output name=charts5::${OUTPUT_JSON5}
|
||||
echo ::set-output name=charts6::${OUTPUT_JSON6}
|
||||
if [[ $(echo ${OUTPUT_JSON1} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "detected1=true" >> $GITHUB_OUTPUT
|
||||
echo "::set-output name=detected1::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON2} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "detected2=true" >> $GITHUB_OUTPUT
|
||||
echo "::set-output name=detected2::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON3} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "detected3=true" >> $GITHUB_OUTPUT
|
||||
echo "::set-output name=detected3::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON4} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "detected4=true" >> $GITHUB_OUTPUT
|
||||
echo "::set-output name=detected4::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON5} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "detected5=true" >> $GITHUB_OUTPUT
|
||||
echo "::set-output name=detected5::true"
|
||||
fi
|
||||
if [[ $(echo ${OUTPUT_JSON6} | jq -c '. | length') -gt 0 ]]; then
|
||||
echo "detected6=true" >> $GITHUB_OUTPUT
|
||||
echo "::set-output name=detected6::true"
|
||||
fi
|
||||
|
||||
install-charts1:
|
||||
@@ -115,9 +140,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Install Kubernetes tools
|
||||
@@ -125,14 +150,14 @@ jobs:
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.9.4"
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@e8788873172cb653a90ca2e819d79d65a66d4e76 # v2.4.0
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Create k3d cluster
|
||||
uses: nolar/setup-k3d-k3s@v1
|
||||
@@ -141,40 +166,12 @@ jobs:
|
||||
# Flags found here https://github.com/k3d-io/k3d
|
||||
k3d-args: --k3s-arg --disable=metrics-server@server:*
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Remove node taints
|
||||
run: |
|
||||
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
|
||||
|
||||
- name: Prep Helm
|
||||
run: |
|
||||
helm repo add truecharts https://charts.truecharts.org
|
||||
helm repo add truecharts-deps https://deps.truecharts.org
|
||||
helm repo add truecharts-library https://library-charts.truecharts.org
|
||||
helm repo add jetstack https://charts.jetstack.io
|
||||
helm repo update
|
||||
|
||||
- name: Add Dependencies
|
||||
run: |
|
||||
if [[ "${{ matrix.chart }}" == "charts/operators/metallb-config" ]]; then
|
||||
helm install metallb truecharts/metallb --namespace metallb --create-namespace --wait
|
||||
fi
|
||||
## TODO: Only add when required
|
||||
if [[ "${{ matrix.chart }}" == "charts/enterprise/clusterissuer" ]]; then
|
||||
helm install cert-manager truecharts/cert-manager --namespace cert-manager --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/cloudnative-pg" ]]; then
|
||||
helm install cloudnative-pg truecharts/cloudnative-pg --namespace cloudnative-pg --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/prometheus-operator" ]]; then
|
||||
helm install prometheus-operator truecharts/prometheus-operator --namespace prometheus-operator --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/enterprise/traefik" ]]; then
|
||||
helm install traefik truecharts/traefik --namespace traefik --create-namespace --wait
|
||||
fi
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" # --upgrade
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" #--upgrade
|
||||
|
||||
install-charts2:
|
||||
needs:
|
||||
@@ -188,9 +185,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Install Kubernetes tools
|
||||
@@ -198,14 +195,14 @@ jobs:
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.9.4"
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@e8788873172cb653a90ca2e819d79d65a66d4e76 # v2.4.0
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Create k3d cluster
|
||||
uses: nolar/setup-k3d-k3s@v1
|
||||
@@ -219,27 +216,8 @@ jobs:
|
||||
run: |
|
||||
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
|
||||
|
||||
- name: Add Dependencies
|
||||
run: |
|
||||
if [[ "${{ matrix.chart }}" == "charts/operators/metallb-config" ]]; then
|
||||
helm install metallb truecharts/metallb --namespace metallb --create-namespace --wait
|
||||
fi
|
||||
## TODO: Only add when required
|
||||
if [[ "${{ matrix.chart }}" == "charts/enterprise/clusterissuer" ]]; then
|
||||
helm install cert-manager truecharts/cert-manager --namespace cert-manager --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/cloudnative-pg" ]]; then
|
||||
helm install cloudnative-pg truecharts/cloudnative-pg --namespace cloudnative-pg --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/prometheus-operator" ]]; then
|
||||
helm install prometheus-operator truecharts/prometheus-operator --namespace prometheus-operator --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/enterprise/traefik" ]]; then
|
||||
helm install traefik truecharts/traefik --namespace traefik --create-namespace --wait
|
||||
fi
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" # --upgrade
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" #--upgrade
|
||||
|
||||
install-charts3:
|
||||
needs:
|
||||
@@ -253,9 +231,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Install Kubernetes tools
|
||||
@@ -263,14 +241,14 @@ jobs:
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.9.4"
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@e8788873172cb653a90ca2e819d79d65a66d4e76 # v2.4.0
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Create k3d cluster
|
||||
uses: nolar/setup-k3d-k3s@v1
|
||||
@@ -279,32 +257,12 @@ jobs:
|
||||
# Flags found here https://github.com/k3d-io/k3d
|
||||
k3d-args: --k3s-arg --disable=metrics-server@server:*
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Remove node taints
|
||||
run: |
|
||||
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
|
||||
|
||||
- name: Add Dependencies
|
||||
run: |
|
||||
if [[ "${{ matrix.chart }}" == "charts/operators/metallb-config" ]]; then
|
||||
helm install metallb truecharts/metallb --namespace metallb --create-namespace --wait
|
||||
fi
|
||||
## TODO: Only add when required
|
||||
if [[ "${{ matrix.chart }}" == "charts/enterprise/clusterissuer" ]]; then
|
||||
helm install cert-manager truecharts/cert-manager --namespace cert-manager --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/cloudnative-pg" ]]; then
|
||||
helm install cloudnative-pg truecharts/cloudnative-pg --namespace cloudnative-pg --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/prometheus-operator" ]]; then
|
||||
helm install prometheus-operator truecharts/prometheus-operator --namespace prometheus-operator --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/enterprise/traefik" ]]; then
|
||||
helm install traefik truecharts/traefik --namespace traefik --create-namespace --wait
|
||||
fi
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" # --upgrade
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" #--upgrade
|
||||
|
||||
install-charts4:
|
||||
needs:
|
||||
@@ -318,9 +276,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Install Kubernetes tools
|
||||
@@ -328,14 +286,14 @@ jobs:
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.9.4"
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@e8788873172cb653a90ca2e819d79d65a66d4e76 # v2.4.0
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Create k3d cluster
|
||||
uses: nolar/setup-k3d-k3s@v1
|
||||
@@ -344,32 +302,12 @@ jobs:
|
||||
# Flags found here https://github.com/k3d-io/k3d
|
||||
k3d-args: --k3s-arg --disable=metrics-server@server:*
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Remove node taints
|
||||
run: |
|
||||
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
|
||||
|
||||
- name: Add Dependencies
|
||||
run: |
|
||||
if [[ "${{ matrix.chart }}" == "charts/operators/metallb-config" ]]; then
|
||||
helm install metallb truecharts/metallb --namespace metallb --create-namespace --wait
|
||||
fi
|
||||
## TODO: Only add when required
|
||||
if [[ "${{ matrix.chart }}" == "charts/enterprise/clusterissuer" ]]; then
|
||||
helm install cert-manager truecharts/cert-manager --namespace cert-manager --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/cloudnative-pg" ]]; then
|
||||
helm install cloudnative-pg truecharts/cloudnative-pg --namespace cloudnative-pg --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/prometheus-operator" ]]; then
|
||||
helm install prometheus-operator truecharts/prometheus-operator --namespace prometheus-operator --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/enterprise/traefik" ]]; then
|
||||
helm install traefik truecharts/traefik --namespace traefik --create-namespace --wait
|
||||
fi
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" # --upgrade
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" #--upgrade
|
||||
|
||||
install-charts5:
|
||||
needs:
|
||||
@@ -383,9 +321,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Install Kubernetes tools
|
||||
@@ -393,14 +331,14 @@ jobs:
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.9.4"
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@e8788873172cb653a90ca2e819d79d65a66d4e76 # v2.4.0
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Create k3d cluster
|
||||
uses: nolar/setup-k3d-k3s@v1
|
||||
@@ -409,32 +347,12 @@ jobs:
|
||||
# Flags found here https://github.com/k3d-io/k3d
|
||||
k3d-args: --k3s-arg --disable=metrics-server@server:*
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Remove node taints
|
||||
run: |
|
||||
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
|
||||
|
||||
- name: Add Dependencies
|
||||
run: |
|
||||
if [[ "${{ matrix.chart }}" == "charts/operators/metallb-config" ]]; then
|
||||
helm install metallb truecharts/metallb --namespace metallb --create-namespace --wait
|
||||
fi
|
||||
## TODO: Only add when required
|
||||
if [[ "${{ matrix.chart }}" == "charts/enterprise/clusterissuer" ]]; then
|
||||
helm install cert-manager truecharts/cert-manager --namespace cert-manager --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/cloudnative-pg" ]]; then
|
||||
helm install cloudnative-pg truecharts/cloudnative-pg --namespace cloudnative-pg --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/prometheus-operator" ]]; then
|
||||
helm install prometheus-operator truecharts/prometheus-operator --namespace prometheus-operator --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/enterprise/traefik" ]]; then
|
||||
helm install traefik truecharts/traefik --namespace traefik --create-namespace --wait
|
||||
fi
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" # --upgrade
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" #--upgrade
|
||||
|
||||
install-charts6:
|
||||
needs:
|
||||
@@ -448,9 +366,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
fetch-depth: 0
|
||||
ref: ${{ inputs.checkoutCommit }}
|
||||
|
||||
- name: Install Kubernetes tools
|
||||
@@ -458,14 +376,14 @@ jobs:
|
||||
with:
|
||||
setup-tools: |
|
||||
helmv3
|
||||
helm: "3.9.4"
|
||||
helm: "3.8.0"
|
||||
|
||||
- uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236 # v4
|
||||
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435 # v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@e8788873172cb653a90ca2e819d79d65a66d4e76 # v2.4.0
|
||||
uses: helm/chart-testing-action@afea100a513515fbd68b0e72a7bb0ae34cb62aec # tag=v2.3.1
|
||||
|
||||
- name: Create k3d cluster
|
||||
uses: nolar/setup-k3d-k3s@v1
|
||||
@@ -474,32 +392,12 @@ jobs:
|
||||
# Flags found here https://github.com/k3d-io/k3d
|
||||
k3d-args: --k3s-arg --disable=metrics-server@server:*
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Remove node taints
|
||||
run: |
|
||||
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
|
||||
|
||||
- name: Add Dependencies
|
||||
run: |
|
||||
if [[ "${{ matrix.chart }}" == "charts/operators/metallb-config" ]]; then
|
||||
helm install metallb truecharts/metallb --namespace metallb --create-namespace --wait
|
||||
fi
|
||||
## TODO: Only add when required
|
||||
if [[ "${{ matrix.chart }}" == "charts/enterprise/clusterissuer" ]]; then
|
||||
helm install cert-manager truecharts/cert-manager --namespace cert-manager --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/cloudnative-pg" ]]; then
|
||||
helm install cloudnative-pg truecharts/cloudnative-pg --namespace cloudnative-pg --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/operators/prometheus-operator" ]]; then
|
||||
helm install prometheus-operator truecharts/prometheus-operator --namespace prometheus-operator --create-namespace --wait
|
||||
fi
|
||||
if [[ "${{ matrix.chart }}" != "charts/enterprise/traefik" ]]; then
|
||||
helm install traefik truecharts/traefik --namespace traefik --create-namespace --wait
|
||||
fi
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" # --upgrade
|
||||
run: ct install --config ".github/ct-install.yaml" --charts "${{ matrix.chart }}" #--upgrade
|
||||
|
||||
# Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7
|
||||
install_success:
|
||||
@@ -525,43 +423,43 @@ jobs:
|
||||
res6="${{needs.install-charts6.result}}"
|
||||
|
||||
if [[ $res1 == "success" || $res1 == "skipped" ]]; then
|
||||
echo "Install test suite [1] was successful..."
|
||||
echo "install tests 1 successfull..."
|
||||
else
|
||||
echo "Install test suite [1] failed, stopping..."
|
||||
echo "install tests 1 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res2 == "success" || $res2 == "skipped" ]]; then
|
||||
echo "Install test suite [2] was successful..."
|
||||
echo "install tests 2 successfull..."
|
||||
else
|
||||
echo "Install test suite [2] failed, stopping..."
|
||||
echo "install tests 2 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res3 == "success" || $res3 == "skipped" ]]; then
|
||||
echo "Install test suite [3] was successful..."
|
||||
echo "install tests 3 successfull..."
|
||||
else
|
||||
echo "Install test suite [3] failed, stopping..."
|
||||
echo "install tests 3 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res4 == "success" || $res4 == "skipped" ]]; then
|
||||
echo "Install test suite [4] was successful..."
|
||||
echo "install tests 4 successfull..."
|
||||
else
|
||||
echo "Install test suite [4] failed, stopping..."
|
||||
echo "install tests 4 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res5 == "success" || $res5 == "skipped" ]]; then
|
||||
echo "Install test suite [5] was successful..."
|
||||
echo "install tests 5 successfull..."
|
||||
else
|
||||
echo "Install test suite [5] failed, stopping..."
|
||||
echo "install tests 5 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $res6 == "success" || $res6 == "skipped" ]]; then
|
||||
echo "Install test suite [6] was successful..."
|
||||
echo "install tests 6 successfull..."
|
||||
else
|
||||
echo "Install test suite [6] failed, stopping..."
|
||||
echo "install tests 6 error, stopping due to failure..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
74
.github/workflows/daily.yaml
vendored
@@ -2,7 +2,7 @@ name: "Chore: Daily Tasks"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
- cron: '0 0 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
@@ -17,10 +17,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
name: "Generate readme files"
|
||||
container:
|
||||
image: ghcr.io/truecharts/devcontainer:3.1.10@sha256:c239addf725eb5cedf79517f8089fdafdc32b5270d1893ee87ae6e511b9bcae3
|
||||
image: ghcr.io/truecharts/devcontainer:v3.1.1@sha256:44047909bbf54cb1ce3551ae0b342244a5bdcd62562a7f2f07caad4bf8856ee4
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
fetch-depth: 1
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
- name: generate readme.md
|
||||
shell: bash
|
||||
run: |
|
||||
for train in stable operators SCALE incubator games enterprise develop non-free deprecated dependency core; do
|
||||
for train in stable SCALE incubator games enterprise develop non-free deprecated dependency core; do
|
||||
for chart in charts/${train}/*; do
|
||||
if [ -d "${chart}" ]; then
|
||||
echo "Generating readme.md for ${train}/${chart}"
|
||||
@@ -44,7 +44,7 @@ jobs:
|
||||
- name: generate HelmIgnore
|
||||
shell: bash
|
||||
run: |
|
||||
for train in stable operators SCALE incubator games enterprise develop non-free deprecated dependency core; do
|
||||
for train in stable SCALE incubator games enterprise develop non-free deprecated dependency core; do
|
||||
for chart in charts/${train}/*; do
|
||||
if [ -d "${chart}" ]; then
|
||||
echo "Attempting to sync HelmIgnore file for: ${chartname}"
|
||||
@@ -55,7 +55,7 @@ jobs:
|
||||
done
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
repository: truecharts/website
|
||||
path: website
|
||||
@@ -196,7 +196,7 @@ jobs:
|
||||
}
|
||||
export -f sync_tag
|
||||
|
||||
for train in enterprise stable operators incubator dependency; do
|
||||
for train in enterprise stable incubator dependency; do
|
||||
echo "Correcting Chart.yaml for Train: ${train}..."
|
||||
for chart in $(ls "charts/${train}"); do
|
||||
echo "Correcting Chart.yaml for Chart: ${chart}..."
|
||||
@@ -204,15 +204,6 @@ jobs:
|
||||
done
|
||||
done
|
||||
|
||||
- name: Fix Fixable Pre-Commit issues
|
||||
shell: bash
|
||||
if: inputs.chartChangesDetected == 'true'
|
||||
run: |
|
||||
echo "Running pre-commit test-and-cleanup..."
|
||||
pre-commit run --all ||:
|
||||
# Fix sh files to always be executable
|
||||
find . -name '*.sh' | xargs chmod +x
|
||||
|
||||
- name: Cleanup
|
||||
run: |
|
||||
rm -rf changes.json
|
||||
@@ -231,7 +222,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
name: "Generate Security Reports"
|
||||
container:
|
||||
image: ghcr.io/truecharts/devcontainer:3.1.10@sha256:c239addf725eb5cedf79517f8089fdafdc32b5270d1893ee87ae6e511b9bcae3
|
||||
image: ghcr.io/truecharts/devcontainer:v3.1.1@sha256:44047909bbf54cb1ce3551ae0b342244a5bdcd62562a7f2f07caad4bf8856ee4
|
||||
steps:
|
||||
- name: Install Kubernetes tools
|
||||
uses: yokawasa/action-setup-kube-tools@af4ebb1af1efd30c5bd84a2e9773355ad6362a33 # v0.9.3
|
||||
@@ -244,11 +235,12 @@ jobs:
|
||||
run: |
|
||||
helm repo add truecharts https://charts.truecharts.org
|
||||
helm repo add truecharts-library https://library-charts.truecharts.org
|
||||
helm repo add truecharts-deps https://deps.truecharts.org
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm repo add prometheus https://prometheus-community.github.io/helm-charts
|
||||
helm repo update
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
fetch-depth: 1
|
||||
@@ -257,7 +249,7 @@ jobs:
|
||||
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Checkout website
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
repository: truecharts/website
|
||||
@@ -334,7 +326,7 @@ jobs:
|
||||
sed -i 's|<hr>|<hr />|g' website/docs/charts/${train}/${chartname}/helm-security.md ||:
|
||||
sed -i 's|<hr>|<hr />|g' website/docs/charts/${train}/${chartname}/container-security.md ||:
|
||||
}
|
||||
for train in enterprise stable operators incubator dependency; do
|
||||
for train in enterprise stable incubator dependency; do
|
||||
echo "Processing Charts for Train: ${train}..."
|
||||
for chart in $(ls "charts/${train}"); do
|
||||
render "charts/${train}/${chart}" ${chart} ${train} || echo "rendering failed for ${chart}"
|
||||
@@ -360,38 +352,14 @@ jobs:
|
||||
lock-threads:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/lock-threads@be8aa5be94131386884a6da4189effda9b14aa21 # v4
|
||||
- uses: dessant/lock-threads@c1b35aecc5cdb1a34539d14196df55838bb2f836 # v4
|
||||
with:
|
||||
github-token: ${{ secrets.BOT_TOKEN }}
|
||||
issue-inactive-days: "7"
|
||||
exclude-any-issue-labels: ""
|
||||
issue-comment: "This issue is locked to prevent necro-posting on closed issues. Please create a new issue or contact staff on discord of the problem persists"
|
||||
issue-lock-reason: ""
|
||||
pr-inactive-days: "7"
|
||||
pr-comment: "This PR is locked to prevent necro-posting on closed PRs. Please create a issue or contact staff on discord if you want to further discuss this"
|
||||
pr-lock-reason: "resolved"
|
||||
issue-inactive-days: '7'
|
||||
exclude-any-issue-labels: ''
|
||||
issue-comment: 'This issue is locked to prevent necro-posting on closed issues. Please create a new issue or contact staff on discord of the problem persists'
|
||||
issue-lock-reason: ''
|
||||
pr-inactive-days: '7'
|
||||
pr-comment: 'This PR is locked to prevent necro-posting on closed PRs. Please create a issue or contact staff on discord if you want to further discuss this'
|
||||
pr-lock-reason: 'resolved'
|
||||
log-output: true
|
||||
|
||||
check-contributors:
|
||||
name: Check Contributors
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
fetch-depth: 1
|
||||
|
||||
- uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
|
||||
with:
|
||||
node-version: 18
|
||||
|
||||
- uses: borales/actions-yarn@97ba8bebfe5b549bb7999261698a52a81fd62f1b # v4.2.0
|
||||
with:
|
||||
cmd: install --frozen-lockfile
|
||||
|
||||
- name: List missing and unknown contributors
|
||||
env:
|
||||
PRIVATE_TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||
run: |
|
||||
awk -F', ' '{ for( i=1; i<=NF; i++ ) print $i }' <<<$(yarn all-contributors check)
|
||||
|
||||
105
.github/workflows/meta-label-pr-ci-status.yaml
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
---
|
||||
name: "Metadata: Label pull requests CI status"
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows:
|
||||
- "Pull Request: Validate"
|
||||
types:
|
||||
- completed
|
||||
|
||||
jobs:
|
||||
label-ci-status:
|
||||
name: Label CI status
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
|
||||
- name: Download workflow artifact
|
||||
uses: dawidd6/action-download-artifact@5e780fc7bbd0cac69fc73271ed86edf5dcb72d67 # v2.26.0
|
||||
with:
|
||||
github_token: ${{ secrets.BOT_TOKEN }}
|
||||
workflow: pr-validate.yaml
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
name: pr_metadata
|
||||
path: ./pr_metadata
|
||||
|
||||
- name: Read the pr_number file
|
||||
id: pr_num_reader
|
||||
uses: juliangruber/read-file-action@02bbba9876a8f870efd4ad64e3b9088d3fb94d4b # tag=v1.1.6
|
||||
with:
|
||||
path: ./pr_metadata/pr_number.txt
|
||||
|
||||
- name: "Get workflow job status"
|
||||
uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 # v6
|
||||
id: get-workflow-jobs
|
||||
with:
|
||||
github-token: ${{ secrets.BOT_TOKEN }}
|
||||
# https://mhagemann.medium.com/the-ultimate-way-to-slugify-a-url-string-in-javascript-b8e4a0d849e1
|
||||
script: |
|
||||
function slugify(string) {
|
||||
const a = 'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìıİłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;'
|
||||
const b = 'aaaaaaaaaacccddeeeeeeeegghiiiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------'
|
||||
const p = new RegExp(a.split('').join('|'), 'g')
|
||||
return string.toString().toLowerCase()
|
||||
.replace(/\s+/g, '-') // Replace spaces with -
|
||||
.replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters
|
||||
.replace(/&/g, '-and-') // Replace & with 'and'
|
||||
.replace(/[^\w\-]+/g, '') // Remove all non-word characters
|
||||
.replace(/\-\-+/g, '-') // Replace multiple - with single -
|
||||
.replace(/^-+/, '') // Trim - from start of text
|
||||
.replace(/-+$/, '') // Trim - from end of text
|
||||
}
|
||||
let result = new Object
|
||||
const wfJobs = await github.rest.actions.listJobsForWorkflowRun({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
run_id: context.payload.workflow_run.id,
|
||||
})
|
||||
for (const job of wfJobs.data.jobs) {
|
||||
result[slugify(job.name)] = job.conclusion
|
||||
}
|
||||
console.log(result)
|
||||
return result
|
||||
- name: Label pre-commit status
|
||||
uses: ./.github/actions/label-from-status
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
issue-number: ${{ steps.pr_num_reader.outputs.content }}
|
||||
prefix: precommit
|
||||
job-status: |-
|
||||
${{ fromJSON(steps.get-workflow-jobs.outputs.result).pre-commit-check-run-pre-commit-checks || 'skipped' }}
|
||||
remove-on-skipped: true
|
||||
|
||||
#- name: Label changelog status
|
||||
# uses: ./.github/actions/label-from-status
|
||||
# with:
|
||||
# token: ${{ secrets.BOT_TOKEN }}
|
||||
# issue-number: ${{ steps.pr_num_reader.outputs.content }}
|
||||
# prefix: changelog
|
||||
# job-status: |-
|
||||
# ${{ fromJSON(steps.get-workflow-jobs.outputs.result).charts-changelog-validate-changelog || 'skipped' }}
|
||||
# remove-on-skipped: true
|
||||
|
||||
- name: Label chart lint status
|
||||
uses: ./.github/actions/label-from-status
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
issue-number: ${{ steps.pr_num_reader.outputs.content }}
|
||||
prefix: lint
|
||||
job-status: |-
|
||||
${{ fromJSON(steps.get-workflow-jobs.outputs.result).charts-lint-lint-successful || 'skipped' }}
|
||||
remove-on-skipped: true
|
||||
|
||||
- name: Label chart install status
|
||||
uses: ./.github/actions/label-from-status
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
issue-number: ${{ steps.pr_num_reader.outputs.content }}
|
||||
prefix: install
|
||||
job-status: |-
|
||||
${{ fromJSON(steps.get-workflow-jobs.outputs.result).charts-test-install-successful || 'skipped' }}
|
||||
remove-on-skipped: true
|
||||
32
.github/workflows/metadata-label-commenter.yaml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
name: "Metadata: Label Commenter"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
issues:
|
||||
types:
|
||||
- labeled
|
||||
- unlabeled
|
||||
pull_request_target:
|
||||
types:
|
||||
- labeled
|
||||
- unlabeled
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
comment:
|
||||
name: Label commenter
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
ref: master
|
||||
|
||||
- uses: peaceiris/actions-label-commenter@f0dbbef043eb1b150b566db36b0bdc8b7f505579 # tag=v1
|
||||
with:
|
||||
github_token: ${{ secrets.BOT_TOKEN }}
|
||||
33
.github/workflows/metadata-label-pr.yaml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
name: "Metadata: Label pull requests"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request_target:
|
||||
types:
|
||||
- opened
|
||||
- edited
|
||||
- closed
|
||||
- reopened
|
||||
- ready_for_review
|
||||
- synchronize
|
||||
|
||||
jobs:
|
||||
label-size:
|
||||
name: Label Size
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Label Size
|
||||
uses: pascalgn/size-label-action@1619680c5ac1ef360b944bb56a57587ba4aa2af8 # tag=v0.4.3
|
||||
env:
|
||||
GITHUB_TOKEN: "${{ secrets.BOT_TOKEN }}"
|
||||
with:
|
||||
sizes: >
|
||||
{
|
||||
"0": "XS",
|
||||
"20": "S",
|
||||
"50": "M",
|
||||
"200": "L",
|
||||
"800": "XL",
|
||||
"2000": "XXL"
|
||||
}
|
||||
60
.github/workflows/pr-metadata.yaml
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
name: "Pull Request: Get metadata"
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
outputs:
|
||||
isRenovatePR:
|
||||
description: "Is the PR coming from Renovate?"
|
||||
value: ${{ jobs.pr-metadata.outputs.isRenovatePR }}
|
||||
isFork:
|
||||
description: "Is the PR coming from a forked repo?"
|
||||
value: ${{ jobs.pr-metadata.outputs.isFork }}
|
||||
addedOrModified:
|
||||
description: "Does the PR contain any changes?"
|
||||
value: ${{ jobs.pr-changes.outputs.addedOrModified }}
|
||||
addedOrModifiedFiles:
|
||||
description: "A list of the files changed in this PR"
|
||||
value: ${{ jobs.pr-changes.outputs.addedOrModifiedFiles }}
|
||||
addedOrModifiedCharts:
|
||||
description: "A list of the charts changed in this PR"
|
||||
value: ${{ jobs.pr-changes.outputs.addedOrModifiedCharts }}
|
||||
|
||||
jobs:
|
||||
pr-metadata:
|
||||
name: Collect PR metadata
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
isRenovatePR: ${{ startsWith(steps.branch-name.outputs.current_branch, 'renovate/') }}
|
||||
isFork: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
|
||||
steps:
|
||||
- name: Get branch name
|
||||
id: branch-name
|
||||
uses: tj-actions/branch-names@eee8675bd61ec38bcfbfedd504d8473292ba649e # v6.4
|
||||
|
||||
- name: Save PR data to file
|
||||
env:
|
||||
PR_NUMBER: ${{ github.event.number }}
|
||||
run: |
|
||||
echo $PR_NUMBER > pr_number.txt
|
||||
|
||||
- name: Store pr data in artifact
|
||||
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3
|
||||
with:
|
||||
name: pr_metadata
|
||||
path: ./pr_number.txt
|
||||
retention-days: 5
|
||||
|
||||
pr-changes:
|
||||
name: Collect PR changes
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
addedOrModified: ${{ steps.collect-changes.outputs.changesDetected }}
|
||||
addedOrModifiedFiles: ${{ steps.collect-changes.outputs.addedOrModifiedFiles }}
|
||||
addedOrModifiedCharts: ${{ steps.collect-changes.outputs.addedOrModifiedCharts }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
|
||||
- name: Collect changes
|
||||
id: collect-changes
|
||||
uses: ./.github/actions/collect-changes
|
||||
54
.github/workflows/pr-validate.yaml
vendored
@@ -8,47 +8,52 @@ concurrency:
|
||||
# cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
pr-changes:
|
||||
name: Collect PR changes
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
addedOrModified: ${{ steps.collect-changes.outputs.changesDetected }}
|
||||
addedOrModifiedFiles: ${{ steps.collect-changes.outputs.addedOrModifiedFiles }}
|
||||
addedOrModifiedCharts: ${{ steps.collect-changes.outputs.addedOrModifiedCharts }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
pr-metadata:
|
||||
uses: ./.github/workflows/pr-metadata.yaml
|
||||
|
||||
- name: Collect changes
|
||||
id: collect-changes
|
||||
uses: ./.github/actions/collect-changes
|
||||
pre-commit-check:
|
||||
uses: truecharts/.github/.github/workflows/pre-commit-check.yaml@main
|
||||
needs:
|
||||
- pr-metadata
|
||||
with:
|
||||
modifiedFiles: ${{ needs.pr-metadata.outputs.addedOrModifiedFiles }}
|
||||
|
||||
#charts-changelog:
|
||||
# uses: ./.github/workflows/charts-changelog.yaml
|
||||
# needs:
|
||||
# - pr-metadata
|
||||
# - pre-commit-check
|
||||
# with:
|
||||
# isRenovatePR: ${{ needs.pr-metadata.outputs.isRenovatePR }}
|
||||
# modifiedCharts: ${{ needs.pr-metadata.outputs.addedOrModifiedCharts }}
|
||||
|
||||
charts-lint:
|
||||
uses: ./.github/workflows/charts-lint.yaml
|
||||
needs:
|
||||
- pr-changes
|
||||
- pr-metadata
|
||||
# - charts-changelog
|
||||
with:
|
||||
checkoutCommit: ${{ needs.charts-changelog.outputs.commitHash }}
|
||||
chartChangesDetected: ${{ needs.pr-changes.outputs.addedOrModified }}
|
||||
modifiedFiles: ${{ needs.pr-changes.outputs.addedOrModifiedFiles }}
|
||||
modifiedCharts: ${{ needs.pr-changes.outputs.addedOrModifiedCharts }}
|
||||
chartChangesDetected: ${{ needs.pr-metadata.outputs.addedOrModified }}
|
||||
|
||||
charts-test:
|
||||
uses: ./.github/workflows/charts-test.yaml
|
||||
needs:
|
||||
- pr-changes
|
||||
- pr-metadata
|
||||
# - charts-changelog
|
||||
- charts-lint
|
||||
with:
|
||||
checkoutCommit: ${{ needs.charts-changelog.outputs.commitHash }}
|
||||
chartChangesDetected: ${{ needs.pr-changes.outputs.addedOrModified }}
|
||||
modifiedCharts: ${{ needs.pr-changes.outputs.addedOrModifiedCharts }}
|
||||
chartChangesDetected: ${{ needs.pr-metadata.outputs.addedOrModified }}
|
||||
|
||||
catalog-test:
|
||||
uses: ./.github/workflows/catalog-test.yaml
|
||||
needs:
|
||||
- pr-changes
|
||||
- pr-metadata
|
||||
# - charts-changelog
|
||||
with:
|
||||
checkoutCommit: ${{ needs.charts-changelog.outputs.commitHash }}
|
||||
chartChangesDetected: ${{ needs.pr-changes.outputs.addedOrModified }}
|
||||
chartChangesDetected: ${{ needs.pr-metadata.outputs.addedOrModified }}
|
||||
|
||||
print_head_msg:
|
||||
name: print commit message
|
||||
@@ -57,7 +62,7 @@ jobs:
|
||||
head-commit-message: ${{ steps.get_head_commit_message.outputs.headCommitMsg }}
|
||||
steps:
|
||||
- name: Get repo
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
- name: verbose head git commit message
|
||||
@@ -68,7 +73,7 @@ jobs:
|
||||
|
||||
automerge-and-approve:
|
||||
needs:
|
||||
- pr-changes
|
||||
- pr-metadata
|
||||
- catalog-test
|
||||
- charts-test
|
||||
- charts-lint
|
||||
@@ -86,4 +91,3 @@ jobs:
|
||||
GITHUB_TOKEN: "${{ secrets.BOT_TOKEN }}"
|
||||
UPDATE_RETRIES: 12
|
||||
UPDATE_RETRY_SLEEP: 60000
|
||||
MERGE_METHOD: squash
|
||||
|
||||
4
.github/workflows/prune.yaml
vendored
@@ -9,9 +9,9 @@ jobs:
|
||||
name: "prune old releases"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/delete-package-versions@0d39a63126868f5eefaa47169615edd3c0f61e20 # v4
|
||||
- uses: actions/delete-package-versions@ba4d22f25141387e5ab82cfec079de6d2df96815 # v4
|
||||
with:
|
||||
min-versions-to-keep: 200
|
||||
|
||||
10
.github/workflows/renovate-bump.yaml
vendored
@@ -10,16 +10,16 @@ on:
|
||||
jobs:
|
||||
renovate-bump:
|
||||
name: Get changed Apps
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-20.04
|
||||
container:
|
||||
image: ghcr.io/truecharts/devcontainer:3.1.10@sha256:c239addf725eb5cedf79517f8089fdafdc32b5270d1893ee87ae6e511b9bcae3
|
||||
image: ghcr.io/truecharts/devcontainer:v3.1.1@sha256:44047909bbf54cb1ce3551ae0b342244a5bdcd62562a7f2f07caad4bf8856ee4
|
||||
steps:
|
||||
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
name: Checkout
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
- uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
name: Checkout
|
||||
with:
|
||||
fetch-depth: 0
|
||||
@@ -117,8 +117,6 @@ jobs:
|
||||
train="games"
|
||||
elif test -f "./charts/enterprise/${chart}/Chart.yaml"; then
|
||||
train="enterprise"
|
||||
elif test -f "./charts/operators/${chart}/Chart.yaml"; then
|
||||
train="operators"
|
||||
else
|
||||
train="incubator"
|
||||
fi
|
||||
|
||||
8
.github/workflows/renovate.yml
vendored
@@ -1,18 +1,18 @@
|
||||
name: Renovate
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "0 */1 * * *"
|
||||
# schedule:
|
||||
# - cron: "0 */1 * * *"
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
- name: Self-hosted Renovate
|
||||
uses: renovatebot/github-action@3cef36a9aba515d8726b491905b3bc766832e221 # v39.0.5
|
||||
uses: renovatebot/github-action@1b6d32d6058e85e60825f27572934f36b00ebbd3 # v34.153.1
|
||||
with:
|
||||
configurationFile: .github/renovate-config.js
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
|
||||
2
.github/workflows/schedule-sync-labels.yaml
vendored
@@ -12,7 +12,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
|
||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
|
||||
|
||||
4
.github/workflows/stale.yaml
vendored
@@ -8,10 +8,10 @@ on:
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Check for stale issues and PRs
|
||||
uses: actions/stale@1160a2240286f5da8ec72b1c0816ce2481aabf84 # v8
|
||||
uses: actions/stale@6f05e4244c9a0b2ed3401882b05d701dd0a7289b # v7
|
||||
with:
|
||||
repo-token: ${{ secrets.BOT_TOKEN }}
|
||||
days-before-issue-stale: 180
|
||||
|
||||
1
.gitignore
vendored
@@ -57,4 +57,3 @@ pub/
|
||||
tgz_cache/
|
||||
index_cache/
|
||||
helm/
|
||||
node_modules/
|
||||
|
||||
@@ -8,24 +8,33 @@ repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.0.1
|
||||
hooks:
|
||||
- id: trailing-whitespace # trims trailing whitespace.
|
||||
- id: end-of-file-fixer # ensures that a file is either empty, or ends with one newline.
|
||||
# trims trailing whitespace.
|
||||
- id: trailing-whitespace
|
||||
# ensures that a file is either empty, or ends with one newline.
|
||||
- id: end-of-file-fixer
|
||||
- id: fix-byte-order-marker
|
||||
- id: mixed-line-ending # replaces or checks mixed line ending.
|
||||
- id: check-merge-conflict # checks for files that contain merge conflict strings.
|
||||
- id: check-case-conflict # checks for files that would conflict in case-insensitive filesystems.
|
||||
- id: check-executables-have-shebangs # ensures that (non-binary) executables have a shebang.
|
||||
- id: check-shebang-scripts-are-executable # ensures that (non-binary) files with a shebang are executable.
|
||||
# replaces or checks mixed line ending.
|
||||
- id: mixed-line-ending
|
||||
# checks for files that contain merge conflict strings.
|
||||
- id: check-merge-conflict
|
||||
# checks for files that would conflict in case-insensitive filesystems.
|
||||
- id: check-case-conflict
|
||||
# ensures that (non-binary) executables have a shebang.
|
||||
- id: check-executables-have-shebangs
|
||||
# ensures that (non-binary) files with a shebang are executable.
|
||||
- id: check-shebang-scripts-are-executable
|
||||
- id: check-docstring-first
|
||||
- id: check-symlinks
|
||||
- id: destroyed-symlinks
|
||||
- id: fix-byte-order-marker # removes utf-8 byte order marker.
|
||||
- id: requirements-txt-fixer # sorts entries in requirements.txt.
|
||||
- id: check-added-large-files # prevents giant files from being committed.
|
||||
exclude: \.(png|jpg|jpeg|svg|yaml|yml|tpl)$
|
||||
- id: check-yaml # checks yaml files for parseable syntax.
|
||||
# removes utf-8 byte order marker.
|
||||
- id: fix-byte-order-marker
|
||||
# sorts entries in requirements.txt.
|
||||
- id: requirements-txt-fixer
|
||||
# checks yaml files for parseable syntax.
|
||||
- id: check-yaml
|
||||
exclude: (templates\/.*|crds\/.*|questions.yaml|chart_schema.yaml)
|
||||
- id: detect-private-key # detects the presence of private keys.
|
||||
# detects the presence of private keys.
|
||||
- id: detect-private-key
|
||||
|
||||
- repo: https://github.com/pre-commit/pygrep-hooks
|
||||
rev: v1.9.0
|
||||
@@ -39,3 +48,13 @@ repos:
|
||||
- id: prettier
|
||||
exclude: (templates\/.*|crds\/.*|README.md|CHANGELOG.md|questions.yaml|devcontainer.json)
|
||||
files: \.(js|ts|jsx|tsx|css|less|html|json|markdown|md|yaml|yml)$
|
||||
|
||||
# Update the rev variable with the release version that you want, from the yamllint repo
|
||||
# You can pass your custom .yamllint with args attribute.
|
||||
- repo: https://github.com/adrienverge/yamllint.git
|
||||
rev: v1.17.0
|
||||
hooks:
|
||||
- id: yamllint
|
||||
exclude: (templates\/.*|crds\/.*|README.md|CHANGELOG.md|questions.yaml|devcontainer.json|chart_schema.yaml)
|
||||
files: \.(yaml|yml)$
|
||||
args: [-c=.github/lintconf.yaml]
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
apiVersion: v2
|
||||
appVersion: "23.8.3.48"
|
||||
appVersion: "23.2.1.253"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.12
|
||||
version: 12.2.24
|
||||
deprecated: false
|
||||
description: ClickHouse is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).
|
||||
home: https://truecharts.org/charts/dependency/clickhouse
|
||||
@@ -20,9 +20,10 @@ maintainers:
|
||||
name: clickhouse
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/dependency/clickhouse
|
||||
- https://hub.docker.com/r/clickhouse/clickhouse-server
|
||||
- https://clickhouse.com/
|
||||
type: application
|
||||
version: 7.0.11
|
||||
version: 4.0.9
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- database
|
||||
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
|
||||
@@ -11,7 +11,6 @@ questions:
|
||||
# Include{containerAdvanced}
|
||||
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
- variable: clickhouseDatabase
|
||||
group: "App Configuration"
|
||||
label: "Database Name"
|
||||
@@ -70,9 +69,10 @@ questions:
|
||||
default: 8123
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: false
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
# Include{vctRoot}
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/clickhouse
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v23.8.3.48@sha256:6dfb2322a26e5990b908cc3f49ceee230b241a67e791886ec76965df1a8aff11
|
||||
tag: 23.2.1.2537@sha256:669278d98936a2d12bf8f331067afb6a34e5570fdcb37b854bb5d0b2d8f30108
|
||||
|
||||
workload:
|
||||
main:
|
||||
type: StatefulSet
|
||||
replicas: 1
|
||||
strategy: RollingUpdate
|
||||
podSpec:
|
||||
containers:
|
||||
main:
|
||||
@@ -18,6 +20,7 @@ workload:
|
||||
expandObjectName: "{{ if .Values.clickhousePassword }}true{{ else }}false{{ end }}"
|
||||
name: '{{ if .Values.clickhousePassword }}credentials{{ else if .Values.existingSecret }}{{ .Values.existingSecret }}{{ else }}{{ printf "%s-%s" .Release.Name "clickhousecreds" }}{{ end }}'
|
||||
key: "clickhouse-password"
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
type: http
|
||||
@@ -50,7 +53,7 @@ service:
|
||||
protocol: http
|
||||
targetPort: 8123
|
||||
|
||||
persistence:
|
||||
volumeClaimTemplates:
|
||||
data:
|
||||
enabled: true
|
||||
mountPath: /var/lib/clickhouse
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
apiVersion: v2
|
||||
appVersion: "2.10.0"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.12
|
||||
deprecated: false
|
||||
description: kube-state-metrics is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects.
|
||||
home: https://truecharts.org/charts/dependency/kube-state-metrics
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/kube-state-metrics.png
|
||||
keywords:
|
||||
- prometheus
|
||||
- kube-state-metrics
|
||||
- monitoring
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
maintainers:
|
||||
- email: info@truecharts.org
|
||||
name: TrueCharts
|
||||
url: https://truecharts.org
|
||||
name: kube-state-metrics
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/dependency/kube-state-metrics
|
||||
type: application
|
||||
version: 3.0.26
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- metrics
|
||||
truecharts.org/SCALE-support: "true"
|
||||
truecharts.org/grade: U
|
||||
@@ -1,106 +0,0 @@
|
||||
Business Source License 1.1
|
||||
|
||||
Parameters
|
||||
|
||||
Licensor: The TrueCharts Project, it's owner and it's contributors
|
||||
Licensed Work: The TrueCharts "Grafana" Helm Chart
|
||||
Additional Use Grant: You may use the licensed work in production, as long
|
||||
as it is directly sourced from a TrueCharts provided
|
||||
official repository, catalog or source. You may also make private
|
||||
modification to the directly sourced licenced work,
|
||||
when used in production.
|
||||
|
||||
The following cases are, due to their nature, also
|
||||
defined as 'production use' and explicitly prohibited:
|
||||
- Bundling, including or displaying the licensed work
|
||||
with(in) another work intended for production use,
|
||||
with the apparent intend of facilitating and/or
|
||||
promoting production use by third parties in
|
||||
violation of this license.
|
||||
|
||||
Change Date: 2050-01-01
|
||||
|
||||
Change License: 3-clause BSD license
|
||||
|
||||
For information about alternative licensing arrangements for the Software,
|
||||
please contact: legal@truecharts.org
|
||||
|
||||
Notice
|
||||
|
||||
The Business Source License (this document, or the “License”) is not an Open
|
||||
Source license. However, the Licensed Work will eventually be made available
|
||||
under an Open Source License, as stated in this License.
|
||||
|
||||
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
||||
“Business Source License” is a trademark of MariaDB Corporation Ab.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Business Source License 1.1
|
||||
|
||||
Terms
|
||||
|
||||
The Licensor hereby grants you the right to copy, modify, create derivative
|
||||
works, redistribute, and make non-production use of the Licensed Work. The
|
||||
Licensor may make an Additional Use Grant, above, permitting limited
|
||||
production use.
|
||||
|
||||
Effective on the Change Date, or the fourth anniversary of the first publicly
|
||||
available distribution of a specific version of the Licensed Work under this
|
||||
License, whichever comes first, the Licensor hereby grants you rights under
|
||||
the terms of the Change License, and the rights granted in the paragraph
|
||||
above terminate.
|
||||
|
||||
If your use of the Licensed Work does not comply with the requirements
|
||||
currently in effect as described in this License, you must purchase a
|
||||
commercial license from the Licensor, its affiliated entities, or authorized
|
||||
resellers, or you must refrain from using the Licensed Work.
|
||||
|
||||
All copies of the original and modified Licensed Work, and derivative works
|
||||
of the Licensed Work, are subject to this License. This License applies
|
||||
separately for each version of the Licensed Work and the Change Date may vary
|
||||
for each version of the Licensed Work released by Licensor.
|
||||
|
||||
You must conspicuously display this License on each original or modified copy
|
||||
of the Licensed Work. If you receive the Licensed Work in original or
|
||||
modified form from a third party, the terms and conditions set forth in this
|
||||
License apply to your use of that work.
|
||||
|
||||
Any use of the Licensed Work in violation of this License will automatically
|
||||
terminate your rights under this License for the current and all other
|
||||
versions of the Licensed Work.
|
||||
|
||||
This License does not grant you any right in any trademark or logo of
|
||||
Licensor or its affiliates (provided that you may use a trademark or logo of
|
||||
Licensor as expressly required by this License).
|
||||
|
||||
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
||||
AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
||||
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
||||
TITLE.
|
||||
|
||||
MariaDB hereby grants you permission to use this License’s text to license
|
||||
your works, and to refer to it using the trademark “Business Source License”,
|
||||
as long as you comply with the Covenants of Licensor below.
|
||||
|
||||
Covenants of Licensor
|
||||
|
||||
In consideration of the right to use this License’s text and the “Business
|
||||
Source License” name and trademark, Licensor covenants to MariaDB, and to all
|
||||
other recipients of the licensed work to be provided by Licensor:
|
||||
|
||||
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
||||
or a license that is compatible with GPL Version 2.0 or a later version,
|
||||
where “compatible” means that software provided under the Change License can
|
||||
be included in a program with software provided under GPL Version 2.0 or a
|
||||
later version. Licensor may specify additional Change Licenses without
|
||||
limitation.
|
||||
|
||||
2. To either: (a) specify an additional grant of rights to use that does not
|
||||
impose any additional restriction on the right granted in this License, as
|
||||
the Additional Use Grant; or (b) insert the text “None”.
|
||||
|
||||
3. To specify a Change Date.
|
||||
|
||||
4. Not to modify this License in any other way.
|
||||
|
Before Width: | Height: | Size: 8.5 KiB |
@@ -1,109 +0,0 @@
|
||||
# Include{groups}
|
||||
questions:
|
||||
# Include{global}
|
||||
# Include{workload}
|
||||
# Include{workloadDeployment}
|
||||
|
||||
# Include{replicas1}
|
||||
# Include{podSpec}
|
||||
# Include{containerMain}
|
||||
# Include{containerBasic}
|
||||
# Include{containerAdvanced}
|
||||
|
||||
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
# Include{serviceRoot}
|
||||
- variable: main
|
||||
label: "Main Service"
|
||||
description: "The Primary service on which the healthcheck runs, often the webUI"
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{serviceSelectorClusterIP}
|
||||
# Include{serviceSelectorExtras}
|
||||
- variable: main
|
||||
label: "Main Service Port Configuration"
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: port
|
||||
label: "Port"
|
||||
description: "This port exposes the container port on the service"
|
||||
schema:
|
||||
type: int
|
||||
default: 8080
|
||||
required: true
|
||||
- variable: selfmonitor
|
||||
label: "selfmonitor Service"
|
||||
description: "The Primary service on which the healthcheck runs, often the webUI"
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{serviceSelectorClusterIP}
|
||||
# Include{serviceSelectorExtras}
|
||||
- variable: selfmonitor
|
||||
label: "selfmonitor Service Port Configuration"
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: port
|
||||
label: "Port"
|
||||
description: "This port exposes the container port on the service"
|
||||
schema:
|
||||
type: int
|
||||
default: 8081
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceList}
|
||||
# Include{ingressRoot}
|
||||
- variable: main
|
||||
label: "Main Ingress"
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{ingressDefault}
|
||||
# Include{ingressTLS}
|
||||
# Include{ingressTraefik}
|
||||
# Include{ingressAdvanced}
|
||||
# Include{ingressList}
|
||||
# Include{securityContextRoot}
|
||||
|
||||
- variable: runAsUser
|
||||
label: "runAsUser"
|
||||
description: "The UserID of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
- variable: runAsGroup
|
||||
label: "runAsGroup"
|
||||
description: "The groupID of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
# Include{securityContextContainer}
|
||||
# Include{securityContextAdvanced}
|
||||
# Include{securityContextPod}
|
||||
- variable: fsGroup
|
||||
label: "fsGroup"
|
||||
description: "The group that should own ALL storage."
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
|
||||
# Include{resources}
|
||||
# Include{metrics}
|
||||
# Include{prometheusRule}
|
||||
# Include{advanced}
|
||||
# Include{addons}
|
||||
# Include{codeserver}
|
||||
# Include{netshoot}
|
||||
# Include{vpn}
|
||||
# Include{documentation}
|
||||
@@ -1,313 +0,0 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/kube-state-metrics
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v2.10.0@sha256:538721a09681e1a5ee190cc348b7a27b0543eb2bade4afa4a2a89e21ca846f9d
|
||||
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
main:
|
||||
protocol: http
|
||||
port: 8080
|
||||
selfmonitor:
|
||||
enabled: true
|
||||
ports:
|
||||
selfmonitor:
|
||||
enabled: true
|
||||
protocol: http
|
||||
port: 8081
|
||||
|
||||
workload:
|
||||
main:
|
||||
podSpec:
|
||||
containers:
|
||||
main:
|
||||
args:
|
||||
- --resources=certificatesigningrequests
|
||||
- --resources=configmaps
|
||||
- --resources=cronjobs
|
||||
- --resources=daemonsets
|
||||
- --resources=deployments
|
||||
- --resources=endpoints
|
||||
- --resources=horizontalpodautoscalers
|
||||
- --resources=ingresses
|
||||
- --resources=jobs
|
||||
- --resources=limitranges
|
||||
- --resources=mutatingwebhookconfigurations
|
||||
- --resources=namespaces
|
||||
- --resources=networkpolicies
|
||||
- --resources=nodes
|
||||
- --resources=persistentvolumeclaims
|
||||
- --resources=persistentvolumes
|
||||
- --resources=poddisruptionbudgets
|
||||
- --resources=pods
|
||||
- --resources=replicasets
|
||||
- --resources=replicationcontrollers
|
||||
- --resources=resourcequotas
|
||||
- --resources=secrets
|
||||
- --resources=services
|
||||
- --resources=statefulsets
|
||||
- --resources=storageclasses
|
||||
# - --resources=verticalpodautoscalers
|
||||
- --resources=validatingwebhookconfigurations
|
||||
- --resources=volumeattachments
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
path: /healthz
|
||||
port: main
|
||||
|
||||
readiness:
|
||||
path: /healthz
|
||||
port: main
|
||||
|
||||
startup:
|
||||
type: tcp
|
||||
port: main
|
||||
|
||||
podOptions:
|
||||
automountServiceAccountToken: true
|
||||
|
||||
serviceAccount:
|
||||
main:
|
||||
enabled: true
|
||||
primary: true
|
||||
|
||||
rbac:
|
||||
main:
|
||||
enabled: true
|
||||
primary: true
|
||||
clusterWide: true
|
||||
rules:
|
||||
- apiGroups:
|
||||
- certificates.k8s.io
|
||||
resources:
|
||||
- certificatesigningrequests
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- cronjobs
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- apps
|
||||
resources:
|
||||
- daemonsets
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- apps
|
||||
resources:
|
||||
- deployments
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- endpoints
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- autoscaling
|
||||
resources:
|
||||
- horizontalpodautoscalers
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- ingresses
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- jobs
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- limitranges
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- networking.k8s.io
|
||||
resources:
|
||||
- networkpolicies
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumes
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- policy
|
||||
resources:
|
||||
- poddisruptionbudgets
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- apps
|
||||
resources:
|
||||
- replicasets
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- replicationcontrollers
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- resourcequotas
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- apps
|
||||
resources:
|
||||
- statefulsets
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- storageclasses
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- autoscaling.k8s.io
|
||||
resources:
|
||||
- verticalpodautoscalers
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- validatingwebhookconfigurations
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- volumeattachments
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
|
||||
metrics:
|
||||
main:
|
||||
# -- Enable and configure a Prometheus serviceMonitor for the chart under this key.
|
||||
# @default -- See values.yaml
|
||||
enabled: true
|
||||
type: "servicemonitor"
|
||||
endpoints:
|
||||
- port: main
|
||||
- port: selfmonitor
|
||||
# -- Enable and configure Prometheus Rules for the chart under this key.
|
||||
# @default -- See values.yaml
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
labels: {}
|
||||
# -- Configure additionial rules for the chart under this key.
|
||||
# @default -- See prometheusrules.yaml
|
||||
rules:
|
||||
[]
|
||||
# - alert: UnifiPollerAbsent
|
||||
# annotations:
|
||||
# description: Unifi Poller has disappeared from Prometheus service discovery.
|
||||
# summary: Unifi Poller is down.
|
||||
# expr: |
|
||||
# absent(up{job=~".*unifi-poller.*"} == 1)
|
||||
# for: 5m
|
||||
# labels:
|
||||
# severity: critical
|
||||
|
||||
portal:
|
||||
open:
|
||||
enabled: false
|
||||
@@ -1,9 +1,9 @@
|
||||
apiVersion: v2
|
||||
appVersion: "11.0.3"
|
||||
appVersion: "10.11.2"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.12
|
||||
version: 12.2.24
|
||||
deprecated: false
|
||||
description: Fast, reliable, scalable, and easy to use open-source relational database system.
|
||||
home: https://truecharts.org/charts/dependency/mariadb
|
||||
@@ -21,11 +21,12 @@ maintainers:
|
||||
name: mariadb
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/dependency/mariadb
|
||||
- https://hub.docker.com/r/bitnami/mariadb
|
||||
- https://github.com/bitnami/bitnami-docker-mariadb
|
||||
- https://github.com/prometheus/mysqld_exporter
|
||||
- https://mariadb.org
|
||||
type: application
|
||||
version: 9.0.29
|
||||
version: 6.0.9
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- database
|
||||
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
|
||||
@@ -11,7 +11,6 @@ questions:
|
||||
# Include{containerAdvanced}
|
||||
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
- variable: mariadbDatabase
|
||||
group: "App Configuration"
|
||||
label: "Database Name"
|
||||
@@ -64,9 +63,10 @@ questions:
|
||||
default: 3306
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: false
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
# Include{vctRoot}
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/mariadb
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v11.0.3@sha256:aeb1d81f269a5c37db7dcdc4dbcd221582f150f5ad15dc21893c6f63c46f5fbc
|
||||
tag: 10.11.2@sha256:fc01102eef1de92155b5097636ef738700c8bef1735f52a397b1505cbf455c0f
|
||||
|
||||
workload:
|
||||
main:
|
||||
replicas: 1
|
||||
type: StatefulSet
|
||||
strategy: RollingUpdate
|
||||
podSpec:
|
||||
containers:
|
||||
main:
|
||||
@@ -63,7 +66,7 @@ secret:
|
||||
mariadb-password: '{{ ( .Values.mariadbPassword | default "empty" ) }}'
|
||||
mariadb-root-password: '{{ ( .Values.mariadbRootPassword | default "empty" ) }}'
|
||||
|
||||
persistence:
|
||||
volumeClaimTemplates:
|
||||
data:
|
||||
enabled: true
|
||||
mountPath: "/bitnami/mariadb"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
apiVersion: v2
|
||||
appVersion: "1.6.21"
|
||||
appVersion: "1.6.18"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.12
|
||||
version: 12.2.24
|
||||
deprecated: false
|
||||
description: Memcached is a memory-backed database caching solution
|
||||
home: https://truecharts.org/charts/dependency/memcached
|
||||
@@ -20,10 +20,11 @@ maintainers:
|
||||
name: memcached
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/dependency/memcached
|
||||
- https://hub.docker.com/r/bitnami/memcached
|
||||
- https://github.com/bitnami/bitnami-docker-memcached
|
||||
- http://memcached.org/
|
||||
type: application
|
||||
version: 8.0.30
|
||||
version: 6.0.9
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- database
|
||||
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
|
||||
@@ -9,7 +9,6 @@ questions:
|
||||
# Include{containerBasic}
|
||||
# Include{containerAdvanced}
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
# Include{serviceRoot}
|
||||
- variable: main
|
||||
label: "Main Service"
|
||||
@@ -34,6 +33,7 @@ questions:
|
||||
default: 11211
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: false
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceList}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/memcached
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v1.6.21@sha256:66ac27883febf5687134c4c7c4724437174d704565a3bf5e8ea0038d2f9e7c7b
|
||||
tag: 1.6.18@sha256:49998f1e9bb4c1537c559c9e6a757c93a346d2ea6b03d03ecdca3bda3c8d4ab6
|
||||
|
||||
service:
|
||||
main:
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
apiVersion: v2
|
||||
appVersion: "7.0.2"
|
||||
appVersion: "6.0.4"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.12
|
||||
version: 12.2.24
|
||||
deprecated: false
|
||||
description: Fast, reliable, scalable, and easy to use open-source no-sql database system.
|
||||
home: https://truecharts.org/charts/dependency/mongodb
|
||||
@@ -20,10 +20,11 @@ maintainers:
|
||||
name: mongodb
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/dependency/mongodb
|
||||
- https://hub.docker.com/r/bitnami/mongodb
|
||||
- https://github.com/bitnami/bitnami-docker-mongodb
|
||||
- https://www.mongodb.com
|
||||
type: application
|
||||
version: 8.0.26
|
||||
version: 5.0.9
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- database
|
||||
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
|
||||
@@ -11,7 +11,6 @@ questions:
|
||||
# Include{containerAdvanced}
|
||||
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
- variable: mongodbDatabase
|
||||
group: "App Configuration"
|
||||
label: "Database Name"
|
||||
@@ -64,9 +63,10 @@ questions:
|
||||
default: 27017
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: false
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
# Include{vctRoot}
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/mongodb
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v7.0.2@sha256:6dd833c278dd211f6c8b5aa8cc32de2f886e53c347cb676cc8d8eb1e0de848f3
|
||||
tag: 6.0.4@sha256:3600c9f13d96311ddad4d2de6520d54c89a8708ee36798e4dc6fb93f59c1eab4
|
||||
|
||||
workload:
|
||||
main:
|
||||
replicas: 1
|
||||
type: StatefulSet
|
||||
strategy: RollingUpdate
|
||||
podSpec:
|
||||
containers:
|
||||
main:
|
||||
@@ -88,7 +90,7 @@ securityContext:
|
||||
runAsGroup: 0
|
||||
readOnlyRootFilesystem: false
|
||||
|
||||
persistence:
|
||||
volumeClaimTemplates:
|
||||
data:
|
||||
enabled: true
|
||||
mountPath: "/bitnami/mongodb"
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
apiVersion: v2
|
||||
appVersion: "1.6.1"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.12
|
||||
deprecated: false
|
||||
description: Prometheus exporter for hardware and OS metrics exposed by UNIX kernels, with pluggable metric collectors.
|
||||
home: https://truecharts.org/charts/dependency/node-exporter
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/node-exporter.png
|
||||
keywords:
|
||||
- prometheus
|
||||
- node-exporter
|
||||
- monitoring
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
maintainers:
|
||||
- email: info@truecharts.org
|
||||
name: TrueCharts
|
||||
url: https://truecharts.org
|
||||
name: node-exporter
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/dependency/node-exporter
|
||||
type: application
|
||||
version: 3.0.29
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- metrics
|
||||
truecharts.org/SCALE-support: "true"
|
||||
truecharts.org/grade: U
|
||||
@@ -1,106 +0,0 @@
|
||||
Business Source License 1.1
|
||||
|
||||
Parameters
|
||||
|
||||
Licensor: The TrueCharts Project, it's owner and it's contributors
|
||||
Licensed Work: The TrueCharts "Grafana" Helm Chart
|
||||
Additional Use Grant: You may use the licensed work in production, as long
|
||||
as it is directly sourced from a TrueCharts provided
|
||||
official repository, catalog or source. You may also make private
|
||||
modification to the directly sourced licenced work,
|
||||
when used in production.
|
||||
|
||||
The following cases are, due to their nature, also
|
||||
defined as 'production use' and explicitly prohibited:
|
||||
- Bundling, including or displaying the licensed work
|
||||
with(in) another work intended for production use,
|
||||
with the apparent intend of facilitating and/or
|
||||
promoting production use by third parties in
|
||||
violation of this license.
|
||||
|
||||
Change Date: 2050-01-01
|
||||
|
||||
Change License: 3-clause BSD license
|
||||
|
||||
For information about alternative licensing arrangements for the Software,
|
||||
please contact: legal@truecharts.org
|
||||
|
||||
Notice
|
||||
|
||||
The Business Source License (this document, or the “License”) is not an Open
|
||||
Source license. However, the Licensed Work will eventually be made available
|
||||
under an Open Source License, as stated in this License.
|
||||
|
||||
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
||||
“Business Source License” is a trademark of MariaDB Corporation Ab.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Business Source License 1.1
|
||||
|
||||
Terms
|
||||
|
||||
The Licensor hereby grants you the right to copy, modify, create derivative
|
||||
works, redistribute, and make non-production use of the Licensed Work. The
|
||||
Licensor may make an Additional Use Grant, above, permitting limited
|
||||
production use.
|
||||
|
||||
Effective on the Change Date, or the fourth anniversary of the first publicly
|
||||
available distribution of a specific version of the Licensed Work under this
|
||||
License, whichever comes first, the Licensor hereby grants you rights under
|
||||
the terms of the Change License, and the rights granted in the paragraph
|
||||
above terminate.
|
||||
|
||||
If your use of the Licensed Work does not comply with the requirements
|
||||
currently in effect as described in this License, you must purchase a
|
||||
commercial license from the Licensor, its affiliated entities, or authorized
|
||||
resellers, or you must refrain from using the Licensed Work.
|
||||
|
||||
All copies of the original and modified Licensed Work, and derivative works
|
||||
of the Licensed Work, are subject to this License. This License applies
|
||||
separately for each version of the Licensed Work and the Change Date may vary
|
||||
for each version of the Licensed Work released by Licensor.
|
||||
|
||||
You must conspicuously display this License on each original or modified copy
|
||||
of the Licensed Work. If you receive the Licensed Work in original or
|
||||
modified form from a third party, the terms and conditions set forth in this
|
||||
License apply to your use of that work.
|
||||
|
||||
Any use of the Licensed Work in violation of this License will automatically
|
||||
terminate your rights under this License for the current and all other
|
||||
versions of the Licensed Work.
|
||||
|
||||
This License does not grant you any right in any trademark or logo of
|
||||
Licensor or its affiliates (provided that you may use a trademark or logo of
|
||||
Licensor as expressly required by this License).
|
||||
|
||||
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
||||
AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
||||
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
||||
TITLE.
|
||||
|
||||
MariaDB hereby grants you permission to use this License’s text to license
|
||||
your works, and to refer to it using the trademark “Business Source License”,
|
||||
as long as you comply with the Covenants of Licensor below.
|
||||
|
||||
Covenants of Licensor
|
||||
|
||||
In consideration of the right to use this License’s text and the “Business
|
||||
Source License” name and trademark, Licensor covenants to MariaDB, and to all
|
||||
other recipients of the licensed work to be provided by Licensor:
|
||||
|
||||
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
||||
or a license that is compatible with GPL Version 2.0 or a later version,
|
||||
where “compatible” means that software provided under the Change License can
|
||||
be included in a program with software provided under GPL Version 2.0 or a
|
||||
later version. Licensor may specify additional Change Licenses without
|
||||
limitation.
|
||||
|
||||
2. To either: (a) specify an additional grant of rights to use that does not
|
||||
impose any additional restriction on the right granted in this License, as
|
||||
the Additional Use Grant; or (b) insert the text “None”.
|
||||
|
||||
3. To specify a Change Date.
|
||||
|
||||
4. Not to modify this License in any other way.
|
||||
|
Before Width: | Height: | Size: 8.5 KiB |
@@ -1,87 +0,0 @@
|
||||
# Include{groups}
|
||||
questions:
|
||||
# Include{global}
|
||||
# Include{workload}
|
||||
# Include{workloadDeployment}
|
||||
|
||||
# Include{replicas1}
|
||||
# Include{podSpec}
|
||||
# Include{containerMain}
|
||||
# Include{containerBasic}
|
||||
# Include{containerAdvanced}
|
||||
|
||||
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
# Include{serviceRoot}
|
||||
- variable: main
|
||||
label: "Main Service"
|
||||
description: "The Primary service on which the healthcheck runs, often the webUI"
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{serviceSelectorLoadBalancer}
|
||||
# Include{serviceSelectorExtras}
|
||||
- variable: main
|
||||
label: "Main Service Port Configuration"
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: port
|
||||
label: "Port"
|
||||
description: "This port exposes the container port on the service"
|
||||
schema:
|
||||
type: int
|
||||
default: 9100
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceList}
|
||||
# Include{ingressRoot}
|
||||
- variable: main
|
||||
label: "Main Ingress"
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{ingressDefault}
|
||||
# Include{ingressTLS}
|
||||
# Include{ingressTraefik}
|
||||
# Include{ingressAdvanced}
|
||||
# Include{ingressList}
|
||||
# Include{securityContextRoot}
|
||||
|
||||
- variable: runAsUser
|
||||
label: "runAsUser"
|
||||
description: "The UserID of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
- variable: runAsGroup
|
||||
label: "runAsGroup"
|
||||
description: "The groupID of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
# Include{securityContextContainer}
|
||||
# Include{securityContextAdvanced}
|
||||
# Include{securityContextPod}
|
||||
- variable: fsGroup
|
||||
label: "fsGroup"
|
||||
description: "The group that should own ALL storage."
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
|
||||
# Include{resources}
|
||||
# Include{metrics}
|
||||
# Include{prometheusRule}
|
||||
# Include{advanced}
|
||||
# Include{addons}
|
||||
# Include{codeserver}
|
||||
# Include{netshoot}
|
||||
# Include{vpn}
|
||||
# Include{documentation}
|
||||
@@ -1,95 +0,0 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/node-exporter
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v1.6.1@sha256:c150064746d1155d557663650603ea428eacd22c40da62f2ec3078b4c2ade1ba
|
||||
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
main:
|
||||
protocol: http
|
||||
port: 9910
|
||||
|
||||
workload:
|
||||
main:
|
||||
type: DaemonSet
|
||||
podSpec:
|
||||
containers:
|
||||
main:
|
||||
args:
|
||||
- --path.rootfs=/host
|
||||
- --path.procfs=/hostproc
|
||||
- --path.sysfs=/hostsys
|
||||
- --web.listen-address=0.0.0.0:{{ .Values.service.main.ports.main.port }}
|
||||
- --collector.filesystem.mount-points-exclude="^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+|var/db/system/.+|mnt/[a-zA-Z0-9-_\\.]+/ix-applications/.+)($|/)"
|
||||
- --collector.filesystem.fs-types-exclude="^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$"
|
||||
- --collector.netdev.device-exclude="^veth.*$"
|
||||
- --collector.netclass.ignored-devices="^veth.*$"
|
||||
probes:
|
||||
liveness:
|
||||
path: /
|
||||
port: main
|
||||
|
||||
readiness:
|
||||
path: /
|
||||
port: main
|
||||
|
||||
startup:
|
||||
type: tcp
|
||||
port: main
|
||||
|
||||
podOptions:
|
||||
hostNetwork: true
|
||||
hostPID: true
|
||||
|
||||
persistence:
|
||||
host:
|
||||
enabled: true
|
||||
type: hostPath
|
||||
hostPath: /
|
||||
mountPath: /host
|
||||
readOnly: true
|
||||
proc:
|
||||
enabled: true
|
||||
type: hostPath
|
||||
hostPath: /proc
|
||||
mountPath: /hostproc
|
||||
readOnly: true
|
||||
sys:
|
||||
enabled: true
|
||||
type: hostPath
|
||||
hostPath: /sys
|
||||
mountPath: /hostsys
|
||||
readOnly: true
|
||||
|
||||
metrics:
|
||||
main:
|
||||
# -- Enable and configure a Prometheus serviceMonitor for the chart under this key.
|
||||
# @default -- See values.yaml
|
||||
enabled: true
|
||||
type: "servicemonitor"
|
||||
endpoints:
|
||||
- port: main
|
||||
path: /metrics
|
||||
# -- Enable and configure Prometheus Rules for the chart under this key.
|
||||
# @default -- See values.yaml
|
||||
prometheusRule:
|
||||
enabled: false
|
||||
labels: {}
|
||||
# -- Configure additionial rules for the chart under this key.
|
||||
# @default -- See prometheusrules.yaml
|
||||
rules:
|
||||
[]
|
||||
# - alert: UnifiPollerAbsent
|
||||
# annotations:
|
||||
# description: Unifi Poller has disappeared from Prometheus service discovery.
|
||||
# summary: Unifi Poller is down.
|
||||
# expr: |
|
||||
# absent(up{job=~".*unifi-poller.*"} == 1)
|
||||
# for: 5m
|
||||
# labels:
|
||||
# severity: critical
|
||||
|
||||
portal:
|
||||
open:
|
||||
enabled: false
|
||||
@@ -1,9 +1,9 @@
|
||||
apiVersion: v2
|
||||
appVersion: "7.2.1"
|
||||
appVersion: "7.0.8"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.12
|
||||
version: 12.2.24
|
||||
deprecated: false
|
||||
description: Open source, advanced key-value store.
|
||||
home: https://truecharts.org/charts/dependency/redis
|
||||
@@ -20,10 +20,11 @@ maintainers:
|
||||
name: redis
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/dependency/redis
|
||||
- https://hub.docker.com/r/bitnami/redis
|
||||
- https://github.com/bitnami/bitnami-docker-redis
|
||||
- http://redis.io/
|
||||
type: application
|
||||
version: 8.0.32
|
||||
version: 6.0.14
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- database
|
||||
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
|
||||
@@ -11,7 +11,6 @@ questions:
|
||||
# Include{containerAdvanced}
|
||||
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
- variable: redisPassword
|
||||
group: "App Configuration"
|
||||
label: "Redis Password"
|
||||
@@ -43,6 +42,7 @@ questions:
|
||||
default: 6379
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: false
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{vctRoot}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/redis
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v7.2.1@sha256:01e1cd968ac2fa89c5c9008d49e63531d843c396eebff62f910784cbe2873811
|
||||
tag: 7.0.8@sha256:13e0bbf5369ed2f219b96c0e7136b531eb1fdca1db7b7e2c72e13133adf26288
|
||||
|
||||
workload:
|
||||
main:
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
apiVersion: v2
|
||||
appVersion: "9.3.0"
|
||||
appVersion: "9.1.1"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.12
|
||||
version: 12.2.24
|
||||
deprecated: false
|
||||
description: Apache Solr
|
||||
home: https://truecharts.org/charts/dependency/solr
|
||||
@@ -20,9 +20,10 @@ maintainers:
|
||||
name: solr
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/dependency/solr
|
||||
- https://hub.docker.com/r/bitnami/solr
|
||||
- https://github.com/apache/solr
|
||||
type: application
|
||||
version: 6.0.29
|
||||
version: 3.0.7
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- search
|
||||
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
|
||||
@@ -14,7 +14,6 @@ questions:
|
||||
# Include{containerAdvanced}
|
||||
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
- variable: solrCores
|
||||
group: "App Configuration"
|
||||
label: "Solr Cores"
|
||||
@@ -66,9 +65,10 @@ questions:
|
||||
default: 8983
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: false
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
# Include{vctRoot}
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/solr
|
||||
pullPolicy: IfNotPresent
|
||||
tag: v9.3.0@sha256:6006fc17d23089aa2807b51eff894a5a1c90d2f1f0175714b6015da6137a6dd4
|
||||
tag: 9.1.1@sha256:4ac9d6e8120321349f0a3e5dbaff796192a9623de8fb164adf9f42de952479f1
|
||||
|
||||
workload:
|
||||
main:
|
||||
type: StatefulSet
|
||||
replicas: 1
|
||||
strategy: RollingUpdate
|
||||
podSpec:
|
||||
containers:
|
||||
main:
|
||||
@@ -102,7 +104,7 @@ service:
|
||||
port: 8983
|
||||
targetPort: 8983
|
||||
|
||||
persistence:
|
||||
volumeClaimTemplates:
|
||||
db:
|
||||
enabled: true
|
||||
mountPath: "/bitnami/solr"
|
||||
|
||||
90
charts/dependency/subchart/CHANGELOG.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Changelog
|
||||
|
||||
|
||||
|
||||
## [subchart-2.0.0](https://github.com/truecharts/charts/compare/subchart-1.0.7...subchart-2.0.0) (2022-11-10)
|
||||
|
||||
### Chore
|
||||
|
||||
- Major Change to GUI
|
||||
|
||||
|
||||
|
||||
|
||||
## [subchart-1.0.7](https://github.com/truecharts/charts/compare/subchart-1.0.6...subchart-1.0.7) (2022-11-09)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm chart common to v10.9.5
|
||||
|
||||
|
||||
|
||||
|
||||
## [subchart-1.0.6](https://github.com/truecharts/charts/compare/subchart-1.0.5...subchart-1.0.6) (2022-11-08)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm chart common to v10.9.4
|
||||
|
||||
|
||||
|
||||
|
||||
## [subchart-1.0.5](https://github.com/truecharts/charts/compare/subchart-1.0.4...subchart-1.0.5) (2022-11-08)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm chart common to v10.9.3 ([#4348](https://github.com/truecharts/charts/issues/4348))
|
||||
|
||||
|
||||
|
||||
|
||||
## [subchart-1.0.4](https://github.com/truecharts/charts/compare/subchart-1.0.3...subchart-1.0.4) (2022-11-07)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm chart common to v10.9.1 ([#4339](https://github.com/truecharts/charts/issues/4339))
|
||||
|
||||
|
||||
|
||||
|
||||
## [subchart-1.0.3](https://github.com/truecharts/charts/compare/subchart-1.0.2...subchart-1.0.3) (2022-11-07)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm chart common to v10.9.0 ([#4337](https://github.com/truecharts/charts/issues/4337))
|
||||
|
||||
|
||||
|
||||
|
||||
## [subchart-1.0.2](https://github.com/truecharts/charts/compare/subchart-1.0.1...subchart-1.0.2) (2022-11-06)
|
||||
|
||||
### Chore
|
||||
|
||||
- update helm chart common to v10.8.1 ([#4326](https://github.com/truecharts/charts/issues/4326))
|
||||
|
||||
|
||||
|
||||
|
||||
## [subchart-1.0.1](https://github.com/truecharts/charts/compare/subchart-1.0.0...subchart-1.0.1) (2022-11-06)
|
||||
|
||||
|
||||
|
||||
|
||||
## [subchart-1.0.0]subchart-1.0.0 (2022-11-06)
|
||||
|
||||
### Chore
|
||||
|
||||
- Auto-update chart README [skip ci]
|
||||
|
||||
### Feat
|
||||
|
||||
- add subchart dependency ([#4319](https://github.com/truecharts/charts/issues/4319))
|
||||
|
||||
|
||||
|
||||
|
||||
## [subchart-1.0.0]subchart-1.0.0 (2022-11-06)
|
||||
|
||||
### Feat
|
||||
|
||||
- add subchart dependency ([#4319](https://github.com/truecharts/charts/issues/4319))
|
||||
27
charts/dependency/subchart/Chart.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
apiVersion: v2
|
||||
appVersion: "jammy"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 12.2.24
|
||||
deprecated: false
|
||||
description: This is only used as a subchart.
|
||||
home: https://truecharts.org/charts/dependency/subchart
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/subchart.png
|
||||
keywords:
|
||||
- subchart
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
maintainers:
|
||||
- email: info@truecharts.org
|
||||
name: TrueCharts
|
||||
url: https://truecharts.org
|
||||
name: subchart
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/dependency/subchart
|
||||
type: application
|
||||
version: 4.0.9
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- subchart
|
||||
truecharts.org/SCALE-support: "false"
|
||||
truecharts.org/grade: U
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
BIN
charts/dependency/subchart/icon.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
27
charts/dependency/subchart/values.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/ubuntu
|
||||
pullPolicy: IfNotPresent
|
||||
tag: jammy-20221101@sha256:4b9475e08c5180d4e7417dc6a18a26dcce7691e4311e5353dbb952645c5ff43f
|
||||
|
||||
manifestManager:
|
||||
enabled: false
|
||||
|
||||
portal:
|
||||
open:
|
||||
enabled: false
|
||||
|
||||
service:
|
||||
main:
|
||||
enabled: false
|
||||
ports:
|
||||
main:
|
||||
enabled: false
|
||||
port: 9999
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
startup:
|
||||
enabled: false
|
||||
3159
charts/dev/testapp/CHANGELOG.md
Normal file
@@ -1,32 +1,32 @@
|
||||
apiVersion: v2
|
||||
appVersion: "0.5.0"
|
||||
appVersion: "0.20.2297"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.9
|
||||
version: 12.2.0
|
||||
deprecated: false
|
||||
description: Lightweight ldap server for authentication and user management
|
||||
home: https://truecharts.org/charts/stable/lldap
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/lldap.png
|
||||
description: testing app for truecharts
|
||||
home: https://truecharts.org/charts/stable/jackett
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/jackett.png
|
||||
keywords:
|
||||
- lldap
|
||||
- ldap
|
||||
- authentication
|
||||
- auth
|
||||
- jackett
|
||||
- torrent
|
||||
- usenet
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
maintainers:
|
||||
- email: info@truecharts.org
|
||||
name: TrueCharts
|
||||
url: https://truecharts.org
|
||||
name: lldap
|
||||
name: testapp
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/stable/lldap
|
||||
- https://github.com/nitnelave/lldap
|
||||
- https://github.com/truecharts/charts/tree/master/charts/stable/jackett
|
||||
- https://ghcr.io/onedr0p/jackett
|
||||
- https://github.com/Jackett/Jackett
|
||||
type: application
|
||||
version: 2.0.3
|
||||
version: 0.0.1
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- ldap
|
||||
- auth
|
||||
- media
|
||||
- test
|
||||
truecharts.org/SCALE-support: "true"
|
||||
truecharts.org/grade: U
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
BIN
charts/dev/testapp/icon.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
@@ -6,14 +6,12 @@ questions:
|
||||
# Include{global}
|
||||
# Include{workload}
|
||||
# Include{workloadDeployment}
|
||||
|
||||
# Include{replicas1}
|
||||
# Include{podSpec}
|
||||
# Include{containerMain}
|
||||
# Include{containerBasic}
|
||||
# Include{containerAdvanced}
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
# Include{serviceRoot}
|
||||
- variable: main
|
||||
label: "Main Service"
|
||||
@@ -35,9 +33,10 @@ questions:
|
||||
description: "This port exposes the container port on the service"
|
||||
schema:
|
||||
type: int
|
||||
default: 10035
|
||||
default: 9117
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: false
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
@@ -60,36 +59,35 @@ questions:
|
||||
# Include{ingressDefault}
|
||||
# Include{ingressTLS}
|
||||
# Include{ingressTraefik}
|
||||
# Include{ingressAdvanced}
|
||||
# Include{ingressList}
|
||||
# Include{securityContextRoot}
|
||||
|
||||
- variable: runAsUser
|
||||
label: "runAsUser"
|
||||
description: "The UserID of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
default: 568
|
||||
- variable: runAsGroup
|
||||
label: "runAsGroup"
|
||||
description: "The groupID of the user running the application"
|
||||
description: "The groupID this App of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
default: 568
|
||||
# Include{securityContextContainer}
|
||||
# Include{securityContextAdvanced}
|
||||
# Include{securityContextPod}
|
||||
- variable: fsGroup
|
||||
- variable: fsGroup
|
||||
label: "fsGroup"
|
||||
description: "The group that should own ALL storage."
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
|
||||
default: 568568
|
||||
# Include{resources}
|
||||
# Include{advanced}
|
||||
# Include{postgresql}
|
||||
# Include{postgresqlBasics}
|
||||
# Include{addons}
|
||||
# Include{vpn}
|
||||
# Include{codeserver}
|
||||
# Include{netshoot}
|
||||
# Include{vpn}
|
||||
# Include{documentation}
|
||||
1
charts/dev/testapp/templates/common.yaml
Normal file
@@ -0,0 +1 @@
|
||||
{{- include "tc.v1.common.loader.all" . -}}
|
||||
38
charts/dev/testapp/values.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/jackett
|
||||
pullPolicy: IfNotPresent
|
||||
tag: 0.20.2297@sha256:4de1541011cb56935ba5a8e28a58f6cbcf62a903393dc94581eda0b6e2aa117c
|
||||
|
||||
securityContext:
|
||||
container:
|
||||
readOnlyRootFilesystem: false
|
||||
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
main:
|
||||
protocol: http
|
||||
targetPort: 9117
|
||||
port: 9117
|
||||
|
||||
workload:
|
||||
main:
|
||||
podSpec:
|
||||
containers:
|
||||
main:
|
||||
probes:
|
||||
liveness:
|
||||
path: "/UI/Login"
|
||||
readiness:
|
||||
path: "/UI/Login"
|
||||
startup:
|
||||
path: "/UI/Login"
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
mountPath: "/config"
|
||||
|
||||
portal:
|
||||
open:
|
||||
enabled: true
|
||||
@@ -3,11 +3,11 @@ appVersion: "4.37.5"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.9
|
||||
version: 12.2.24
|
||||
- condition: redis.enabled
|
||||
name: redis
|
||||
repository: https://deps.truecharts.org
|
||||
version: 8.0.29
|
||||
version: 6.0.14
|
||||
deprecated: false
|
||||
description: Authelia is a Single Sign-On Multi-Factor portal for web apps
|
||||
home: https://truecharts.org/charts/enterprise/authelia
|
||||
@@ -32,10 +32,11 @@ maintainers:
|
||||
name: authelia
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/enterprise/authelia
|
||||
- https://ghcr.io/authelia/authelia ghcr.io/authelia/authelia
|
||||
- https://github.com/authelia/chartrepo
|
||||
- https://github.com/authelia/authelia
|
||||
type: application
|
||||
version: 19.0.3
|
||||
version: 15.0.8
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- security
|
||||
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
|
||||
@@ -1,113 +0,0 @@
|
||||
# Authelia + LLDAP + Traefik ForwardAuth Setup guide
|
||||
|
||||
This quick guide should take you through the steps necessary to setup `Authelia` as your `forwardAuth` for `Traefik`. We'll be using `LLDAP` as the backend for `Authelia` since it's lightweight and simple enough for most users. A more complete video is available on our YouTube Channel
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Traefik installed (enable the `enterprise train`)
|
||||
- Clusterissuer for certificates
|
||||
- CloudnativePG operator (enable the `operators train`)
|
||||
|
||||
## Setup LLDAP
|
||||
|
||||
:::warning
|
||||
|
||||
LLDAP is a `Stable` train chart and therefore isn't supported at the same level as the charts in the `Enterprise` train (Authelia and Traefik).
|
||||
|
||||
:::
|
||||
|
||||
- Follow the steps included in the [Installation Notes](https://truecharts.org/charts/stable/lldap/installation-notes) for [LLDAP](https://truecharts.org/charts/stable/lldap/). Pretty straightforward. Change `dc=example,dc=com` to your domain, i.e. `dc=MYDOMAIN,dc=net` and then change your password. Also make sure you have the `Operators` train enabled and `CloudnativePG` operator installed, since you'll need it for `LLDAP` and `Authelia`
|
||||
|
||||

|
||||
|
||||
- I've set the services to `ClusterIP` since I'll be using ingress
|
||||
|
||||
- Once in `LLDAP`, create a user inside the `lldap_password_manager` group and change your default `admin` password. That `lldap_password_manager` user will be used to bind to `Authelia`. I've created a user called `Steven`
|
||||
|
||||
## Setup Authelia
|
||||
|
||||
- The setup for Authelia is very specific, and the logs won't tell you where you've messed up, but there's precise steps used to integrate `LLDAP` into `Authelia`. The info comes from the [LLDAP Authelia Docs](https://truecharts.org/charts/stable/lldap/authelia) and the upstream repo.
|
||||
|
||||
### App Configuration
|
||||
|
||||
- Domain: `mydomain.com` <- Your domain without https://
|
||||
- Default Redirection URL: `https://auth.mydomain.com` <- Can be anything, but we'll stick to auth.mydomain.com. As well, this will be the ingress URL for `Authelia`
|
||||
|
||||
### LDAP Backend Configuration
|
||||
|
||||
`Click Enable` then ensure everything is as below or you won't be able to connect to the LLDAP backend
|
||||
|
||||
- Implementation: `Custom` (that's the default)
|
||||
- URL: `ldap://lldap-ldap.ix-lldap.svc.cluster.local:3890`
|
||||
- Connection Timeout: 5s
|
||||
- Start TLS: (Not necessary)
|
||||
- TLS Settings: (Not necessary)
|
||||
- Server Name: Leave blank
|
||||
- Skip Certificate Verification: Leave unchecked
|
||||
- Minimum TLS version: `TLS1.2`
|
||||
- Base DN: `DC=mydomain,DC=com`
|
||||
- Username Attribute: `uid`
|
||||
- Additional Users DN: `ou=people`
|
||||
- Users Filter: `(&(|({username_attribute}={input})({mail_attribute}={input}))(objectClass=person))`
|
||||
- Additional Groups DN: `ou=groups`
|
||||
- Groups Filter: `(member={dn})`
|
||||
- Group name Attribute:`cn`
|
||||
- Mail Attribute:`mail`
|
||||
- Display Name Attribute:`displayName`
|
||||
- Admin User: `uid=Steven,ou=people,dc=mydomain,dc=com` <- Notice the uid=Steven, most of the time people use admin and a generated password
|
||||
- Password: `RANDOMPASSWORD`
|
||||
|
||||
#### SMTP Configuration
|
||||
|
||||
Check your mail provider for this, generally Gmail gives you an app specific password for your email account and uses `smtp.gmail.com` and port `587`
|
||||
|
||||
### Access Control Configuration
|
||||
|
||||
- This section is to set rules to connect to `Authelia` and which users can go where. This is a basic general rule below where the main user (Steven) can access all the site using a wildcard
|
||||
|
||||
Leave the default `one_factor` unless you've setup TOTP above. Then click `Add` next to `Rules` to get the screen below
|
||||
|
||||

|
||||
|
||||
- Add your `Domain` and a `Wildcard` for your subdomains.
|
||||
- Leave policy `one_factor`
|
||||
- Click `Add Subject` and add a subject of `group:lldap_password_manager` since `Steven` is part of that group
|
||||
|
||||
#### Setup Authelia Ingress
|
||||
|
||||
- Make sure you're using the same domain as the `Default Redirection URL` above, so for me that's `auth.mydomain.com`
|
||||
|
||||

|
||||
|
||||
## Traefik ForwardAuth Setup
|
||||
|
||||
- This part is straight forward as long as you have a working `Traefik` install, please see our [How-To](https://truecharts.org/charts/enterprise/traefik/how-to) if you need more info on getting that running.
|
||||
|
||||
- Scroll down to `forwardAuth` and click `Add`
|
||||
|
||||

|
||||
|
||||
- Name your `forwardauth` something you'll remember, since that's the middleware you'll add to your ingress going forward. Most people use `auth`
|
||||
- Address: `http://authelia.ix-authelia.svc.cluster.local:9091/api/verify?rd=https://auth.mydomain.com/` and replace the last part based on `mydomain.com`, and if you've changed ports/names you can get that from `Heavyscript`
|
||||
- Check `trustForwardHeader`
|
||||
- Add the following `authResponseHeaders` (press `Add` 4 times)
|
||||
- `Remote-User`
|
||||
- `Remote-Group`
|
||||
- `Remote-Name`
|
||||
- `Remote-Email`
|
||||
|
||||
### Adding the forwardauth to your Apps
|
||||
|
||||
The last step is adding the `forwardauth` along with the standard `ingress` settings for your app, for more info on setting ingress see the [ClusterIssuer Guide](https://truecharts.org/charts/enterprise/clusterissuer/how-to). What changes versus a standard setup is the `Traefik Middlewares` section, where you must add your `forwardauth` to the section.
|
||||
|
||||
- In this example we use the same name as above, or `auth`. Click `Add` to the `Traefik Middlewares` section, and enter your `forwardauth` name.
|
||||
|
||||

|
||||
|
||||
### References
|
||||
|
||||
The origin material for this guide is available on the [LLDAP Github](https://github.com/lldap/lldap). While further information on Authelia can be found on their [Github](https://github.com/authelia/authelia) and [website](https://www.authelia.com/).
|
||||
|
||||
### Support
|
||||
|
||||
If you have any issues with following this guide, we can be reached using [Discord](https://discord.gg/tVsPTHWTtr) for real-time feedback and support.
|
||||
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 43 KiB |
@@ -1,23 +0,0 @@
|
||||
# Input Validation
|
||||
|
||||
**`Default Redirection URL`**
|
||||
|
||||
Accepts:
|
||||
|
||||
- `https://`
|
||||
- DNS host
|
||||
- Characters (`0-9`, `a-z`, `A-Z`, `-`, `.`)
|
||||
|
||||
Accepted formats are:
|
||||
|
||||
- `https://dnshost`
|
||||
- `https://DNSHOST`
|
||||
- `https://DNS-HOST`
|
||||
- `https://dns-host`
|
||||
|
||||
Regex used to match this: `^https?:\/\/(.*)`
|
||||
You can try live [here](https://regex101.com/r/zFt9zy/1)
|
||||
|
||||
---
|
||||
|
||||
_If you find a field that you think it needs validation, please open an issue on github_
|
||||
@@ -6,13 +6,12 @@ questions:
|
||||
# Include{global}
|
||||
# Include{workload}
|
||||
# Include{workloadDeployment}
|
||||
# Include{replicas2}
|
||||
# Include{replicas1}
|
||||
# Include{podSpec}
|
||||
# Include{containerMain}
|
||||
# Include{containerBasic}
|
||||
# Include{containerAdvanced}
|
||||
# Include{containerConfig}
|
||||
# Include{podOptions}
|
||||
- variable: domain
|
||||
group: "App Configuration"
|
||||
label: "Domain"
|
||||
@@ -23,12 +22,11 @@ questions:
|
||||
required: true
|
||||
- variable: default_redirection_url
|
||||
group: "App Configuration"
|
||||
label: "Default Redirection URL"
|
||||
description: "If user tries to authenticate without any referrer, this is used"
|
||||
label: "Default Redirection Url"
|
||||
description: "If user tries to authenticate without any referer, this is used"
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
valid_chars: '^https?:\/\/(.*)'
|
||||
- variable: theme
|
||||
group: "App Configuration"
|
||||
label: "Theme"
|
||||
@@ -46,7 +44,7 @@ questions:
|
||||
description: "dark"
|
||||
- variable: log
|
||||
group: "App Configuration"
|
||||
label: "Log Configuration"
|
||||
label: "Log Configuration "
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
@@ -98,95 +96,6 @@ questions:
|
||||
schema:
|
||||
type: int
|
||||
default: 1
|
||||
- variable: password_policy
|
||||
group: "App Configuration"
|
||||
label: "Password Policy Configuration"
|
||||
description: "Authelia allows administrators to configure an enforced password policy."
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: "Enable"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: standard
|
||||
label: Standard
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: Enabled
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: min_length
|
||||
label: "Minimum Password Length"
|
||||
description: "Minimum Password Length"
|
||||
schema:
|
||||
type: int
|
||||
required: true
|
||||
show_if: [["enabled", "=", true]]
|
||||
default: 8
|
||||
- variable: max_length
|
||||
label: "Max Passsword Length"
|
||||
description: "Max Password Length"
|
||||
schema:
|
||||
type: int
|
||||
required: true
|
||||
show_if: [["enabled", "=", true]]
|
||||
default: 0
|
||||
- variable: require_uppercase
|
||||
label: "Require Upppercase"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_if: [["enabled", "=", true]]
|
||||
required: true
|
||||
- variable: require_lowercase
|
||||
label: "Require Lowercase"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_if: [["enabled", "=", true]]
|
||||
required: true
|
||||
- variable: require_number
|
||||
label: "Require Numbers"
|
||||
description: "Require Numbers in the password"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_if: [["enabled", "=", true]]
|
||||
required: true
|
||||
- variable: require_special
|
||||
label: "Require Special Characters"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_if: [["enabled", "=", true]]
|
||||
- variable: zxcvbn
|
||||
label: zxcvbn
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: Enabled
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
required: true
|
||||
- variable: min_score
|
||||
label: "Min Score"
|
||||
schema:
|
||||
type: int
|
||||
required: true
|
||||
show_if: [["enabled", "=", true]]
|
||||
default: 3
|
||||
- variable: duo_api
|
||||
group: "App Configuration"
|
||||
label: "DUO API Configuration"
|
||||
@@ -270,7 +179,7 @@ questions:
|
||||
- variable: regulation
|
||||
group: "App Configuration"
|
||||
label: "Regulation Configuration"
|
||||
description: "This mechanism prevents attackers from brute forcing the first factor."
|
||||
description: "his mechanism prevents attackers from brute forcing the first factor."
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
@@ -332,15 +241,15 @@ questions:
|
||||
subquestions:
|
||||
- variable: implementation
|
||||
label: "Implementation"
|
||||
description: "The LDAP implementation, this affects elements like the attribute utilized for resetting a password"
|
||||
description: "The LDAP implementation, this affects elements like the attribute utilised for resetting a password"
|
||||
schema:
|
||||
type: string
|
||||
default: "custom"
|
||||
enum:
|
||||
- value: "activedirectory"
|
||||
description: "Active Directory"
|
||||
description: "activedirectory"
|
||||
- value: "custom"
|
||||
description: "Custom"
|
||||
description: "custom"
|
||||
- variable: url
|
||||
label: "URL"
|
||||
description: "The url to the ldap server. Format: <scheme>://<address>[:<port>]"
|
||||
@@ -537,7 +446,7 @@ questions:
|
||||
- variable: notifier
|
||||
group: "App Configuration"
|
||||
label: "Notifier Configuration"
|
||||
description: "Notifications are sent to users when they require a password reset, a u2f registration or a TOTP registration."
|
||||
description: "otifications are sent to users when they require a password reset, a u2f registration or a TOTP registration."
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
@@ -833,6 +742,7 @@ questions:
|
||||
default: 9091
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: false
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
@@ -855,7 +765,6 @@ questions:
|
||||
# Include{ingressDefault}
|
||||
# Include{ingressTLS}
|
||||
# Include{ingressTraefik}
|
||||
# Include{ingressAdvanced}
|
||||
# Include{ingressList}
|
||||
# Include{securityContextRoot}
|
||||
- variable: runAsUser
|
||||
@@ -895,7 +804,7 @@ questions:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: enabled
|
||||
label: "Enabled"
|
||||
label: "enabled"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
@@ -32,55 +32,35 @@ enabled: true
|
||||
data:
|
||||
configuration.yaml: |
|
||||
---
|
||||
theme: {{ .Values.theme | default "light" }}
|
||||
theme: {{ default "light" .Values.theme }}
|
||||
default_redirection_url: {{ default (printf "https://www.%s" .Values.domain) .Values.default_redirection_url }}
|
||||
ntp:
|
||||
address: {{ .Values.ntp.address | default "time.cloudflare.com:123" }}
|
||||
version: {{ .Values.ntp.version | default 4 }}
|
||||
max_desync: {{ .Values.ntp.max_desync | default "3s" }}
|
||||
disable_startup_check: {{ .Values.ntp.disable_startup_check | default false }}
|
||||
disable_failure: {{ .Values.ntp.disable_failure | default true }}
|
||||
server:
|
||||
host: 0.0.0.0
|
||||
port: {{ .Values.server.port | default 9091 }}
|
||||
{{- if ne "" (.Values.server.path | default "") }}
|
||||
port: {{ default 9091 .Values.server.port }}
|
||||
{{- if not (eq "" (default "" .Values.server.path)) }}
|
||||
path: {{ .Values.server.path }}
|
||||
{{- end }}
|
||||
buffers:
|
||||
write: {{ .Values.server.write_buffer_size | default 4096 }}
|
||||
read: {{ .Values.server.read_buffer_size | default 4096 }}
|
||||
enable_pprof: {{ .Values.server.enable_pprof | default false }}
|
||||
enable_expvars: {{ .Values.server.enable_expvars | default false }}
|
||||
write: {{ default 4096 .Values.server.write_buffer_size }}
|
||||
read: {{ default 4096 .Values.server.read_buffer_size }}
|
||||
enable_pprof: {{ default false .Values.server.enable_pprof }}
|
||||
enable_expvars: {{ default false .Values.server.enable_expvars }}
|
||||
log:
|
||||
level: {{ .Values.log.level | default "info" }}
|
||||
format: {{ .Values.log.format | default "text" }}
|
||||
{{- if ne "" (.Values.log.file_path | default "") }}
|
||||
level: {{ default "info" .Values.log.level }}
|
||||
format: {{ default "text" .Values.log.format }}
|
||||
{{- if not (eq "" (default "" .Values.log.file_path)) }}
|
||||
file_path: {{ .Values.log.file_path }}
|
||||
keep_stdout: true
|
||||
{{- end }}
|
||||
totp:
|
||||
issuer: {{ .Values.totp.issuer | default .Values.domain }}
|
||||
period: {{ .Values.totp.period | default 30 }}
|
||||
skew: {{ .Values.totp.skew | default 1 }}
|
||||
{{- if .Values.password_policy.enabled }}
|
||||
password_policy:
|
||||
standard:
|
||||
enabled: {{ .Values.password_policy.standard.enabled | default false }}
|
||||
min_length: {{ .Values.password_policy.standard.min_length | default 8 }}
|
||||
max_length: {{ .Values.password_policy.standard.max_length | default 0 }}
|
||||
require_uppercase: {{ .Values.password_policy.standard.require_uppercase | default false }}
|
||||
require_lowercase: {{ .Values.password_policy.standard.require_lowercase | default false }}
|
||||
require_number: {{ .Values.password_policy.standard.require_number | default false }}
|
||||
require_special: {{ .Values.password_policy.standard.require_special | default false }}
|
||||
zxcvbn:
|
||||
enabled: {{ .Values.password_policy.zxcvbn.enabled | default false }}
|
||||
min_score: {{ .Values.password_policy.zxcvbn.min_score | default 3 }}
|
||||
{{- end -}}
|
||||
issuer: {{ default .Values.domain .Values.totp.issuer }}
|
||||
period: {{ default 30 .Values.totp.period }}
|
||||
skew: {{ default 1 .Values.totp.skew }}
|
||||
{{- if .Values.duo_api.enabled }}
|
||||
duo_api:
|
||||
hostname: {{ .Values.duo_api.hostname }}
|
||||
integration_key: {{ .Values.duo_api.integration_key }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- with $auth := .Values.authentication_backend }}
|
||||
authentication_backend:
|
||||
password_reset:
|
||||
@@ -88,121 +68,95 @@ data:
|
||||
{{- if $auth.file.enabled }}
|
||||
file:
|
||||
path: {{ $auth.file.path }}
|
||||
password:
|
||||
{{- $p := $auth.file.password -}}
|
||||
{{- if $p.algorithm }}
|
||||
algorithm: {{ $p.algorithm }}
|
||||
{{- end -}}
|
||||
{{- if $p.iterations }}
|
||||
iterations: {{ $p.iterations }}
|
||||
{{- end -}}
|
||||
{{- if $p.key_length }}
|
||||
key_length: {{ $p.key_length }}
|
||||
{{- end -}}
|
||||
{{- if $p.salt_length }}
|
||||
salt_length: {{ $p.salt_length }}
|
||||
{{- end -}}
|
||||
{{- if $p.memory }}
|
||||
memory: {{ $p.memory }}
|
||||
{{- end -}}
|
||||
{{- if $p.parallelism }}
|
||||
parallelism: {{ $p.parallelism }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
password: {{ toYaml $auth.file.password | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- if $auth.ldap.enabled }}
|
||||
ldap:
|
||||
implementation: {{ $auth.ldap.implementation | default "custom" }}
|
||||
implementation: {{ default "custom" $auth.ldap.implementation }}
|
||||
url: {{ $auth.ldap.url }}
|
||||
timeout: {{ $auth.ldap.timeout | default "5s" }}
|
||||
timeout: {{ default "5s" $auth.ldap.timeout }}
|
||||
start_tls: {{ $auth.ldap.start_tls }}
|
||||
tls:
|
||||
{{- if hasKey $auth.ldap.tls "server_name" }}
|
||||
server_name: {{ $auth.ldap.tls.server_name | default $auth.ldap.host }}
|
||||
server_name: {{ default $auth.ldap.host $auth.ldap.tls.server_name }}
|
||||
{{- end }}
|
||||
minimum_version: {{ $auth.ldap.tls.minimum_version | default "TLS1.2" }}
|
||||
skip_verify: {{ $auth.ldap.tls.skip_verify | default false }}
|
||||
minimum_version: {{ default "TLS1.2" $auth.ldap.tls.minimum_version }}
|
||||
skip_verify: {{ default false $auth.ldap.tls.skip_verify }}
|
||||
{{- if $auth.ldap.base_dn }}
|
||||
base_dn: {{ $auth.ldap.base_dn }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- if $auth.ldap.username_attribute }}
|
||||
username_attribute: {{ $auth.ldap.username_attribute }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- if $auth.ldap.additional_users_dn }}
|
||||
additional_users_dn: {{ $auth.ldap.additional_users_dn }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- if $auth.ldap.users_filter }}
|
||||
users_filter: {{ $auth.ldap.users_filter }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- if $auth.ldap.additional_groups_dn }}
|
||||
additional_groups_dn: {{ $auth.ldap.additional_groups_dn }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- if $auth.ldap.groups_filter }}
|
||||
groups_filter: {{ $auth.ldap.groups_filter }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- if $auth.ldap.group_name_attribute }}
|
||||
group_name_attribute: {{ $auth.ldap.group_name_attribute }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- if $auth.ldap.mail_attribute }}
|
||||
mail_attribute: {{ $auth.ldap.mail_attribute }}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- if $auth.ldap.display_name_attribute }}
|
||||
display_name_attribute: {{ $auth.ldap.display_name_attribute }}
|
||||
{{- end }}
|
||||
user: {{ $auth.ldap.user }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with $session := .Values.session }}
|
||||
session:
|
||||
name: {{ $session.name | default "authelia_session" }}
|
||||
name: {{ default "authelia_session" $session.name }}
|
||||
domain: {{ required "A valid .Values.domain entry required!" $.Values.domain }}
|
||||
same_site: {{ $session.same_site | default "lax" }}
|
||||
expiration: {{ $session.expiration | default "1M" }}
|
||||
inactivity: {{ $session.inactivity | default "5m" }}
|
||||
remember_me_duration: {{ $session.remember_me_duration | default "1M" }}
|
||||
same_site: {{ default "lax" $session.same_site }}
|
||||
expiration: {{ default "1M" $session.expiration }}
|
||||
inactivity: {{ default "5m" $session.inactivity }}
|
||||
remember_me_duration: {{ default "1M" $session.remember_me_duration }}
|
||||
{{- end }}
|
||||
redis:
|
||||
host: {{ .Values.redis.creds.plain }}
|
||||
{{- with $redis := .Values.redisProvider }}
|
||||
port: {{ $redis.port | default 6379 }}
|
||||
port: {{ default 6379 $redis.port }}
|
||||
{{- if not (eq $redis.username "") }}
|
||||
username: {{ $redis.username }}
|
||||
{{- end }}
|
||||
maximum_active_connections: {{ $redis.maximum_active_connections | default 8 }}
|
||||
minimum_idle_connections: {{ $redis.minimum_idle_connections | default 0 }}
|
||||
maximum_active_connections: {{ default 8 $redis.maximum_active_connections }}
|
||||
minimum_idle_connections: {{ default 0 $redis.minimum_idle_connections }}
|
||||
{{- if $redis.tls.enabled }}
|
||||
tls:
|
||||
server_name: {{ $redis.tls.server_name }}
|
||||
minimum_version: {{ $redis.tls.minimum_version | default "TLS1.2" }}
|
||||
minimum_version: {{ default "TLS1.2" $redis.tls.minimum_version }}
|
||||
skip_verify: {{ $redis.tls.skip_verify }}
|
||||
{{- end }}
|
||||
{{- if $redis.high_availability.enabled }}
|
||||
high_availability:
|
||||
sentinel_name: {{ $redis.high_availability.sentinel_name }}
|
||||
{{- if $redis.high_availability.nodes }}
|
||||
nodes:
|
||||
{{- range $node := $redis.high_availability.nodes }}
|
||||
- host: {{ $node.host }}
|
||||
port: {{ $node.port | default 26379 }}
|
||||
{{- end -}}
|
||||
nodes: {{ toYaml $redis.high_availability.nodes | nindent 10 }}
|
||||
{{- end }}
|
||||
route_by_latency: {{ $redis.high_availability.route_by_latency }}
|
||||
route_randomly: {{ $redis.high_availability.route_randomly }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
regulation:
|
||||
max_retries: {{ .Values.regulation.max_retries | default 3 }}
|
||||
find_time: {{ .Values.regulation.find_time | default "1m" }}
|
||||
ban_time: {{ .Values.regulation.ban_time | default "5m" }}
|
||||
regulation: {{ toYaml .Values.regulation | nindent 6 }}
|
||||
storage:
|
||||
postgres:
|
||||
host: {{ $.Values.cnpg.main.creds.host }}
|
||||
{{- with $storage := .Values.storage }}
|
||||
port: {{ $storage.postgres.port | default 5432 }}
|
||||
database: {{ $storage.postgres.database | default "authelia" }}
|
||||
username: {{ $storage.postgres.username | default "authelia" }}
|
||||
timeout: {{ $storage.postgres.timeout | default "5s" }}
|
||||
port: {{ default 5432 $storage.postgres.port }}
|
||||
database: {{ default "authelia" $storage.postgres.database }}
|
||||
username: {{ default "authelia" $storage.postgres.username }}
|
||||
timeout: {{ default "5s" $storage.postgres.timeout }}
|
||||
ssl:
|
||||
mode: {{ $storage.postgres.sslmode | default "disable" }}
|
||||
mode: {{ default "disable" $storage.postgres.sslmode }}
|
||||
{{- end }}
|
||||
{{- with $notifier := .Values.notifier }}
|
||||
notifier:
|
||||
@@ -214,77 +168,62 @@ data:
|
||||
{{- if $notifier.smtp.enabled }}
|
||||
smtp:
|
||||
host: {{ $notifier.smtp.host }}
|
||||
port: {{ $notifier.smtp.port | default 25 }}
|
||||
timeout: {{ $notifier.smtp.timeout | default "5s" }}
|
||||
port: {{ default 25 $notifier.smtp.port }}
|
||||
timeout: {{ default "5s" $notifier.smtp.timeout }}
|
||||
{{- with $notifier.smtp.username }}
|
||||
username: {{ . }}
|
||||
{{- end }}
|
||||
sender: {{ $notifier.smtp.sender | quote }}
|
||||
identifier: {{ $notifier.smtp.identifier | quote }}
|
||||
sender: {{ $notifier.smtp.sender }}
|
||||
identifier: {{ $notifier.smtp.identifier }}
|
||||
subject: {{ $notifier.smtp.subject | quote }}
|
||||
startup_check_address: {{ $notifier.smtp.startup_check_address | quote }}
|
||||
startup_check_address: {{ $notifier.smtp.startup_check_address }}
|
||||
disable_require_tls: {{ $notifier.smtp.disable_require_tls }}
|
||||
disable_html_emails: {{ $notifier.smtp.disable_html_emails }}
|
||||
tls:
|
||||
server_name: {{ $notifier.smtp.tls.server_name | default $notifier.smtp.host }}
|
||||
minimum_version: {{ $notifier.smtp.tls.minimum_version | default "TLS1.2" }}
|
||||
skip_verify: {{ $notifier.smtp.tls.skip_verify | default false }}
|
||||
server_name: {{ default $notifier.smtp.host $notifier.smtp.tls.server_name }}
|
||||
minimum_version: {{ default "TLS1.2" $notifier.smtp.tls.minimum_version }}
|
||||
skip_verify: {{ default false $notifier.smtp.tls.skip_verify }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.identity_providers.oidc.enabled }}
|
||||
identity_providers:
|
||||
oidc:
|
||||
access_token_lifespan: {{ .Values.identity_providers.oidc.access_token_lifespan | default "1h" }}
|
||||
authorize_code_lifespan: {{ .Values.identity_providers.oidc.authorize_code_lifespan | default "1m" }}
|
||||
id_token_lifespan: {{ .Values.identity_providers.oidc.id_token_lifespan | default "1h" }}
|
||||
refresh_token_lifespan: {{ .Values.identity_providers.oidc.refresh_token_lifespan | default "90m" }}
|
||||
enable_client_debug_messages: {{ .Values.identity_providers.oidc.enable_client_debug_messages | default false }}
|
||||
minimum_parameter_entropy: {{ .Values.identity_providers.oidc.minimum_parameter_entropy | default 8 }}
|
||||
{{- if .Values.identity_providers.oidc.clients }}
|
||||
access_token_lifespan: {{ default "1h" .Values.identity_providers.oidc.access_token_lifespan }}
|
||||
authorize_code_lifespan: {{ default "1m" .Values.identity_providers.oidc.authorize_code_lifespan }}
|
||||
id_token_lifespan: {{ default "1h" .Values.identity_providers.oidc.id_token_lifespan }}
|
||||
refresh_token_lifespan: {{ default "90m" .Values.identity_providers.oidc.refresh_token_lifespan }}
|
||||
enable_client_debug_messages: {{ default false .Values.identity_providers.oidc.enable_client_debug_messages }}
|
||||
minimum_parameter_entropy: {{ default 8 .Values.identity_providers.oidc.minimum_parameter_entropy }}
|
||||
{{- if gt (len .Values.identity_providers.oidc.clients) 0 }}
|
||||
clients:
|
||||
{{- range $client := .Values.identity_providers.oidc.clients }}
|
||||
- id: {{ $client.id }}
|
||||
description: {{ $client.description | default $client.id }}
|
||||
secret: {{ $client.secret | default (randAlphaNum 128) }}
|
||||
description: {{ default $client.id $client.description }}
|
||||
secret: {{ default (randAlphaNum 128) $client.secret }}
|
||||
{{- if $client.public }}
|
||||
public: {{ $client.public }}
|
||||
{{- end }}
|
||||
authorization_policy: {{ $client.authorization_policy | default "two_factor" }}
|
||||
consent_mode: {{ $client.consent_mode | default "auto" }}
|
||||
authorization_policy: {{ default "two_factor" $client.authorization_policy }}
|
||||
consent_mode: {{ default "auto" $client.consent_mode}}
|
||||
redirect_uris:
|
||||
{{- range $client.redirect_uris }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
{{- if $client.audience }}
|
||||
audience:
|
||||
{{- range $client.audience }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
scopes:
|
||||
{{- range ($client.scopes | default (list "openid" "profile" "email" "groups")) }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
grant_types:
|
||||
{{- range ($client.grant_types | default (list "refresh_token" "authorization_code")) }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
response_types:
|
||||
{{- range ($client.response_types | default (list "code")) }}
|
||||
- {{ . }}
|
||||
audience: {{ toYaml $client.audience | nindent 10 }}
|
||||
{{- end }}
|
||||
scopes: {{ toYaml (default (list "openid" "profile" "email" "groups") $client.scopes) | nindent 10 }}
|
||||
grant_types: {{ toYaml (default (list "refresh_token" "authorization_code") $client.grant_types) | nindent 10 }}
|
||||
response_types: {{ toYaml (default (list "code") $client.response_types) | nindent 10 }}
|
||||
{{- if $client.response_modes }}
|
||||
response_modes:
|
||||
{{- range $client.response_modes }}
|
||||
- {{ . }}
|
||||
response_modes: {{ toYaml $client.response_modes | nindent 10 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
userinfo_signing_algorithm: {{ $client.userinfo_signing_algorithm | default "none" }}
|
||||
userinfo_signing_algorithm: {{ default "none" $client.userinfo_signing_algorithm }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
access_control:
|
||||
{{- if not .Values.access_control.rules }}
|
||||
{{- if (eq (len .Values.access_control.rules) 0) }}
|
||||
{{- if (eq .Values.access_control.default_policy "bypass") }}
|
||||
default_policy: one_factor
|
||||
{{- else if (eq .Values.access_control.default_policy "deny") }}
|
||||
@@ -295,69 +234,15 @@ data:
|
||||
{{- else }}
|
||||
default_policy: {{ .Values.access_control.default_policy }}
|
||||
{{- end }}
|
||||
|
||||
{{- if not .Values.access_control.networks }}
|
||||
{{- if (eq (len .Values.access_control.networks) 0) }}
|
||||
networks: []
|
||||
{{- else }}
|
||||
networks:
|
||||
{{- range $net := .Values.access_control.networks }}
|
||||
- name: {{ $net.name }}
|
||||
networks:
|
||||
{{- range $net.networks }}
|
||||
- {{ . | squote }}
|
||||
{{- end }}
|
||||
networks: {{ toYaml .Values.access_control.networks | nindent 6 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- if not .Values.access_control.rules }}
|
||||
{{- if (eq (len .Values.access_control.rules) 0) }}
|
||||
rules: []
|
||||
{{- else }}
|
||||
rules:
|
||||
{{- range $rule := .Values.access_control.rules }}
|
||||
{{- if $rule.domain }}
|
||||
- domain:
|
||||
{{- if kindIs "string" $rule.domain }}
|
||||
- {{ $rule.domain | squote }}
|
||||
{{- else -}}
|
||||
{{- range $rule.domain }}
|
||||
- {{ . | squote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
{{- with $rule.policy }}
|
||||
policy: {{ . }}
|
||||
{{- end -}}
|
||||
{{- if $rule.networks }}
|
||||
networks:
|
||||
{{- if kindIs "string" $rule.networks }}
|
||||
- {{ $rule.networks | squote }}
|
||||
{{- else -}}
|
||||
{{- range $rule.networks }}
|
||||
- {{ . | squote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $rule.subject }}
|
||||
subject:
|
||||
{{- if kindIs "string" $rule.subject }}
|
||||
- {{ $rule.subject | squote }}
|
||||
{{- else -}}
|
||||
{{- range $rule.subject }}
|
||||
- {{ . | squote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $rule.resources }}
|
||||
resources:
|
||||
{{- if kindIs "string" $rule.resources }}
|
||||
- {{ $rule.resources | squote }}
|
||||
{{- else -}}
|
||||
{{- range $rule.resources }}
|
||||
- {{ . | squote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules: {{ toYaml .Values.access_control.rules | nindent 6 }}
|
||||
{{- end }}
|
||||
...
|
||||
{{- end -}}
|
||||
|
||||
@@ -2,31 +2,26 @@
|
||||
{{- define "authelia.secrets" -}}
|
||||
{{- $basename := include "tc.v1.common.lib.chart.names.fullname" $ -}}
|
||||
{{- $fetchname := printf "%s-authelia-secrets" $basename -}}
|
||||
|
||||
{{/* Initialize all keys */}}
|
||||
{{- $oidckey := genPrivateKey "rsa" }}
|
||||
{{- $oidcsecret := randAlphaNum 32 }}
|
||||
{{- $jwtsecret := randAlphaNum 50 }}
|
||||
{{- $sessionsecret := randAlphaNum 50 }}
|
||||
{{- $encryptionkey := randAlphaNum 100 }}
|
||||
|
||||
{{- $autheliaprevious := lookup "v1" "Secret" .Release.Namespace $fetchname }}
|
||||
{{- $oidckey := "" }}
|
||||
{{- $oidcsecret := "" }}
|
||||
{{- $jwtsecret := "" }}
|
||||
{{- $sessionsecret := "" }}
|
||||
{{- $encryptionkey := "" }}
|
||||
enabled: true
|
||||
data:
|
||||
{{ with (lookup "v1" "Secret" .Release.Namespace $fetchname) }}
|
||||
{{/* Get previous values and decode */}}
|
||||
{{ $sessionsecret = (index .data "SESSION_ENCRYPTION_KEY") | b64dec }}
|
||||
{{ $jwtsecret = (index .data "JWT_TOKEN") | b64dec }}
|
||||
{{ $encryptionkey = (index .data "ENCRYPTION_KEY") | b64dec }}
|
||||
|
||||
{{/* Check if those keys ever existed. as OIDC is optional */}}
|
||||
{{ if and (hasKey .data "OIDC_PRIVATE_KEY") (hasKey .data "OIDC_HMAC_SECRET") }}
|
||||
{{ $oidckey = (index .data "OIDC_PRIVATE_KEY") | b64dec }}
|
||||
{{ $oidcsecret = (index .data "OIDC_HMAC_SECRET") | b64dec }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- if $autheliaprevious }}
|
||||
SESSION_ENCRYPTION_KEY: {{ index $autheliaprevious.data "SESSION_ENCRYPTION_KEY" | b64dec }}
|
||||
JWT_TOKEN: {{ index $autheliaprevious.data "JWT_TOKEN" | b64dec }}
|
||||
ENCRYPTION_KEY: {{ index $autheliaprevious.data "ENCRYPTION_KEY" | b64dec }}
|
||||
{{- else }}
|
||||
{{- $jwtsecret := randAlphaNum 50 }}
|
||||
{{- $sessionsecret := randAlphaNum 50 }}
|
||||
{{- $encryptionkey := randAlphaNum 100 }}
|
||||
SESSION_ENCRYPTION_KEY: {{ $sessionsecret }}
|
||||
JWT_TOKEN: {{ $jwtsecret }}
|
||||
JWT_TOKEN: {{ $jwtsecret}}
|
||||
ENCRYPTION_KEY: {{ $encryptionkey }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.authentication_backend.ldap.enabled }}
|
||||
LDAP_PASSWORD: {{ .Values.authentication_backend.ldap.plain_password }}
|
||||
@@ -43,11 +38,19 @@ data:
|
||||
STORAGE_PASSWORD: {{ $.Values.cnpg.main.creds.password | trimAll "\"" }}
|
||||
|
||||
REDIS_PASSWORD: {{ .Values.redis.creds.redisPassword | trimAll "\"" }}
|
||||
{{- if .Values.redisProvider.high_availability.enabled }}
|
||||
{{- if .Values.redisProvider.high_availability.enabled}}
|
||||
REDIS_SENTINEL_PASSWORD: {{ .Values.redis.sentinelPassword | trimAll "\"" }}
|
||||
{{- end }}
|
||||
|
||||
OIDC_PRIVATE_KEY: |
|
||||
{{- $oidckey | nindent 4 }}
|
||||
{{- if $autheliaprevious }}
|
||||
{{- if and ( hasKey $autheliaprevious.data "OIDC_PRIVATE_KEY" ) ( hasKey $autheliaprevious.data "OIDC_HMAC_SECRET" ) }}
|
||||
OIDC_PRIVATE_KEY: {{ index $autheliaprevious.data "OIDC_PRIVATE_KEY" | b64dec }}
|
||||
OIDC_HMAC_SECRET: {{ index $autheliaprevious.data "OIDC_HMAC_SECRET" | b64dec }}
|
||||
{{- else }}
|
||||
{{- $oidckey := genPrivateKey "rsa" }}
|
||||
{{- $oidcsecret := randAlphaNum 32 }}
|
||||
OIDC_PRIVATE_KEY: {{ $oidckey }}
|
||||
OIDC_HMAC_SECRET: {{ $oidcsecret }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
@@ -2,26 +2,21 @@ image:
|
||||
repository: tccr.io/truecharts/authelia
|
||||
pullPolicy: IfNotPresent
|
||||
tag: 4.37.5@sha256:76a4617539534cec140fd98a12f721b878524f2df3a3653f3df8ff2b7eaab586
|
||||
manifestManager:
|
||||
enabled: true
|
||||
|
||||
workload:
|
||||
main:
|
||||
replicas: 2
|
||||
strategy: RollingUpdate
|
||||
podSpec:
|
||||
containers:
|
||||
main:
|
||||
command:
|
||||
- authelia
|
||||
args:
|
||||
- --config=/configuration.yaml
|
||||
command: ["authelia"]
|
||||
args: ["--config=/configuration.yaml"]
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: authelia-paths
|
||||
probes:
|
||||
liveness:
|
||||
type: http
|
||||
path: "/api/health"
|
||||
path: /api/health"
|
||||
|
||||
readiness:
|
||||
type: http
|
||||
@@ -117,25 +112,6 @@ totp:
|
||||
## See: https://www.authelia.com/docs/configuration/one-time-password.html#period-and-skew to read the documentation.
|
||||
skew: 1
|
||||
|
||||
##
|
||||
## Password Policy Config
|
||||
##
|
||||
## Parameters used for Password Policies
|
||||
password_policy:
|
||||
## See: https://www.authelia.com/configuration/security/password-policy/
|
||||
standard:
|
||||
enabled: false
|
||||
min_length: 8
|
||||
max_length: 0
|
||||
require_uppercase: false
|
||||
require_lowercase: false
|
||||
require_number: false
|
||||
require_special: false
|
||||
zxcvbn:
|
||||
## See https://www.authelia.com/configuration/security/password-policy/#zxcvbn for more info
|
||||
enabled: false
|
||||
min_score: 3
|
||||
|
||||
##
|
||||
## Duo Push API Configuration
|
||||
##
|
||||
@@ -147,15 +123,6 @@ duo_api:
|
||||
integration_key: ABCDEF
|
||||
plain_api_key: ""
|
||||
|
||||
## NTP settings
|
||||
|
||||
ntp:
|
||||
address: "time.cloudflare.com:123"
|
||||
version: 4
|
||||
max_desync: 3s
|
||||
disable_startup_check: false
|
||||
disable_failure: true
|
||||
|
||||
##
|
||||
## Authentication Backend Provider Configuration
|
||||
##
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
apiVersion: v2
|
||||
appVersion: "0.22.0"
|
||||
appVersion: "0.20.0"
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 14.0.9
|
||||
version: 12.2.24
|
||||
- condition: redis.enabled
|
||||
name: redis
|
||||
repository: https://deps.truecharts.org
|
||||
version: 8.0.29
|
||||
version: 6.0.14
|
||||
description: Blocky is a DNS proxy, DNS enhancer and ad-blocker for the local network written in Go
|
||||
home: https://truecharts.org/charts/enterprise/blocky
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/blocky.png
|
||||
@@ -22,10 +22,11 @@ maintainers:
|
||||
name: blocky
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/enterprise/blocky
|
||||
- https://hub.docker.com/r/spx01/blocky
|
||||
- https://0xerr0r.github.io/blocky/
|
||||
- https://github.com/0xERR0R/blocky
|
||||
- https://github.com/Mozart409/blocky-frontend
|
||||
version: 9.0.1
|
||||
version: 5.0.9
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- network
|
||||
|
||||
@@ -12,7 +12,7 @@ For more information about this App, please check the docs on the TrueCharts [we
|
||||
|
||||
## Support
|
||||
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro).
|
||||
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||
- See the [Website](https://truecharts.org)
|
||||
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||
|
||||
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 36 KiB |