From c1663caf86ea37be0a2cace0b24df5c0790de331 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Wed, 20 Dec 2023 15:25:43 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- enterprise/clusterissuer/5.0.0/CHANGELOG.md | 99 ++++ enterprise/clusterissuer/5.0.0/Chart.yaml | 37 ++ enterprise/clusterissuer/5.0.0/LICENSE | 106 +++++ enterprise/clusterissuer/5.0.0/README.md | 27 ++ .../clusterissuer/5.0.0/app-changelog.md | 9 + enterprise/clusterissuer/5.0.0/app-readme.md | 8 + .../5.0.0/charts/common-16.2.4.tgz | Bin 0 -> 95721 bytes enterprise/clusterissuer/5.0.0/ix_values.yaml | 104 ++++ enterprise/clusterissuer/5.0.0/questions.yaml | 445 ++++++++++++++++++ .../clusterissuer/5.0.0/templates/NOTES.txt | 1 + .../5.0.0/templates/clusterissuer/_ACME.tpl | 128 +++++ .../5.0.0/templates/clusterissuer/_CA.tpl | 54 +++ .../clusterissuer/_clusterCertificates.tpl | 34 ++ .../templates/clusterissuer/_selfSigned.tpl | 14 + .../clusterissuer/5.0.0/templates/common.yaml | 16 + enterprise/clusterissuer/5.0.0/values.yaml | 0 16 files changed, 1082 insertions(+) create mode 100644 enterprise/clusterissuer/5.0.0/CHANGELOG.md create mode 100644 enterprise/clusterissuer/5.0.0/Chart.yaml create mode 100644 enterprise/clusterissuer/5.0.0/LICENSE create mode 100644 enterprise/clusterissuer/5.0.0/README.md create mode 100644 enterprise/clusterissuer/5.0.0/app-changelog.md create mode 100644 enterprise/clusterissuer/5.0.0/app-readme.md create mode 100644 enterprise/clusterissuer/5.0.0/charts/common-16.2.4.tgz create mode 100644 enterprise/clusterissuer/5.0.0/ix_values.yaml create mode 100644 enterprise/clusterissuer/5.0.0/questions.yaml create mode 100644 enterprise/clusterissuer/5.0.0/templates/NOTES.txt create mode 100644 enterprise/clusterissuer/5.0.0/templates/clusterissuer/_ACME.tpl create mode 100644 enterprise/clusterissuer/5.0.0/templates/clusterissuer/_CA.tpl create mode 100644 enterprise/clusterissuer/5.0.0/templates/clusterissuer/_clusterCertificates.tpl create mode 100644 enterprise/clusterissuer/5.0.0/templates/clusterissuer/_selfSigned.tpl create mode 100644 enterprise/clusterissuer/5.0.0/templates/common.yaml create mode 100644 enterprise/clusterissuer/5.0.0/values.yaml diff --git a/enterprise/clusterissuer/5.0.0/CHANGELOG.md b/enterprise/clusterissuer/5.0.0/CHANGELOG.md new file mode 100644 index 0000000000..e52e28d3b5 --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/CHANGELOG.md @@ -0,0 +1,99 @@ +**Important:** +*for the complete changelog, please refer to the website* + + + + +## [clusterissuer-5.0.0](https://github.com/truecharts/charts/compare/clusterissuer-4.2.14...clusterissuer-5.0.0) (2023-12-20) + +### Chore + +- BREAKING CHANGE adapt to common changes ([#15889](https://github.com/truecharts/charts/issues/15889)) + + + + +## [clusterissuer-4.2.14](https://github.com/truecharts/charts/compare/clusterissuer-4.2.13...clusterissuer-4.2.14) (2023-12-20) + +### Chore + +- Bump everything to force min/max scale version update + + + + +## [clusterissuer-4.2.13](https://github.com/truecharts/charts/compare/clusterissuer-4.2.11...clusterissuer-4.2.13) (2023-12-16) + +### Chore + +- fix move mistake and cleanup metadata + - update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [clusterissuer-4.2.13](https://github.com/truecharts/charts/compare/clusterissuer-4.2.11...clusterissuer-4.2.13) (2023-12-16) + +### Chore + +- fix move mistake and cleanup metadata + - update helm general non-major ([#14784](https://github.com/truecharts/charts/issues/14784)) + + + + +## [clusterissuer-4.2.12](https://github.com/truecharts/charts/compare/clusterissuer-4.2.11...clusterissuer-4.2.12) (2023-12-16) + +### Chore + +- fix move mistake and cleanup metadata + + + + +## [clusterissuer-4.2.11](https://github.com/truecharts/charts/compare/clusterissuer-4.2.10...clusterissuer-4.2.11) (2023-12-03) + +### Chore + +- bump everything to ensure catalog has latest versions + - fix annotations again + - update annotations + - cleanup chart.yaml and add min-max scale version + - lint files ([#15238](https://github.com/truecharts/charts/issues/15238)) + + + + + + + + + + + + +## [clusterissuer-4.2.10](https://github.com/truecharts/charts/compare/clusterissuer-4.2.9...clusterissuer-4.2.10) (2023-11-17) + + + + +## [clusterissuer-4.2.9](https://github.com/truecharts/charts/compare/clusterissuer-4.2.8...clusterissuer-4.2.9) (2023-11-08) + + + + +## [clusterissuer-4.2.8](https://github.com/truecharts/charts/compare/clusterissuer-4.2.7...clusterissuer-4.2.8) (2023-11-08) + + + + +## [clusterissuer-4.2.7](https://github.com/truecharts/charts/compare/clusterissuer-4.2.6...clusterissuer-4.2.7) (2023-11-08) + +### Chore + +- update helm general non-major ([#14454](https://github.com/truecharts/charts/issues/14454)) + + + + +## [clusterissuer-4.2.6](https://github.com/truecharts/charts/compare/clusterissuer-4.2.5...clusterissuer-4.2.6) (2023-11-05) diff --git a/enterprise/clusterissuer/5.0.0/Chart.yaml b/enterprise/clusterissuer/5.0.0/Chart.yaml new file mode 100644 index 0000000000..3c8275beb1 --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/Chart.yaml @@ -0,0 +1,37 @@ +kubeVersion: ">=1.24.0-0" +apiVersion: v2 +name: clusterissuer +version: 5.0.0 +appVersion: latest +description: Certificate management for Kubernetes +home: https://truecharts.org/charts/enterprise/clusterissuer +icon: https://truecharts.org/img/hotlink-ok/chart-icons/clusterissuer.png +deprecated: false +sources: + - https://cert-manager.io/ + - https://github.com/truecharts/charts/tree/master/charts/enterprise/clusterissuer + - https://hub.docker.com/_/hello-world +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +keywords: + - cert-manager + - certificates +dependencies: + - name: common + version: 16.2.4 + repository: https://library-charts.truecharts.org + condition: "" + alias: "" + tags: [] + import-values: [] +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: core + truecharts.org/max_helm_version: "3.13" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: enterprise +type: application diff --git a/enterprise/clusterissuer/5.0.0/LICENSE b/enterprise/clusterissuer/5.0.0/LICENSE new file mode 100644 index 0000000000..80e4ab93f9 --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/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 "Cert-Manager" 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/enterprise/clusterissuer/5.0.0/README.md b/enterprise/clusterissuer/5.0.0/README.md new file mode 100644 index 0000000000..d1e771ade4 --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/README.md @@ -0,0 +1,27 @@ +# README + +## General Info + +TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/enterprise/clusterissuer) + +**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)** + + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +*All Rights Reserved - The TrueCharts Project* diff --git a/enterprise/clusterissuer/5.0.0/app-changelog.md b/enterprise/clusterissuer/5.0.0/app-changelog.md new file mode 100644 index 0000000000..5b86ece2d8 --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/app-changelog.md @@ -0,0 +1,9 @@ + + +## [clusterissuer-5.0.0](https://github.com/truecharts/charts/compare/clusterissuer-4.2.14...clusterissuer-5.0.0) (2023-12-20) + +### Chore + +- BREAKING CHANGE adapt to common changes ([#15889](https://github.com/truecharts/charts/issues/15889)) + + \ No newline at end of file diff --git a/enterprise/clusterissuer/5.0.0/app-readme.md b/enterprise/clusterissuer/5.0.0/app-readme.md new file mode 100644 index 0000000000..1b0cc5e4cb --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/app-readme.md @@ -0,0 +1,8 @@ +Certificate management for Kubernetes + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/enterprise/clusterissuer](https://truecharts.org/charts/enterprise/clusterissuer) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! diff --git a/enterprise/clusterissuer/5.0.0/charts/common-16.2.4.tgz b/enterprise/clusterissuer/5.0.0/charts/common-16.2.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f96ce4eb658ddb71df94db4a528ee054bafc3194 GIT binary patch literal 95721 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

|++bjQpOt2+!fKI;ScH2~dQduPz^Yrr_G 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%0D`5gr^lQ_l^&W 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 T!1VtI00960N9XGY03Hkg_swEG literal 0 HcmV?d00001 diff --git a/enterprise/clusterissuer/5.0.0/ix_values.yaml b/enterprise/clusterissuer/5.0.0/ix_values.yaml new file mode 100644 index 0000000000..bae06df803 --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/ix_values.yaml @@ -0,0 +1,104 @@ +image: + repository: hello-world + tag: latest@sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d + pullPolicy: IfNotPresent +manifestManager: + enabled: true +workload: + main: + enabled: false + podSpec: + containers: + main: + enabled: false + probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false +service: + main: + enabled: false + ports: + main: + enabled: false + port: 9999 +portal: + open: + enabled: false +operator: + verify: + additionalOperators: + - cert-manager + enabled: true + failOnError: false +clusterIssuer: + selfSigned: + enabled: true + name: "selfsigned" + CA: [] + # - name: myca + # selfSigned: true + # selfSignedCommonName: "my-selfsigned-ca" + # # Used to manually define a CA-crt not used when selfSigned is enabled + # crt: "" + # key: "" + # # TODO: Add option to use SCALE CA certs + + ACME: [] +# - name: letsencrypt +# # Used for both logging in to the DNS provider AND ACME registration +# email: "" +# server: 'https://acme-staging-v02.api.letsencrypt.org/directory' +# # Used primarily for the SCALE GUI +# customServer: 'https://acme-staging-v02.api.letsencrypt.org/directory' +# email: "" +# # Options: HTTP01, cloudflare, route53, akamai, digitalocean, rfc2136, acmedns +# type: "" +# # for cloudflare +# cfapikey: "" +# cfapitoken: "" +# # for route53 +# region: "" +# accessKeyID: "" +# route53SecretAccessKey: "" +# # optional for route53 +# role: "" +# # for akamai +# serviceConsumerDomain: "" +# akclientToken: "" +# akclientSecret: "" +# akaccessToken: "" +# # for digitalocean +# doaccessToken: "" +# # for rfc2136 +# nameserver: "" +# tsigKeyName: "" +# tsigAlgorithm: "" +# rfctsigSecret: "" +# # for acmedns +# name: sd +# acmednsHost: asdf +# # Pick one of the bellow acmednsConfig +# acmednsConfigJson: +# acmednsConfig: +# - domain: "" +# username: "" +# password: "" +# fulldomain: "" +# subdomain: "" +# allowFrom: [] + +clusterCertificates: + # Namespaces in which the certificates must be available + # Accepts comma-separated regex expressions + # replicationNamespaces: 'ix-.*' + certificates: [] + # - name: mycert + # enabled: true + # certificateIssuer: selfsigned + # hosts: + # - my.domain.com + # - '*.my.domain.com' diff --git a/enterprise/clusterissuer/5.0.0/questions.yaml b/enterprise/clusterissuer/5.0.0/questions.yaml new file mode 100644 index 0000000000..89568bda30 --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/questions.yaml @@ -0,0 +1,445 @@ +groups: + - name: Container Image + description: Image to be used for container + - name: General Settings + description: General Deployment Settings + - name: Workload Settings + description: Workload Settings + - name: App Configuration + description: App Specific Config Options + - name: Networking and Services + description: Configure Network and Services for Container + - name: Storage and Persistence + description: Persist and Share Data that is Separate from the Container + - name: Ingress + description: Ingress Configuration + - name: Security and Permissions + description: Configure Security Context and Permissions + - name: Resources and Devices + description: "Specify Resources/Devices to be Allocated to Workload" + - name: Middlewares + description: Traefik Middlewares + - name: Metrics + description: Metrics + - name: Addons + description: Addon Configuration + - name: Advanced + description: Advanced Configuration + - name: Postgresql + description: Postgresql + - name: Documentation + description: Documentation +questions: + - variable: global + group: General Settings + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + - variable: clusterIssuer + group: App Configuration + label: Cluster Certificate Issuer + schema: + additional_attrs: true + type: dict + attrs: + - variable: ACME + label: 'ACME Issuer' + schema: + type: list + default: [] + items: + - variable: ACMEEntry + label: 'ACME Issuer Entry' + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: "Name to give the issuer" + schema: + type: string + required: true + valid_chars: '^[a-z]+(-?[a-z]){0,63}-?[a-z]+$' + default: "" + - variable: type + label: Type or DNS-Provider + description: DNS Provider + schema: + type: string + default: cloudflare + enum: + - value: cloudflare + description: Cloudflare + - value: route53 + description: Route53 + - value: akamai + description: Akamai + - value: digitalocean + description: Digitalocean + - value: rfc2136 + description: rfc2136 (Advanced) + - value: HTTP01 + description: HTTP01 (Experimental) + - value: acmedns + description: ACME DNS (Advanced) + - variable: server + label: Server + description: "Server for ACME, for example: letsencrypt" + schema: + type: string + default: 'Letsencrypt-Production' + enum: + - value: 'https://acme-v02.api.letsencrypt.org/directory' + description: Letsencrypt-Production + - value: 'https://acme-staging-v02.api.letsencrypt.org/directory' + description: Letsencrypt-Staging + - value: 'https://api.buypass.no/acme-v02/directory' + description: BuyPass-Production + - value: 'https://api.test4.buypass.no/acme-v02/directory' + description: BuyPass-Staging + - value: custom + description: Custom + - variable: customServer + label: Custom ACME Server (Advanced) + description: "This can be used to enter your own custom ACME server" + schema: + type: string + show_if: [["server", "=", "custom"]] + default: 'https://acme-staging-v02.api.letsencrypt.org/directory' + - variable: caBundle + label: Trusted CABundle for private ACME server + description: "Trusted CABundle for private ACME server, encoded in base64" + schema: + type: string + show_if: [["server", "=", "custom"]] + - variable: email + label: Email + description: "Email adress to use for certificate issuing must match your DNS provider email when required" + schema: + type: string + required: true + default: "something@example.com" + - variable: cfapikey + label: CloudFlare API key + description: "CloudFlare API Key" + schema: + show_if: [["type", "=", "cloudflare"]] + type: string + default: "" + - variable: cfapitoken + label: CloudFlare API Token + description: "CloudFlare API Token" + schema: + show_if: [["type", "=", "cloudflare"]] + type: string + default: "" + - variable: region + label: Route53 Region + description: "Route 53 Region" + schema: + show_if: [["type", "=", "route53"]] + type: string + required: true + default: "us-west-1" + - variable: accessKeyID + label: Route53 accessKeyID + description: "Route53 accessKeyID" + schema: + show_if: [["type", "=", "route53"]] + type: string + required: true + default: "" + - variable: route53SecretAccessKey + label: Route53 Secret Access Key + description: "Route53 Secret Access Key" + schema: + show_if: [["type", "=", "route53"]] + type: string + required: true + default: "" + - variable: role + label: Route53 Role (optional) + description: "Route53 Role" + schema: + show_if: [["type", "=", "route53"]] + type: string + default: "" + - variable: serviceConsumerDomain + label: Akamai Service Consumer Domain + description: "Akamai Service Consumer Domain" + schema: + show_if: [["type", "=", "akamai"]] + type: string + required: true + default: "" + - variable: akclientToken + label: Akamai Client Token + description: "Client Token" + schema: + show_if: [["type", "=", "akamai"]] + type: string + required: true + default: "" + - variable: akclientSecret + label: Akamai Client Secret + description: "Akamai Client Secret" + schema: + show_if: [["type", "=", "akamai"]] + type: string + required: true + default: "" + - variable: akaccessToken + label: Akamai Access Token + description: "Akamai Access Token" + schema: + show_if: [["type", "=", "akamai"]] + type: string + required: true + default: "" + - variable: doaccessToken + label: Digitalocean Access Token + description: "Digitalocean Access Token" + schema: + show_if: [["type", "=", "digitalocean"]] + type: string + required: true + default: "" + - variable: nameserver + label: rfc2136 Namesever + description: "rfc2136 Namesever" + schema: + show_if: [["type", "=", "rfc2136"]] + type: string + required: true + default: "" + - variable: tsigKeyName + label: rfc2136 tsig Key Name + description: "rfc2136 tsig Key Name" + schema: + show_if: [["type", "=", "rfc2136"]] + type: string + required: true + default: "" + - variable: tsigAlgorithm + label: rfc2136 tsig Algorithm + description: "rfc2136 tsig Algorithm" + schema: + show_if: [["type", "=", "rfc2136"]] + type: string + required: true + default: "" + - variable: rfctsigSecret + label: rfc2136 sig Secret + description: "rfc2136 sig Secret" + schema: + show_if: [["type", "=", "rfc2136"]] + type: string + required: true + default: "" + - variable: acmednsHost + label: ACME DNS host + description: "ACME DNS API server address" + schema: + show_if: [["type", "=", "acmedns"]] + type: string + required: true + default: "https://auth.acme-dns.io" + - variable: acmednsConfig + label: ACME DNS config + description: "ACME DNS per-domain auth configuration" + schema: + show_if: [["type", "=", "acmedns"]] + type: list + default: [] + items: + - variable: acmednsEntry + label: 'ACME DNS entry' + schema: + type: dict + attrs: + - variable: domain + label: Domain + schema: + type: string + required: true + - variable: username + label: Username + schema: + type: string + required: true + - variable: password + label: Password + schema: + type: string + required: true + - variable: fulldomain + label: Full domain + schema: + type: string + required: true + - variable: subdomain + label: Subdomain + schema: + type: string + required: true + - variable: allowFrom + label: Allow from + schema: + type: list + default: [] + items: + - variable: cidr + label: CIDR + schema: + type: ipaddr + cidr: true + required: true + - variable: CA + label: Certificate Authority Issuer + schema: + type: list + default: [] + items: + - variable: CAEntry + label: 'CA Issuer Entry' + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: "Name to give the issuer" + schema: + type: string + required: true + valid_chars: '^[a-z]+(-?[a-z]){0,63}-?[a-z]+$' + default: "" + - variable: selfSigned + label: selfSigned + description: "Create Self Signed CA cert" + schema: + type: boolean + default: true + - variable: selfSignedCommonName + label: selfSigned CommonName + description: "Common name for selfSigned Certiticate Authority" + schema: + type: string + required: true + show_if: [["selfSigned", "=", true]] + default: "my-selfsigned-ca" + - variable: crt + label: "Custom CA cert (experimental)" + description: "certificate for Certiticate Authority" + schema: + type: string + required: true + max_length: 10240 + show_if: [["selfSigned", "=", false]] + default: "" + - variable: key + label: "Custom CA key (experimental)" + description: "key Certiticate Authority" + schema: + type: string + required: true + max_length: 10240 + show_if: [["selfSigned", "=", false]] + default: "" + + - variable: selfSigned + label: 'SelfSigned Issuer' + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + description: "Enable self-signed issuer" + schema: + type: boolean + default: true + - variable: name + label: Name + description: "Name to give the issuer" + schema: + type: string + required: true + valid_chars: '^[a-z]+(-?[a-z]){0,63}-?[a-z]+$' + default: "selfsigned" + + - variable: clusterCertificates + group: App Configuration + label: Cluster Wide Certificates (Advanced) + description: "Creates certificates for use within the entire cluster. Can be used to create wildcard certificates." + schema: + additional_attrs: true + type: dict + attrs: + - variable: certificates + label: Cluster Certificates + schema: + type: list + default: [] + items: + - variable: CertEntry + label: 'Certificate Entry' + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: name + label: Certificate Name + schema: + type: string + required: true + default: "" + - variable: certificateIssuer + label: Cert-Manager clusterIssuer + description: "One of the Cert-Manager clusterIssuers defined above" + schema: + type: string + required: true + valid_chars: '^[a-z]+(-?[a-z]){0,63}-?[a-z]+$' + default: "selfsigned" + - variable: hosts + label: Certificate Hosts + description: "NOTE: Creation of wildcard certificates with an ACME issuer requires a DNSO1 solver to be set up." + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: customMetrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: true diff --git a/enterprise/clusterissuer/5.0.0/templates/NOTES.txt b/enterprise/clusterissuer/5.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..efcb74cb77 --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_ACME.tpl b/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_ACME.tpl new file mode 100644 index 0000000000..f2af3d8f3d --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_ACME.tpl @@ -0,0 +1,128 @@ +{{- define "certmanager.clusterissuer.acme" -}} +{{- $operator := index $.Values.operator "cert-manager" -}} +{{- $namespace := $operator.namespace | default "cert-manager" -}} + +{{- $rfctsigSecret := .rfctsigSecret | default "" -}} +{{/* https://cert-manager.io/docs/configuration/acme/dns01/rfc2136/#troubleshooting */}} +{{- if $rfctsigSecret -}} {{/* If we try to decode and fail, go on and encode it. */}} + {{- if (contains "illegal base64" (b64dec $rfctsigSecret)) -}} + {{- $rfctsigSecret = b64enc $rfctsigSecret -}} + {{- end -}} +{{- end -}} + +{{- range .Values.clusterIssuer.ACME }} + {{- if or (not .name) (not (mustRegexMatch "^[a-z]+(-?[a-z]){0,63}-?[a-z]+$" .name)) -}} + {{- fail "ACME - Expected name to be all lowercase with hyphens, but not start or end with a hyphen" -}} + {{- end -}} + {{- $validTypes := list "HTTP01" "cloudflare" "route53" "digitalocean" "akamai" "rfc2136" "acmedns" -}} + {{- if not (mustHas .type $validTypes) -}} + {{- fail (printf "Expected ACME type to be one of [%s], but got [%s]" (join ", " $validTypes) .type) -}} + {{- end -}} + {{- $issuerSecretName := printf "%s-clusterissuer-secret" .name }} + {{- $acmednsDict := dict -}} + {{- if and (eq .type "acmedns") (not .acmednsConfigJson) }} + {{- range .acmednsConfig }} + {{/* Transform to a dict with domain as a key, also remove domain from the dict */}} + {{- $_ := set $acmednsDict .domain (omit . "domain") -}} + {{- end }} + {{- end }} +--- +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: {{ .name }} +spec: + acme: + email: {{ .email }} + server: {{ if eq .server "custom" }}{{ .customServer }}{{ else }}{{ .server }}{{ end }} + {{- if .caBundle }} + caBundle: {{ .caBundle }} + {{- end }} + privateKeySecretRef: + name: {{ .name }}-acme-clusterissuer-account-key + solvers: + {{- if eq .type "HTTP01" }} + - http01: + ingress: {} + {{- else }} + - dns01: + {{- if eq .type "cloudflare" }} + cloudflare: + email: {{ .email }} + {{- if .cfapitoken }} + apiTokenSecretRef: + name: {{ $issuerSecretName }} + key: cf-api-token + {{- else if .cfapikey }} + apiKeySecretRef: + name: {{ $issuerSecretName }} + key: cf-api-key + {{- else -}} + {{- fail "A cloudflare API key or token is required" -}} + {{- end -}} + {{- else if eq .type "route53" }} + route53: + region: {{ .region }} + accessKeyID: {{ .accessKeyID }} + {{- if .role }} + role: {{ .role }} + {{- end }} + secretAccessKeySecretRef: + name: {{ $issuerSecretName }} + key: route53-secret-access-key + {{- else if eq .type "akamai" }} + akamai: + serviceConsumerDomain: {{ .serviceConsumerDomain }} + clientTokenSecretRef: + name: {{ $issuerSecretName }} + key: akclientToken + clientSecretSecretRef: + name: {{ $issuerSecretName }} + key: akclientSecret + accessTokenSecretRef: + name: {{ $issuerSecretName }} + key: akaccessToken + {{- else if eq .type "digitalocean" }} + digitalocean: + tokenSecretRef: + name: {{ $issuerSecretName }} + key: doaccessToken + {{- else if eq .type "rfc2136" }} + rfc2136: + nameserver: {{ .nameserver }} + tsigKeyName: {{ .tsigKeyName }} + tsigAlgorithm: {{ .tsigAlgorithm }} + tsigSecretSecretRef: + name: {{ $issuerSecretName }} + key: rfctsigSecret + {{- else if eq .type "acmedns" }} + acmeDNS: + host: {{ .acmednsHost }} + accountSecretRef: + name: {{ $issuerSecretName }} + key: acmednsJson + {{- end -}} + {{- end }} +--- +apiVersion: v1 +kind: Secret +metadata: + namespace: {{ $namespace }} + name: {{ $issuerSecretName }} +type: Opaque +stringData: + cf-api-token: {{ .cfapitoken | default "" }} + cf-api-key: {{ .cfapikey | default "" }} + route53-secret-access-key: {{ .route53SecretAccessKey | default "" }} + akclientToken: {{ .akclientToken | default "" }} + akclientSecret: {{ .akclientSecret | default "" }} + akaccessToken: {{ .akaccessToken | default "" }} + doaccessToken: {{ .doaccessToken | default "" }} + rfctsigSecret: {{ $rfctsigSecret }} +{{- if .acmednsConfigJson }} + acmednsJson: {{ .acmednsConfigJson }} +{{- else if $acmednsDict }} + acmednsJson: {{ toJson $acmednsDict }} +{{- end -}} + {{- end -}} +{{- end -}} diff --git a/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_CA.tpl b/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_CA.tpl new file mode 100644 index 0000000000..7a4f06e07b --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_CA.tpl @@ -0,0 +1,54 @@ +{{- define "certmanager.clusterissuer.ca" -}} +{{- $operator := index $.Values.operator "cert-manager" -}} +{{- $namespace := $operator.namespace | default "cert-manager" -}} + +{{- range .Values.clusterIssuer.CA }} + {{- if not (mustRegexMatch "^[a-z]+(-?[a-z]){0,63}-?[a-z]+$" .name) -}} + {{- fail "CA - Expected name to be all lowercase with hyphens, but not start or end with a hyphen" -}} + {{- end -}} +{{- if .selfSigned }} +--- +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: {{ .name }}-selfsigned-ca-issuer +spec: + selfSigned: {} +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: {{ .name }}-selfsigned-ca + namespace: {{ $namespace }} +spec: + isCA: true + commonName: {{ .selfSignedCommonName }} + secretName: {{ .name }}-ca + privateKey: + algorithm: ECDSA + size: 256 + issuerRef: + name: {{ .name }}-selfsigned-ca-issuer + kind: ClusterIssuer + group: cert-manager.io +{{- else }} +--- +apiVersion: v1 +kind: Secret +metadata: + name: {{ .name }}-ca + namespace: {{ $namespace }} +data: + tls.crt: {{ .crt | b64enc }} + tls.key: {{ .key | b64enc }} +{{- end }} +--- +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: {{ .name }} +spec: + ca: + secretName: {{ .name }}-ca +{{- end }} +{{- end -}} diff --git a/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_clusterCertificates.tpl b/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_clusterCertificates.tpl new file mode 100644 index 0000000000..a1e0652073 --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_clusterCertificates.tpl @@ -0,0 +1,34 @@ +{{- define "certmanager.clusterissuer.clusterCertificates" -}} + {{- if .Values.clusterCertificates -}} + {{- $secretTemplates := dict -}} + {{- $certNamespace := (include "tc.v1.common.lib.metadata.namespace" (dict "rootCtx" $ "objectData" dict "caller" "ClusterCertificates")) -}} + {{- $replicationNamespaces := ".*" -}} + {{- if .Values.clusterCertificates.replicationNamespaces -}} + {{- $replicationNamespaces = .Values.clusterCertificates.replicationNamespaces -}} + {{- else if .Values.ixChartContext -}} + {{- $replicationNamespaces = "ix-.*" -}} + {{- end -}} + {{- $reflectorAnnotations := (dict + "reflector.v1.k8s.emberstack.com/reflection-allowed" "true" + "reflector.v1.k8s.emberstack.com/reflection-auto-enabled" "true" + "reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces" (printf "%v,%v" $certNamespace $replicationNamespaces) + "reflector.v1.k8s.emberstack.com/reflection-auto-namespaces" $replicationNamespaces ) -}} + {{- $certAnnotations := (mustMerge ($reflectorAnnotations) (include "tc.v1.common.lib.metadata.allAnnotations" $ | fromYaml)) -}} + + {{- $_ := set $secretTemplates "annotations" $certAnnotations -}} + + {{- if not $.Values.certificate -}} + {{- $_ := set $.Values "certificate" dict -}} + {{- end -}} + + {{- range .Values.clusterCertificates.certificates -}} + {{- $_ := set $.Values.certificate .name (dict + "enabled" .enabled + "hosts" .hosts + "certificateIssuer" .certificateIssuer + "certificateSecretTemplate" $secretTemplates + ) -}} + {{- end -}} + + {{- end -}} +{{- end -}} diff --git a/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_selfSigned.tpl b/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_selfSigned.tpl new file mode 100644 index 0000000000..235c03452c --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/templates/clusterissuer/_selfSigned.tpl @@ -0,0 +1,14 @@ +{{- define "certmanager.clusterissuer.selfsigned" -}} +{{- if .Values.clusterIssuer.selfSigned.enabled -}} + {{- if not (mustRegexMatch "^[a-z]+(-?[a-z]){0,63}-?[a-z]+$" .Values.clusterIssuer.selfSigned.name) -}} + {{- fail "Self Singed Issuer - Expected name to be all lowercase with hyphens, but not start or end with a hyphen" -}} + {{- end }} +--- +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: {{ .Values.clusterIssuer.selfSigned.name }} +spec: + selfSigned: {} +{{- end }} +{{- end -}} diff --git a/enterprise/clusterissuer/5.0.0/templates/common.yaml b/enterprise/clusterissuer/5.0.0/templates/common.yaml new file mode 100644 index 0000000000..494bfc898d --- /dev/null +++ b/enterprise/clusterissuer/5.0.0/templates/common.yaml @@ -0,0 +1,16 @@ +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . }} + +{{/* + Generate certificate data and set them to $.Values.ceritificate + Let common handle the creation of the objects +*/}} +{{- include "certmanager.clusterissuer.clusterCertificates" . }} + +{{/* Render the templates */}} +{{ include "tc.v1.common.loader.apply" . }} + +{{/* Generate the cluster issuers */}} +{{- include "certmanager.clusterissuer.acme" . }} +{{- include "certmanager.clusterissuer.selfsigned" . }} +{{- include "certmanager.clusterissuer.ca" . }} diff --git a/enterprise/clusterissuer/5.0.0/values.yaml b/enterprise/clusterissuer/5.0.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2