There are no reviews yet. Be the first to send feedback to the community and the maintainers!
SYNOPSIS zonify ... (-h|-[?]|--help) ... zonify ec2 <rewrite rules>* > zone.ec2.yaml zonify ec2/r53 <domain> <rewrite rules>* > changes.yaml zonify r53 <domain> > zone.r53.yaml zonify diff zone.r53.yaml zone.ec2.yaml > changes.yaml zonify rewrite <rewrite rules>* < zone.ec2.yaml zonify summarize < changes.yaml zonify apply < changes.yaml zonify sync <domain> <rewrite rules>* zonify normalize <domain> zonify eips DESCRIPTION The zonify tool allows one to create DNS entries for all instances, tags and load balancers in EC2 and synchronize a Route 53 zone with these entries. The zonify tool and libraries intelligently insert a final and initial '.' as needed to conform to DNS conventions. One may enter the domains at the command line as example.com or example.com.; it will work either way. For access to AWS APIs, zonify uses the the conventional environment variables to select regions and specify credentials: AWS_ACCESS_KEY AWS_ACCESS_KEY_ID AWS_SECRET_KEY AWS_SECRET_ACCESS_KEY EC2_URL These variables are used by many AWS libraries and tools. As a conve- nience, the environment variable AWS_REGION may be used with region nicknames: AWS_REGION=eu-west-1 One may specify --use-iam-profile option to configure the zonify tool with AWS IAM-provided access and secret keys. This capability is avail- able only when running the tool on an EC2 instance with an IAM role. The Zonify subcommands allow staged generation, transformation and auditing of entries as well as straightforward, one-step synchroniza- tion. ec2 (--srv-singleton|--no-srv-singleton)? Organizes instances, load balancers, security groups and instance metadata into DNS entries, with the generic suffix '.' (intended to be transformed by later commands). ec2/r53 (--types CNAME,SRV)? (--srv-singleton|--no-srv-singleton)? Creates a changes file, describing how records under the given suffix would be created and deleted to bring it in to sync with EC2. By default, only records of type CNAME and SRV are examined and changed. r53 Capture all Route 53 records under the given suffix. diff (--types CNAME,SRV,A,MX,...)? Describe changes (which can be fed to the apply subcommand) needed to bring a Route 53 domain in the first file into sync with domain described in the second file. The suffix is taken from the first file. The default with diff (unlike other zonify subcommands) is to examine all record types. rewrite (--srv-singleton|--no-srv-singleton)? Apply rewrite rules to the domain file. summarize Summarize changes in a changes file, writing to STDOUT. apply Apply a changes file. sync (--types CNAME,SRV)? (--srv-singleton|--no-srv-singleton)? Sync the given domain with EC2. By default, only records of type CNAME and SRV are examined and changed. normalize Create CNAMEs for SRV records that have only one server in them and rebase records on to the given domain. eips List all Elastic IPs and DNS entries that map to them. The --[no-]srv-singleton options control creation of CNAMEs for single- ton SRV records. They are enabled by default; but it can be useful to disable them for pre-processing the YAML and then adding them with nor- malize. For example: zonify r53 amz.example.com > r53.yaml zonify ec2 --no-srv-singleton > ec2.yaml my-yaml-rewriter < ec2.yaml > adjusted.yaml zonify normalize amz.example.com < adjusted.yaml > normed.yaml zonify diff --types CNAME,SRV r53.yaml normed.yaml | zonify apply The --[no-]srv-singleton options also control creation of weighted round-robin CNAMEs, an infelicity in nomenclature. SYNC POLICY Zonify assumes the domain given on the command line is entirely under the control of Zonify; records not reflecting the present state of EC2 are scheduled for deletion in the generated changesets. This can be controlled to some degree with the --types option. The sync scopes over the domain and not necessarily the entire Route 53 zone. Say, for example, one has example.com in a Route 53 zone and one plans to use amz.example.com for Amazon instance records. In this sce- nario, Zonify will only specify changes that delete or create records under amz.example.com; www.example.com, s0.mobile.example.com and simi- lar records will not be affected. YAML OUTPUT All records and change sets are sorted by name on output. The data com- ponents of records are also sorted. This ensures consistent output from run to run; and allows the diff tool to return meaningful results when outputs are compared. One exception to this rule is the r53 subcommand, which preserves the order of data as it was found in Route 53. REWRITE RULES Rewrite rules take the form <domain>(:<domain>)+. To shorten names under the apache security group to web.amz.example.com, use: apache.sg:web To keep both forms, use the rule: apache.sg:apache.sg:web GENERATED RECORDS AND QUERYING For records where there are potentially many servers -- security groups, tags, load balancers -- Zonify creates SRV records. When a SRV record has only one entry under it, a simple CNAME is created. When a SRV record contains multiple records, multiple weighted round-robin CNAMEs are created, one for each server in the SRV record. Records created include: i-ABCD1234.inst. Individual instances. _*._*.<value>.<key>.tag. SRV records for tags. _*._*.<name>.sg. SRV records for security groups. _*._*.<name>.elb SRV records for instances behind Elastic Load Balancers. domU-*.priv., ip-*.priv Records pointing to the default hostname, derived from the private DNS entry, set by many AMIs. A list of all instances is placed under inst -- continuing with our example above, this would be the SRV record _*._*.inst.amz.example.com. To obtain the list of all instances with dig: dig @8.8.8.8 +tcp +short _*._*.inst.amz.example.com SRV | cut -d' ' -f4 The cut call is necessary to remove some values, always nonces with Zonify, that are part of standard format SRV records. EXAMPLES # Create records under amz.example.com, with instance names appearing # directly under .amz.example.com. zonify sync amz.example.com name.tag:. # Similar to above but stores changes to disk for later application. zonify ec2/r53 amz.example.com name.tag:. > changes.yaml
javascript
JavaScript Style Guidelottie-android
Render After Effects animations natively on Android and iOS, Web, and React Nativelottie-web
Render After Effects animations natively on Web, Android and iOS, and React Native. http://airbnb.io/lottie/lottie-ios
An iOS library to natively render After Effects vector animationsvisx
🐯 visx | visualization componentsreact-sketchapp
render React components to Sketch ⚛️💎react-dates
An easily internationalizable, mobile-friendly datepicker library for the webepoxy
Epoxy is an Android library for building complex screens in a RecyclerViewcss
A mostly reasonable approach to CSS and Sass.mavericks
Mavericks: Android on Autopilothypernova
A service for server-side rendering your JavaScript viewsknowledge-repo
A next-generation curated knowledge sharing platform for data scientists and other technical professions.ts-migrate
A tool to help migrate JavaScript code quickly and conveniently to TypeScriptaerosolve
A machine learning package built for humans.lottie
Lottie documentation for http://airbnb.io/lottie.DeepLinkDispatch
A simple, annotation-based library for making deep link handling better on Androidruby
Ruby Style Guidepolyglot.js
Give your JavaScript the ability to speak many languages.MagazineLayout
A collection view layout capable of laying out views in vertically scrolling grids and lists.native-navigation
Native navigation library for React Native applicationsstreamalert
StreamAlert is a serverless, realtime data analysis framework which empowers you to ingest, analyze, and alert on data from any environment, using datasources and alerting logic you define.infinity
UITableViews for the web (DEPRECATED)HorizonCalendar
A declarative, performant, iOS calendar UI component that supports use cases ranging from simple date pickers all the way up to fully-featured calendar apps.airpal
Web UI for PrestoDB.swift
Airbnb's Swift Style GuideShowkase
🔦 Showkase is an annotation-processor based Android library that helps you organize, discover, search and visualize Jetpack Compose UI elementssynapse
A transparent service discovery framework for connecting an SOAparis
Define and apply styles to Android views programmaticallyAirMapView
A view abstraction to provide a map user interface with various underlying map providersreact-with-styles
Use CSS-in-JavaScript with themes for React without being tightly coupled to one implementationrheostat
Rheostat is a www, mobile, and accessible slider component built with Reactbinaryalert
BinaryAlert: Serverless, Real-time & Retroactive Malware Detection.epoxy-ios
Epoxy is a suite of declarative UI APIs for building UIKit applications in Swiftnerve
A service registration daemon that performs health checks; companion to airbnb/synapseokreplay
📼 Record and replay OkHttp network interaction in your tests.chronon
Chronon is a data platform for serving for AI/ML applications.RxGroups
Easily group RxJava Observables together and tie them to your Android Activity lifecyclereact-outside-click-handler
OutsideClickHandler component for React.ResilientDecoding
This package makes your Decodable types resilient to decoding errors and allows you to inspect those errors.babel-plugin-dynamic-import-node
Babel plugin to transpile import() to a deferred require(), for nodekafkat
KafkaT-oolbabel-plugin-dynamic-import-webpack
Babel plugin to transpile import() to require.ensure, for Webpackbabel-plugin-inline-react-svg
A babel plugin that optimizes and inlines SVGs for your React Components.BuckSample
An example app showing how Buck can be used to build a simple iOS app.lunar
🌗 React toolkit and design language for Airbnb open source and internal projects.SpinalTap
Change Data Capture (CDC) serviceartificial-adversary
🗣️ Tool to generate adversarial text examples and test machine learning models against themdynein
Airbnb's Open-source Distributed Delayed Job Queueing Systemhammerspace
Off-heap large object storagetrebuchet
Trebuchet launches features at peoplereair
ReAir is a collection of easy-to-use tools for replicating tables and partitions between Hive data warehouses.ottr
Serverless Public Key Infrastructure Frameworkomniduct
A toolkit providing a uniform interface for connecting to and extracting data from a wide variety of (potentially remote) data stores (including HDFS, Hive, Presto, MySQL, etc).hypernova-react
React bindings for Hypernova.smartstack-cookbook
The chef recipes for running and testing Airbnb's SmartStackinterferon
Signaling you about infrastructure or application issuesbabel-preset-airbnb
A babel preset for transforming your JavaScript for Airbnbbackpack
A pack of UI components for Backbone projects. Grab your backpack and enjoy the Views.goji-js
React ❤️ Mini Programreact-with-direction
Components to provide and consume RTL or LTR direction in Reactstemcell
Airbnb's EC2 instance creation and bootstrapping toolhypernova-ruby
Ruby client for Hypernova.kafka-statsd-metrics2
Send Kafka Metrics to StatsD.optica
A tool for keeping track of nodes in your infrastructuresparsam
Fast Thrift Bindings for Rubyjs-shims
JS language shims used by Airbnb.lottie-spm
Swift Package Manager support for Lottie, an iOS library to natively render After Effects vector animationsbossbat
Stupid simple distributed job scheduling in node, backed by redis.nimbus
Centralized CLI for JavaScript and TypeScript developer tools.browser-shims
Browser and JS shims used by Airbnb.twitter-commons-sample
A sample REST service based on Twitter Commonsis-touch-device
Is the current JS environment a touch device?rudolph
A serverless sync server for Santa, built on AWShypernova-node
node.js client for Hypernovaplog
Fire-and-forget UDP logging service with custom Netty pipelines & extensive monitoringreact-create-hoc
Create a React Higher-Order Component (HOC) following best practices.vulnture
cloud-maker
Building castles in the skydeline
An ES6 template tag that strips unwanted newlines from strings.react-with-styles-interface-react-native
Interface to use react-with-styles with React Nativesputnik
mocha-wrap
Fluent pluggable interface for easily wrapping `describe` and `it` blocks in Mocha tests.react-with-styles-interface-aphrodite
Interface to use react-with-styles with Aphroditeeslint-plugin-react-with-styles
ESLint plugin for react-with-stylessssp
Software distribution by way of S3 signed URLsalerts
An example alerts repo, for use with airbnb/interferon.apple-tv-auth
Example application to demonstrate how to build Apple TV style authentication.airbnb-spark-thrift
A library for loadling Thrift data into Spark SQLjest-wrap
Fluent pluggable interface for easily wrapping `describe` and `it` blocks in Jest tests.billow
Query AWS data without API credentials. Don't wait for a response.gosal
A Sal client written in Gobackbone.baseview
DEPRECATED: A simple base view class for Backbone.Viewanotherlens
News Deeply X Airbnb.Design - Another Lenseslint-plugin-miniprogram
react-component-variations
react-with-styles-interface-css
📃 CSS interface for react-with-stylestransformpy
transformpy is a Python 2/3 module for doing transforms on "streams" of dataappear
reveal terminal programs in the guipuppet-munki
pool-hall
Love Open Source and this site? Check out how you can help us