{"id":23564179,"url":"https://github.com/selectel/cert-manager-webhook-selectel","last_synced_at":"2025-04-30T16:17:46.671Z","repository":{"id":39970988,"uuid":"205244011","full_name":"selectel/cert-manager-webhook-selectel","owner":"selectel","description":"Selectel DNS cert-manager ACME webhook","archived":false,"fork":false,"pushed_at":"2025-04-16T14:21:46.000Z","size":7167,"stargazers_count":18,"open_issues_count":2,"forks_count":14,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-30T16:17:39.729Z","etag":null,"topics":["acme","cert-manager","cert-manager-webhook","letsencrypt","selectel-dns"],"latest_commit_sha":null,"homepage":null,"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/selectel.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}},"created_at":"2019-08-29T20:19:34.000Z","updated_at":"2025-04-16T14:20:40.000Z","dependencies_parsed_at":"2023-12-18T09:49:11.321Z","dependency_job_id":"7e0852d7-686e-4c28-8f7e-160c4240fde4","html_url":"https://github.com/selectel/cert-manager-webhook-selectel","commit_stats":{"total_commits":37,"total_committers":13,"mean_commits":"2.8461538461538463","dds":0.7297297297297297,"last_synced_commit":"aa31911f0947f466bdb9eb6cf58739505d1dddda"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/selectel%2Fcert-manager-webhook-selectel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/selectel%2Fcert-manager-webhook-selectel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/selectel%2Fcert-manager-webhook-selectel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/selectel%2Fcert-manager-webhook-selectel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/selectel","download_url":"https://codeload.github.com/selectel/cert-manager-webhook-selectel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251739677,"owners_count":21635893,"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","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","letsencrypt","selectel-dns"],"created_at":"2024-12-26T17:13:13.620Z","updated_at":"2025-04-30T16:17:46.641Z","avatar_url":"https://github.com/selectel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cert-manager-webhook-selectel\n[![Build Status](https://travis-ci.org/selectel/cert-manager-webhook-selectel.svg?branch=master)](https://travis-ci.org/selectel/cert-manager-webhook-selectel)\n[![Go Report Card](https://goreportcard.com/badge/github.com/selectel/cert-manager-webhook-selectel)](https://goreportcard.com/report/github.com/selectel/cert-manager-webhook-selectel)\n\nCert-manager ACME DNS webhook provider for Selectel.\n\n## Contents\n\n* [Issuing certificate in DNS Hosting (actual)](#issuing-certificate-in-dns-hosting-actual)\n  * [Installing](#installing)\n  * [Setup credentials](#setup-credentials)\n  * [Setup issuer](#setup-issuer)\n  * [Issuing certificate](#issuing-certificate)\n* [Issuing certificate in DNS Hosting (legacy)](#issuing-certificate-in-dns-hosting-legacy)\n  * [Legacy version](#legacy-version)\n  * [Installing](#installing-legacy)\n  * [Setup credentials](#setup-credentials-legacy)\n  * [Setup issuer](#setup-issuer-legacy)\n  * [Issuing certificate](#issuing-certificate-legacy)\n* [Development guide](#development-guide)\n  * [Running the test suite](#running-the-test-suite)\n\n## Issuing certificate in DNS Hosting (actual)\n\n### Installing\n\nTo install with helm from helm-repository, run:\n\n```bash\n$ helm repo add selectel https://selectel.github.io/cert-manager-webhook-selectel\n$ helm repo update\n$ helm install cert-manager-webhook-selectel selectel/cert-manager-webhook-selectel -n cert-manager\n```\n\nOr install with helm from git-repository, run:\n\n```bash\n$ git clone https://github.com/selectel/cert-manager-webhook-selectel.git\n$ cd cert-manager-webhook-selectel/deploy/cert-manager-webhook-selectel\n$ helm install cert-manager-webhook-selectel . -n cert-manager\n```\n\n### Setup credentials\n\nCreate secret and fill authentication data.\n\n```yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: selectel-dns-credentials\n  namespace: cert-manager\ntype: Opaque\nstringData:\n  username: KEYSTONE_USER\n  password: KEYSTONE_PASSWORD\n  account_id: ACCOUNT_ID\n  project_id: SELECTEL_PROJECT_ID\n```\n\n**KEYSTONE_USER** - Name of the service user. To get the name, in the top right corner of the [Control panel](https://my.selectel.ru/profile/users_management/users?type=service), go to the account menu ⟶ **Profile and Settings** ⟶ **User management** ⟶ the **Service users** tab ⟶ copy the name of the required user. Learn more about [Service users](https://docs.selectel.ru/control-panel-actions/users-and-roles/user-types-and-roles/).\n\n**KEYSTONE_PASSWORD** - Password of the service user.\n\n**ACCOUNT_ID** - Selectel account ID. The account ID is in the top right corner of the [Control panel](https://my.selectel.ru/). Learn more about [Registration](https://docs.selectel.ru/control-panel-actions/account/registration/).\n\n**SELECTEL_PROJECT_ID** - Unique identifier of the associated Cloud Platform project. To get the project ID, in the [Control panel](https://my.selectel.ru/vpc/), go to Cloud Platform ⟶ project name ⟶ copy the ID of the required project. Learn more about [Cloud Platform projects](https://docs.selectel.ru/cloud/servers/about/projects/).\n\n### Setup issuer\n\nAn example issuer:\n\n```yaml\napiVersion: cert-manager.io/v1\nkind: Issuer\nmetadata:\n  name: letsencrypt-staging\n  namespace: cert-manager\nspec:\n  acme:\n    server: https://acme-staging-v02.api.letsencrypt.org/directory\n    email: certmaster@selectel.ru\n    privateKeySecretRef:\n      name: letsencrypt-staging-account-key\n    solvers:\n    - dns01:\n        webhook:\n          groupName: acme.selectel.ru\n          solverName: selectel\n          config:\n            dnsSecretRef:\n              name: selectel-dns-credentials\n            # Optional config, shown with default values\n            #   all times in seconds\n            ttl: 120 # Default: 60\n            timeout: 60 # Default 40\n```\n\n### Issuing certificate\n\nIssuing certificate:\n\n```yaml\napiVersion: cert-manager.io/v1\nkind: Certificate\nmetadata:\n  name: sel-letsencrypt-crt\n  namespace: cert-manager\nspec:\n  # Setup secret name\n  secretName: example-com-tls\n  commonName: example.com\n  issuerRef:\n    name: letsencrypt-staging\n    kind: Issuer\n  # Setup names of zones\n  dnsNames:\n  - example.com\n  - www.example.com\n```\n\n## Issuing certificate in DNS Hosting (legacy)\n\n### Legacy version\n\nCert-manager webhook provider for Selectel supporting two versions API.\nThey are not compatible. They utilize different API and work with zones live on different authoritative servers.\nZone created in v2 API not available via v1 api.\n\n### Installing (legacy)\n\nTo install with helm from helm-repository, run:\n\n```bash\n$ helm repo add selectel https://selectel.github.io/cert-manager-webhook-selectel\n$ helm repo update\n$ helm install cert-manager-webhook-selectel selectel/cert-manager-webhook-selectel -n cert-manager --version 1.2.5\n```\n\nOr install with helm from git-repository, run:\n\n```bash\n$ git clone https://github.com/selectel/cert-manager-webhook-selectel.git --branch cert-manager-webhook-selectel-1.2.5\n$ cd cert-manager-webhook-selectel/deploy/cert-manager-webhook-selectel\n$ helm install cert-manager-webhook-selectel . -n cert-manager\n```\n\n### Setup credentials (legacy)\n\nCreate secret and fill **APITOKEN_FROM_MY_SELECTEL_RU**.\n\n```yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: selectel-api-key\n  namespace: cert-manager\ntype: Opaque\nstringData:\n  token: APITOKEN_FROM_MY_SELECTEL_RU\n```\n\n**APITOKEN_FROM_MY_SELECTEL_RU** - Selectel Token (API Key). For obtain Selectel Token read [here](https://developers.selectel.ru/docs/control-panel/authorization/).\n\n### Setup issuer (legacy)\n\nAn example issuer:\n\n```yaml\napiVersion: cert-manager.io/v1\nkind: Issuer\nmetadata:\n  name: letsencrypt-staging\n  namespace: cert-manager\nspec:\n  acme:\n    server: https://acme-staging-v02.api.letsencrypt.org/directory\n    email: certmaster@selectel.ru\n    privateKeySecretRef:\n      name: letsencrypt-staging-account-key\n    solvers:\n    - dns01:\n        webhook:\n          groupName: acme.selectel.ru\n          solverName: selectel\n          config:\n            apiKeySecretRef:\n              name: selectel-api-key\n              key: token\n\n            # Optional config, shown with default values\n            #   all times in seconds\n            ttl: 120\n            timeout: 30\n            propagationTimeout: 120\n            pollingInterval: 2\n```\n\n### Issuing certificate (legacy)\n\nIssuing certificate:\n\n```yaml\napiVersion: cert-manager.io/v1\nkind: Certificate\nmetadata:\n  name: sel-letsencrypt-crt\n  namespace: cert-manager\nspec:\n  # Setup secret name\n  secretName: example-com-tls\n  commonName: example.com\n  issuerRef:\n    name: letsencrypt-staging\n    kind: Issuer\n  # Setup names of zones\n  dnsNames:\n  - example.com\n  - www.example.com\n```\n\n## Development guide\n\n### Running the test suite\n\nYou can run the test suite with:\n\n1. Go to `https://my.selectel.ru/profile/users_management/users`, get one or create new user.\n2. Fill in the appropriate values in `testdata/selectel/dns-credentials.yml` and `testdata/selectel/config.json`.\n    * Insert values `testdata/selectel/dns-credentials.yml`.\n    * Check that `metadata.name` in `testdata/selectel/dns-credentials.yml` equals value in `testdata/selectel/config.json` for key `dnsSecretRef.name`.\n3. Run tests\n\n```bash\n$ TEST_ZONE_NAME=example.com. make test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fselectel%2Fcert-manager-webhook-selectel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fselectel%2Fcert-manager-webhook-selectel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fselectel%2Fcert-manager-webhook-selectel/lists"}