Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions charts/cert-manager/cert-manager/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ annotations:
fingerprint: 1020CF3C033D4F35BAE1C19E1226061C665DF13E
url: https://cert-manager.io/public-keys/cert-manager-keyring-2021-09-20-1020CF3C033D4F35BAE1C19E1226061C665DF13E.gpg
apiVersion: v2
appVersion: v1.16.4
appVersion: v1.19.1
description: A Helm chart for cert-manager
home: https://cert-manager.io
icon: https://raw.githubusercontent.com/cert-manager/community/4d35a69437d21b76322157e6284be4cd64e6d2b7/logo/logo-small.png
Expand All @@ -23,8 +23,8 @@ maintainers:
name: cert-manager
sources:
- https://github.com/cert-manager/cert-manager
version: 1.16.4
version: 1.19.1
dependencies:
- name: cert-manager
version: "v1.16.4"
version: "v1.19.1"
repository: "https://charts.jetstack.io"
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ annotations:
fingerprint: 1020CF3C033D4F35BAE1C19E1226061C665DF13E
url: https://cert-manager.io/public-keys/cert-manager-keyring-2021-09-20-1020CF3C033D4F35BAE1C19E1226061C665DF13E.gpg
apiVersion: v2
appVersion: v1.16.4
appVersion: v1.19.1
description: A Helm chart for cert-manager
home: https://cert-manager.io
icon: https://raw.githubusercontent.com/cert-manager/community/4d35a69437d21b76322157e6284be4cd64e6d2b7/logo/logo-small.png
Expand All @@ -23,4 +23,4 @@ maintainers:
name: cert-manager
sources:
- https://github.com/cert-manager/cert-manager
version: v1.16.4
version: v1.19.1
138 changes: 94 additions & 44 deletions charts/cert-manager/cert-manager/charts/cert-manager/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# cert-manager

cert-manager is a Kubernetes addon to automate the management and issuance of
TLS certificates from various issuing sources.
cert-manager creates TLS certificates for workloads in your Kubernetes or OpenShift cluster and renews the certificates before they expire.

It will ensure certificates are valid and up to date periodically, and attempt
to renew certificates at an appropriate time before expiry.
cert-manager can obtain certificates from a [variety of certificate authorities](https://cert-manager.io/docs/configuration/issuers/), including:
[Let's Encrypt](https://cert-manager.io/docs/configuration/acme/), [HashiCorp Vault](https://cert-manager.io/docs/configuration/vault/),
[Venafi](https://cert-manager.io/docs/configuration/venafi/) and [private PKI](https://cert-manager.io/docs/configuration/ca/).

## Prerequisites

Expand All @@ -13,23 +13,21 @@ to renew certificates at an appropriate time before expiry.
## Installing the Chart

Full installation instructions, including details on how to configure extra
functionality in cert-manager can be found in the [installation docs](https://cert-manager.io/docs/installation/kubernetes/).

Before installing the chart, you must first install the cert-manager CustomResourceDefinition resources.
This is performed in a separate step to allow you to easily uninstall and reinstall cert-manager without deleting your installed custom resources.

```bash
$ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.4/cert-manager.crds.yaml
```
functionality in cert-manager can be found in the [installation docs](https://cert-manager.io/docs/installation/helm/).

To install the chart with the release name `cert-manager`:

```console
## Add the Jetstack Helm repository
$ helm repo add jetstack https://charts.jetstack.io --force-update

## Install the cert-manager helm chart
$ helm install cert-manager --namespace cert-manager --version v1.16.4 jetstack/cert-manager
# Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io --force-update

# Install the cert-manager helm chart
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.19.1 \
--set crds.enabled=true
```

In order to begin issuing certificates, you will need to set up a ClusterIssuer
Expand All @@ -56,17 +54,25 @@ are documented in our full [upgrading guide](https://cert-manager.io/docs/instal
To uninstall/delete the `cert-manager` deployment:

```console
$ helm delete cert-manager --namespace cert-manager
helm delete cert-manager --namespace cert-manager
```

The command removes all the Kubernetes components associated with the chart and deletes the release.

If you want to completely uninstall cert-manager from your cluster, you will also need to
delete the previously installed CustomResourceDefinition resources:
delete the previously installed CustomResourceDefinition resources.

```console
$ kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.4/cert-manager.crds.yaml
```
> ☢️ This will remove all `Issuer`,`ClusterIssuer`,`Certificate`,`CertificateRequest`,`Order` and `Challenge` resources from the cluster:
>
> ```console
> kubectl delete crd \
> issuers.cert-manager.io \
> clusterissuers.cert-manager.io \
> certificates.cert-manager.io \
> certificaterequests.cert-manager.io \
> orders.acme.cert-manager.io \
> challenges.acme.cert-manager.io
> ```

## Configuration
<!-- AUTO-GENERATED -->
Expand All @@ -87,6 +93,18 @@ For example:
imagePullSecrets:
- name: "image-pull-secret"
```
#### **global.nodeSelector** ~ `object`
> Default value:
> ```yaml
> {}
> ```

Global node selector

The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with matching labels. For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).

If a component-specific nodeSelector is also set, it will take precedence.

#### **global.commonLabels** ~ `object`
> Default value:
> ```yaml
Expand All @@ -108,6 +126,18 @@ The number of old ReplicaSets to retain to allow rollback (if not set, the defau
> ```

The optional priority class to be used for the cert-manager pods.
#### **global.hostUsers** ~ `bool`

Set all pods to run in a user namespace without host access. Experimental: may be removed once the Kubernetes User Namespaces feature is GA.

Requirements:
- Kubernetes ≥ 1.33, or
- Kubernetes 1.27–1.32 with UserNamespacesSupport feature gate enabled.

Set to false to run pods in a user namespace without host access.

See [limitations](https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/#limitations) for details.

#### **global.rbac.create** ~ `bool`
> Default value:
> ```yaml
Expand Down Expand Up @@ -230,13 +260,13 @@ This prevents downtime during voluntary disruptions such as during a Node upgrad
Pod is currently running.
#### **podDisruptionBudget.minAvailable** ~ `unknown`

This configures the minimum available pods for disruptions. It can either be set to an integer (e.g. 1) or a percentage value (e.g. 25%).
This configures the minimum available pods for disruptions. It can either be set to an integer (e.g., 1) or a percentage value (e.g., 25%).
It cannot be used if `maxUnavailable` is set.


#### **podDisruptionBudget.maxUnavailable** ~ `unknown`

This configures the maximum unavailable pods for disruptions. It can either be set to an integer (e.g. 1) or a percentage value (e.g. 25%). it cannot be used if `minAvailable` is set.
This configures the maximum unavailable pods for disruptions. It can either be set to an integer (e.g., 1) or a percentage value (e.g., 25%). it cannot be used if `minAvailable` is set.


#### **featureGates** ~ `string`
Expand Down Expand Up @@ -300,7 +330,7 @@ Override the "cert-manager.fullname" value. This value is used as part of most o

#### **nameOverride** ~ `string`

Override the "cert-manager.name" value, which is used to annotate some of the resources that are created by this Chart (using "app.kubernetes.io/name"). NOTE: There are some inconsistencies in the Helm chart when it comes to these annotations (some resources use eg. "cainjector.name" which resolves to the value "cainjector").
Override the "cert-manager.name" value, which is used to annotate some of the resources that are created by this Chart (using "app.kubernetes.io/name"). NOTE: There are some inconsistencies in the Helm chart when it comes to these annotations (some resources use, e.g., "cainjector.name" which resolves to the value "cainjector").

#### **serviceAccount.create** ~ `bool`
> Default value:
Expand All @@ -316,7 +346,13 @@ If not set and create is true, a name is generated using the fullname template.

#### **serviceAccount.annotations** ~ `object`

Optional additional annotations to add to the controller's Service Account.
Optional additional annotations to add to the controller's Service Account. Templates are allowed for both keys and values.
Example using templating:

```yaml
annotations:
"{{ .Chart.Name }}-helm-chart/version": "{{ .Chart.Version }}"
```

#### **serviceAccount.labels** ~ `object`

Expand Down Expand Up @@ -364,17 +400,26 @@ config:
kubernetesAPIQPS: 9000
kubernetesAPIBurst: 9000
numberOfConcurrentWorkers: 200
enableGatewayAPI: true
# Feature gates as of v1.18.1. Listed with their default values.
# See https://cert-manager.io/docs/cli/controller/
featureGates:
AdditionalCertificateOutputFormats: true
DisallowInsecureCSRUsageDefinition: true
ExperimentalCertificateSigningRequestControllers: true
ExperimentalGatewayAPISupport: true
LiteralCertificateSubject: true
SecretsFilteredCaching: true
ServerSideApply: true
StableCertificateRequestName: true
UseCertificateRequestBasicConstraints: true
ValidateCAA: true
AdditionalCertificateOutputFormats: true # GA - default=true
AllAlpha: false # ALPHA - default=false
AllBeta: false # BETA - default=false
ExperimentalCertificateSigningRequestControllers: false # ALPHA - default=false
ExperimentalGatewayAPISupport: true # BETA - default=true
LiteralCertificateSubject: true # BETA - default=true
NameConstraints: true # BETA - default=true
OtherNames: false # ALPHA - default=false
SecretsFilteredCaching: true # BETA - default=true
ServerSideApply: false # ALPHA - default=false
StableCertificateRequestName: true # BETA - default=true
UseCertificateRequestBasicConstraints: false # ALPHA - default=false
UseDomainQualifiedFinalizer: true # GA - default=true
ValidateCAA: false # ALPHA - default=false
DefaultPrivateKeyRotationPolicyAlways: true # BETA - default=true
ACMEHTTP01IngressPathTypeExact: true # BETA - default=true
# Configure the metrics server for TLS
# See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
metricsTLSConfig:
Expand Down Expand Up @@ -412,7 +457,7 @@ Option to disable cert-manager's build-in auto-approver. The auto-approver appro
> - clusterissuers.cert-manager.io/*
> ```

List of signer names that cert-manager will approve by default. CertificateRequests referencing these signer names will be auto-approved by cert-manager. Defaults to just approving the cert-manager.io Issuer and ClusterIssuer issuers. When set to an empty array, ALL issuers will be auto-approved by cert-manager. To disable the auto-approval, because eg. you are using approver-policy, you can enable 'disableAutoApproval'.
List of signer names that cert-manager will approve by default. CertificateRequests referencing these signer names will be auto-approved by cert-manager. Defaults to just approving the cert-manager.io Issuer and ClusterIssuer issuers. When set to an empty array, ALL issuers will be auto-approved by cert-manager. To disable the auto-approval, because, e.g., you are using approver-policy, you can enable 'disableAutoApproval'.
ref: https://cert-manager.io/docs/concepts/certificaterequest/#approval

#### **extraArgs** ~ `array`
Expand Down Expand Up @@ -671,7 +716,7 @@ enableServiceLinks indicates whether information about services should be inject

Enable Prometheus monitoring for the cert-manager controller and webhook. If you use the Prometheus Operator, set prometheus.podmonitor.enabled or prometheus.servicemonitor.enabled, to create a PodMonitor or a
ServiceMonitor resource.
Otherwise, 'prometheus.io' annotations are added to the cert-manager and cert-manager-webhook Deployments. Note that you can not enable both PodMonitor and ServiceMonitor as they are mutually exclusive. Enabling both will result in an error.
Otherwise, 'prometheus.io' annotations are added to the cert-manager and cert-manager-webhook Deployments. Note that you cannot enable both PodMonitor and ServiceMonitor as they are mutually exclusive. Enabling both will result in an error.
#### **prometheus.servicemonitor.enabled** ~ `bool`
> Default value:
> ```yaml
Expand All @@ -690,13 +735,14 @@ The namespace that the service monitor should live in, defaults to the cert-mana
> ```

Specifies the `prometheus` label on the created ServiceMonitor. This is used when different Prometheus instances have label selectors matching different ServiceMonitors.
#### **prometheus.servicemonitor.targetPort** ~ `number`
#### **prometheus.servicemonitor.targetPort** ~ `string,integer`
> Default value:
> ```yaml
> 9402
> http-metrics
> ```

The target port to set on the ServiceMonitor. This must match the port that the cert-manager controller is listening on for metrics.

#### **prometheus.servicemonitor.path** ~ `string`
> Default value:
> ```yaml
Expand Down Expand Up @@ -956,13 +1002,13 @@ This prevents downtime during voluntary disruptions such as during a Node upgrad
Pod is currently running.
#### **webhook.podDisruptionBudget.minAvailable** ~ `unknown`

This property configures the minimum available pods for disruptions. Can either be set to an integer (e.g. 1) or a percentage value (e.g. 25%).
This property configures the minimum available pods for disruptions. Can either be set to an integer (e.g., 1) or a percentage value (e.g., 25%).
It cannot be used if `maxUnavailable` is set.


#### **webhook.podDisruptionBudget.maxUnavailable** ~ `unknown`

This property configures the maximum unavailable pods for disruptions. Can either be set to an integer (e.g. 1) or a percentage value (e.g. 25%).
This property configures the maximum unavailable pods for disruptions. Can either be set to an integer (e.g., 1) or a percentage value (e.g., 25%).
It cannot be used if `minAvailable` is set.


Expand Down Expand Up @@ -1280,6 +1326,8 @@ Create network policies for the webhooks.
> - from:
> - ipBlock:
> cidr: 0.0.0.0/0
> - ipBlock:
> cidr: ::/0
> ```

Ingress rule for the webhook network policy. By default, it allows all inbound traffic.
Expand All @@ -1301,6 +1349,8 @@ Ingress rule for the webhook network policy. By default, it allows all inbound t
> to:
> - ipBlock:
> cidr: 0.0.0.0/0
> - ipBlock:
> cidr: ::/0
> ```

Egress rule for the webhook network policy. By default, it allows all outbound traffic to ports 80 and 443, as well as DNS ports.
Expand Down Expand Up @@ -1429,14 +1479,14 @@ Pod is currently running.
#### **cainjector.podDisruptionBudget.minAvailable** ~ `unknown`

`minAvailable` configures the minimum available pods for disruptions. It can either be set to
an integer (e.g. 1) or a percentage value (e.g. 25%).
an integer (e.g., 1) or a percentage value (e.g., 25%).
Cannot be used if `maxUnavailable` is set.


#### **cainjector.podDisruptionBudget.maxUnavailable** ~ `unknown`

`maxUnavailable` configures the maximum unavailable pods for disruptions. It can either be set to
an integer (e.g. 1) or a percentage value (e.g. 25%).
an integer (e.g., 1) or a percentage value (e.g., 25%).
Cannot be used if `minAvailable` is set.


Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
{{- if .Values.installCRDs }}
⚠️ WARNING: `installCRDs` is deprecated, use `crds.enabled` instead.

{{- end }}
⚠️ WARNING: New default private key rotation policy for Certificate resources.
The default private key rotation policy for Certificate resources was
changed to `Always` in cert-manager >= v1.18.0.
Learn more in the [1.18 release notes](https://cert-manager.io/docs/releases/release-notes/release-notes-1.18).

cert-manager {{ .Chart.AppVersion }} has been deployed successfully!

In order to begin issuing certificates, you will need to set up a ClusterIssuer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,17 @@ See https://github.com/cert-manager/cert-manager/issues/6329 for a list of linke
{{- end }}
{{- end }}

{{/*
Labels for the CRD resources.
*/}}
{{- define "cert-manager.crd-labels" -}}
app: "{{ template "cert-manager.name" . }}"
app.kubernetes.io/name: "{{ template "cert-manager.name" . }}"
app.kubernetes.io/instance: "{{ .Release.Name }}"
app.kubernetes.io/component: "crds"
{{ include "labels" . }}
{{- end -}}

{{/*
Check that the user has not set both .installCRDs and .crds.enabled or
set .installCRDs and disabled .crds.keep.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,12 @@ spec:
prometheus.io/port: '9402'
{{- end }}
spec:
{{- if not .Values.cainjector.serviceAccount.create }}
{{- with .Values.global.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
serviceAccountName: {{ template "cainjector.serviceAccountName" . }}
{{- if hasKey .Values.cainjector "automountServiceAccountToken" }}
automountServiceAccountToken: {{ .Values.cainjector.automountServiceAccountToken }}
Expand All @@ -61,6 +67,9 @@ spec:
{{- with .Values.global.priorityClassName }}
priorityClassName: {{ . | quote }}
{{- end }}
{{- if (hasKey .Values.global "hostUsers") }}
hostUsers: {{ .Values.global.hostUsers }}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is trailing whitespace on this line. While many YAML parsers handle this gracefully, it's best practice to remove it to avoid potential issues and maintain clean code style.

      hostUsers: {{ .Values.global.hostUsers }}

{{- end }}
{{- with .Values.cainjector.securityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
Expand Down Expand Up @@ -130,9 +139,11 @@ spec:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- end }}
{{- with .Values.cainjector.nodeSelector }}
{{- with (coalesce .Values.cainjector.nodeSelector .Values.global.nodeSelector) }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- range $key, $value := . }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- end }}
{{- with .Values.cainjector.affinity }}
affinity:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{- if .Values.cainjector.enabled }}
{{- if and .Values.prometheus.enabled (not .Values.prometheus.podmonitor.enabled) }}
apiVersion: v1
kind: Service
Expand Down Expand Up @@ -28,3 +29,4 @@ spec:
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: "cainjector"
{{- end }}
{{- end }}
Loading