Commit Graph

550 Commits

Author SHA1 Message Date
Euan Kemp
78b1b8d69d issuer/acme/dns: refactor provider construction
Previously, each provider's package-level 'New' function was being
called.

That made mocking it out for a different function that records data or
returns different output quite difficult.

This PR introduces an additional layer of abstraction in the form of
effectively a vtable struct for the dns providers. It's defaulted to the
same package-level constructors as before, but unit tests in the dns
package can easily override it.

A new test for the previously-introduced route53 trimming behavior is
also added.
2018-03-14 01:25:15 -07:00
Euan Kemp
8aefbb1470 Trim aws credentials for acme dns route53 provider
AWS credentials don't contain whitespace, and it's very easy to
accidentally include spaces or newlines at the end of secrets.
2018-03-14 01:09:25 -07:00
jetstack-ci-bot
cfa13a02df
Merge pull request #376 from jetstack/munnerz-patch-1
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Clarify ClusterIssuer resource namespace

**What this PR does / why we need it**:

Clarify ClusterIssuer resource namespace in the migrating from kube lego guide

**Release note**:
```release-note
NONE
```
2018-03-12 10:28:16 +00:00
jetstack-ci-bot
e8d0d21164
Merge pull request #382 from whereisaaron/patch-1
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Document common ingressShim.extraArgs use case in chart

**What this PR does / why we need it**:

Lots of new users don't realize:
(a) They need to create a Issuer/ClusterIssuer themselves
(b) They need to tell `ingress-shim` the name via `extra-args`
This PR adds a comment to the helm chart `values.yaml` to address these issues.

(Ideally the `helm` would create an ClusterIssuer for you by default, and set these options, if you specify and email address to use with LE.)

Release note:
```release-note
NONE
```
2018-03-12 10:28:06 +00:00
jetstack-ci-bot
ce9e5ede2b
Merge pull request #351 from jonboulle/master
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix various typos in spelling of Certificate
2018-03-12 10:14:09 +00:00
James Munnelly
af05ca81cb
Fix plural of ClusterIssuer 2018-03-12 09:54:13 +00:00
Aaron Roydhouse
f117e6e833
Merge branch 'master' into patch-1 2018-03-09 22:44:56 -05:00
Aaron Roydhouse
57f248ae94 Bump chart version and run ./hack/update-deploy-gen.sh again 2018-03-09 22:40:16 -05:00
Aaron Roydhouse
96c4f9e145 Run ./hack/update-deploy-gen.sh 2018-03-09 22:18:54 -05:00
jetstack-ci-bot
3a0d72c7a2
Merge pull request #381 from euank/minikube-docs
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

 docs/devel: add 'deploy to minikube' docs 

**What this PR does / why we need it**:

I felt that the steps to deploy/run/test cert-manager in minikube were non-trivial enough that it was worth documenting.

Let me know if this should live somewhere else in the repo or if you have suggestions for how to better document this.

```release-note
NONE
```
2018-03-08 16:57:37 +00:00
jetstack-ci-bot
5eefe871a8
Merge pull request #350 from kiall/chart-scheduling
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Helm Chart: Add support for affinity and tolerations

Adds support for setting the node affinity and tolerations scheduling options

```release-note
Add support for node affinity and tolerations in Helm chart
```
2018-03-08 16:40:09 +00:00
jetstack-ci-bot
fff6596bc9
Merge pull request #385 from jetstack/munnerz-patch-3
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix .gitlab-ci.yml build

Since #372 merged, builds of master (which lead to releases) have been failing.

Technically, the PULL_BASE_SHA should be set to the SHA value of the branch this PR is being *merged into*. Because we don't actually test these on GitLab, this workaround is okay (setting it to the value of the current commit).


**Release note**:
```release-note
NONE
```
2018-03-08 13:47:03 +00:00
jetstack-ci-bot
ecedad896a
Merge pull request #384 from jetstack/munnerz-patch-2
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add missing apiVersion to Issuer sample docs

**What this PR does / why we need it**:

This PR is in response to #379

```release-note
NONE
```
2018-03-08 13:38:27 +00:00
James Munnelly
e50f75011d
Fix .gitlab-ci.yml build 2018-03-08 13:29:21 +00:00
James Munnelly
6215ff692c
Add missing apiVersion to Issuer sample docs 2018-03-08 13:17:36 +00:00
Kiall Mac Innes
640991c099 Run hack/update-deploy-gen.sh 2018-03-06 13:44:15 +00:00
Aaron Roydhouse
0b5042c657
Bump chart version for documentation update 2018-03-06 00:20:11 -05:00
Aaron Roydhouse
386a0ec54e
Document common use case options in values.yaml
Lots of new users don't realize:
(a) They need to create a Issuer/ClusterIssuer themselves
(b) They need to tell `ingress-shim` the name via `extra-args`

(Ideally the `helm` would create an ClusterIssuer for you by default, and set these options, if you specify and email address to use with LE.)
2018-03-06 00:19:05 -05:00
Euan Kemp
c82226c7d1 docs/examples: fix typo in example cert 2018-03-05 17:09:51 -08:00
Euan Kemp
4736c4fe27 docs/devel: add 'deploy to minikube' docs
The rbac and docker-env bits are tricky enough that I think it's worth
documenting this.
2018-03-05 17:09:50 -08:00
James Munnelly
4e262ee1d7
Clarify ClusterIssuer resource namespace 2018-03-02 11:12:11 +00:00
jetstack-ci-bot
24f0bbe1f3
Merge pull request #372 from munnerz/verify-chart-version
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Verify helm chart version is bumped when a chart is changed

**What this PR does / why we need it**:

Verifies that the Helm chart version is bumped when a file in the chart is changed.

**Release note**:
```release-note
NONE
```
2018-03-02 10:57:40 +00:00
James Munnelly
b425d77f1e Verify helm chart version is bumped when a chart is changed 2018-03-02 10:01:53 +00:00
jetstack-ci-bot
35fd53028e
Merge pull request #359 from wmedlar/document-route53-policy
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Document the minimum necessary permissions for using cert-manager with Route53

**What this PR does / why we need it**: Necessary permissions previously not documented.

**Release note**:

```release-note
Document the minimum necessary permissions for using cert-manager with Route53
```
2018-03-01 15:24:06 +00:00
Will Medlar
ffeedf7d5d Remove non-recommended hostedZoneID from Route53 example 2018-03-01 09:21:13 -05:00
jetstack-ci-bot
09fbbb4d4a
Merge pull request #361 from hackcave/fix/google-dns-ip
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Use Google's DNS IPs instead of domain

**What this PR does / why we need it**:
If /etc/resolv.conf does not have any entries, then its unlikely
that the domain name representation of google's DNS would get
resolved too. Hence using IP address directly makes sense.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #360

**Special notes for your reviewer**:

**Release note**:
```release-note
NONE
```
2018-03-01 12:40:01 +00:00
jetstack-ci-bot
0b9ce0cf3b
Merge pull request #356 from munnerz/rbac-disable
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Remove old deployment manifests. Update RBAC disable advice.

**What this PR does / why we need it**:

Since #352 merged, we now use the k/charts chart in the deployment guide. This PR updates our deploying docs to reflect the options on the upstream k/charts chart.

It also removes some old and unused deployment files to reduce confusion for new users.

**Special notes for your reviewer**:

**Release note**:
```release-note
NONE
```

/assign
2018-02-28 11:31:01 +00:00
Adarsh J
c4a93bcff5 Use Google's DNS IPs instead of domain
If /etc/resolv.conf does not have any entries, then its unlikely
that the domain name representation of google's DNS would get
resolved too. Hence using IP address directly makes sense.
2018-02-28 02:06:02 +05:30
Will Medlar
b65cdde8a9 Document the minimum permissions for using cert-manager with Route53 2018-02-27 14:56:21 -05:00
James Munnelly
b98f3e64cb Remove old deployment manifests. Update RBAC disable advice. 2018-02-27 08:34:43 +00:00
jetstack-ci-bot
8022e6ab93
Merge pull request #352 from hvaara/guides-charts-repo
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Update guides to use official Charts repository

**What this PR does / why we need it**:
Updates docs to use Chart from kubernetes/charts in the installation/migration guides. This makes it less confusing which Chart to use. There was a short discussion about this with @ahmetb and @munnerz on Slack https://kubernetes.slack.com/archives/C4NV3DWUC/p1519675336000598

**Which issue this PR fixes**
No issue filed.

**Special notes for your reviewer**:
None.

**Release note**:
```release-note
NONE
```
2018-02-27 08:32:17 +00:00
Roy Hvaara
87fa7b170b
Update guides to use official Charts repository 2018-02-26 21:39:41 +01:00
Jonathan Boulle
526d31bbc0 Fix various typos in spelling of Certificate 2018-02-26 20:07:06 +01:00
Kiall Mac Innes
054b99f3ba Helm Chart: Add support for affinity and tolerations
Adds support for setting the node affinity and tolerations scheduling options
2018-02-26 15:40:29 +00:00
jetstack-ci-bot
0a0a2f3b13
Merge pull request #346 from rjeczalik/patch-1
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

docs: fix value name that disables rbac

**What this PR does / why we need it**:

Proper documentation for deploying cert-manager for k8s clusters without rbac enabled (happens to be the default for cdk on localhost).

**Which issue this PR fixes**

No issue per se, a follow-up on #256.
2018-02-25 20:20:05 +00:00
jetstack-ci-bot
010e6c87e4
Merge pull request #343 from munnerz/rbac-endpoints
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add Endpoints back into the cert-manager RBAC policy

**What this PR does / why we need it**:

Adds permission to CRUD Endpoints resources back into the cert-manager RBAC role. This is to prevent deployments using the 'master' version of the Helm chart failing when deploying a pre-0.3 (unreleased) release of cert-manager.

We will remove this in 0.4. This is in order to reduce friction for new users if they forget/decide not to use a tagged release of the Helm chart.

**Release note**:
```release-note
NONE
```

/cc @davecheney @mikebryant
2018-02-25 20:19:02 +00:00
Rafal Jeczalik
c01dd256eb
docs: fix property name that disables rbac 2018-02-25 09:02:24 +01:00
James Munnelly
8cb1e79825 Add Endpoints back into the cert-manager RBAC policy 2018-02-24 10:27:11 +00:00
jetstack-ci-bot
97ce5ca2b3
Merge pull request #329 from munnerz/default-cluster-namespace
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Set default cluster resource namespace to current pod namespace

**What this PR does / why we need it**:

Changes the default cluster resource namespace from kube-system to the current namespace of the cert-manager deployment.

**Which issue this PR fixes**: fixes #103 

**Release note**:
```release-note
Supporting resources for ClusterIssuer's (e.g. signing CA certificates, or ACME account private keys) will now be stored in the same namespace as cert-manager, instead of kube-system in previous versions. Action required: you will need to ensure to properly manually migrate these referenced resources across into the deployment namespace of cert-manager, else cert-manager may not be able to find account private keys or signing CA certificates.
```

/cc @mikebryant
2018-02-23 19:56:21 +00:00
James Munnelly
30c28975cb Update cluster resource namespace during e2e tests 2018-02-23 11:18:58 +00:00
jetstack-ci-bot
f302862610
Merge pull request #340 from munnerz/static-manifest-ns
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Create a Namespace resource as part of the static manifest bundle

**What this PR does / why we need it**:

Create a Namespace resource as part of the static deployment manifests bundle, to make it easier for users to deploy cert-manager without a Helm chart

**Release note**:
```release-note
NONE
```

/cc @davecheney @wallrj
2018-02-23 11:01:33 +00:00
James Munnelly
105c6c149e Create a Namespace resource as part of the static manifest bundle 2018-02-23 09:13:06 +00:00
jetstack-ci-bot
09c6a09584
Merge pull request #330 from munnerz/namespaced-deploy-manifests
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Update default deployment namespace to be 'cert-manager'

**What this PR does / why we need it**:

Previously, our deployment manifests deployed into the 'default' namespace. This changes them to deploy into 'cert-manager' instead.

**Release note**:
```release-note
The static deployment manifests now automatically deploy into the 'cert-manager' namespace by default
```
2018-02-22 23:25:55 +00:00
jetstack-ci-bot
7533e0e329
Merge pull request #332 from munnerz/err-prefixed-events
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Rename Event types to be prefixed 'Err' instead of 'Error' for brevity

**What this PR does / why we need it**:

Shortens the event type names we use to be prefixed 'Err' instead of 'Error'

**Special notes for your reviewer**:

This brings us in-line with the issuer and cluster issuer controllers, and other controllers in Kubernetes.

**Release note**:
```release-note
Rename Event types to be prefixed 'Err' instead of 'Error' for brevity
```
2018-02-22 10:21:22 +00:00
jetstack-ci-bot
c4cdd405a4
Merge pull request #331 from munnerz/no-crt-warning
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Make existing TLS certificate check emit a Normal event instead of Warning when the existing certificate is invalid

**What this PR does / why we need it**:

Previously, when requesting a certificate for the first time, the following events are logged:

```
  Warning  ErrorCheckCertificate  1m                 cert-manager-controller  Error checking existing TLS certificate: secret "httpbin" not found
  Normal   PrepareCertificate     1m                 cert-manager-controller  Preparing certificate with issuer
```

This has caused confusion for users when they see a Warning/Error being logged. This PR changes that to be:

```
  Normal   ErrorCheckCertificate  1m                 cert-manager-controller  Error checking existing TLS certificate, will re-issue: secret "httpbin" not found
  Normal   PrepareCertificate     1m                 cert-manager-controller  Preparing certificate with issuer
```

**Release note**:
```release-note
Clearer event logging when issuing a certificate for the first time
```
2018-02-22 09:48:21 +00:00
James Munnelly
ce0384a196 Rename Event types to be prefixed 'Err' instead of 'Error' for brevity 2018-02-22 07:53:51 +00:00
James Munnelly
70e7c5265b Make existing TLS certificate check emit a Normal event instead of Warning when the existing certificate is invalid 2018-02-22 07:48:58 +00:00
James Munnelly
4afc72d166 Update default deployment namespace to be 'cert-manager' 2018-02-22 07:35:54 +00:00
James Munnelly
ce73a22f6f Set default cluster resource namespace to current pod namespace 2018-02-22 07:24:29 +00:00
jetstack-ci-bot
362735f8f1
Merge pull request #312 from Mikulas/pr/cert-crd-alias
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add default shortNames to certificates CRD

Defaults to `[cert, certs]` and is configurable with `certificateCRDShortNames` parameter.

**What this PR does / why we need it**:

Simplifies manual certificate management with kubectl.

Fixes #311

<div name="review-notes" />

**Special notes for your reviewer**:

Instead of a boolean switch do/dont include the shortNames, the value defines the aliases. This may be handy if anybody prefers `[crt, crts]` instead.

I'm not too keen on the `certificateCRDShortNames` variable name. It might be better to use `Resource` instead of `CRD` to be consistent with the `createCustomResource` var.

Other CRDs are probably ok without an alias, but other people workflows may differ. Should these also be configurable? In that case, the variables could be `shortNames: {certificates: [], …}`.

**Release note**:

```release-note
Add Certificate CRD shortnames `cert` and `certs`. This is configurable in the Helm Chart with `certificateResourceShortNames`.
```
2018-02-21 20:48:17 +00:00