HashiTalks CFP 2021

Inspired by various people online making their CFP submissions public to show examples of how to write a CFP submission, I decided that I would publish my recent submission to the HashiTalks 2021 CFP.

Now I don’t claim to be an expert at writing CFPs, in fact I would place myself at a purely amateur level, this is only the second I’ve written in recent history and only the 4th in my whole life. Still I feel like publishing these things will help me be more critical of my own work.

When I started working on my entry to the HashiCraft Holidays Hackstravaganza I did have the thought in the back of my head that this could be something that I could craft a talk about, but I kept delaying the actual submission as I was struggling to design the whole narrative.

Then suddenly the deadline date arrived and inspiration hit. It was past the submission time but I decided it was worth a shot anyway and spent the evening in front of the whiteboard to couple together a plan. In the end my final text looked like the following (the CFP form didn’t have separate fields for description and notes for the reviewer so I dumped everything in one field).

In 2008 Simone Giertz challenged us to “make useless things”. When I saw the announcement for the HashiCraft Holidays Hackstravaganza I was inspired to step up to the challenge by creating a Terraform provider for Falcon Player, a tool popular in the holiday lighting community.

In this talk I will walk through how I approached developing a Terraform provider having never written a Terraform provider before or experience writing golang.

Through this talk I hope to inspire others to make “useless” providers, giving them a few tips on how to get started.

Non public section

Apologies for the late entry, talk planning wasn’t on the top of my agenda the last two weeks.

Talk is based upon my entry here: https://discuss.hashicorp.com/t/team-sharebear/18559 I’ve not yet decided if I’ll use the tree in the talk or just refer to the previous video, probably depends on how quickly I can land the slide deck.

Tentative talk structure (timing very rough based on last minute planning)

  • Context (5-10 mins)
    • Intro + background
  • How I stumbled across the Hackstravaganza announcement
  • Brainstorming + what is Falcon Player
  • Implementation (10-15 mins)
  • Getting started (copy example)
  • Set project scope
  • Start with the types (intro to mitmproxy + json de-serialisation in golang)
  • Implement a vertical slice (data source, to verify connectivity)
  • It’s ok to hardcode values (first attempt at resource)
  • Conclusion (5 mins)
  • What have I learnt?
    • Enough golang to start contributing PRs and reviewing other’s PRs
    • Better understanding of how/why certain bugs/features occur
      • Concrete example: resources not getting added to state even though they were created due to error handling when waiting for completion
  • What have you learnt?
    • Start small, you don’t need to support every property from the start
    • Code doesn’t need to be pretty (at least not yet)
    • mitmproxy is great for inspecting traffic
    • Making “useless” providers, isn’t a big challenge

I’ve no idea whether this was good enough, but if the talk is not accepted for the conference I’m sure I could submit it to the local HashiCorp meetup group, but then at my own pace (I have another hobby project I intend to prioritize the next couple of weeks if the talk isn’t accepted).