some improvements
This commit is contained in:
parent
ba07d4fdfc
commit
312dcd577c
10 changed files with 367 additions and 379 deletions
118
README.md
118
README.md
|
|
@ -1,118 +1,12 @@
|
|||
# cloud-provider-pve
|
||||
|
||||
## pve-cloud-controller-manager
|
||||
|
||||
# template-solver
|
||||
Implements the following controllers:
|
||||
|
||||
The template-solver is a Cert-Manager Webhook solver implementation, that itself constructs and sends webhooks or API requests.
|
||||
* Node
|
||||
* LoadBalancer
|
||||
|
||||
# Requirements
|
||||
## pve-csr-approver-manager
|
||||
|
||||
* Kubernetes Cluster
|
||||
* Cert-Manager v0.12.0
|
||||
* go
|
||||
* ko
|
||||
|
||||
# Usage
|
||||
|
||||
## Config
|
||||
|
||||
**Note:** `headers`, `urlData` and `bodyData` values need to start with an upper-case letter.
|
||||
|
||||
If `bodyTemplate` is defined a `POST` request will be sent.
|
||||
|
||||
Cleanup requests contain an empty `DNSKey`.
|
||||
|
||||
```
|
||||
webhook:
|
||||
groupName: template-solver
|
||||
solverName: template-solver
|
||||
config:
|
||||
apiKeySecretRef:
|
||||
name: api-key
|
||||
key: example.com
|
||||
headers:
|
||||
Content-Type: "application/json"
|
||||
urlTemplate: "{{.URLData.Url}}{{.APIKey}}={{.DNSKey}}"
|
||||
urlData:
|
||||
Url: "https://ns.example.com/update.html?"
|
||||
bodyTemplate: ""
|
||||
bodyData:
|
||||
```
|
||||
|
||||
## Example
|
||||
|
||||
Secret to store webhook API key:
|
||||
|
||||
**Note:** the `api-key` secret must be created in the same namespace as the `Certificate`.
|
||||
|
||||
```
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: api-key
|
||||
namespace: default
|
||||
type: Opaque
|
||||
stringData:
|
||||
example.com: 92f6766fc1a43d9a96ccd93d33294cc6
|
||||
```
|
||||
|
||||
Issuer:
|
||||
|
||||
```
|
||||
apiVersion: cert-manager.io/v1alpha2
|
||||
kind: Issuer
|
||||
metadata:
|
||||
name: template-solver-issuer
|
||||
namespace: default
|
||||
spec:
|
||||
acme:
|
||||
email: user@example.com
|
||||
server: https://acme-staging-v02.api.letsencrypt.org/directory
|
||||
privateKeySecretRef:
|
||||
name: template-solver-issuer-account-key
|
||||
solvers:
|
||||
- dns01:
|
||||
webhook:
|
||||
groupName: template-solver
|
||||
solverName: template-solver
|
||||
config:
|
||||
apiKeySecretRef:
|
||||
name: api-key
|
||||
key: example.com
|
||||
urlTemplate: "{{.URLData.Url}}{{.APIKey}}={{.DNSKey}}"
|
||||
urlData:
|
||||
Url: "https://ns.example.com/update.html?"
|
||||
```
|
||||
|
||||
Certificate:
|
||||
|
||||
```
|
||||
apiVersion: cert-manager.io/v1alpha2
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: example-com
|
||||
namespace: default
|
||||
spec:
|
||||
secretName: example-com-tls
|
||||
duration: 2160h
|
||||
renewBefore: 360h
|
||||
isCA: false
|
||||
keySize: 2048
|
||||
keyAlgorithm: rsa
|
||||
keyEncoding: pkcs1
|
||||
usages:
|
||||
- server auth
|
||||
- client auth
|
||||
dnsNames:
|
||||
- '*.example.com'
|
||||
issuerRef:
|
||||
name: template-solver-issuer
|
||||
```
|
||||
|
||||
# Build and run
|
||||
|
||||
```
|
||||
echo KO_DOCKER_REPO='gcr.io/my-gcloud-project-name' >env.txt
|
||||
|
||||
./build.sh
|
||||
```
|
||||
Signs kubelet CSRs
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue