|
| 1 | +# cert-manager |
| 2 | + |
| 3 | +cert-manager is a Kubernetes addon to automate the management and issuance of |
| 4 | +TLS certificates from various issuing sources. |
| 5 | + |
| 6 | +It will ensure certificates are valid and up to date periodically, and attempt |
| 7 | +to renew certificates at an appropriate time before expiry. |
| 8 | + |
| 9 | +## Prerequisites |
| 10 | + |
| 11 | +- Kubernetes 1.7+ |
| 12 | + |
| 13 | +## Installing the Chart |
| 14 | + |
| 15 | +Full installation instructions, including details on how to configure extra |
| 16 | +functionality in cert-manager can be found in the [getting started docs](https://docs.cert-manager.io/en/latest/getting-started/). |
| 17 | + |
| 18 | +To install the chart with the release name `my-release`: |
| 19 | + |
| 20 | +```console |
| 21 | +## IMPORTANT: you MUST install the cert-manager CRDs **before** installing the |
| 22 | +## cert-manager Helm chart |
| 23 | +$ kubectl apply \ |
| 24 | + -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.8/deploy/manifests/00-crds.yaml |
| 25 | + |
| 26 | +## If you are installing on openshift : |
| 27 | +$ oc create \ |
| 28 | + -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.7/deploy/manifests/00-crds.yaml |
| 29 | + |
| 30 | +## IMPORTANT: if the cert-manager namespace **already exists**, you MUST ensure |
| 31 | +## it has an additional label on it in order for the deployment to succeed |
| 32 | +$ kubectl label namespace cert-manager certmanager.k8s.io/disable-validation="true" |
| 33 | + |
| 34 | +## For openshift: |
| 35 | +$ oc label namespace cert-manager certmanager.k8s.io/disable-validation=true |
| 36 | + |
| 37 | +## Add the Jetstack Helm repository |
| 38 | +$ helm repo add jetstack https://charts.jetstack.io |
| 39 | + |
| 40 | + |
| 41 | +## Install the cert-manager helm chart |
| 42 | +$ helm install --name my-release --namespace cert-manager jetstack/cert-manager |
| 43 | +``` |
| 44 | + |
| 45 | +In order to begin issuing certificates, you will need to set up a ClusterIssuer |
| 46 | +or Issuer resource (for example, by creating a 'letsencrypt-staging' issuer). |
| 47 | + |
| 48 | +More information on the different types of issuers and how to configure them |
| 49 | +can be found in our documentation: |
| 50 | + |
| 51 | +https://docs.cert-manager.io/en/latest/tasks/issuers/index.html |
| 52 | + |
| 53 | +For information on how to configure cert-manager to automatically provision |
| 54 | +Certificates for Ingress resources, take a look at the `ingress-shim` |
| 55 | +documentation: |
| 56 | + |
| 57 | +https://docs.cert-manager.io/en/latest/tasks/issuing-certificates/ingress-shim.html |
| 58 | + |
| 59 | +> **Tip**: List all releases using `helm list` |
| 60 | +
|
| 61 | +## Upgrading the Chart |
| 62 | + |
| 63 | +Special considerations may be required when upgrading the Helm chart, and these |
| 64 | +are documented in our full [upgrading guide](https://docs.cert-manager.io/en/latest/tasks/upgrading/index.html). |
| 65 | +Please check here before perform upgrades! |
| 66 | + |
| 67 | +## Uninstalling the Chart |
| 68 | + |
| 69 | +To uninstall/delete the `my-release` deployment: |
| 70 | + |
| 71 | +```console |
| 72 | +$ helm delete my-release |
| 73 | +``` |
| 74 | + |
| 75 | +The command removes all the Kubernetes components associated with the chart and deletes the release. |
| 76 | + |
| 77 | +## Configuration |
| 78 | + |
| 79 | +The following table lists the configurable parameters of the cert-manager chart and their default values. |
| 80 | + |
| 81 | +| Parameter | Description | Default | |
| 82 | +| --------- | ----------- | ------- | |
| 83 | +| `global.imagePullSecrets` | Reference to one or more secrets to be used when pulling images | `[]` | |
| 84 | +| `global.rbac.create` | If `true`, create and use RBAC resources (includes sub-charts) | `true` | |
| 85 | +| `image.repository` | Image repository | `quay.io/jetstack/cert-manager-controller` | |
| 86 | +| `image.tag` | Image tag | `v0.8.1` | |
| 87 | +| `image.pullPolicy` | Image pull policy | `IfNotPresent` | |
| 88 | +| `replicaCount` | Number of cert-manager replicas | `1` | |
| 89 | +| `clusterResourceNamespace` | Override the namespace used to store DNS provider credentials etc. for ClusterIssuer resources | Same namespace as cert-manager pod |
| 90 | +| `leaderElection.Namespace` | Override the namespace used to store the ConfigMap for leader election | Same namespace as cert-manager pod |
| 91 | +| `extraArgs` | Optional flags for cert-manager | `[]` | |
| 92 | +| `extraEnv` | Optional environment variables for cert-manager | `[]` | |
| 93 | +| `serviceAccount.create` | If `true`, create a new service account | `true` | |
| 94 | +| `serviceAccount.name` | Service account to be used. If not set and `serviceAccount.create` is `true`, a name is generated using the fullname template | | |
| 95 | +| `resources` | CPU/memory resource requests/limits | | |
| 96 | +| `securityContext.enabled` | Enable security context | `false` | |
| 97 | +| `securityContext.fsGroup` | Group ID for the container | `1001` | |
| 98 | +| `securityContext.runAsUser` | User ID for the container | `1001` | |
| 99 | +| `nodeSelector` | Node labels for pod assignment | `{}` | |
| 100 | +| `affinity` | Node affinity for pod assignment | `{}` | |
| 101 | +| `tolerations` | Node tolerations for pod assignment | `[]` | |
| 102 | +| `ingressShim.defaultIssuerName` | Optional default issuer to use for ingress resources | | |
| 103 | +| `ingressShim.defaultIssuerKind` | Optional default issuer kind to use for ingress resources | | |
| 104 | +| `ingressShim.defaultACMEChallengeType` | Optional default challenge type to use for ingresses using ACME issuers | | |
| 105 | +| `ingressShim.defaultACMEDNS01ChallengeProvider` | Optional default DNS01 challenge provider to use for ingresses using ACME issuers with DNS01 | | |
| 106 | +| `podAnnotations` | Annotations to add to the cert-manager pod | `{}` | |
| 107 | +| `podDnsPolicy` | Optional cert-manager pod [DNS policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pods-dns-policy) | | |
| 108 | +| `podDnsConfig` | Optional cert-manager pod [DNS configurations](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pods-dns-config) | | |
| 109 | +| `podLabels` | Labels to add to the cert-manager pod | `{}` | |
| 110 | +| `priorityClassName`| Priority class name for cert-manager and webhook pods | `""` | |
| 111 | +| `http_proxy` | Value of the `HTTP_PROXY` environment variable in the cert-manager pod | | |
| 112 | +| `https_proxy` | Value of the `HTTPS_PROXY` environment variable in the cert-manager pod | | |
| 113 | +| `no_proxy` | Value of the `NO_PROXY` environment variable in the cert-manager pod | | |
| 114 | +| `webhook.enabled` | Toggles whether the validating webhook component should be installed | `true` | |
| 115 | +| `webhook.replicaCount` | Number of cert-manager webhook replicas | `1` | |
| 116 | +| `webhook.podAnnotations` | Annotations to add to the webhook pods | `{}` | |
| 117 | +| `webhook.extraArgs` | Optional flags for cert-manager webhook component | `[]` | |
| 118 | +| `webhook.resources` | CPU/memory resource requests/limits for the webhook pods | | |
| 119 | +| `webhook.image.repository` | Webhook image repository | `quay.io/jetstack/cert-manager-webhook` | |
| 120 | +| `webhook.image.tag` | Webhook image tag | `v0.8.1` | |
| 121 | +| `webhook.image.pullPolicy` | Webhook image pull policy | `IfNotPresent` | |
| 122 | +| `webhook.injectAPIServerCA` | if true, the apiserver's CABundle will be automatically injected into the ValidatingWebhookConfiguration resource | `true` | |
| 123 | +| `cainjector.enabled` | Toggles whether the cainjector component should be installed (required for the webhook component to work) | `true` | |
| 124 | +| `cainjector.replicaCount` | Number of cert-manager cainjector replicas | `1` | |
| 125 | +| `cainjector.podAnnotations` | Annotations to add to the cainjector pods | `{}` | |
| 126 | +| `cainjector.extraArgs` | Optional flags for cert-manager cainjector component | `[]` | |
| 127 | +| `cainjector.resources` | CPU/memory resource requests/limits for the cainjector pods | | |
| 128 | +| `cainjector.image.repository` | cainjector image repository | `quay.io/jetstack/cert-manager-cainjector` | |
| 129 | +| `cainjector.image.tag` | cainjector image tag | `v0.8.1` | |
| 130 | +| `cainjector.image.pullPolicy` | cainjector image pull policy | `IfNotPresent` | |
| 131 | + |
| 132 | +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. |
| 133 | + |
| 134 | +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, |
| 135 | + |
| 136 | +```console |
| 137 | +$ helm install --name my-release -f values.yaml . |
| 138 | +``` |
| 139 | +> **Tip**: You can use the default [values.yaml](values.yaml) |
| 140 | +
|
| 141 | +## Contributing |
| 142 | + |
| 143 | +This chart is maintained at [github.com/jetstack/cert-manager](https://github.com/jetstack/cert-manager/tree/master/deploy/charts/cert-manager). |
0 commit comments