Skip to content
Alidns webhook for cert-manager
Go Shell Smarty Makefile Dockerfile
Branch: master
Clone or download
Pull request Compare This branch is 5 commits ahead of jianglin1008:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
deploy
scripts
testdata/alidns
.gitignore
Dockerfile
LICENSE
Makefile
README.md
go.mod
go.sum
ingress-2.yaml
ingress.yaml
letsencrypt-clusterissuer-2.yaml
letsencrypt-clusterissuer.yaml
main.go
main_test.go

README.md

ACME webhook for alidns

For details please link to https://blog.csdn.net/lwlfox/article/details/100989175

Installation

$ helm install --name cert-manager-webhook-alidns --namespace=cert-manager ./deploy/webhook-alidns
or 
$ hell install --name cert-manager-webhook-alidns --namespace=cert-manager --set image.repository=<your repo>/cert-manager-webhook-alidns \
--set image.tag=latest ./deploy/webhook-alidns

Build docker image

$ docker build -t <your repo>/cert-manager-webhook-alidns . 
#For users in china, you have to use vpn as some resources have been blocked in china 
#docker host should has 2G memory minimum

Issuer

secret

$ kubectl -n cert-manager create secret generic alidns-credentials --from-literal=accessKeySecret='your alidns accesskeySecret'

ClusterIssuer

apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: <your email>
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - selector: 
        dnsNames:
        - '*.example.cn'
      dns01:
        webhook:
          config:
            accessKeyId: <your alidns accessKeyId>
            accessKeySecretRef:
              key: accessKeySecret
              name: alidns-credentials
            regionId: "cn-beijing"
            ttl: 600
          groupName: certmanager.webhook.alidns
          solverName: alidns

Ingress

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: example-ingress
  namespace: default
  annotations:
    certmanager.k8s.io/cluster-issuer: "letsencrypt-prod"
spec:
  tls:
  - hosts:
    - '*.example.cn'
    secretName: wildcard-example-cn-tls
  rules:
  - host: demo.example.cn
    http:
      paths:
      - path: /
        backend:
          serviceName: backend-service
          servicePort: 80

Development

Running the test suite

All DNS providers must run the DNS01 provider conformance testing suite, else they will have undetermined behaviour when used with cert-manager.

It is essential that you configure and run the test suite when creating a DNS01 webhook.

An example Go test file has been provided in main_test.go.

Prepare

$ scripts/fetch-test-binaries.sh

You can run the test suite with:

$ TEST_ZONE_NAME=example.com go test .

The example file has a number of areas you must fill in and replace with your own options in order for tests to pass.

You can’t perform that action at this time.