Go to file
Maxim Ivanov c44a7552ea Check challenge before presenting it
With async challenge Check, it is often happens,
that solver.Check() fails on first run after solver.Present()

Cert-manager then tries again, but starts with solver.Present(),
which not being idempotent right now fails on certain DNS providers.

This change swaps order of solver.Check() and solver.Present().
Check is not returning error if propagation not happened, it then
allows Present() to run.

In the current form, Present() will be spamming with errors,
but this doesn't stop Check from happening on every attempt,
so eventually Challenge can be verified and accepted. In the future,
Present() should be made idempotent.
2018-04-11 11:27:23 +01:00
.github
cmd Update event recorder agent name 2018-04-09 21:43:37 +01:00
contrib/charts Merge branch 'master' into acmev2 2018-04-09 16:52:34 +01:00
docs regenerate the static manifests to contain the change too 2018-04-09 10:35:28 +01:00
hack Set 5s timeout on helm version command 2018-04-09 23:11:44 +01:00
pkg Check challenge before presenting it 2018-04-11 11:27:23 +01:00
test Use random subdomain for DNS01 provider tests 2018-04-10 00:50:58 +01:00
third_party/crypto/acme Update acmev2 library with latest changes to golang.org/x/crypto 2018-03-23 18:50:46 +00:00
vendor Update k8s dependencies to v1.10.0-rc.1 2018-03-23 18:30:16 +00:00
.gitignore Update .gitignore 2018-01-18 22:24:19 +00:00
.gitlab-ci.yml Fix .gitlab-ci.yml build 2018-03-08 13:29:21 +00:00
CODE_OF_CONDUCT.md
Gopkg.lock Update k8s dependencies to v1.10.0-rc.1 2018-03-23 18:30:16 +00:00
Gopkg.toml Update k8s dependencies to v1.10.0-rc.1 2018-03-23 18:30:16 +00:00
labels.yaml Add kind/question label 2018-04-09 10:50:57 +01:00
LICENSE
Makefile Let bash expand api-key variables 2018-04-10 00:45:30 +01:00
OWNERS Add myself to reviewers+approvers 2018-04-06 11:59:13 +01:00
README.md Add links to new documentation content 2018-01-18 17:44:05 +00:00

cert-manager

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.

cert-manager high level overview diagram

Current status

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.

Quickstart

Prebuilt images for cert-manager are made available on Dockerhub.

Pre-requisites

  • Kubernetes cluster with CustomResourceDefinition or ThirdPartyResource support

Deploying cert-manager

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.

Creating your first Issuer and Certificate

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:

Further documentation

For further documentation, please check the /docs directory in this repository.

Troubleshooting

If you encounter any issues whilst using cert-manager, and your issue is not documented, please file an issue.

Contributing

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.

Changelog

The list of releases is the best place to look for information on changes between releases.