|
1 | | -<p align="center"> |
2 | | - <img src="https://raw.githubusercontent.com/cert-manager/cert-manager/d53c0b9270f8cd90d908460d69502694e1838f5f/logo/logo-small.png" height="256" width="256" alt="cert-manager project logo" /> |
3 | | -</p> |
| 1 | +# Cert Manager IBM Cloud Internet Services Webhook Solver |
4 | 2 |
|
5 | | -# ACME webhook example |
6 | | - |
7 | | -The ACME issuer type supports an optional 'webhook' solver, which can be used |
| 3 | +Cert Manager's ACME (automated certificate management environment) issuer type supports an optional 'webhook' solver, which can be used |
8 | 4 | to implement custom DNS01 challenge solving logic. |
9 | 5 |
|
10 | | -This is useful if you need to use cert-manager with a DNS provider that is not |
11 | | -officially supported in cert-manager core. |
12 | | - |
13 | | -## Why not in core? |
14 | | - |
15 | | -As the project & adoption has grown, there has been an influx of DNS provider |
16 | | -pull requests to our core codebase. As this number has grown, the test matrix |
17 | | -has become un-maintainable and so, it's not possible for us to certify that |
18 | | -providers work to a sufficient level. |
19 | | - |
20 | | -By creating this 'interface' between cert-manager and DNS providers, we allow |
21 | | -users to quickly iterate and test out new integrations, and then packaging |
22 | | -those up themselves as 'extensions' to cert-manager. |
23 | | - |
24 | | -We can also then provide a standardised 'testing framework', or set of |
25 | | -conformance tests, which allow us to validate the a DNS provider works as |
26 | | -expected. |
| 6 | +IBM Cloud Internet Services is not officially supported in cert-manager core, so if you want to automatically provision certificates with cert-manager using DNS challenges, you can use this repository to do so. |
27 | 7 |
|
28 | | -## Creating your own webhook |
| 8 | +## Usage |
29 | 9 |
|
30 | | -Webhook's themselves are deployed as Kubernetes API services, in order to allow |
31 | | -administrators to restrict access to webhooks with Kubernetes RBAC. |
| 10 | +### Prerequisites |
32 | 11 |
|
33 | | -This is important, as otherwise it'd be possible for anyone with access to your |
34 | | -webhook to complete ACME challenge validations and obtain certificates. |
| 12 | +You must have cert-manager already installed in your cluster. |
35 | 13 |
|
36 | | -To make the set up of these webhook's easier, we provide a template repository |
37 | | -that can be used to get started quickly. |
| 14 | +See [installation instructions here](https://cert-manager.io/docs/installation/). |
38 | 15 |
|
39 | | -### Creating your own repository |
| 16 | +### Installation |
40 | 17 |
|
41 | | -### Running the test suite |
| 18 | +You can install this webhook using helm: |
42 | 19 |
|
43 | | -All DNS providers **must** run the DNS01 provider conformance testing suite, |
44 | | -else they will have undetermined behaviour when used with cert-manager. |
45 | | - |
46 | | -**It is essential that you configure and run the test suite when creating a |
47 | | -DNS01 webhook.** |
| 20 | +```shell |
| 21 | +helm install cert-manager-ibm-cis-webhook --set ibmCloudApiKey="<your IBM Cloud API key>" |
| 22 | +``` |
48 | 23 |
|
49 | | -An example Go test file has been provided in [main_test.go](https://github.com/cert-manager/webhook-example/blob/master/main_test.go). |
| 24 | +### Issuer |
| 25 | + |
| 26 | +Create or update an `Issuer` (or `ClusterIssuer`) to reference the newly installed solver: |
| 27 | + |
| 28 | +```yaml |
| 29 | +apiVersion: cert-manager.io/v1 |
| 30 | +kind: ClusterIssuer |
| 31 | +metadata: |
| 32 | + name: acme-dns-issuer |
| 33 | +spec: |
| 34 | + acme: |
| 35 | + |
| 36 | + privateKeySecretRef: |
| 37 | + name: letsencrypt |
| 38 | + server: https://acme-v02.api.letsencrypt.org/directory |
| 39 | + solvers: |
| 40 | + - dns01: |
| 41 | + webhook: |
| 42 | + config: |
| 43 | + ibmCloudCisCrns: |
| 44 | + - 'crn:v1:bluemix:public:internet-svcs:global:a/***:***::' |
| 45 | + groupName: acme.skills.network |
| 46 | + solverName: ibm-cloud-cis |
| 47 | + selector: |
| 48 | + dnsZones: |
| 49 | + - your.site.domain.com |
| 50 | +``` |
50 | 51 |
|
51 | | -You can run the test suite with: |
| 52 | +After update your issuer, cert-manager should be able to automatically complete challenges for your certificates on IBM CIS-managed domains. |
52 | 53 |
|
53 | | -```bash |
54 | | -$ TEST_ZONE_NAME=example.com. make test |
55 | | -``` |
| 54 | +## Contributing |
56 | 55 |
|
57 | | -The example file has a number of areas you must fill in and replace with your |
58 | | -own options in order for tests to pass. |
| 56 | +Contributions are welcome. |
| 57 | +Please see [docs/CONTRIBUTING.md](./docs/CONTRIBUTING.md) to get started. |
0 commit comments