Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/content/usage/integrations/.pages
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
nav:
- cert-manager.md
- cert-manager.md
- crossplane.md
38 changes: 28 additions & 10 deletions docs/content/usage/integrations/cert-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,26 @@ weight: 10

1. **Install cert-manager** in your Kubernetes cluster, where kube-bind backend is running, if you haven't already. You can follow the official installation guide [here](https://cert-manager.io/docs/installation/kubernetes/).

2. **Add kube-bind export label** to certificate CRD.

2. **Create a `kube-bind` template for `Certificate` resources** to allow service consumers to request TLS certificates. Below is an example template:
```bash
kubectl label crd certificates.cert-manager.io kube-bind.io/exported=true --overwrite
```

3. **Create SelfSigned issuer** in the provider cluster.

```yaml
kubectl apply -f - <<EOF
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: my-selfsigned-issuer
spec:
selfSigned: {}
EOF
```

4. **Create a `kube-bind` template for `Certificate` resources** to allow service consumers to request TLS certificates. Below is an example template:

```yaml
kubectl apply -f - <<EOF
Expand Down Expand Up @@ -39,18 +57,18 @@ spec:
EOF
```

3. **Login into the kube-bind CLI** and request a binding to the `certificate` template created above. This will allow you to create `Certificate` resources in your consumer cluster.
5. **Login into the kube-bind CLI** and request a binding to the `certificate` template created above. This will allow you to create `Certificate` resources in your consumer cluster.

```bash
kubectl bind login https://kube-bind.example.com
# you will get redirected to UI to authenticate and pick the template
kubectl bind
kubectl bind
```

4. **Wait for the binding to be established.** Once the binding is active, you can create `Certificate` resources in your consumer cluster, and you will get `Certificate` objects synced from the provider cluster.
6. **Wait for the binding to be established.** Once the binding is active, you can create `Certificate` resources in your consumer cluster, and you will get `Certificate` objects synced from the provider cluster.

```bash
kubectl bind
kubectl bind
🌐 Opening kube-bind UI in your browser...
https://kube-bind.genericcontrolplane.io?redirect_url=....

Expand All @@ -69,11 +87,11 @@ Created 1 APIServiceBinding(s):
Resources bound successfully!
```

5. **Create a `Certificate` resource** in your consumer cluster. The cert-manager in the provider cluster will handle the issuance and management of the TLS certificate.
7. **Create a `Certificate` resource** in your consumer cluster. The cert-manager in the provider cluster will handle the issuance and management of the TLS certificate.

!!! note
my-selfsigned-issuer must be present in the provider cluster for this example to work.

```yaml
kubectl apply -f - <<EOF
apiVersion: cert-manager.io/v1
Expand All @@ -91,13 +109,13 @@ spec:
EOF
```

6. Observe that the `Certificate` resource is created in the consumer cluster and the corresponding TLS secret is generated.
8. Observe that the `Certificate` resource is created in the consumer cluster and the corresponding TLS secret is generated.

```bash
kubectl get certificates
kubectl get certificates
NAME READY SECRET AGE
my-tls-cert True my-tls-cert 6m55s
kubectl get secrets
NAME TYPE DATA AGE
my-tls-cert kubernetes.io/tls 3 6m33s
```
```
Loading