{"id":31052954,"url":"https://github.com/inovex/external-dns-openstack-webhook","last_synced_at":"2026-03-05T09:33:09.646Z","repository":{"id":277196283,"uuid":"796575510","full_name":"inovex/external-dns-openstack-webhook","owner":"inovex","description":"ExternalDNS - OpenStack Designate Webhook","archived":false,"fork":false,"pushed_at":"2025-12-20T07:40:38.000Z","size":157,"stargazers_count":11,"open_issues_count":3,"forks_count":5,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-12-22T05:11:12.615Z","etag":null,"topics":["designate","external-dns","external-dns-webhook","kubernetes","openstack"],"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/inovex.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-06T08:06:53.000Z","updated_at":"2025-12-20T07:40:41.000Z","dependencies_parsed_at":"2025-07-16T14:19:01.988Z","dependency_job_id":"22636366-8c73-47c3-858b-4fa8aaeb41d8","html_url":"https://github.com/inovex/external-dns-openstack-webhook","commit_stats":null,"previous_names":["inovex/external-dns-openstack-webhook"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/inovex/external-dns-openstack-webhook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inovex%2Fexternal-dns-openstack-webhook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inovex%2Fexternal-dns-openstack-webhook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inovex%2Fexternal-dns-openstack-webhook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inovex%2Fexternal-dns-openstack-webhook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inovex","download_url":"https://codeload.github.com/inovex/external-dns-openstack-webhook/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inovex%2Fexternal-dns-openstack-webhook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30117718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T08:19:04.902Z","status":"ssl_error","status_checked_at":"2026-03-05T08:17:37.148Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["designate","external-dns","external-dns-webhook","kubernetes","openstack"],"created_at":"2025-09-15T01:37:43.885Z","updated_at":"2026-03-05T09:33:09.605Z","avatar_url":"https://github.com/inovex.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ExternalDNS - OpenStack Designate Webhook\n\nThis is an [ExternalDNS provider](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/webhook-provider.md) for [OpenStack's Designate DNS server](https://docs.openstack.org/designate/latest/).\nThis projects externalizes the in-tree [OpenStack Designate provider](https://github.com/kubernetes-sigs/external-dns/tree/master/provider/designate) and offers a way forward for bugfixes and new features as the in-tree providers have been [deprecated](https://github.com/kubernetes-sigs/external-dns?tab=readme-ov-file#status-of-in-tree-providers) and thus the code for OpenStack Designate will never leave the `Alpha` state.\n\n## Installation\n\nThis webhook provider is run easiest as sidecar within the `external-dns` pod. This can be achieved using the \n[official `external-dns` Helm chart](https://kubernetes-sigs.github.io/external-dns/latest/charts/external-dns/)\nand [its support for the `webhook` provider type]([https://kubernetes-sigs.github.io/external-dns/latest/charts/external-dns/#providers]).\n\nSetting the `provider.name` to `webhook` allows configuration of the\n`external-dns-openstack-webhook` via a few additional values:\n\n```yaml\nprovider:\n  name: webhook\n  webhook:\n    image:\n      repository: ghcr.io/inovex/external-dns-openstack-webhook\n      tag: 1.1.0\n    extraVolumeMounts:\n      - name: oscloudsyaml\n        mountPath: /etc/openstack/\n    resources: {}\nextraVolumes:\n  - name: oscloudsyaml\n    secret:\n      secretName: oscloudsyaml\n```\n\nThe referenced `extraVolumeMount` points to a `Secret` containing a [`clouds.yaml` file](https://docs.openstack.org/python-openstackclient/latest/configuration/index.html#clouds-yaml),\nwhich provides the OpenStack Keystone credentials to the webhook provider.\n`OS_*` environment variables are not supported for configuration, since the use of a `clouds.yaml` file offers more structure, capabilities and allows for better validation.\nThe one exception to this is `OS_CLOUD` for setting the name of the cloud in `clouds.yaml` to use.\n\nThe following example is a basic example of a `clouds.yaml` file, using `openstack` as the cloud name (the default used by this webhook):\n\n```yaml\nclouds:\n  openstack:\n    auth:\n      auth_url: https://auth.cloud.example.com\n      application_credential_id: \"TOP\"\n      application_credential_secret: \"SECRET\"\n    region_name: \"earth\"\n    interface: \"public\"\n    auth_type: \"v3applicationcredential\"\n```\n\nAn existing file can be converted into a Secret via kubectl:\n\n```shell\nkubectl create secret generic oscloudsyaml --namespace external-dns --from-file=clouds.yaml\n```\n\n## Bugs or feature requests\n\nThis webhook certainly still contains bugs or lacks certain features.\nIn such cases, please raise a GitHub issue with as much detail as possible. PRs with fixes and features are also very welcome.\n\n## Development\n\nTo run the webhook locally, you'll also require a [clouds.yaml](https://docs.openstack.org/python-openstackclient/pike/configuration/index.html#clouds-yaml) file in one of the standard-locations.\nAlso the name of the entry to be used has be given via `OS_CLOUD` environment variable.\nYou can then start the webhook server using:\n\n```sh\ngo run cmd/webhook/main.go\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finovex%2Fexternal-dns-openstack-webhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finovex%2Fexternal-dns-openstack-webhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finovex%2Fexternal-dns-openstack-webhook/lists"}