Skip to content

Commit 7dded24

Browse files
Merge pull request #1533 from wallrj/merge-master
Merge master into release-next
2 parents c75a056 + 646e8c1 commit 7dded24

File tree

10 files changed

+186
-27
lines changed

10 files changed

+186
-27
lines changed

components/docs/VersionSelect.jsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import { Listbox } from '@headlessui/react'
22
import { useState } from 'react'
33
import SidebarLink from './Sidebar/SidebarLink'
44

5-
import { compareVersions } from 'compare-versions';
5+
import { compareVersions } from 'compare-versions'
66

77
function labelFromVersion(version) {
8-
return version === 'docs'
9-
? 'latest'
10-
: version.replace(/-docs$/, '').replace(/^v/, '');
8+
return version === 'docs'
9+
? 'latest'
10+
: version.replace(/-docs$/, '').replace(/^v/, '')
1111
}
1212

1313
export default function VersionSelect({
@@ -25,7 +25,7 @@ export default function VersionSelect({
2525
.reverse()
2626

2727
return (
28-
<div className="bg-gray-1 rounded-md border-2 border-gray-2/50">
28+
<div className="bg-gray-1 rounded-md border-2 border-gray-2/50">
2929
<Listbox value={selectedVersion} onChange={setSelectedVersion}>
3030
<Listbox.Button className="w-full">
3131
version: {labelFromVersion(version)}
@@ -55,7 +55,7 @@ export default function VersionSelect({
5555
))}
5656
<div className="block px-2">
5757
<SidebarLink
58-
href="https://release-next--cert-manager-website.netlify.app/docs/"
58+
href="https://release-next--cert-manager.netlify.app/docs/"
5959
caption="next release"
6060
setSidebarCollapsed={setSidebarCollapsed}
6161
setParentOpen={setParentOpen}
@@ -64,5 +64,5 @@ export default function VersionSelect({
6464
</Listbox.Options>
6565
</Listbox>
6666
</div>
67-
);
67+
)
6868
}

content/docs/installation/helm.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,14 @@ This static manifest can be tuned by providing the flags to overwrite the defaul
118118
helm template \
119119
cert-manager jetstack/cert-manager \
120120
--namespace cert-manager \
121-
--create-namespace \
122121
--version [[VAR::cert_manager_latest_version]] \
123122
--set crds.enabled=true \
124123
# --set prometheus.enabled=false \ # Example: disabling prometheus using a Helm parameter
125124
> cert-manager.custom.yaml
126125
```
127126

127+
> ℹ️ The `helm template` command will not output a Namespace resource and ignores the `--create-namespace` flag. You must ensure the namespace you are deploying the generated YAML to exists.
128+
128129
## Uninstalling
129130

130131
> **Warning**: To uninstall cert-manager you should always use the same process for

content/docs/installation/kubectl.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ you'll need to make modifications to the deployment manifests.
3131
Once you've installed cert-manager, you can verify it is deployed correctly by
3232
checking the `cert-manager` namespace for running pods:
3333

34-
```bash
34+
```console
3535
$ kubectl get pods --namespace cert-manager
3636

3737
NAME READY STATUS RESTARTS AGE
@@ -55,15 +55,15 @@ First, make sure that [cmctl is installed](../reference/cmctl.md#installation).
5555
cmctl performs a dry-run certificate creation check against the Kubernetes cluster.
5656
If successful, the message `The cert-manager API is ready` is displayed.
5757

58-
```bash
58+
```console
5959
$ cmctl check api
6060
The cert-manager API is ready
6161
```
6262

6363
The command can also be used to wait for the check to be successful.
6464
Here is an output example of running the command at the same time that cert-manager is being installed:
6565

66-
```bash
66+
```console
6767
$ cmctl check api --wait=2m
6868
Not ready: the cert-manager CRDs are not yet installed on the Kubernetes API server
6969
Not ready: the cert-manager CRDs are not yet installed on the Kubernetes API server
@@ -81,7 +81,7 @@ Best way to fully verify the installation is to issue a test certificate. For th
8181

8282

8383
```bash
84-
$ cat <<EOF > test-resources.yaml
84+
cat <<EOF > test-resources.yaml
8585
apiVersion: v1
8686
kind: Namespace
8787
metadata:
@@ -111,12 +111,13 @@ EOF
111111

112112
Create the test resources.
113113
```bash
114-
$ kubectl apply -f test-resources.yaml
114+
kubectl apply -f test-resources.yaml
115115
```
116116

117117
Check the status of the newly created certificate. You may need to wait a few
118118
seconds before cert-manager processes the certificate request.
119-
```bash
119+
120+
```console
120121
$ kubectl describe certificate -n cert-manager-test
121122

122123
...
@@ -140,8 +141,9 @@ Events:
140141
```
141142

142143
Clean up the test resources.
144+
143145
```bash
144-
$ kubectl delete -f test-resources.yaml
146+
kubectl delete -f test-resources.yaml
145147
```
146148

147149
If all the above steps have completed without error, you're good to go!

content/docs/reference/api-docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6787,5 +6787,5 @@ description: >-
67876787
</table>
67886788
<hr />
67896789
<p>
6790-
<em> Generated with <code>gen-crd-api-reference-docs</code> on git commit <code>3403251</code>. </em>
6790+
<em> Generated with <code>gen-crd-api-reference-docs</code> on git commit <code>35e27b7</code>. </em>
67916791
</p>

content/docs/releases/release-notes/release-notes-1.15.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: 'cert-manager release notes: cert-manager 1.14'
66
> 📢 The cert-manager CLI has moved to a new GitHub repository
77
>
88
> From this release, `cmctl` is no longer be released with `cert-manager` itself,
9-
> and there will no further `quay.io/jetstack/cert-manager-ctl` OCI images.
9+
> and there will no further `quay.io/jetstack/cert-manager-ctl` OCI images.
1010
>
1111
> For the startupapicheck Job you should update references to point at
1212
> `quay.io/jetstack/cert-manager-startupapicheck`
@@ -15,8 +15,8 @@ description: 'cert-manager release notes: cert-manager 1.14'
1515
1616
> 📢 Change in how the Helm chart manages CRDs
1717
>
18-
> From this release, the Helm chart will no longer uninstall the CRDs when the
19-
> chart is uninstalled. If you want the CRDs to be removed on uninstall use
18+
> From this release, the Helm chart will no longer uninstall the CRDs when the
19+
> chart is uninstalled. If you want the CRDs to be removed on uninstall use
2020
> `crds.keep=false` when installing the Helm chart.
2121
2222
cert-manager 1.15 promotes several features to beta, including GatewayAPI support (`ExperimentalGatewayAPISupport`), the ability to provide a subject in the Certificate that will be used literally in the CertificateSigningRequest (`LiteralCertificateSubject`) and the outputting of additional certificate formats (`AdditionalCertificateOutputFormats`).
@@ -33,6 +33,18 @@ Thanks also to the CNCF, which provides resources and support, and to the AWS op
3333

3434
In addition, massive thanks to Venafi for contributing developer time and resources towards the continued maintenance of cert-manager projects.
3535

36+
37+
## `v1.15.2`
38+
39+
### Bug or Regression
40+
41+
- BUGFIX `route53`: explicitly set the `aws-global` STS region which is now required by the `github.com/aws/aws-sdk-go-v2` library. ([#7189](https://github.com/cert-manager/cert-manager/pull/7189), [`@cert-manager-bot`](https://github.com/cert-manager-bot))
42+
- Bump `grpc-go` to fix `GHSA-xr7q-jx4m-x55m` ([#7167](https://github.com/cert-manager/cert-manager/pull/7167), [`@SgtCoDFish`](https://github.com/SgtCoDFish))
43+
- Fix Azure DNS causing panics whenever authentication error happens ([#7188](https://github.com/cert-manager/cert-manager/pull/7188), [`@cert-manager-bot`](https://github.com/cert-manager-bot))
44+
- Fix incorrect value and indentation of `endpointAdditionalProperties` in the `PodMonitor` template of the Helm chart ([#7191](https://github.com/cert-manager/cert-manager/pull/7191), [`@inteon`](https://github.com/inteon))
45+
- Fixes ACME HTTP01 challenge behavior when using Gateway API to prevent unbounded creation of `HTTPRoute` resources ([#7186](https://github.com/cert-manager/cert-manager/pull/7186), [`@cert-manager-bot`](https://github.com/cert-manager-bot))
46+
- Upgrade `golang` from `1.22.3` to `1.22.5` ([#7165](https://github.com/cert-manager/cert-manager/pull/7165), [`@github-actions`](https://github.com/github-actions))
47+
3648
## `v1.15.1`
3749

3850
### Bug or Regression
@@ -104,4 +116,4 @@ In addition, massive thanks to Venafi for contributing developer time and resour
104116
- Remove deprecated `pkg/util/pki/ParseSubjectStringToRawDERBytes` function. ([#6994](https://github.com/cert-manager/cert-manager/pull/6994), [@inteon](https://github.com/inteon))
105117
- Upgrade Kind to `v0.23.0` and update supported node image digests ([#7020](https://github.com/cert-manager/cert-manager/pull/7020), @github-actions[bot])
106118
- If the `--controllers` flag only specifies disabled controllers, the default controllers are now enabled implicitly. ([#7054](https://github.com/cert-manager/cert-manager/pull/7054), [@inteon](https://github.com/inteon))
107-
- Upgrade to Go 1.22.3, fixing `GO-2024-2824`. ([#6996](https://github.com/cert-manager/cert-manager/pull/6996), @github-actions[bot])
119+
- Upgrade to Go 1.22.3, fixing `GO-2024-2824`. ([#6996](https://github.com/cert-manager/cert-manager/pull/6996), @github-actions[bot])

content/docs/trust/trust-manager/installation.md

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: 'Installation guide for trust-manager'
55

66
## Installation Steps
77

8-
### 1. Install trust-manager
8+
### 1. Update Helm Repository
99

1010
Helm is the easiest way to install trust-manager and comes with a publicly trusted certificate bundle package
1111
(for the`useDefaultCAs` source) derived from Debian containers.
@@ -14,9 +14,14 @@ Helm is the easiest way to install trust-manager and comes with a publicly trust
1414
helm repo add jetstack https://charts.jetstack.io --force-update
1515
```
1616

17-
When installed via Helm, trust-manager has a dependency on cert-manager for provisioning an application certificate,
18-
and as such cert-manager must also be installed into the cert-manager namespace.
19-
If you have not already installed cert-manager, you can install it using the following command:
17+
### 2. Install cert-manager (optional)
18+
19+
When installed via Helm, trust-manager has a dependency on cert-manager for provisioning an application certificate
20+
unless you explicitly opt to use a Helm-generated certificate instead.
21+
22+
In production, we recommend installing cert-manager first and having trust-manager depend on it.
23+
24+
If you haven't already installed cert-manager, you can install it using the following command:
2025

2126
```bash
2227
# Run this command only if you haven't installed cert-manager already
@@ -27,13 +32,24 @@ helm install cert-manager jetstack/cert-manager \
2732
--set crds.enabled=true
2833
```
2934

35+
If you're running cert-manager without the default approver, see [approver-policy Integration](#approver-policy-integration)
36+
for details on how to avoid a stuck installation.
37+
38+
If you don't want to rely on cert-manager, you can install using a Helm-generated cert; see [Installing trust-manager without cert-manager](./installation.md#install-without-cert-manager).
39+
40+
### 3. Install trust-manager
41+
42+
trust-manager is simple to install and is contained in a single Helm chart:
43+
3044
```bash
3145
helm upgrade trust-manager jetstack/trust-manager \
3246
--install \
3347
--namespace cert-manager \
3448
--wait
3549
```
3650

51+
Various options are available, and some are documented below.
52+
3753
## Installation Options
3854

3955
#### Enable Secret targets
@@ -47,6 +63,8 @@ for details and trade-offs.
4763

4864
#### approver-policy Integration
4965

66+
<a name="approver-policy-integration"></a>
67+
5068
If you're running [approver-policy](../../policy/approval/approver-policy/README.md) then cert-manager's default approver will be disabled which will mean that
5169
trust-manager's webhook certificate will - by default - block when you install the Helm chart until it's manually approved.
5270

@@ -79,6 +97,27 @@ namespace to whichever is most appropriate for your environment.
7997
An ideal deployment would be a fresh namespace dedicated entirely to trust-manager, to minimize the number of actors in your
8098
cluster that can modify your trust sources.
8199

100+
#### Installing trust-manager without cert-manager
101+
102+
<a name="install-without-cert-manager"></a>
103+
104+
As an alternative to generating a webhook certificate using cert-manager, it's possible to opt to use Helm to generate the webhook certificate instead.
105+
106+
This isn't recommended for production, since Helm-generated certificates might be complicated to monitor or to reason about. The certificate is also rotated
107+
every time trust-manager is upgraded, which necessitates pod restarts and may complicate the upgrade process.
108+
109+
Installing without cert-manager can be great for smaller, more resource-constrained deployments such as experiments, demos or home labs.
110+
111+
Using a Helm-generated cert requires a single flag:
112+
113+
```bash
114+
helm upgrade trust-manager jetstack/trust-manager \
115+
--install \
116+
--namespace cert-manager \
117+
--wait \
118+
--set app.webhook.tls.helmCert.enabled=true
119+
```
120+
82121
## Uninstalling
83122

84123
To uninstall trust-manager installed via Helm, run:

content/docs/usage/istio-csr/installation.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,20 @@ This guide will run through installing and using istio-csr from scratch. We'll u
99

1010
Note that if you're following the Platform Setup guide for OpenShift, do not run the `istioctl install` command listed in that guide; we'll run our own command later.
1111

12+
### 0. Background
13+
14+
istio-csr uses cert-manager to issue Istio certificates, and needs to be able to reference an issuer resource to do this.
15+
16+
You can choose to configure an issuer when installing with the Helm chart and / or to configure a ConfigMap to watch which can then be used to configure an issuer at runtime.
17+
18+
Configuring a ConfigMap for the issuer details is called "runtime configuration", and it's required if no issuer is specified in the Helm chart.
19+
20+
If you configure an issuer in the chart, you'll be able to start issuing as soon as the istio-csr pods come online but you'll need to have already installed cert-manager and created the issuer.
21+
22+
If you don't set an issuer in the chart, istio-csr will not become ready until an issuer is specified via runtime configuration, but you'll be able to install cert-manager and istio-csr concurrently.
23+
24+
Note that the chart contains a default issuer name and so using runtime configuration requires an explicit opt-in. The guide below assumes you'll install istio-csr after an issuer is configured without runtime configuration; there are notes for runtime configuration at the bottom.
25+
1226
### 1. Initial Setup
1327

1428
You'll need the following tools installed on your machine:
@@ -278,6 +292,97 @@ Assuming your running inside kind, you can simply remove the cluster:
278292
kind delete cluster
279293
```
280294

295+
## Installation with Runtime Configuration
296+
297+
There are two options for installing with runtime configuration:
298+
299+
1. Install after cert-manager, still providing an explicit `issuerRef` in the Helm chart
300+
2. Blank out the `issuerRef` in the Helm chart and use pure runtime configuration
301+
302+
Both options will require a ConfigMap to be created to point at an issuer. This ConfigMap can be created
303+
before or after installation, and must be created in the same namespace as the istio-csr pods.
304+
305+
### Creating the ConfigMap
306+
307+
Three keys are required, specifying the issuer name, kind and group. Any method of creating a ConfigMap will work. For example:
308+
309+
```bash
310+
kubectl create configmap -n cert-manager istio-issuer \
311+
--from-literal=issuer-name=my-issuer-name \
312+
--from-literal=issuer-kind=ClusterIssuer \
313+
--from-literal=issuer-group=cert-manager.io
314+
```
315+
316+
### Option 1: Installation after cert-manager
317+
318+
If cert-manager is already installed, you can use the same `helm upgrade` command as above but also specifying the name of the runtime configuration ConfigMap:
319+
320+
```bash
321+
helm upgrade cert-manager-istio-csr jetstack/cert-manager-istio-csr \
322+
--install \
323+
--namespace cert-manager \
324+
--wait \
325+
...
326+
--set "app.runtimeIssuanceConfigMap=istio-issuer"
327+
```
328+
329+
In this scenario, the issuer defined in `app.certmanager.issuer` will be used at startup and to create the `istiod` certificate.
330+
331+
When istio-csr detects the runtime ConfigMap, it'll use the issuer configured there. If the ConfigMap is updated, istio-csr will respect the update dynamically.
332+
333+
If the runtime ConfigMap is deleted, istio-csr will revert to using the value from `app.certmanager.issuer`.
334+
335+
### Option 2: Pure Runtime Configuration
336+
337+
Pure runtime configuration is only practical with istio-csr `v0.11.0` or newer.
338+
339+
Pure runtime configuration requires more values to be set:
340+
341+
1. The `app.certmanager.issuer` values must be blanked out (as they're set to a default value in the chart)
342+
2. The `istiod` certificate must not be provisioned alongside the istio-csr resources. By passing `app.tls.istiodCertificateEnable=dynamic`, the istiod will be dynamically generated when runtime configuration is available.
343+
4. `app.runtimeIssuanceConfigMap` must be set.
344+
345+
An example `values.yaml` file for pure runtime configuration is as follows:
346+
347+
```yaml
348+
app:
349+
runtimeIssuanceConfigMap: istio-issuer
350+
certmanager:
351+
issuer:
352+
name: "" # explicitly blanked out
353+
kind: "" # explicitly blanked out
354+
group: "" # explicitly blanked out
355+
tls:
356+
rootCAFile: "/var/run/secrets/istio-csr/ca.pem"
357+
istiodCertificateEnable: dynamic
358+
volumeMounts:
359+
- name: root-ca
360+
mountPath: /var/run/secrets/istio-csr
361+
volumes:
362+
- name: root-ca
363+
secret:
364+
secretName: istio-root-ca
365+
```
366+
367+
This file could then be used with the following command:
368+
369+
```bash
370+
helm upgrade cert-manager-istio-csr jetstack/cert-manager-istio-csr \
371+
--install \
372+
--namespace cert-manager \
373+
--wait \
374+
--values values.yaml
375+
```
376+
377+
#### Completing a Pure Runtime Installation
378+
379+
While pure runtime configuration allows istio-csr to be installed at the same time as cert-manager, it's important to note that
380+
istio-csr pods will not become ready until an issuer is available. This means that Helm installations may hang until an issuer is
381+
configured since the istio-csr Deployment will not be ready.
382+
383+
To complete a Helm installation of istio-csr with pure runtime installation, you must create the issuer and ConfigMap pointing to that
384+
issuer. Once detected, istio-csr will complete setup and issue any outstanding certificates.
385+
281386
## Usage
282387

283388
> 📖 Read the [istio-csr docs](./README.md).

content/docs/variables.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"cert_manager_latest_version": "v1.16.0-alpha.0"
2+
"cert_manager_latest_version": "v1.16.0-alpha.0"
33
}

public/_redirects

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ https://trust-manager.io/* https://cert-manager.io/:splat 301!
66
https://trust-manager.dev/* https://cert-manager.io/:splat 301!
77

88
# Redirect all next-docs on the main site to the release-next preview
9-
https://cert-manager.io/next-docs/* https://release-next--cert-manager-website.netlify.app/docs/:splat 301!
9+
https://cert-manager.io/next-docs/* https://release-next--cert-manager.netlify.app/docs/:splat 301!
1010

1111
# Various older renamed pages
1212
/docs/configuration/externalloadbalancer/ /docs/configuration/acme/http01/externalloadbalancer/ 301!

0 commit comments

Comments
 (0)