cert-manager is a Kubernetes add-on to automate the management and issuance of TLS certificates from various issuing sources.
It will ensure certificates are valid and up to date periodically, and attempt to renew certificates at an appropriate time before expiry.
It is loosely based upon the work of kube-lego and has borrowed some wisdom from other similar projects e.g. kube-cert-manager.
This project is not yet ready to be a component in a critical production stack, however it is at a point where it offers comparable features to other projects in the space. If you have a non-critical piece of infrastructure, or are feeling brave, please do try cert-manager and report your experience here in the issue section.
NOTE: currently we provide no guarantees on our API stability. This means
there may be breaking changes that will require changes to all
Issuer
/Certificate
resources you have already created. We aim to provide a
stable API after a 1.0 release.
Prebuilt images for cert-manager are made available on Dockerhub.
- Kubernetes cluster with
CustomResourceDefinition
orThirdPartyResource
support
The easiest way to deploy cert-manager into your cluster is to use the Helm chart. For information on how to do this see the Deploying cert-manager using Helm user guide.
An Issuer
in cert-manager describes a source of X.509 certificates. A
Certificate
in cert-manager defines a desired X.509 certificate. Below is a
list of user guides that can be used to get started with both resources:
- Creating a simple CA based Issuer
- Creating cluster wide Issuers
- Issuing an ACME certificate using HTTP validation
- Issuing an ACME certificate using DNS validation
For further documentation, please check the /docs directory in this repository.
If you encounter any issues whilst using cert-manager, and your issue is not documented, please file an issue.
We welcome pull requests with open arms! There's a lot of work to do here, and we're especially concerned with ensuring the longevity and reliability of the project.
Please take a look at our issue tracker if you are unsure where to start with getting involved!
We also use the #kube-lego channel on kubernetes.slack.com for chat relating to the project.
Developer documentation should be available soon at docs/devel.
The list of releases is the best place to look for information on changes between releases.