项目作者: Fred78290

项目描述 :
A cert-manager repository for creating an ACME DNS01 solver webhook to use with GoDaddy DNS provider
高级语言: Go
项目地址: git://github.com/Fred78290/cert-manager-webhook-godaddy.git
创建时间: 2020-12-24T16:21:58Z
项目社区:https://github.com/Fred78290/cert-manager-webhook-godaddy

开源协议:Apache License 2.0

下载



cert-manager-webhook-godaddy project logo



Build Status


Quality Gate Status


Licence

Time to leave GoDaddy…

QUESTION: GoDaddy ACCESS DENIED via API-Call

  1. Hi,
  2. We have recently updated the account requirements to access parts of our production Domains API. As part of this update, access to these APIs are now limited:
  3. Availability API: Limited to accounts with 50 or more domains
  4. Management and DNS APIs: Limited to accounts with 10 or more domains and/or an active Discount Domain Club plan.
  5. If you have lost access to these APIs, but feel you meet these requirements, please reply back with your account number and we will review your account and whitelist you if we have denied you access in error.
  6. Please note that this does not affect your access to any of our OTE APIs.
  7. If you have any further questions or need assistance with other API questions, please reach out.
  8. Regards,
  9. API Support Team

cert-manager webhook for GoDaddy

Installation

  1. helm repo add godaddy-webhook https://fred78290.github.io/cert-manager-webhook-godaddy/
  2. helm repo update
  3. helm upgrade -i godaddy-webhook godaddy-webhook/godaddy-webhook \
  4. --set groupName=acme.mycompany.com \
  5. --set image.tag=v1.27.2 \
  6. --set image.pullPolicy=Always \
  7. --namespace cert-manager

Issuer

ClusterIssuer

  1. apiVersion: v1
  2. kind: Secret
  3. metadata:
  4. name: godaddy-api-key-prod
  5. namespace: cert-manager
  6. type: Opaque
  7. data:
  8. key: <godaddy api key base64 encoded>
  9. secret: <godaddy api secret base64 encoded>
  10. ---
  11. apiVersion: cert-manager.io/v1
  12. kind: ClusterIssuer
  13. metadata:
  14. name: letsencrypt-prod
  15. spec:
  16. acme:
  17. server: https://acme-v02.api.letsencrypt.org/directory
  18. email: <your email>
  19. privateKeySecretRef:
  20. name: letsencrypt-prod-account-key
  21. solvers:
  22. - selector:
  23. dnsNames:
  24. - '*.mycompany.com'
  25. dns01:
  26. webhook:
  27. config:
  28. apiKeySecretRef:
  29. name: godaddy-api-key-prod
  30. key: key
  31. secret: secret
  32. production: true
  33. ttl: 600
  34. groupName: acme.mycompany.com
  35. solverName: godaddy

Certificate

  1. apiVersion: cert-manager.io/v1
  2. kind: Certificate
  3. metadata:
  4. name: wildcard-example-com
  5. spec:
  6. secretName: wildcard-example-com-tls
  7. renewBefore: 240h
  8. dnsNames:
  9. - '*.example.com'
  10. issuerRef:
  11. name: letsencrypt-prod
  12. kind: ClusterIssuer

Ingress

  1. apiVersion: extensions/v1beta1
  2. kind: Ingress
  3. metadata:
  4. name: example-ingress
  5. namespace: default
  6. annotations:
  7. certmanager.k8s.io/cluster-issuer: "letsencrypt-prod"
  8. spec:
  9. tls:
  10. - hosts:
  11. - '*.example.com'
  12. secretName: wildcard-example-com-tls
  13. rules:
  14. - host: demo.example.com
  15. http:
  16. paths:
  17. - path: /
  18. backend:
  19. serviceName: backend-service
  20. 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

  1. $ scripts/fetch-test-binaries.sh

You can run the test suite with:

  1. $ scripts/test.sh

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