docs(clusterissuer): update clusterissuer guides (#29796)

**Description**
Updates clusterissuer guides with yaml examples

⚒️ Fixes  # <!--(issue)-->

**⚙️ Type of change**

- [ ] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [ ] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**

**📃 Notes:**

**✔️ Checklist:**

- [ ] ⚖️ My code follows the style guidelines of this project
- [ ] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [ ] ⚠️ My changes generate no new warnings
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [ ] ⬆️ I increased versions for any altered app according to semantic
versioning
- [ ] I made sure the title starts with `feat(chart-name):`,
`fix(chart-name):` or `chore(chart-name):`

** App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._
This commit is contained in:
kqmaverick
2024-11-29 12:03:08 -07:00
committed by GitHub
parent 7bb22b6eba
commit eda07e3a45
2 changed files with 62 additions and 42 deletions
@@ -25,15 +25,25 @@ In order for an ACME issuer to issue a wildcard certificate, you need to have a
:::
![clusterissuer-clusterwidecert](./img/clusterissuer-clusterwidecert.png)
```yaml
// values.yaml
clusterCertificates:
replicationNamespaces: '.*'
certificates:
- name: domain-0-wildcard
enabled: true
# name of previously configured single domain certificate
certificateIssuer: domain-0-le-prod
hosts:
- example.com
- '*.example.com
```
After creating the cluster certificate, verify it is working by checking the `Application Events` created in the `clusterissuer` app (see [how to verify a single app certificate is working](how-to#verifying-clusterissuer-is-working) for more information).
After creating the cluster certificate, verify it is working by checking the `kubectl events` for the `clusterissuer` chart (see [how to verify a single app certificate is working](how-to#verifying-clusterissuer-is-working) for more information).
## Using a cluster certificate
After you have verified the certificate was created successfully, edit the settings of the app you wish to use it for and go to the _Ingress_ section.
If you have previously used a single domain certificate from clusterissuer, remove the specified issuer name. Then, click on _Show Advanced Settings_ and add a _TLS_ entry. Enter the name of your cluster certificate, and the certificate host(s) which it will be used for. These are usually the same as your app host(s), unless you wish to use more than one certificate. Save the chart.
After you have verified the certificate was created successfully, edit the `values.yaml` of the chart you wish to use it for.
:::note
@@ -41,4 +51,18 @@ In order for your cluster certificate to show up as valid, the certificate hosts
:::
![clusterissuer7](./img/clusterissuer7.png)
```yaml
// values.yaml
ingress:
main:
enabled: true
integrations:
traefik:
enabled: true
tls:
- hosts:
- app.example.com
clusterIssuer: domain-0-wildcard
hosts:
- host: app.example.com
```
+32 -36
View File
@@ -6,8 +6,7 @@ This guide will walk you through setting up `clusterissuer`, certificate managem
## Prerequisites
- Ensure you have the `premium` and `system` trains enabled for `TrueCharts` as discussed [here](/.
- [Traefik](/charts/premium/traefik/) is installed from premium train
- [Traefik](/charts/premium/traefik/) is installed from premium train.
- [Cert-Mananger](/charts/system/cert-manager/) and [Prometheus-Operator](/charts/system/prometheus-operator/)
:::caution[DNS]
@@ -18,22 +17,6 @@ As part of the DNS verification process cert-manager will connect to authoritati
:::
## Set Scale Nameservers
It is important to configure Scale with reliable nameserver to avoid issues handling DNS-01 challenges. Under Network -> Global Configuration-> Nameservers, we recommend setting 1.1.1.1/1.0.0.1 or 8.8.8.8/8.8.4.4.
![clusterissuer scale nameservers](./img/scale-network-nameserver.png)
## Install clusterissuer App
:::note
It is by design that the app does not run, there are no events, no logs and no shell.
:::
![clusterissuer app card](./img/clusterissuer2.png)
## Configure ACME Issuer
You can setup multiple domains and/or DNS providers with a single `clusterissuer` app.
@@ -51,14 +34,18 @@ The recommended `API Token` permissions are below:
#### Cloudflare ACME Issuer Settings
- **Name**: Name of the issuer entry; such as "cert" or "cloudflareprod". This name will be used later in the app ingress configuration
- **Type of DNS Provider**: `Cloudflare`
- **Server**: `Letsencrypt-Production`
- **Email**: The email address you register with Let's Encrypt for renewal/expiration notices
- **Cloudflare API key**: Leave blank since API token will be used
- **Cloudflare API Token**: Populate with token created from above.
![clusterissuer edit dialog](./img/clusterissuer-appconfig.png)
```yaml
// values.yaml
clusterIssuer:
ACME:
- name: domain-0-le-prod
# Used for both logging in to the DNS provider AND ACME registration
email: "${DOMAIN_0_EMAIL}"
server: 'https://acme-staging-v02.api.letsencrypt.org/directory'
type: "cloudflare"
# Obtained using instructions above
cfapitoken: sometoken
```
More detail can be found on the upstream [Cert-Manager](https://cert-manager.io/) documentation for [Cloudflare](https://cert-manager.io/docs/configuration/acme/dns01/cloudflare/).
@@ -76,19 +63,28 @@ To be completed
## Configure Ingress using clusterissuer
Here's an example on how to add ingress to an app with clusterissuer for a single domain only.
Here's an example on how to add ingress to a chart with clusterissuer for a single domain only.
Add the name of the `ACME Issuer` into `certificateIssuer`
![configure ingress using clusterissuer ](./img/clusterissuer-ingressconfig.png)
If you want to support multiple domains on a single app, use the Add button next to `Hosts`.
```yaml
// values.yaml
ingress:
main:
enabled: true
integrations:
traefik:
enabled: true
middlewares:
- name: auth
namespace: traefik
certManager:
enabled: true
certificateIssuer: domain-0-le-prod
hosts:
- host: librespeed.example.com
```
## Verifying clusterissuer is working
Once installed using the Ingress settings above, you can see the `Application Events` for the app in question to pull the certificate and issue the challenge directly. See the example below:
![clusterissuer4](./img/clusterissuer4.png)
![clusterissuer5](./img/clusterissuer5.png)
Once installed using the Ingress settings above, you can see the `kubectl events` for the chart in question to pull the certificate and issue the challenge directly. See the example below:
Renewals are handled automatically by `clusterissuer`.