diff --git a/content/for-administrators/how-to-guides/certificate-management/tls-certs.md b/content/for-administrators/how-to-guides/certificate-management/tls-certs.md index 5af9557f..5c49d65d 100644 --- a/content/for-administrators/how-to-guides/certificate-management/tls-certs.md +++ b/content/for-administrators/how-to-guides/certificate-management/tls-certs.md @@ -8,28 +8,26 @@ Go to `common-shared-secret` path in Vault and create a secret `external-dns-cre ### Cloudflare -- `api-token (required)`: API token generated from DNS provider being used. In case of Cloudflare, it should have `DNS:Edit` and `Zone:Read` access. -- `domain-filter (optional)`: This field should contain base domain that becomes base for registering further subdomains. For example: `example.com`. -- `zone-id-filter (optional)`: In case of Cloudflare, if you want to give more restrictive access of only few zones to this token, then this field should contain these zone ids. +| Key | Required/Optional | Explanation | +|----------|----------|----------| +| `api-token` | required | API token generated from DNS provider being used. In case of Cloudflare, it should have the following access
- `DNS:Edit`
- `Zone:Read` | +| `domain-filter` | optional | This field should contain base domain that becomes base for registering further subdomains. For example: `example.com`. | +| `zone-id-filter`| optional | In case of Cloudflare, if you want to give more restrictive access of only few zones to this token, then this field should contain these zone ids. -## Step 2: Navigate to the Target Path +## Step 2: Create Cert Manager Issuer Resource -Navigate to the appropriate path in your Infra GitOps repository. For this example, the path is: +Create following resources in your Infra GitOps repository at given path: ```plaintext /tenant-operator-config/templates/ ``` -## Step 3: Create Required Resources - -In this directory, create the following resources: - - [`Template`](https://docs.stakater.com/mto/main/crds-api-reference/template.html) - [`TemplateGroupInstance`](https://docs.stakater.com/mto/main/crds-api-reference/template-group-instance.html) ### Template -The `Template` resource defines the underlying YAML files to be deployed to tenant namespaces. Below is an example template for setting up a TLS certificate: +The `Template` resource defines the underlying YAML files to be deployed to tenant namespaces. Use the following template for setting up a TLS certificate: #### Cloudflare @@ -80,19 +78,21 @@ resources: #### Explanation of Resources -1. **`ExternalSecret`**: - - Retrieves the `api-token` from the secret provider (Vault). - - The `api-token` authenticates the DNS provider (e.g., Cloudflare) for certificate validation. +**`ExternalSecret`**: + +- Retrieves the `api-token` from the secret provider (Vault). +- The `api-token` authenticates the DNS provider (e.g., Cloudflare) for certificate validation. + +**`Issuer`**: -1. **`Issuer`**: - - Configures Cert-Manager to generate TLS certificates using [Let’s Encrypt](https://letsencrypt.org/). - - Requires: - - `.spec.acme.email`: Email address for certificate lifecycle updates. - - `.spec.acme.solvers.dns01.cloudflare.apiTokenSecretRef`: Reference to the `ExternalSecret` created earlier. +- Configures Cert-Manager to generate TLS certificates using [Let’s Encrypt](https://letsencrypt.org/). +- Requires: + - `.spec.acme.email`: Email address for certificate lifecycle updates. + - `.spec.acme.solvers.dns01.cloudflare.apiTokenSecretRef`: Reference to the `ExternalSecret` created earlier. ### TemplateGroupInstance -The `TemplateGroupInstance` deploys resources by referencing the created templates and specifying target namespaces. Example: +The `TemplateGroupInstance` deploys resources by referencing the created templates and specifying target namespaces: ```yaml apiVersion: tenantoperator.stakater.com/v1alpha1 @@ -103,9 +103,9 @@ spec: template: certificate-creds selector: matchExpressions: - - key: stakater.com/kind + - key: stakater.com/tenant operator: In - values: [sandbox, dev] + values: [ ] sync: true ``` @@ -113,11 +113,11 @@ spec: - **`.spec.template`**: References the `Template` resource. - **`.spec.selector`**: Specifies namespaces to deploy resources based on label expressions. - - In this example, resources are deployed to tenant namespaces with the label `stakater.com/kind` having values `sandbox` or `dev`. + - In this example, resources are deployed to tenant with the label `stakater.com/tenant` having values `tenant1` or `tenant2`. Ensure this list includes the names of all tenants where the `Issuer` needs to be available. Whenever you add a new tenant requiring an `Issuer`, update this field to include its name. Commit, push, and merge these changes to the `main` branch. ArgoCD will deploy the resources to the specified namespaces within a few minutes. -### Verify Deployment +## Step 3: Validation 1. In the cluster console, switch to `Administrator` view and navigate to `Home > Search`. 1. Select the namespace and search for `Issuer` in the `Resources` dropdown. diff --git a/content/for-developers/how-to-guides/expose-applications-to-internet/expose-applications-to-internet.md b/content/for-developers/how-to-guides/expose-applications-to-internet/expose-applications-to-internet.md index 184da311..4bffcd44 100644 --- a/content/for-developers/how-to-guides/expose-applications-to-internet/expose-applications-to-internet.md +++ b/content/for-developers/how-to-guides/expose-applications-to-internet/expose-applications-to-internet.md @@ -26,7 +26,7 @@ application: dnsNames: - issuerRef: - name: + name: kind: Issuer ``` @@ -37,7 +37,7 @@ application: - Requires: - `.certificate.secretName`: This is the name of secret that `Certificate` will create. It will contain TLS credentials that will find its utilization in next steps. - `.certificate.dnsNames`: DNS name for which this certificate will be valid. It can contain wildcard names like `*.example.com` or specific names like `api.example.com`. - - `.certificate.issuerRef.name`: Name of the issuer that this certificate will reference. We have created this issuer in previous steps. + - `.certificate.issuerRef.name`: Name of the issuer that this certificate will reference. We have created this issuer in previous steps. You can find this in the cluster console by switching to `Administrator` view and navigate to `Home > Search` and search for `Issuer` in your current namespace. ## Step 2: Deploy the Route @@ -71,7 +71,7 @@ application: - `route.host`: Specifies the host name that you want to use for this route. This value must match the `external-dns.alpha.kubernetes.io/hostname` annotation. - `route.path`: Specifies the URL path where your application will be exposed (e.g., `/api`). -### Verify Deployment +### Validation After updating the `values.yaml` file and applying the Helm chart, verify the deployment: @@ -93,6 +93,6 @@ After updating the `values.yaml` file and applying the Helm chart, verify the de 1. Navigate to the OpenShift cluster console. 1. Go to Networking > Routes and locate the Route resource for your application. 1. Confirm that: - - The Route resource is listed. - - Its status is Accepted. - - The DNS name and TLS configuration are correct. + - The Route resource is listed. + - Its status is Accepted. + - The DNS name and TLS configuration are correct.