From a55a8a1fbf94fe85e84f19f3bda41293d29b51fb Mon Sep 17 00:00:00 2001 From: Kjeld Schouten Date: Wed, 26 Mar 2025 19:33:48 +0100 Subject: [PATCH] feat(pod-nuke): add chart and use kubectl container as basis --- charts/system/pod-nuke/.helmignore | 32 ++++++ charts/system/pod-nuke/Chart.yaml | 36 +++++++ charts/system/pod-nuke/LICENSE | 106 +++++++++++++++++++ charts/system/pod-nuke/README.md | 50 +++++++++ charts/system/pod-nuke/icon-small.webp | Bin 0 -> 556 bytes charts/system/pod-nuke/icon.webp | Bin 0 -> 3732 bytes charts/system/pod-nuke/templates/NOTES.txt | 1 + charts/system/pod-nuke/templates/common.yaml | 5 + charts/system/pod-nuke/values.yaml | 44 ++++++++ containers/apps/pod-nuke/Dockerfile | 2 +- 10 files changed, 275 insertions(+), 1 deletion(-) create mode 100644 charts/system/pod-nuke/.helmignore create mode 100644 charts/system/pod-nuke/Chart.yaml create mode 100644 charts/system/pod-nuke/LICENSE create mode 100644 charts/system/pod-nuke/README.md create mode 100644 charts/system/pod-nuke/icon-small.webp create mode 100644 charts/system/pod-nuke/icon.webp create mode 100644 charts/system/pod-nuke/templates/NOTES.txt create mode 100644 charts/system/pod-nuke/templates/common.yaml create mode 100644 charts/system/pod-nuke/values.yaml diff --git a/charts/system/pod-nuke/.helmignore b/charts/system/pod-nuke/.helmignore new file mode 100644 index 00000000000..feb7464da6f --- /dev/null +++ b/charts/system/pod-nuke/.helmignore @@ -0,0 +1,32 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png +icon.webp +icon-small.webp diff --git a/charts/system/pod-nuke/Chart.yaml b/charts/system/pod-nuke/Chart.yaml new file mode 100644 index 00000000000..a02690cef69 --- /dev/null +++ b/charts/system/pod-nuke/Chart.yaml @@ -0,0 +1,36 @@ +annotations: + max_scale_version: 24.04.1 + min_scale_version: 24.04.0 + truecharts.org/category: operators + truecharts.org/max_helm_version: "3.15" + truecharts.org/min_helm_version: "3.11" + truecharts.org/train: system +apiVersion: v2 +appVersion: 0.0.1 +dependencies: + - name: common + version: 25.4.10 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Watches for failed nodes and force-removes any pods on them after a timer runes out +home: https://truecharts.org/charts/system/pod-nuke +icon: https://truecharts.org/img/hotlink-ok/chart-icons/pod-nuke.webp +keywords: + - pod-nuke +kubeVersion: '>=1.24.0-0' +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: pod-nuke +sources: + - https://github.com/pod-nuke/pod-nuke + - https://github.com/truecharts/charts/tree/master/charts/system/pod-nuke + - https://github.com/truecharts/containers/tree/master/apps/pod-nuke + - https://pod-nuke.universe.tf +type: application +version: 2.3.1 diff --git a/charts/system/pod-nuke/LICENSE b/charts/system/pod-nuke/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/charts/system/pod-nuke/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "Blocky" 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. diff --git a/charts/system/pod-nuke/README.md b/charts/system/pod-nuke/README.md new file mode 100644 index 00000000000..374bb276c93 --- /dev/null +++ b/charts/system/pod-nuke/README.md @@ -0,0 +1,50 @@ +--- +title: README +--- + +## General Info + +For more information about this Chart, please check the docs on the TrueCharts [website](https://truecharts.org/charts/system/lvm-disk-watcher) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Installation + +### Helm-Chart installation + +To install TrueCharts Helm charts using Helm, you can use our OCI Repository. + +`helm install mychart oci://tccr.io/truecharts/lvm-disk-watcher` + +For more information on how to install TrueCharts Helm charts, checkout the [instructions on the website](/guides) + +## Chart Specific Guides and information + +All our charts have dedicated documentation pages. +The documentation for this chart can be found here: +https://truecharts.org/charts/system/lvm-disk-watcher + +## Configuration Options + +To view the chart specific options, please view Values.yaml included in the chart. +The most recent version of which, is available here: https://github.com/truecharts/public/blob/master/charts/system/lvm-disk-watcher/values.yaml + +All our Charts use a shared "common" library chart that contains most of the templating and options. +For the complete overview of all available options, please checkout the documentation for them on the [common docs on our website](/common) + +For information about the common chart and all defaults included with it, please review its values.yaml file available here: https://github.com/truecharts/public/blob/master/charts/library/common/values.yaml + +## Support + +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](/general/sponsor) or contributing back to the project any way you can! + +_All Rights Reserved - The TrueCharts Project_ diff --git a/charts/system/pod-nuke/icon-small.webp b/charts/system/pod-nuke/icon-small.webp new file mode 100644 index 0000000000000000000000000000000000000000..6380d00e9d62fa760f6263e0e3135095caa3f00f GIT binary patch literal 556 zcmV+{0@M9cNk&E_0ssJ4MM6+kP&il$0000G0000V0018V06|PpNY?=X00EGzZQI&5 zZDKT6%2ho;8+ zH*pM-LsZ-ksm)DSLQ~RFQYkcO@)cfAIL(rM6fTuCJBe~s^OZTtGtFkKRCy^`Oi9&} zysYThlF`I@4Zdc>sJ=V@QSg00v!OZV1nJ+o>8WAMQ{wVQovxCTjn5U{H_IEzyzC&! z=m@Z~NRsPCUN*|SM#vAln*gA7>bUUhiitYx-*h=qs`#b&W$m~E09H^q uASM6+0MG&eodGH!03ZN9eJ+wmq@tmrH|PM64~c020ImZN0RH*{fB*oY@B|b9 literal 0 HcmV?d00001 diff --git a/charts/system/pod-nuke/icon.webp b/charts/system/pod-nuke/icon.webp new file mode 100644 index 0000000000000000000000000000000000000000..c876cb18cc1e1fee16a5b3bdc3384304d96955b6 GIT binary patch literal 3732 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 literal 0 HcmV?d00001 diff --git a/charts/system/pod-nuke/templates/NOTES.txt b/charts/system/pod-nuke/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/charts/system/pod-nuke/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/charts/system/pod-nuke/templates/common.yaml b/charts/system/pod-nuke/templates/common.yaml new file mode 100644 index 00000000000..995efb03eb0 --- /dev/null +++ b/charts/system/pod-nuke/templates/common.yaml @@ -0,0 +1,5 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} diff --git a/charts/system/pod-nuke/values.yaml b/charts/system/pod-nuke/values.yaml new file mode 100644 index 00000000000..c0fcb530f84 --- /dev/null +++ b/charts/system/pod-nuke/values.yaml @@ -0,0 +1,44 @@ +image: + repository: tccr.io/tccr/pod-nuke + pullPolicy: IfNotPresent + tag: v0.0.1 + +service: + main: + enabled: false + ports: + main: + enabled: false + +workload: + main: + podSpec: + containers: + main: + probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false + +portal: + open: + enabled: false + +podOptions: + automountServiceAccountToken: true + +rbac: + main: + enabled: true + primary: true + clusterWide: true + rules: + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "delete"] diff --git a/containers/apps/pod-nuke/Dockerfile b/containers/apps/pod-nuke/Dockerfile index 07063cb29e0..472ee988648 100644 --- a/containers/apps/pod-nuke/Dockerfile +++ b/containers/apps/pod-nuke/Dockerfile @@ -1,4 +1,4 @@ -FROM tccr.io/tccr/alpine:v3.21.3@sha256:8ae22cc7c6f2dbc803e2d7e8aff41496d72a3ec4c2527501baac5f94360ed20a +FROM tccr.io/truecharts/kubectl ARG TARGETPLATFORM ARG VERSION