Some software projects of which I am either the owner or a core contributor.
Terraform Azure Providers
For configuring infrastructure in Microsoft Azure. The AzureRM provider uses the Resource Manager APIs to provision and manage Azure resources. The AzureAD provider uses the Microsoft Graph and Azure Active Directory Graph APIs to manage Azure Active Directory and MIcrosoft 365.
A Go SDK for Microsoft Graph.
Conference Name Badger
Whilst creating attendee badges for DevOpsDays Cape Town, I could not find a simple way to reconcile the list of attendees (from our ticket vendor) with the badge design (a PDF from our designer). I wanted the equivalent of a mail merge, but it needed to look great and be usable as late registrations came in. My solution was a Python script to create a multipage PDF for our printing vendor. It accepts a CSV file as input, with configurable fields and locations (admittedly, you edit the script).
AWS Console Colors Userscript
A userscript for browsers which improves the appearance of the AWS Console when you are assuming IAM roles, by making the entire menu bar approximate the color you select in the role switcher pill widget.
AWS Certificate Manager (ACM) Terraform module
A Terraform module which requests and validates ACM certificates on AWS, using DNS validation with Route53.
Ansible with AWS Skeleton Project
A useful starter project for scaffolding your next Ansible project for AWS, incorporating many recommended approaches and best practises.
AWS Vars Plugin for Ansible
A drop-in plugin for Ansible 2.5+, which:
- Searches one or more AWS accounts for VPC, subnet, security group and ELB target group details,
- Matches tags of all these resources with configured set of tag names, then
- Builds a hierarchical dictionary of resources mapped by tag values,
- All the above information is made available to all hosts managed by Ansible by means of native host variables
Bonus feature: brings native support for multiple AWS accounts with automatic account switching once per playbook based on extra vars passed at runtime.
Auto Scaling Deployment modules for Ansible
A set of modules I wrote for Ansible to manage software deployments with AWS Auto Scaling. Particularly useful when couple with Elastic Load Balancers, these modules model a configurable blue-green style deployment strategy for simple, fast cutover in your production environment, with rollback.