SlideShare a Scribd company logo
Workshop Requirements 
● Grab a USB key! 
● A computer with: 
○ 2+GB RAM 
○ VirtualBox and Vagrant - Both included on USB drive 
○ VM: 30GB disk image 
○ Windows users need ssh client (putty, cygwin) 
● Copy “DesignateInstall” from USB drive 
● cd DesignateInstall 
● vagrant up 
● vagrant ssh
Install, Operate, Rock it
Rich Megginson 
Principal Software Engineer, Red Hat 
rmeggins@redhat.com 
irc: richm (Freenode)
Emmanuel Ankutse, Developer 
irc: eankutse 
Betsy Luzader, Developer 
irc: bluzader 
Vinod Mangalpally, Developer 
irc: vinod 
Joe McBride, Development Manager 
irc: jmcbride
Ron Rickard 
Sr. Cloud Engineer, eBay Inc. 
rrickard@ebaysf.com 
irc.freenode.net: rjrjr
Designate Install and Operate Workshop
Are you ready? 
● Installed: 
○ VirtualBox and Vagrant - Both included on USB drive 
● Copy “DesignateInstall” from USB drive 
● cd DesignateInstall 
● vagrant up 
● vagrant ssh
Agenda 
● Install 
● Operations 
● Nova + Neutron 
● How to contribute
Install Designate
Install Overview 
- Configure PowerDNS backend 
- Install/Configure Designate Services 
- Install/Configure Designate Client 
- Verify install
What we are installing 
Database 
Central 
Backend PowerDNS 
Nova / Neutron 
Keystone API AMQP 
User 
Sink
Follow along at... 
- On the vm at: 
/home/vagrant/install.txt 
- or online at: 
https://wiki.openstack. 
org/wiki/Designate/Atlanta/Worksh 
op_1
Questions?
Designate Operations
Using Designate 
Pre-setup in Keystone: 
Tenant User 
admin admin 
tenantA user1 
user2 
tenantB user3
Using Designate (continued) 
Scripts pre-loaded on image: 
● openrc.admin 
● openrc.user1 
● openrc.user2 
● openrc.user3 
● getusertoken.sh 
● selectenv.sh 
● createserver.sh 
● deleteserver.sh 
● getserver.sh 
● listservers.sh
Server Operations 
Designate REST API: 
● Generate the Keystone token for the admin user: 
○ source openrc.admin 
○ . ./selectenv.sh 
● List the servers: 
○ ./listservers.sh 
● Create the server: 
○ ./createserver.sh ns.example.net. 
○ ./listservers.sh
Server Operations (continued) 
Designate client: 
● Setup the environment for the admin user: 
○ source openrc.admin 
● List the servers: 
○ designate server-list 
● Create the server: 
○ designate server-create --name ns.example.com. 
○ designate server-list 
● Delete a server: 
○ designate server-delete <server-id for ns.example.net.> 
○ designate server-list 
● Delete the last server: 
○ designate server-delete <server-id for ns.example.com.> 
● Show designate shell: 
○ designate
Domain Operations 
● Setup the environment for the user1 user: 
○ source openrc.user1 
● List the domains: 
○ designate domain-list 
● Create the domain: 
○ designate domain-create --name example.com. --email dns@example. 
com 
○ designate domain-list 
○ dig @localhost example.com. soa 
○ dig @localhost example.com. ns 
● Setup the environment for the user2 user: 
○ source openrc.user2 
● List the domains: 
○ designate domain-list
Domain Operations (continued) 
● Setup the environment for the user3 user: 
○ source openrc.user3 
● List the domains: 
○ designate domain-list 
● Create the domain: 
○ designate domain-create --name test.com. --email dns@test.com 
○ designate domain-list 
● Delete the domain: 
○ designate domain-delete <domain-id for test.com.> 
○ designate domain-list
Record Operations 
● Setup the environment for the user2 user: 
○ source openrc.user2 
● List the records for the example.com. domain: 
○ designate domain-list 
○ designate record-list <domain-id for example.com.> 
● Create the record: 
○ designate record-create --name serverA.example.com. --type A -- 
data 1.2.3.4 <domain-id for example.com.> 
○ designate record-list <domain-id for example.com.> 
○ dig @localhost serverA.example.com. 
● Setup the environment for the user1 user: 
○ source openrc.user1 
● List the records for the example.com. domain: 
○ designate record-list <domain-id for example.com.>
Record Operations (continued) 
● Setup the environment for the user3 user: 
○ source openrc.user3 
● List the records for the example.com. domain: 
○ designate record-list <domain-id for example.com.> 
● Setup the environment for the user1 user: 
○ source openrc.user1 
● List the records for the example.com. domain: 
○ designate record-list <domain-id for example.com.> 
● Delete the record: 
○ designate record-delete <domain-id for example.com.> <record-id 
for serverA.example.com.> 
○ designate record-list <domain-id for example.com.>
Questions?
Designate + 
Nova/Neutron
What we are configuring 
Database 
Central 
Backend PowerDNS 
Nova / Neutron 
Keystone API AMQP 
User 
Sink
Designate Sink and Notification Handlers 
● Designate Sink consumes notification events from: 
○ Nova 
○ Neutron 
○ possibly other services 
● Designate Sink turns events into DNS operations. 
● What events and what DNS operations are performed are determined by custom notification 
handlers: 
○ nova_fixed 
○ neutron_floatingip
Nova Configuration Changes 
● Enable notifications for Designate in nova.conf: 
[DEFAULT] 
notification_driver = nova.openstack.common.notifier.rpc_notifier 
notification_topics = monitor 
notify_on_state_change = vm_and_task_state
Neutron Configuration Changes 
● Enable notifications for Designate in neutron.conf: 
[DEFAULT] 
notification_driver = neutron.openstack.common.notifier. 
rpc_notifier 
notification_topics = monitor
Designate Configuration Changes 
● Enable Designate Sink in designate.conf: 
[service:sink] 
enabled_notification_handlers = nova_fixed, neutron_floatingip 
● Enable Nova notification handler in designate.conf: 
[handler:nova_fixed] 
domain_id = <random uuid> 
notification_topics = monitor 
control_exchange = 'nova' 
format = '%(display_name)s.%(domain)s'
Designate Configuration Changes (continued) 
● Enable Neutron notification handler in designate.conf: 
[handler:neutron_floatingip] 
domain_id = <random uuid> 
notification_topics = monitor 
control_exchange = 'neutron' 
format = '%(display_name)s.%(domain)s' 
● Restart Designate services: 
○ sudo killall designate-api 
○ sudo killall designate-central 
○ sudo designate-central & 
○ sudo designate-api & 
● Start Designate Sink service: 
○ sudo designate-sink &
Creating and Deleting VM 
● Setup the environment for the user1 user: 
○ source openrc.user1 
● List the images: 
○ nova image-list 
● List the flavors: 
○ nova flavor-list 
● Create the VM instance: 
○ nova boot testvm --image <image-id> --flavor <flavor-id> 
○ nova list 
● Show the records: 
○ designate domain-list 
○ designate record-list <domain-id for example.com.> 
○ dig @localhost testvm.example.com.
Create and Delete VM (continued) 
● Delete the VM instance: 
○ nova delete testvm 
○ nova list 
● Show the records: 
○ designate domain-list 
○ designate record-list <domain-id for example.com.> 
○ dig @localhost testvm.example.com.
Questions?
Contribute to Designate
Useful Links 
General OpenStack Links: 
How to Contribute Primer: https://wiki.openstack.org/wiki/How_To_Contribute 
Gerrit Workflow Primer: https://wiki.openstack.org/wiki/Gerrit_Workflow 
Join the OpenStack Foundation: https://www.openstack.org/join/ 
Code Review: https://review.openstack.org/ 
Designate Specific Links: 
Bug Tracker: https://bugs.launchpad.net/designate 
Feature Tracker: https://blueprints.launchpad.net/designate 
Documentation: https://designate.readthedocs.org 
DevStack: https://designate.readthedocs.org/en/latest/devstack.html 
Git (Server): https://github.com/stackforge/designate 
Git (Client): https://github.com/stackforge/python-designateclient 
(Yes - These slides will be published online!)
Getting Involved - Bare Necessities 
● Get a good IRC client.. You’ll need it. 
○ Join #openstack-dns and introduce yourself :) 
● Attend the weekly IRC meetings: 
○ Wednesdays @ 17:00 UTC in #openstack-meeting-alt 
○ Agenda - https://wiki.openstack.org/wiki/Meetings/Designate 
● File a bug/blueprint for your idea - Then add it to the agenda… 
○ It’s OK to only have a rough sketch of the idea - that’s usually enough to begin discussions. 
● Sign the Contributors License Agreement 
● Get familiar with Gerrit - We can’t accept patches outside of Gerrit (Gerrit enforce the CLA)
Plugin Interfaces 
Designate has several plugin interfaces, where replacement/additional 
implementations can be dropped in without the need to modify core code, these 
can even be provided by out of tree Python modules, avoiding the need to fork for 
private plugins. 
● New API v1 Endpoints (v2 will eventually be pluggable) 
● Storage Drivers (SQLAlchemy in the box) 
● Backend Drivers (PowerDNS, NSD4, FreeIPA, DynECT, BIND9 (kinda..)) 
● Sink’s Notification Handlers 
Full List: http://goo.gl/5ZwMzO
REST APIs 
● Designate uses Flask for the v1 API, and Pecan for the v2 
API. 
● designate-api is intentionally a separate service in 
designate, we’ve always had a DNS based “API” in mind. 
● API v1 is in “maintenance mode” - We’re trying really hard 
to not add new features here! 
● API v2 is still experimental - We have some more changes 
to simplify in the pipeline!
Central Service 
● Designate’s “Core” service - If you’re not sure, it probably belongs in here 
somewhere 
● Designate’s other services are all intended to be lightweight, each doing as 
little as possible - i.e. only what’s specific to the particular interface.
Questions? 
Slides at http://goo.gl/u5G6rh

More Related Content

PDF
Designate Installation Workshop
PDF
Designate: An Overview
PDF
Integration of neutron, nova and designate how to use it and how to configur...
PDF
Designate - Operators Deep Dive
PDF
Get your instance by name integration of nova, neutron and designate
PDF
Designate - DNSaaS for OpenStack - FOSDEM 2014
PDF
Debugging Network Issues
PDF
Part 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOS
Designate Installation Workshop
Designate: An Overview
Integration of neutron, nova and designate how to use it and how to configur...
Designate - Operators Deep Dive
Get your instance by name integration of nova, neutron and designate
Designate - DNSaaS for OpenStack - FOSDEM 2014
Debugging Network Issues
Part 3 - Local Name Resolution in Linux, FreeBSD and macOS/iOS

What's hot (20)

PDF
Windows Server 2016 Webinar
PDF
Part 2 - Local Name Resolution in Windows Networks
PDF
2 technical-dns-workshop-day1
PDF
LXC on Ganeti
PDF
7 technical-dns-workshop-day3
PDF
Namespaces for Local Networks
PDF
8 technical-dns-workshop-day4
PPTX
Coredns nodecache - A highly-available Node-cache DNS server
PDF
How to send DNS over anything encrypted
PDF
DNS High-Availability Tools - Open-Source Load Balancing Solutions
PDF
6 technical-dns-workshop-day3
ODP
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
PDF
What is new in BIND 9.11?
PDF
4 technical-dns-workshop-day2
PDF
Encrypted DNS - DNS over TLS / DNS over HTTPS
PDF
Paris Redis Meetup Introduction
PDF
Trevor McDonald - Nagios XI Under The Hood
PDF
Keeping DNS server up-and-running with “runit
PDF
Move Over, Rsync
PDF
The DNSSEC KSK of the root rolls
Windows Server 2016 Webinar
Part 2 - Local Name Resolution in Windows Networks
2 technical-dns-workshop-day1
LXC on Ganeti
7 technical-dns-workshop-day3
Namespaces for Local Networks
8 technical-dns-workshop-day4
Coredns nodecache - A highly-available Node-cache DNS server
How to send DNS over anything encrypted
DNS High-Availability Tools - Open-Source Load Balancing Solutions
6 technical-dns-workshop-day3
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
What is new in BIND 9.11?
4 technical-dns-workshop-day2
Encrypted DNS - DNS over TLS / DNS over HTTPS
Paris Redis Meetup Introduction
Trevor McDonald - Nagios XI Under The Hood
Keeping DNS server up-and-running with “runit
Move Over, Rsync
The DNSSEC KSK of the root rolls
Ad

Similar to Designate Install and Operate Workshop (20)

PPTX
Cloud computing and OpenStack
ODP
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
TXT
Havana版 RDO-QuickStart-2 Answer File(answer2.txt)
TXT
Havana版 RDO-QuickStart-1 Answer File(answer1.txt)
TXT
Havana版 RDO-QuickStart-3 Answer File(RDO-QuickStart-3.txt)
PPTX
Some Advanced OpenStack Overview Document
PDF
MSST-2013 Openstack in the Land of Guilder
PDF
Openstack In Action 1st Edition V K Cody Bumgardner
PDF
[Rakuten TechConf2014] [F-4] At Rakuten, The Rakuten OpenStack Platform and B...
PDF
Minimal OpenStack LinuxCon NA 2015
PPTX
Manchester OpenStack Meetup: I have an OpenStack Cloud, now what? OpenStack 101
PPTX
Getting started with open stack
PDF
"OpenStack — more than just software". Tom Fifield, OpenStack
PPT
Getting Started with OpenStack from Hong Kong Summit Session November 5
PPTX
Openstack Cactus Survey
PPT
Neutrondev ppt
PDF
OpenStack at NTT Resonant: Lessons Learned in Web Infrastructure
PPTX
Open stack operations guide
PDF
Compute 101 - OpenStack Summit Vancouver 2015
PPTX
Openstack: starter level
Cloud computing and OpenStack
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Havana版 RDO-QuickStart-2 Answer File(answer2.txt)
Havana版 RDO-QuickStart-1 Answer File(answer1.txt)
Havana版 RDO-QuickStart-3 Answer File(RDO-QuickStart-3.txt)
Some Advanced OpenStack Overview Document
MSST-2013 Openstack in the Land of Guilder
Openstack In Action 1st Edition V K Cody Bumgardner
[Rakuten TechConf2014] [F-4] At Rakuten, The Rakuten OpenStack Platform and B...
Minimal OpenStack LinuxCon NA 2015
Manchester OpenStack Meetup: I have an OpenStack Cloud, now what? OpenStack 101
Getting started with open stack
"OpenStack — more than just software". Tom Fifield, OpenStack
Getting Started with OpenStack from Hong Kong Summit Session November 5
Openstack Cactus Survey
Neutrondev ppt
OpenStack at NTT Resonant: Lessons Learned in Web Infrastructure
Open stack operations guide
Compute 101 - OpenStack Summit Vancouver 2015
Openstack: starter level
Ad

Recently uploaded (20)

PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Transform Your Business with a Software ERP System
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
top salesforce developer skills in 2025.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
medical staffing services at VALiNTRY
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Digital Strategies for Manufacturing Companies
PDF
System and Network Administration Chapter 2
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Transform Your Business with a Software ERP System
Navsoft: AI-Powered Business Solutions & Custom Software Development
top salesforce developer skills in 2025.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Odoo Companies in India – Driving Business Transformation.pdf
medical staffing services at VALiNTRY
Understanding Forklifts - TECH EHS Solution
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
Reimagine Home Health with the Power of Agentic AI​
Digital Strategies for Manufacturing Companies
System and Network Administration Chapter 2
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
wealthsignaloriginal-com-DS-text-... (1).pdf

Designate Install and Operate Workshop

  • 1. Workshop Requirements ● Grab a USB key! ● A computer with: ○ 2+GB RAM ○ VirtualBox and Vagrant - Both included on USB drive ○ VM: 30GB disk image ○ Windows users need ssh client (putty, cygwin) ● Copy “DesignateInstall” from USB drive ● cd DesignateInstall ● vagrant up ● vagrant ssh
  • 3. Rich Megginson Principal Software Engineer, Red Hat rmeggins@redhat.com irc: richm (Freenode)
  • 4. Emmanuel Ankutse, Developer irc: eankutse Betsy Luzader, Developer irc: bluzader Vinod Mangalpally, Developer irc: vinod Joe McBride, Development Manager irc: jmcbride
  • 5. Ron Rickard Sr. Cloud Engineer, eBay Inc. rrickard@ebaysf.com irc.freenode.net: rjrjr
  • 7. Are you ready? ● Installed: ○ VirtualBox and Vagrant - Both included on USB drive ● Copy “DesignateInstall” from USB drive ● cd DesignateInstall ● vagrant up ● vagrant ssh
  • 8. Agenda ● Install ● Operations ● Nova + Neutron ● How to contribute
  • 10. Install Overview - Configure PowerDNS backend - Install/Configure Designate Services - Install/Configure Designate Client - Verify install
  • 11. What we are installing Database Central Backend PowerDNS Nova / Neutron Keystone API AMQP User Sink
  • 12. Follow along at... - On the vm at: /home/vagrant/install.txt - or online at: https://wiki.openstack. org/wiki/Designate/Atlanta/Worksh op_1
  • 15. Using Designate Pre-setup in Keystone: Tenant User admin admin tenantA user1 user2 tenantB user3
  • 16. Using Designate (continued) Scripts pre-loaded on image: ● openrc.admin ● openrc.user1 ● openrc.user2 ● openrc.user3 ● getusertoken.sh ● selectenv.sh ● createserver.sh ● deleteserver.sh ● getserver.sh ● listservers.sh
  • 17. Server Operations Designate REST API: ● Generate the Keystone token for the admin user: ○ source openrc.admin ○ . ./selectenv.sh ● List the servers: ○ ./listservers.sh ● Create the server: ○ ./createserver.sh ns.example.net. ○ ./listservers.sh
  • 18. Server Operations (continued) Designate client: ● Setup the environment for the admin user: ○ source openrc.admin ● List the servers: ○ designate server-list ● Create the server: ○ designate server-create --name ns.example.com. ○ designate server-list ● Delete a server: ○ designate server-delete <server-id for ns.example.net.> ○ designate server-list ● Delete the last server: ○ designate server-delete <server-id for ns.example.com.> ● Show designate shell: ○ designate
  • 19. Domain Operations ● Setup the environment for the user1 user: ○ source openrc.user1 ● List the domains: ○ designate domain-list ● Create the domain: ○ designate domain-create --name example.com. --email dns@example. com ○ designate domain-list ○ dig @localhost example.com. soa ○ dig @localhost example.com. ns ● Setup the environment for the user2 user: ○ source openrc.user2 ● List the domains: ○ designate domain-list
  • 20. Domain Operations (continued) ● Setup the environment for the user3 user: ○ source openrc.user3 ● List the domains: ○ designate domain-list ● Create the domain: ○ designate domain-create --name test.com. --email dns@test.com ○ designate domain-list ● Delete the domain: ○ designate domain-delete <domain-id for test.com.> ○ designate domain-list
  • 21. Record Operations ● Setup the environment for the user2 user: ○ source openrc.user2 ● List the records for the example.com. domain: ○ designate domain-list ○ designate record-list <domain-id for example.com.> ● Create the record: ○ designate record-create --name serverA.example.com. --type A -- data 1.2.3.4 <domain-id for example.com.> ○ designate record-list <domain-id for example.com.> ○ dig @localhost serverA.example.com. ● Setup the environment for the user1 user: ○ source openrc.user1 ● List the records for the example.com. domain: ○ designate record-list <domain-id for example.com.>
  • 22. Record Operations (continued) ● Setup the environment for the user3 user: ○ source openrc.user3 ● List the records for the example.com. domain: ○ designate record-list <domain-id for example.com.> ● Setup the environment for the user1 user: ○ source openrc.user1 ● List the records for the example.com. domain: ○ designate record-list <domain-id for example.com.> ● Delete the record: ○ designate record-delete <domain-id for example.com.> <record-id for serverA.example.com.> ○ designate record-list <domain-id for example.com.>
  • 25. What we are configuring Database Central Backend PowerDNS Nova / Neutron Keystone API AMQP User Sink
  • 26. Designate Sink and Notification Handlers ● Designate Sink consumes notification events from: ○ Nova ○ Neutron ○ possibly other services ● Designate Sink turns events into DNS operations. ● What events and what DNS operations are performed are determined by custom notification handlers: ○ nova_fixed ○ neutron_floatingip
  • 27. Nova Configuration Changes ● Enable notifications for Designate in nova.conf: [DEFAULT] notification_driver = nova.openstack.common.notifier.rpc_notifier notification_topics = monitor notify_on_state_change = vm_and_task_state
  • 28. Neutron Configuration Changes ● Enable notifications for Designate in neutron.conf: [DEFAULT] notification_driver = neutron.openstack.common.notifier. rpc_notifier notification_topics = monitor
  • 29. Designate Configuration Changes ● Enable Designate Sink in designate.conf: [service:sink] enabled_notification_handlers = nova_fixed, neutron_floatingip ● Enable Nova notification handler in designate.conf: [handler:nova_fixed] domain_id = <random uuid> notification_topics = monitor control_exchange = 'nova' format = '%(display_name)s.%(domain)s'
  • 30. Designate Configuration Changes (continued) ● Enable Neutron notification handler in designate.conf: [handler:neutron_floatingip] domain_id = <random uuid> notification_topics = monitor control_exchange = 'neutron' format = '%(display_name)s.%(domain)s' ● Restart Designate services: ○ sudo killall designate-api ○ sudo killall designate-central ○ sudo designate-central & ○ sudo designate-api & ● Start Designate Sink service: ○ sudo designate-sink &
  • 31. Creating and Deleting VM ● Setup the environment for the user1 user: ○ source openrc.user1 ● List the images: ○ nova image-list ● List the flavors: ○ nova flavor-list ● Create the VM instance: ○ nova boot testvm --image <image-id> --flavor <flavor-id> ○ nova list ● Show the records: ○ designate domain-list ○ designate record-list <domain-id for example.com.> ○ dig @localhost testvm.example.com.
  • 32. Create and Delete VM (continued) ● Delete the VM instance: ○ nova delete testvm ○ nova list ● Show the records: ○ designate domain-list ○ designate record-list <domain-id for example.com.> ○ dig @localhost testvm.example.com.
  • 35. Useful Links General OpenStack Links: How to Contribute Primer: https://wiki.openstack.org/wiki/How_To_Contribute Gerrit Workflow Primer: https://wiki.openstack.org/wiki/Gerrit_Workflow Join the OpenStack Foundation: https://www.openstack.org/join/ Code Review: https://review.openstack.org/ Designate Specific Links: Bug Tracker: https://bugs.launchpad.net/designate Feature Tracker: https://blueprints.launchpad.net/designate Documentation: https://designate.readthedocs.org DevStack: https://designate.readthedocs.org/en/latest/devstack.html Git (Server): https://github.com/stackforge/designate Git (Client): https://github.com/stackforge/python-designateclient (Yes - These slides will be published online!)
  • 36. Getting Involved - Bare Necessities ● Get a good IRC client.. You’ll need it. ○ Join #openstack-dns and introduce yourself :) ● Attend the weekly IRC meetings: ○ Wednesdays @ 17:00 UTC in #openstack-meeting-alt ○ Agenda - https://wiki.openstack.org/wiki/Meetings/Designate ● File a bug/blueprint for your idea - Then add it to the agenda… ○ It’s OK to only have a rough sketch of the idea - that’s usually enough to begin discussions. ● Sign the Contributors License Agreement ● Get familiar with Gerrit - We can’t accept patches outside of Gerrit (Gerrit enforce the CLA)
  • 37. Plugin Interfaces Designate has several plugin interfaces, where replacement/additional implementations can be dropped in without the need to modify core code, these can even be provided by out of tree Python modules, avoiding the need to fork for private plugins. ● New API v1 Endpoints (v2 will eventually be pluggable) ● Storage Drivers (SQLAlchemy in the box) ● Backend Drivers (PowerDNS, NSD4, FreeIPA, DynECT, BIND9 (kinda..)) ● Sink’s Notification Handlers Full List: http://goo.gl/5ZwMzO
  • 38. REST APIs ● Designate uses Flask for the v1 API, and Pecan for the v2 API. ● designate-api is intentionally a separate service in designate, we’ve always had a DNS based “API” in mind. ● API v1 is in “maintenance mode” - We’re trying really hard to not add new features here! ● API v2 is still experimental - We have some more changes to simplify in the pipeline!
  • 39. Central Service ● Designate’s “Core” service - If you’re not sure, it probably belongs in here somewhere ● Designate’s other services are all intended to be lightweight, each doing as little as possible - i.e. only what’s specific to the particular interface.
  • 40. Questions? Slides at http://goo.gl/u5G6rh