{"id":46756884,"url":"https://github.com/4nx/cert-manager-webhook-joker","last_synced_at":"2026-03-09T21:34:56.544Z","repository":{"id":43640852,"uuid":"331959511","full_name":"4nx/cert-manager-webhook-joker","owner":"4nx","description":"A cert-manager repository for creating an ACME DNS01 solver webhook for joker.com.","archived":false,"fork":false,"pushed_at":"2022-08-21T19:00:39.000Z","size":109,"stargazers_count":1,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-05T18:29:13.623Z","etag":null,"topics":["acme","cert-manager","cert-manager-webhook","joker","joker-com","kubernetes","letsencrypt","tls","webhook"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/4nx.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}},"created_at":"2021-01-22T13:49:32.000Z","updated_at":"2025-09-19T05:37:34.000Z","dependencies_parsed_at":"2022-09-13T11:11:06.962Z","dependency_job_id":null,"html_url":"https://github.com/4nx/cert-manager-webhook-joker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/4nx/cert-manager-webhook-joker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4nx%2Fcert-manager-webhook-joker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4nx%2Fcert-manager-webhook-joker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4nx%2Fcert-manager-webhook-joker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4nx%2Fcert-manager-webhook-joker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/4nx","download_url":"https://codeload.github.com/4nx/cert-manager-webhook-joker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4nx%2Fcert-manager-webhook-joker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30312182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T20:05:46.299Z","status":"ssl_error","status_checked_at":"2026-03-09T19:57:04.425Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","joker","joker-com","kubernetes","letsencrypt","tls","webhook"],"created_at":"2026-03-09T21:34:56.328Z","updated_at":"2026-03-09T21:34:56.524Z","avatar_url":"https://github.com/4nx.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cert-manager webhook for joker.com DNS\ncert-manager ACME DNS01 webhook provider for joker.com.\n\n## Prequesites\nThe following components needs to be already installed on a Kubernetes cluster:\n * Kubernetes (\u003e= v1.11.0) [](https://kubernetes.io/)\n * cert-manager (\u003e= v0.14.0) [](https://cert-manager.io/docs/installation/kubernetes/)\n * helm (\u003e= v3.0.0) [](https://helm.sh/docs/intro/install/)\n\nAt joker.com you need to enable Dynamic DNS to get credentials for API access. You can find the documentation [here](https://joker.com/faq/content/6/496/en/let_s-encrypt-support.html).\n \n## Installation\n 1. Create a Kubernetes secret which will hold your joker DynDNS authentication credentials (base64 representation):\n \n```yaml\ncat \u003c\u003cEOF | kubectl apply -f -\napiVersion: v1\nkind: Secret\nmetadata:\n  name: joker-credentials\n  namespace: kube-system\ndata:\n  username: \u003cjoker Username\u003e\n  password: \u003cjoker Password\u003e\nEOF\n```\n \n 2. Grant permission to get the secret to `cert-manager-webhook-joker` service account:\n\n ```yaml\ncat \u003c\u003cEOF | kubectl apply -f -\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: cert-manager-webhook-joker:secret-reader\n  namespace: kube-system\nrules:\n- apiGroups: [\"\"]\n  resources: [\"secrets\"]\n  resourceNames: [\"joker-credentials\"]\n  verbs: [\"get\", \"watch\"]\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: cert-manager-webhook-joker:secret-reader\n  namespace: kube-system\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: Role\n  name: cert-manager-webhook-joker:secret-reader\nsubjects:\n- apiGroup: \"\"\n  kind: ServiceAccount\n  name: cert-manager-webhook-joker\nEOF\n```\n\n 3. Clone the github repository:\n \n```console\ngit clone https://github.com/4nx/cert-manager-webhook-joker.git\n```\n\n 4. Install the Helm chart with:\n\n```console\nhelm upgrade --install cert-manager-webhook-joker --namespace cert-manager deploy/cert-manager-webhook-joker\n```\n\n 5. Create a certificate issuer with the letsencrypt staging ca for testing purposes (you must insert your e-mail address):\n\n```yaml\ncat \u003c\u003cEOF | kubectl apply -f -\napiVersion: cert-manager.io/v1\nkind: ClusterIssuer\nmetadata:\n  name: letsencrypt-staging-dns01\nspec:\n  acme:\n    # Change to your letsencrypt email\n    email: \u003cyour email\u003e\n    server: https://acme-staging-v02.api.letsencrypt.org/directory\n    privateKeySecretRef:\n      name: letsencrypt-staging-account-key\n    solvers:\n    - dns01:\n        webhook:\n          groupName: acme.yourcompany.com\n          solverName: joker\n          config:\n            baseURL: https://svc.joker.com/nic/replace\n            dnsType: TXT\n            userNameSecretRef:\n              name: joker-credentials\n              key: username\n            passwordSecretRef:\n              name: joker-credentials\n              key: password\nEOF\n```\n\n 6. Issue a test certificate (replace the test urls in here):\n\n```yaml\ncat \u003c\u003cEOF | kubectl apply -f -\napiVersion: cert-manager.io/v1alpha2\nkind: Certificate\nmetadata:\n  name: example-tls\nspec:\n  secretName: example-com-tls\n  commonName: example.com\n  dnsNames:\n  - example.com\n  - \"*.example.com\"\n  issuerRef:\n    name: letsencrypt-staging-dns01\n    kind: ClusterIssuer\nEOF\n```\n\n## Development\nAll DNS providers must run the DNS01 provider conformance testing suite, else 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 DNS01 webhook.__\n\nBefore you can run the test suite, you need to download the test binaries:\n\n```console\n./scripts/fetch-test-binaries.sh\n```\n\nThen duplicate the .sample files in testdata/joker/ and update the configuration with the appropriate Joker.com credentials.\n\nNow you can run the test suite with:\n\n```sh\nTEST_ZONE_NAME=example.com. go test .\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4nx%2Fcert-manager-webhook-joker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F4nx%2Fcert-manager-webhook-joker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4nx%2Fcert-manager-webhook-joker/lists"}