Creating A Webhook Provider for External DNS

Currently, while external-dns does have a provider for Cloudflare, it does not currently support Tunnel backends. Hence, I attempted to implement one using the webhook mechanism (as in-tree providers are being deprecated). While external-dns does provide some documentation, it is (in my opinion) sparse on implementation details required to develop a provider. In this article, I will walk through how I implemented external-dns-cloudflare-tunnel-webhook, omitting any provider-specific details. Specification For a high-level overview, external-dns operates with webhook providers as follows:...

June 16, 2024 · 5 min · 1037 words · Hans Song

CRUD with HTMX, Typescript, and SQLite

A while back, a little JavaScript library known as HTMX was making waves. As I had started my career in client-side rendered front-ends, communicating via HTML seemed fairly novel to me. This has a number of added benefits: No API lock-in - SPAs where the frontend is deployed with API validation and logic may need to be deployed anytime a change to the API is made. In SSR applications, changes to the API simply change the HTML rendered by the clients browser....

May 5, 2024 · 8 min · 1625 words · Hans Song

Kubernetes OIDC Authentication

As I have started dabbling in SSO and federated identity management using Auth0, I had a thought: “could I access my Kubernetes cluster with an Auth0 user identity?”. And so, begins a new (fairly short) rabbit-hole to dive into. Prerequisites You will need: A free Auth0 account A computer A decision on your Kubernetes flavour of choice, I will be using K3S here kubectl with kubelogin installed Setup Create a machine-to-machine Auth0 Client....

September 16, 2023 · 2 min · 353 words · Hans Song

Simple Serverless Site Boilerplate

A fairly common pattern used to deploy a serverless website on AWS is CloudFront + API Gateway + Lambdas. In this post, I’ll introduce my take as I realize that I have been using this pattern fairly regularly so I figured I would note it down here so I can copy-paste it for future use. The general approach is as follows: Static site contents deployed to an S3 bucket Backend deployed as lambdas, integrated with API Gateway Everything behind CloudFront for caching Tied together with AWS CDK Prerequisites You will need:...

June 25, 2023 · 8 min · 1529 words · Hans Song

Setting Up a Hugo Blog

I’ve been told by others that I should probably get things out of my mind into text, especially all of my learnings in my platform engineering type projects. Hence, I’ll be starting off by walking through how I set up this blog here, fairly straightforward although there were some issues with the hosting. It appears Hugo has some custom logic to make URLs pretty that does not work well with S3....

May 28, 2023 · 4 min · 756 words · Hans Song