Hey,
My name is Jason, I’m the maintainer of Lexicon. Lexicon is a CLI and python library that lets you manipulate DNS records on various DNS providers in a standardized way, and its used by Certbot.
As of now Lexicon supports almost 40 different DNS providers, with more added all the time.
Obviously that breadth of support comes with its own problems, the most complicated of which is the fact that a majority of our DNS providers require paid accounts, making maintenance and testing new features hard.
Recently we added support for Record Sets, something that is required if you want to use lexicon to generate wildcard letsencrypt certificates. With the help of Lexicon’s contributors, I was able to get a majority of our DNS providers modified to support record sets, however theres still a handful that need to be fixed to correctly support them: https://github.com/AnalogJ/lexicon/projects/1
- AWS Route53
- DNSPod
- DNSpark
- EasyDNS
- Glesys
- Gehirn
- PowerDNS
- Softlayer
- Sakuracloud
- Vultr
- Zonomi
If you have some time, have an account on one of the above DNS Providers and are somewhat familiar with Python, I would really appreciate the help.
Tasks:
-
Skipped Record Set test suite needs to be re-enabled on the provider unit test file.
- Each provider has a unique unit test python file in https://github.com/AnalogJ/lexicon/tree/master/tests/providers
- This unit test file determines which tests are run, and which are skipped. The record set test suite is skipped via code that looks like https://github.com/AnalogJ/lexicon/blob/master/tests/providers/test_route53.py#L38-L46
-
After the record set test suite has been re-enabled, developers will need to make changes to the provider to ensure that record sets are correctly manipulated by lexicon
- Each provider is defined in a python file located here: https://github.com/AnalogJ/lexicon/tree/master/lexicon/providers
- More documentation about how to write a provider is available at https://github.com/AnalogJ/lexicon/blob/master/CONTRIBUTING.md
If you’re interested but have questions, thats perfectly fine. You can get in touch with me at jason@thesparktree.com or just open an issue on Github: https://github.com/AnalogJ/lexicon
Thanks for the help!
-Jason