{"id":17786789,"url":"https://github.com/matthieugouel/cert-manager-webhook-coredns","last_synced_at":"2025-08-30T14:17:23.180Z","repository":{"id":244272858,"uuid":"814368125","full_name":"matthieugouel/cert-manager-webhook-coredns","owner":"matthieugouel","description":"Cert-Manager dns01 webhook for CoreDNS","archived":false,"fork":false,"pushed_at":"2025-08-27T23:06:30.000Z","size":300,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-28T07:13:03.338Z","etag":null,"topics":["acme","cert-manager","cert-manager-webhook","coredns"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matthieugouel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-12T21:55:13.000Z","updated_at":"2025-08-27T23:06:28.000Z","dependencies_parsed_at":"2024-06-13T19:47:14.563Z","dependency_job_id":"7b38a068-c625-4d5c-86f7-99f7796bcaeb","html_url":"https://github.com/matthieugouel/cert-manager-webhook-coredns","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"3a23e9bfd197f977c4478f0610e7a8f2470a1b36"},"previous_names":["nxthdr/cert-manager-webhook-coredns","matthieugouel/cert-manager-webhook-coredns"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/matthieugouel/cert-manager-webhook-coredns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthieugouel%2Fcert-manager-webhook-coredns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthieugouel%2Fcert-manager-webhook-coredns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthieugouel%2Fcert-manager-webhook-coredns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthieugouel%2Fcert-manager-webhook-coredns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matthieugouel","download_url":"https://codeload.github.com/matthieugouel/cert-manager-webhook-coredns/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthieugouel%2Fcert-manager-webhook-coredns/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272858568,"owners_count":25005100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acme","cert-manager","cert-manager-webhook","coredns"],"created_at":"2024-10-27T10:08:29.984Z","updated_at":"2025-08-30T14:17:23.157Z","avatar_url":"https://github.com/matthieugouel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/cert-manager/cert-manager/d53c0b9270f8cd90d908460d69502694e1838f5f/logo/logo-small.png\" height=\"256\" width=\"256\" alt=\"cert-manager project logo\" /\u003e\n\u003c/p\u003e\n\n# Cert-Manager webhook for CoreDNS\n\nCert-Manager `dns01` webhook for CoreDNS using ETCD plugin.  \nSee https://cert-manager.io/docs/configuration/acme/dns01/webhook/ for more information.\n\n\n## Usage\n\n1. Create a secret containing your etcd credentials in the same namespace than the webhook\n\n```sh \nkubectl create secret generic etcd-credentials \\\n  --from-literal=etcd-username='ETCD-USERNAME' \\\n  --from-literal=etcd-password='ETCD-PASSWORD' \\\n  -n cert-manager\n```\n\n2. Create RBAC configuration to access secret\n\n```yaml\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: cert-manager-webhook-coredns:secret-reader\n  namespace: cert-manager\nrules:\n- apiGroups: [\"\"]\n  resources: [\"secrets\"]\n  resourceNames: [\"etcd-credentials\"]\n  verbs: [\"get\", \"watch\"]\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: cert-manager-webhook-coredns:secret-reader\n  namespace: cert-manager\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: Role\n  name: cert-manager-webhook-coredns:secret-reader\nsubjects:\n- apiGroup: \"\"\n  kind: ServiceAccount\n  name: cert-manager-webhook-coredns\n```\n\n3. Create a `ClusterIssuer` or `Issuer`\n\n```yaml\napiVersion: cert-manager.io/v1\nkind: ClusterIssuer\nmetadata:\n  name: nxthdr-acme\nspec:\n  acme:\n    email: admin@nxthdr.dev\n    server: https://acme-v02.api.letsencrypt.org/directory\n    privateKeySecretRef:\n      name: nxthdr-acme\n    solvers:\n    - dns01:\n        webhook:\n          groupName: acme.nxthdr.dev\n          solverName: coredns-solver\n          config:\n            coreDNSPrefix: /skydns\n            etcdEndpoints: \"http://[2a06:de00:50:1:ff00::11]:2379\"\n            etcdUsernameRef:\n              name: etcd-credentials\n              key: etcd-username        \n            etcdPasswordRef: \n              name: etcd-credentials\n              key: etcd-password\n```\n\n4. Finally, install the Cert-Manager webhook for CoreDNS. Choose a unique group name to identify your company or organization (for example `acme.mycompany.example`). In this example it is installed in the `cert-manager` namespace.\n\n```sh\nhelm upgrade --install \\\n  cert-manager-webhook-coredns \\\n  -n cert-manager \\\n  --set groupName='\u003cYOUR_UNIQUE_GROUP_NAME\u003e' \\\n  deploy/cert-manager-webhook-coredns/\n```\n\n## Running the test suite\n\nAll DNS providers **must** run the DNS01 provider conformance testing suite,\nelse they will have undetermined behaviour when used with cert-manager.\n\n**It is essential that you configure and run the test suite when creating a\nDNS01 webhook.**\n\nAn example Go test file has been provided in [main_test.go](https://github.com/cert-manager/webhook-example/blob/master/main_test.go).\n\nBefore you can run the test suite, you need to duplicate the `.sample` files in `testdata/coredns-solver/` and update the configuration with the appropriate ETCD credentials.\n\nYou can run the test suite with:\n\n```bash\n$ TEST_ZONE_NAME=example.com. make test\n```\n\nThe example file has a number of areas you must fill in and replace with your own options in order for tests to pass.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthieugouel%2Fcert-manager-webhook-coredns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthieugouel%2Fcert-manager-webhook-coredns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthieugouel%2Fcert-manager-webhook-coredns/lists"}